.[ ČeskéHry.cz ].
Jak implementovat "skriptovatelnost"?

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
yaqwsx



Založen: 25. 02. 2008
Příspěvky: 66

PříspěvekZaslal: 9. říjen 2010, 13:55:01    Předmět: Jak implementovat "skriptovatelnost"? Odpovědět s citátem

Rád bych do své hry zaimplementoval skriptovatelnost. Tzn. přijde mi blbost tvořit 50 různých objektů a jejich chování přímo v kódu. Rád bych měl jeden objetk, jehož chování bude řízené skriptem (ne složitým, třeba jen přiřazovvání hodnost, jednoduchá matematika, větvení...)
Nemám v hlavě žádnou představu jak na to. Nevím z jakého konce to uchopit, popř. kde začít studovat. Nenasměrovali byste mě trochu?

EDIT: Teď mě ještě napadlo; neexistuje nějaká taková opensource knihovna, ze které bych mohl čerpat inspiraci, popř. ji použít?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Quiark



Založen: 29. 07. 2007
Příspěvky: 816
Bydliště: Chlívek 401

PříspěvekZaslal: 9. říjen 2010, 14:09:08    Předmět: Odpovědět s citátem

Je to úplně jednoduché. V první kroku zpřístupníš objekty svého kódu skriptu (prostě vytvoříš rozhraní/API), aby ten skript s nimi mohl nějak manipulovat. Potom použiješ nějaký skriptovací jazyk (hardcore programátoři si napíšou vlastní) a určíš, kdy se který skript bude spouštět. Tedy například můžeš mít jeden skriptík pro každý herní objekt. Anebo může skript představovat hru jako takovou - bude určovat, kdy se který herní objekt má vytvořit, bude je ovládat a celkově to všechno slepovat dohromady.

Pokud programuješ v něčem modernějším než je C/C++, je to vlastně docela jednoduché, pomocí reflexe se rovnou dá přistupovat k třídám, které už v programu máš. Například v .NETu by ti stačilo stáhnout si například IronPython a žádné rozhraní programovat nemusíš. Podobně v Javě.

Pokud jsi na C/C++, musíš napsat (nebo vygenerovat pomocí SWIG) kód, kterým spojíš skriptovací engine se svými objekty. Použitelných jazyků je spousta, Python, Lua (obzvláště oblíbená), Lisp, Ruby, ...
_________________
Mám strach
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Tringi



Založen: 28. 07. 2007
Příspěvky: 290

PříspěvekZaslal: 9. říjen 2010, 15:22:32    Předmět: Odpovědět s citátem

Takhle získáš skripty, které triviálně zedituješ v textovém editoru, spustíš hru a změny se projeví.
Pokud jsi ochoten do tohoto procesu vložit ještě jeden mezikrok (který může ale ve výsledku v součtu stát docela hodně času), můžeš si to celé výrazně zjednodušit. Prostě si z programu hry vystavíš potřebné rozhraní, a skripty si napíšeš v programovacím jazyce a zkompiluješ do sdílené knihovny (.dll, .so), kterou si hra načte nativně.
_________________
WWW | GitHub | TW
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna