Začátečníkův almanach pro SmartAI a další práce v databázi

Moderator: Forum moderator

Bahamut_Lord
Master Spammer
Posts: 12398
Joined: 20 Sep 2009, 16:12
Contact:

Začátečníkův almanach pro SmartAI a další práce v databázi

Postby Bahamut_Lord » 11 Oct 2014, 18:09

Začátečníkův Almanach pro SmartAI

Před časem jsem se o nějaký podobný projekt pokoušel na GM fóru, ale jelikoz jsme stale přespříliš vytížení a nestíháme ani svou vytyčenou práci, zkusim ho zacilit spíše na vás, hráče. Myšlenkou je vám přiblížit, ukázat a doufám i v některých případech vás podnítit k tomu, abyste si zkusili sami práci v databází osahat a něco v ní vytvořit, nejlépe pro společné úsilí a výsledek nas všech zde na iCe. Chci vám přiblížit jeden typ tvorby AI, umělé inteligence a skriptů, jenz se nazývá SmartAI, zkráceně SAI, nástroj, s nímž se jiz několik let potykam a snad jsem jiz některým nástrahám přišel na kloub. Samozřejmě neovladam všechny funkce, některé mi doposud pod ruku ani nepřišly, nebo jsem neměl důvod je zkoušet, u některých jsem se mozna dopustil omylu a tim pádem vás budu mystifikovat - pokud naleznete v mých tvrzeních chybu, budu rád, kdyz na ní poukazete a probereme, kde co mám špatně. Jak se lidově říká, víc hlav víc ví, a nikdo není neomylný. Kdyz vám tedy tvrdím, ze neco v SAI nelze udělat, je možné, ze jsem to jen pouze do dneška nezjistil, ci nepochopil. Od toho slouží vcelku dobře popsaná wiky od Trinitycore , zabyvajici se popisem všech tabulek a jejich funkcí - její link zde někde umistim.

U SAI je nutné si uvědomit, ze je to skvělý nástroj, ale není všemocný. Je to pomůcka pro jednodušší tvorbu různých skriptu, používaných převážně u AI npc, jako např questgiveru, tak nepřátelských npc, od bossů po trash po celém světě, tak po NPC zvané trigger, jejichž funkci si popíšeme za chvíli. Představte si, jednodušeji řečeno, ze máte postavit dům ze dřeva. Máte hoblik, ruční pilku, kladivo, hřebíky, zkrátka všechny základní nástroje, z kterých si trámy připravíte a dům ztlucete, bude vám tam fajn a dobře - něco takového vám SAI poskytne. Pokud ale chcete 100% luxusní vilu, musíte jít dál, ke skriptům jazyka C++, který vám dovolí uplne jiné možnosti - ale je take mnohem složitější. Berte SAI jako prostředek pro "blbce", kteří se chtěli take angažovat :) . Abych ale příliš nehanil, ono SAI ma vážně spoustu využití a když do něj proniknete a osvojite si jej, půjde vám práce jako po másle. Největší zdržovacka s celou prací na tvorbě AI skriptu není o tom jej napsat, ale převážně o tom, najít k němu způsobile spelly a efekty, aby fungovaly jak mají podle videí z ofiku. Jste schopni skript napsat, ale zdržovat vás nejvíce bude hledání spellu, kterých je řádově v desítkách tisíc a ne vždy je Blizzard označil příliš přátelsky pro vyhledání. Uvidíte, že npc ma na sobě žlutou auru, vykouzlí oheň a podobné efekty, aké ty v drtive většině případů právě nikde na wowheadu přímo u NPC nenajdete a musíte improvizovat a hledat podle nějakých logických kritérií, jak by se to asi mohlo jmenovat, a pak zkoušet a zkoušet, až najdete to prave ořechové. Dalsi veci, kterou vám bude nejvíce zabírat cas, je zjišťování, jak ze právě "to" ma fungovat, koukání na desítky minut videi , zkoušení a opisování textů z rozhovorů, ktere se casto nikde najít nedají, vypisování různých koordinátu pro pohyb ci teleport, zkrátka ona celá ta piplacka s dortem nejvíce zdržuje na poleve, kdy dort máte upečeny za chvíli, ale aby taky nějak nazdobene vypadal vám zabere času, ze z toho zesedivite.

Natukl jsem zde pojem Trigger, zkusím objasnit, co to vlastně je. Je to vlastně takové neviditelné NPC, ktere ma za ukol něco provádět na daném místě v daný cas. Většinou bývá neviditelne hráčskému oku a vy o něm fyzicky ani nevíte, ale ono o vás ano a uvede do pohybu celou mašinérii instrukcí s nim spojených, od např splnění questu, kopání na trampoline, ovládání jiných npc pomocí časovace, a dalších úkonů. Občas je ve hře vidíte nejčastěji jako zajíce , nevim, proč u nich Blizzard zvolil tento vzhled, asi ma rád roztomilé chlupacky - ale to je větsine případů chyba, videt by být neměly. Tak tyto triggery by byly velice casto náplní vaší práce, protože skrz ne Blizz řeší většinu interakce se světem.

Dalším pojmem, jenz bych rád objasnil, je tzv Workaround - čili něco, co obchází původní mechaniku, ci si ji nějak upravuje k obrazu svému, pokud nejsme schopni na 100% zajistit funkčnost normální cestou a prostředky. NPC ma například použít blink po okolí, což jsem ale tuším při svých testech nikdy nerozchodil, respektive NPC se blinkne a zmizí do dálky jak by mělo, ale vizuálně stojí pořád u hráče, tzn pro něj se vlastne nic nezměnilo. Proto je treba lepší použít podobnou mechaniku, jako je například skok, který tuším funguje se vším všudy a hráči se pak bude zdát, ze se to npc vážně cele přemístilo - tzn jsme použili workaround, aby to vypadalo lépe i funkčně.

Než se do něčeho pustíte, měli byste alespoň zhruba vědět, jak to, co chcete provést, ma fungovat, vypadat, jak toho docílíte. Nemusíte mít plán na 100%, ale alespoň základní kostru byste mít v hlavě měli. Samozřejmě u malých projektů to není nutné tolik, jako u větších věcí typu IA pro bosse v dungeonu, od toho budou sloužit různé příklady, jenž si průběžně vytvoříme.

Jelikož tuto předmluvu píši na přeskáčku v různých časových úsecích, snad bude trochu v globále dávat smysl :). Jak jsem již psal, SAI jsou skripty psané přímo v MYSQL databázi, kterou bych pro začátečníky přiblížil jako tabulkový procesor Excel, který zná asi každý z vás ze školy, tzn sloupce a řádky plné čísel a číšel. V našem případě ale nebudeme nic sčítat a odečítat, ale každé číslo ma svůj vlastní účel, svůj vlastní smysl, co udělá, pokud ho zadáme. Pokud do určitého sloupce zadáme např jedničku, NPC bude mluvit, pokud jedenáctku, bude kouzlit, pokud čtyřicet jedna, tak zmizí (despawne se), a podobně. Všechny tyto akce a čísla jsou popsána na trinity wiky, i když ze začátku se ten obsah může zdát matoucí - a právě proto zde jsme, pěkně krok za krokem.

Nejdříve jsem chtěl spoustu návodů do začátku psát v Excelu, at máte nástin toho, jak práce v DB bude vypadat, ale nakonec jsem toho upustil, a uděláme si v excelu pouze jeden základní vzor, a zbytek již pouze v SQL databázi - ono nemá moc smysl také snažit se demonstrativní práci v Excelu, když pak nebudete schopni aplikovat ji v praxi. Spousta nováčků totiž zkrachuje v tom, ze není schopna si doma na lokálním PC rozjet vlastní emulátor, ale bez něj vám prostě celá výuka bude k ničemu. Ona teorie je hezká věc, ale praxe je praxe. Proto zde někde umístím i návod na spuštění nějakého free repacku, který sice nebude obsahovat iCe databázi, ale to vůbec ničemu nebrání, SAI funguje na všech (mno, většině) repaccích stejně.

Toť prozatím vše, topic uzamknu, aby zde nikdo nemohl psát, na dotazy se vyčlení další topic někde zde na fóru. Měl bych prosbu ke komukoliv, koho tento topic zaujal a měl by minimálně chuť něco takového zkusit, aby mi poslal krátkou PM, abych věděl, že to zde nepíši pro srandu králíkům a jen neztrácím čas pro předem ztracenou věc. Ono totiž na příslovích vážně něco je:

"Dej člověku chleba, nasytíš ho na den, nauč ho péct si vlastní, nakrmíš ho na zbytek života."

Return to “Návody / Tutorials”

Who is online

Users browsing this forum: No registered users and 1 guest