Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
yaqwsx
Založen: 25. 02. 2008 Příspěvky: 66
|
Zaslal: 9. říjen 2010, 13:55:01 Předmět: Jak implementovat "skriptovatelnost"? |
|
|
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 |
|
|
Quiark
Založen: 29. 07. 2007 Příspěvky: 816 Bydliště: Chlívek 401
|
Zaslal: 9. říjen 2010, 14:09:08 Předmět: |
|
|
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 |
|
|
Tringi
Založen: 28. 07. 2007 Příspěvky: 290
|
Zaslal: 9. říjen 2010, 15:22:32 Předmět: |
|
|
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 |
|
|
|
|
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