Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Razvoj game enginea: AI (finite states vs neural networks), scripting...?

[es] :: GameDev - Razvoj Igara :: Razvoj game enginea: AI (finite states vs neural networks), scripting...?

[ Pregleda: 3621 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Razvoj game enginea: AI (finite states vs neural networks), scripting...?17.12.2007. u 23:12 - pre 199 meseci
Pozdrav svima, okupio sam tim oko sebe (sve sam pocetnik do pocetnika sto se tice gamedev-a, ali zeljni da ucimo sto je najvaznije) i resili smo da napravimo jedan rpg za koji verujemo da ce biti hit na nasim prostorima (imamo gotov scenario, tj prvu verziju, i na osnovu toga se nadamo da cemo naici na lep prijem kod gejmera sa ovih prostora, jer se radnja rpg-a i odvija na balkanu :D), ali kao sto rekoh pocetnici smo, i necemo odmah krenuti u realizaciju tog projekta vec cemo proci kroz par manjih igara na kojima cemo da kalimo znanje.

LM, posto sam ja jedini programer u timu (za sada) vec sam krenuo u razvijanje 2d enginea (prva verzija tog rpg-a ce biti 2d world u izometriji naravno, sa 3d-like likovima i objektima) pri cemu se oslanjam na jednu free biblioteku namenjenu za 2d igre (allegro, ako je neko cuo) i dosta toga je zavrseno (svidja mi se ovaj gamedev moram priznati :D)...

e sad, dosao sam do faze razvoja enginea kada bi ga trebalo isprobati kroz neku manju igru, ja sam odlucio da uradim rimejk jedne od mojih omiljenih igara sa tzv "terminatora" (nekada najpopularnije konzole na ovim prostorima), mada mi se cini da je ta igra sa nitenda... u pitanju su "tenkici" (jos uvek nemam naziv za igru koju radim ali bice nesto sa "Tank" najverovatnije) koji ne zahtevaju neki prepametan AI. Ja sam malo citao po netu i naisao sam na finite state algoritme, i AI baziran na ovom algoritmu je lak za implementaciju (pogotovu sto su mi poznati NFA i DFA i konverzija NFA -> DFA) i sasvim dovoljan za tenkice, ali posto ovu igru pravim kao pripremu za rpg zanima me da li da ucim ove mreze (jos uvek ne znam tacno sta su) ili da se oslonim na konacna stanja i u rpg-u? sta mi preporucujete?

i jos jedno pitanje, napisao sam kompajler i vm za skript jezik (c-like sintaksa, sa nekim elementima oop-a) koji cu koristiti u tom engineu, e sad, moja logika je otprilike ovakva: igra (za pocetak ti tenkici, a ustvari svaka igra koja ce koristiti taj engine) samo "dostavi" sve objekte koji se pojavljuju u igri vm-u tj stavlja ih na koriscenje kroz skripte. Ja sam mislio da se kompletan gameplay (tu mislim na ponasanje okruzenja, interakciju likova i objekata medjusobno, animacije, dijalozi, kontrola zvuka) radi preko skripti, a da se u samoj igri (tj native kodu) urade samo algoritmi (recimo za pronalazenje putanje, za ucitavanje nivoa, grafike i zvuka) koji ce biti pozivani iz skripti.
Koliko je ovakav pristup dobar/los? Sa obzirom da taj engine nece "poterati" nikakvu zahtevniju igru (cilj nam je rpg kao sto rekoh, bez ultra-mega-giga 3d grafike)...


hvala unapred
 
Odgovor na temu

Reljam
Relja Markovic
San Francisco

Član broj: 531
Poruke: 1793
*.hsd1.wa.comcast.net.



+18 Profil

icon Re: Razvoj game enginea: AI (finite states vs neural networks), scripting...?17.12.2007. u 23:59 - pre 199 meseci
[Sjajna tema, nazalost sada ne mogu da se raspisem, ali bas ovakve stvari me interesuju. Bicu kratak za sada]

To deluje kao prilicno agresivan prvi projekat - naravno, nista nije nemoguce, ali stvarno bih vam preporucio da pocnete od manjih igara. RPGovi su tezak zanr.

Sto se tice AIa, finite state machine obicno vrse posao, a neuralne mreze su malo egzoticnije resenje (kako ih debagovati?). Sve igre na kojima sam radio su koristile FSMove, i to je uvek bilo zadovoljavajuce resenje.

Skriptovi mogu da budu bolje resnje od koda, ali je za to neophodno da imate infrastrukturu za razvoj skriptova, za pocetak je barem neki debager pozeljan. U suprotnom moracete da razvijate ceo gameplay uz pomoc printf debugginga, sto nije nemoguce, ali je teze nego sto bi moralo da bude. U takvoj situaciji vredi preispitati da li su skriptovi stvarno laksi za upotrebu. Takodje, ko ce da pise skriptove? Ako ces samo ti da programiras, i ako ti je manje-vise podjednako lako da pises C[++] kod i skript, onda je verovatno lakse ne koristiti skript jezik. I ovo je dugacka tema. :)
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Razvoj game enginea: AI (finite states vs neural networks), scripting...?18.12.2007. u 01:12 - pre 199 meseci
znam da je RPG tezak zanr (naravno dobar RPG), zato sam i rekao da cemo (cu) se prvo uvezbavati na prostijim (arkadnim) igrama, eto prva u nizu ce da bude taj "tanks" rimejk, zatim cu uraditi neki shooter u stilu 1945, pa neki malo bolji sidescroller i jos par igara, sve to da bih engine doveo do stanja da moze da "progura" taj rpg, a do tad ce ostatak tima da se uvezbava na grafici/zvuku/gameplayu...

ok, sto se tice AI-a drzacu se FSM-ova


a sto se tice skripti, u pocetku cu ih ja pisati naravno, ali ce u celu pricu (kad stignemo do izrade rpga) doci jos bar 1 ili 2 developera kojima bih dao da pisu skripte. i mene je debagovanje mucilo, tj nisam do sad nikada radio debager (a uradio sam par skript jezika sa kompajlerima i vm-ima, dok sam se uvezbavao u "teoriji jezika"), nosim se mislju da napisem interpretator koji ce sluziti u test fazi skripti, ili da na neki nacin u byte-code ubacim informacije o izvornom skripu (da li je dovoljno da pre nego sto prevedem neku liniju koda u byte-code dodam instrukciju koja ce da sadrzi broj linije u izvornom fajlu, i da na taj nacin implementiram Breakpointe, Step Over i Step Into?)

[Ovu poruku je menjao Aleksandar Ružičić dana 18.12.2007. u 02:33 GMT+1]
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12850



+4784 Profil

icon Re: Razvoj game enginea: AI (finite states vs neural networks), scripting...?18.12.2007. u 01:17 - pre 199 meseci
Citat:
Aleksandar Ružičić: ...zanima me da li da ucim ove mreze (jos uvek ne znam tacno sta su)...

Ako te interesuje AI, nezavisno od igara, pogledaj ih malo, zanimljive su, bar u pocetku :) Makar ih nikad ne koristio.
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Razvoj game enginea: AI (finite states vs neural networks), scripting...?18.12.2007. u 01:31 - pre 199 meseci
ok, hvala na savetu :)

cim budem imao malo vremena pogledacu o cemu se tacno radi (imam literature, samo nemam trenutno vremena onoliko koliko bih voleo da imam za programiranje)
 
Odgovor na temu

Reljam
Relja Markovic
San Francisco

Član broj: 531
Poruke: 1793
*.hsd1.wa.comcast.net.



+18 Profil

icon Re: Razvoj game enginea: AI (finite states vs neural networks), scripting...?18.12.2007. u 02:59 - pre 199 meseci
Citat:
Aleksandar Ružičić: nosim se mislju da napisem interpretator koji ce sluziti u test fazi skripti, ili da na neki nacin u byte-code ubacim informacije o izvornom skripu (da li je dovoljno da pre nego sto prevedem neku liniju koda u byte-code dodam instrukciju koja ce da sadrzi broj linije u izvornom fajlu, i da na taj nacin implementiram Breakpointe, Step Over i Step Into?)
U principu da, to je dovoljno da napises elementarni debager. Medjutim, to nije bas optimalno razvojno okruzenje - treba ti watch, locals, stack, etc. U sustini treba ti nesto nalik VSu. Mozda je bolje da uzmes neki off-the-shelf jezik, recimo LUA.

BTW, u kom jeziku hoces da napises sve ovo?
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Razvoj game enginea: AI (finite states vs neural networks), scripting...?18.12.2007. u 03:32 - pre 199 meseci
kompajler i vm sam napisao u D-u, ali zbog malo losije podrske d-a za allegro (sto je trenutno stanje koliko pratim situaciju) engine pisem u freebasicu (verovatno ce finalna verzija engina na kraju ipak biti prepisana u d-u, ali mi je razvoj sa fb-om mnogo brzi i laksi), trenutno je vm u obliku dll-a ali ce na kraju biti ubacen u exe (kao static lib najverovatnije)

sto se tice debagera locals, watch i stack view nisam pominjao jer mi je to lakse da uradim nego break/continue/step ili mi se bar tako cini.
trenutno mi je problem kako da ubacim dibager u igru, tj kakvo okruzenje da napravim... najverovatnije cu da uradim i windowed mod igranja u kom ce biti dostupan dibager, a ova funkcionalnost moze da se ukloni iz release verzije lako (mada mozda ostavim opciju da se igra u windowed modu, naravno bez dibagera u release verziji)
 
Odgovor na temu

Reljam
Relja Markovic
San Francisco

Član broj: 531
Poruke: 1793
*.hsd1.wa.comcast.net.



+18 Profil

icon Re: Razvoj game enginea: AI (finite states vs neural networks), scripting...?18.12.2007. u 03:34 - pre 199 meseci
Ako pises u D-u ili FreeBasicu, sta ce tvoj script jezik da radi sto ne bi mogao da relativno lako postignes u basicu? Odnosno, zasto praviti script jezik?
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Razvoj game enginea: AI (finite states vs neural networks), scripting...?18.12.2007. u 03:50 - pre 199 meseci
skript jezik pravim iz razloga sto necu biti jedini koji ce na kraju pisati te skripte (bice u prici i onih koji ne znaju ni sta je D), realno za igre tipa 1945, tanks i sl skripte ne da nisu potrebne nego su cak i suvisne, ali pre svega ja kroz rad na ovom engineu zelim da usavrsim svoja znanja tj da ukomponujem ono sto znam (i da naucim nesto sto ne znam) u jednu celinu.

a i skript jezik koji sam uradio (tj radim, posto nije jos uvek kompletan ni kompajler ni vm) je laski i od freebasic-a i od d-a (nema tipova tj deklaracija, flexibilna sintaxa, tj nije previse striktan jezik, jednom recju poseduje samo ono neophodno za komunikaciju sa objektima koje host prosledi)...
 
Odgovor na temu

Reljam
Relja Markovic
San Francisco

Član broj: 531
Poruke: 1793
*.hsd1.wa.comcast.net.



+18 Profil

icon Re: Razvoj game enginea: AI (finite states vs neural networks), scripting...?18.12.2007. u 03:57 - pre 199 meseci
Naravno, treba da radis ono sto hoces, ali probaj da odlucis sta je poenta ove startne igre. Da li je da napravis igru, ili interpreter, alate i razvojno okruzenje? Sumnjam da ce tvoj skript jezik biti dovoljni laksi od Basica da bi se isplatio kao investicija za potrebe ove igre - to sto si opisao sa fleksibilnom deklaracijom se svodi na option explicit u VBu, a ti potencijalni programeri koje ces da zaposlis podjednako ne znaju ni D ni tvoj skript jezik... A ako bas hoces da vezbas da pravis jezik, samo napred, ali to onda odvlaci od pravljenja igre.

Velika vecina igara koje ljudi prave da bi nesto naucili propadne (ovo se i meni par puta desilo) zato sto ljudi odluce da uce suvise novih stvari odjedanput, sto mozda jeste zabavno, ali na kraju nemas igru. Mnogo je interesantnije da napravis v1 igru, a onda posle da vidis koji podsistem mozes da prosiris tako da na njemu nesto naucis.
 
Odgovor na temu

bkaradzic
Branimir Karadžić
ArenaNet
Seattle, WA

Član broj: 14953
Poruke: 1630
*.socal.res.rr.com.

Sajt: https://github.com/bkarad..


+11 Profil

icon Re: Razvoj game enginea: AI (finite states vs neural networks), scripting...?18.12.2007. u 04:42 - pre 199 meseci
Verovatno si čuo za izreku, prvi mačići se bacaju. ;) Tako je i sa kodom. Interpreter za tako male igre je kao kada bi na običan auto zakačio mlazni motor. Tehnički izvodljivo, ali u praksi nepraktično. Ja bih ti kao i Relja preporučio lean development proces. Skoncentriši se samo na one mogućnosti koje ti trebaju za v1.0 igre (i radi jednu po jednu a ne sve odjenom ;). Sve što ti odugovlači taj proces, stavi na listu za v2.0.

 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Razvoj game enginea: AI (finite states vs neural networks), scripting...?18.12.2007. u 10:49 - pre 199 meseci
a bre ljudi obeshrabriste me :)

znam za macice i za bacanje :D zato sam i mislio da prodjem kroz par igara (bice i neki rpg sto da ne) pre nego sto krenem u izradu planiranog projekta (to moze da bude i sledece godine u ovo vreme, hocu da se stvarno ispraksujem u 2d igrama pre nego sto krenem u izradu "glavne" igre)

ko zna, mozda se odlucim i da izbacim scripting iz enginea do tad, ali cu se za pocetak baviti izradom jezika (jedan razlog je sto do sad nijedan kompajler/vm nisam zavrsio do kraja, samo koliko je bilo dovoljno da se potera par primera, a drugi razlog je sto sam skoro naleteo na knjigu "Game Scripting Mastery" gde me je sam naslov zaintrigirao ali nisam procitao knjigu, samo "preleteo" preko nekih interesantnijih poglavlja)

sto se tice ucenja novih stvari, meni je u ovome sto sam planirao novo samo pisanje dibagera (za sta sam se sad naostrio i na to cu se fokusirati neko vreme, kao odvojen projekat, pa cu posle integrisati u engine) i AI programiranje (sto mi opet nije mnogo strano, posto cu raditi sa FSMima), i naravno ukomponovanje raznih "znanja" (i njihovo usavrsavanje) u jednu celinu, tj igru.
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.bethere.co.uk.



+4 Profil

icon Re: Razvoj game enginea: AI (finite states vs neural networks), scripting...?19.12.2007. u 00:37 - pre 199 meseci
Poshto nemash strogi plan koji morash da poshtujesh, a imash volje da se oprobash u AI-u i jezicima, ne verujem da je problem ako i malo eksperimetishesh u realizaciji tog skript jezika, iz dva razloga:
- Nauchicesh mnogo usput (i garantovano baciti prve dve iteracije, ali svaki pochetak je tezhak :)
- Bice ti jasnije, za ubuduce, shta i kako raditi (iskustvno je verovatno najvazhnija odlika programera)

Za igre "standardnog" izvodjenja nemoj da se zamarash akademskim tehnikama u AI-u. FSM je u 99% sluchajeva ono shto ti treba (ostaje pitanje koji pristup odabrati - flat, stack-based, hierarchical... narochito iz ugla tog skript jezika, a i imajuci u vidu da se pripremash za RPG).
Neural networks je neshto shto mozhesh da pogledash neobavezno, i shto necesh nikada da iskoristish u igri.

Shto se VM-a tiche: ako planirash da napravish jezik koji izgleda i funkcionishe kao i svaki drugi generichki jezik onda bash i nema preterano smisla da se upushtash u to (tj. nikome, pa ni tebi, ne treba hiljadito izdanje proceduralnog skript jezika, sve to Lua mnogo bolje radi od bilo chega shto bi sam napravio).
Ali, ako bi napravio jezik koji bi bio posebno oblikovan prema endzhinu i koji bi ti reshio konkretan problem (fsm, data/event-flow, asinhrone akcije...) onda ima itekako smisla pozabaviti se time. Rad na VM-u je jako zabavan :) (i isplati se, Epic ne bi ni bio tu gde jeste bez UnrealScript-a)
 
Odgovor na temu

reject
Ivan Pesic
Bgd

Član broj: 7659
Poruke: 2209
*.ptt.yu.

Sajt: misc.comli.com


Profil

icon Re: Razvoj game enginea: AI (finite states vs neural networks), scripting...?20.12.2007. u 07:06 - pre 198 meseci
Citat:
Reljam: Mozda je bolje da uzmes neki off-the-shelf jezik, recimo LUA.

Istina.

@Aleksandar Ružičić:
Probaj da napravis jednostavan GUI koji se pravi iz konfiguracionih(skript) fajlova tako da moze da se
prevede ili da mu se promeni izgled kad korisnik pozeli (skinovi). Ovo je mnogo jednostavnije od skripti za samu
igru, a dace ti sliku onoga sto ti je otprilike "potrebno i neophodno" za najbanalnije stvari.
Mass murder ain’t just painless,
Now we’ve made it cute.


The Church Of The Holy Transistor
 
Odgovor na temu

[es] :: GameDev - Razvoj Igara :: Razvoj game enginea: AI (finite states vs neural networks), scripting...?

[ Pregleda: 3621 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.