.[ ČeskéHry.cz ].
Koncepce, součásti herního engine
Jdi na stránku Předchozí  1, 2, 3  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
MD



Založen: 29. 07. 2007
Příspěvky: 437
Bydliště: Praha

PříspěvekZaslal: 11. srpen 2008, 14:30:29    Předmět: Odpovědět s citátem

Juraj napsal:
Nyní bych měl další dotaz, na co vše se používá scriptovací jazyk? Myslím si že např na vytvoření herních animací, AI atd.?

Vidim tu problem. Jak nemas predstavu, pro jakou hru ten engine chces vyrobit, tak nevis co presne do nej dat. Engine ma spoustu casti a dopadnes tak, ze udelas spoustu veci, ktere nebudou potreba a naopak spousta ti jich bude chybet. (Na to, abys zvladl vsechno, co te ted napada nemas zdroje)

U strategii se skriptovani zas tolik nepouziva. AI bych skriptovanim nedelal (maximlane bych pomoci skriptu dodelaval do obecne AI nejake specialni chovani)
Skriptovani se ti bude hodit, kdyz bys chtel udelat interaktivni in-game pribeh. Nejake to "Kdyz hrac splni tento ukol, prileti tyto jednotky, reknou to a to a pusti se do budovani zakladny, ..."
Dale se hodi, pokud bys mel opravdu rozmanite jednotky, tak se pomoci nej daji popsat jejich vlastnosti a vzajemne reakce + nejake to doplneni AI
Jo i animace si umim predstavit, ze budou reseny pomoci skriptu, ale neni to povinnost.

A jestli si predstavujes nejaky ultra jednoduchy jazyk "10 GOTO 10", tak zvaz, jestli by s tim nebylo vic trapeni nez uzitku.

Koukni na Python, Luu a sem: http://www.ceske-hry.cz/forum/viewtopic.php?t=1011
_________________
- play with objects - www.krkal.org -
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Quiark



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

PříspěvekZaslal: 11. srpen 2008, 14:31:22    Předmět: Odpovědět s citátem

Juraj napsal:
Nyní bych měl další dotaz, na co vše se používá scriptovací jazyk? Myslím si že např na vytvoření herních animací, AI atd.?


Používá se na co chceš. U skriptovacího jazyka je důležité to, že


  • Se v něm snadněji programuje
  • Podporuje reflexi


Ve skriptovacím jazyce se dá napsat celá hra, nebo jen pár detailů. Anebo nemusí být ve hře použit vůbec (což bych asi doporučil, když nemáš zkušenosti).

Tady jsou slidy z mé přednášky na GDS, ke které se bohužel nějak ztratil zvukový záznam. Jsou tam i tajné a nesrozumitelné poznámky pro přednášejícího:)
http://www.fi.muni.cz/~xplasil/download/PythonSlidy.pdf
_________________
Mám strach
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
if.then



Založen: 13. 04. 2008
Příspěvky: 579

PříspěvekZaslal: 11. srpen 2008, 15:24:12    Předmět: Odpovědět s citátem

Juraj: HYBRID??? Je to přesně jak psal MD, pokud nevíš, na co to budeš používat, de facto je to k ničemu. Pokud se chces naucit DX, delej technologicka dema. Enginy jsou spis o matematice Smile
_________________
For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 11. srpen 2008, 16:28:52    Předmět: Odpovědět s citátem

Smysl skriptovacího jazyka je, aby v tom mohl psát i někdo jiný, kdo neumí C++, třeba designer, smysl to má tedy spíš ve větších týmech. Pokud nikoho takovýho nemáš, pak použití skriptovacího jazyka je ztráta času. Osobně jej nepoužívám (a ani nebudu).

Obecný engine je samozřejmě blbost. Dokonce i grafický engine neuděláš ideální, vždy to bude mít nějaká omezení, třeba bude dobrý pouze na indoor nebo outdoor, na fps nebo strategii. Je lepší udělat nejdřív něco specifického pro tvůj účel a po pár hrách budeš vědět, jak by to asi mělo vypadat.

EDIT: if.then> Enginy nejsou vůbec o matematice, spíš o objektové analýze a architektuře obecně a k tomu je potřeba nějaký znalosti předem, jinak to bude paskvil. Např. nikdy neuděláš schopný grafický engine bez slušné znalosti 3D API a hardwaru. Pokud jsi nezkoušel nikdy skriptovat v editorech, asi nebudeš mít ani představu, jak by integrace skriptovacího jazyka měla vypadat.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Juraj



Založen: 06. 12. 2007
Příspěvky: 189

PříspěvekZaslal: 11. srpen 2008, 21:44:43    Předmět: Odpovědět s citátem

Tak abych byl přesný, mám uplně jansou představu co by můj výsledný projetk měl umět, ale nejsem si jist zda je to reálné..

Můj hybrid, tím jsem myslel že vyvinu hru s prvny engine, že se v engine nebude moc vyvynout např. jiný druh hry, ale neude takový problém vyměnit např veškeré jednotky, budovy a modely a použít tanto projekt pro tvorbu jiné však podobné strategie.

Tím bych s chtěl vyvarovat abych nedělal spoustu vecí které bych poté nevyužil, zapracovával bych vžy jen to co by bylo potřeba pro výslenou strategii..

Vím že každý má na to svůj názor, ale já si myslím že tohle pro mě jako zkušeného začátečníka v directx a doufám i zkušeného programátora nebude příliž velké sousto a mohl bych se mnoho věcí o tvorbě her a engine přiučit..
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Juraj



Založen: 06. 12. 2007
Příspěvky: 189

PříspěvekZaslal: 12. srpen 2008, 09:08:08    Předmět: Odpovědět s citátem

Celkem by mě zajímalo, pokud se Vám to nebude zdát příliž osobní Smile , jak jste začínaly vy. Co byl Váš první projekt se týká programování directX/hry/engine Question
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
]semo[



Založen: 29. 07. 2007
Příspěvky: 1526
Bydliště: Telč

PříspěvekZaslal: 12. srpen 2008, 09:55:53    Předmět: Odpovědět s citátem

Řek bych, že asi tak jak ty, s nadšením :)
Nejdřív megalomanské představy, pak rozčarování, sleva z megalomanských představ následovaná fenomenálním úspěchem ( = dokončená hra).

Chce to jasný cíl (hru) a pro ní postupně tvořit engine. V tvým případě bych tvořil asi rovnou gameeditor, který by uměl rovnou spustit hru (třeba nějakým spuštěním aplikace s parametrem). Dvě aplikace zaráz (editor a hra) je smrt. Já když začínal, tak sem místo editoru napsal pár skriptů do 3DSMax, ale pro strategickou hru se to moc nehodí.
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Juraj



Založen: 06. 12. 2007
Příspěvky: 189

PříspěvekZaslal: 12. srpen 2008, 11:33:07    Předmět: Odpovědět s citátem

]semo[ napsal:

Chce to jasný cíl (hru) a pro ní postupně tvořit engine. V tvým případě bych tvořil asi rovnou gameeditor, který by uměl rovnou spustit hru (třeba nějakým spuštěním aplikace s parametrem). Dvě aplikace zaráz (editor a hra) je smrt. Já když začínal, tak sem místo editoru napsal pár skriptů do 3DSMax, ale pro strategickou hru se to moc nehodí.


Abych pravdu řekl, tak nějak vypadal můj první nápad jak by projetk mohl vypadat, ale jak jsem hledan na netu co je to engine a jake jsou jeho časti, začal jsem si v hlavně projetk čím dál vice zesložiťovat. Ale jednoho krásného dne jsem zjistil, že to není reálné tvořit solidní engine v jedné osobě a pomalu se zase vracím na zem Smile. Už jsem dokonce i přestal uvažovat o level nebo database editoru a přijde mi snažší popsat datové struktury a nabušit to tam v bloku než udržovat několik aplikací najednou, ač používají obdobné knihovny a funkce.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Mnemonic



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

PříspěvekZaslal: 12. srpen 2008, 15:45:14    Předmět: Odpovědět s citátem

Eosie napsal:
Smysl skriptovacího jazyka je, aby v tom mohl psát i někdo jiný, kdo neumí C++, třeba designer, smysl to má tedy spíš ve větších týmech. Pokud nikoho takovýho nemáš, pak použití skriptovacího jazyka je ztráta času. Osobně jej nepoužívám (a ani nebudu).

S tim bych si dovolil hodne nesouhlasit. Smysl skritovaciho jazyka IMO je, aby ses mohl plne soustredit na herni logiku, a nemusel se otravovat nizkourovnovymi zbytecnostmi. At uz to je grafika, multithreading, nebo treba zakladni AI.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 13. srpen 2008, 09:02:54    Předmět: Odpovědět s citátem

Mnemonic> OK, tak se zamyslíme nad výhodama a nevýhodama těchto dvou přístupů v případě týmu o jednom programátorovi a nikom dalším, kdo by uměl alespoň scriptovat:
kód:
// C++ kód
getAllTheStuff()->getActors()->getMyBelovedUnit()->goto(x,y)


Skoro jak script, jenom hodně omáčky okolo.
Můžeme se chvástat tím, že je to rychlý.
A nic víc nemusíme dělat.

kód:
// Script kód
MyBelovedUnit.goto(x,y)


Pěkný vzhled, napsala by to i cvičená opice, což náš programátor není.
Spousta práce s integrací scriptovacího jazyka.
Možná neefektivita při interpretaci kódu (to většinou lidi netrápí, když už ten scriptovací jazyk mají)

Nevidím tedy žádný smysl v tom, aby tým o jednom programátorovi integroval scriptování. Jo kdyby byli 2 nebo 3, to je jiná...
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Augi



Založen: 28. 07. 2007
Příspěvky: 782
Bydliště: Čerčany

PříspěvekZaslal: 13. srpen 2008, 09:18:25    Předmět: Odpovědět s citátem

No musím se přidat na stranu Eosieho. Pokud je cílem vytvořit hru a dělá na tom jeden člověk, tak mi přijde rozumnější jen navrhnout slušný objektový model v C++ (C# / Delphi / whatever) - a ne se ještě dělat s bindováním na nějaký skriptovací jazyk (i když už to nemusí být tolik práce).
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
MD



Založen: 29. 07. 2007
Příspěvky: 437
Bydliště: Praha

PříspěvekZaslal: 13. srpen 2008, 09:46:02    Předmět: Odpovědět s citátem

Ono spis zalezi v jakem rozsahu se ty skripty pouzivaji. Napriklad u adventur nebo u hry typu Krkal je uz rozsah skriptovani tak velky, ze se to vyplati vzdy. Pro svou textovou adventuru jsem taky pouzil jednodychy jazyk zalozeny na jednopismennych prikazech a interpreter. Imlementace byla jednoducha a pouziti skriptovani velmi zprehlednilo vyvoj vlastni hry. Diskutovat bychom mohli o tom zda se vyplati implementovat vlasatni skriptovani v razsahu napriklad Krkal C, tady uz je to fakt hodne pracne Wink Ale tohle preci neni povinnost, proc nestahnout existujici reseni a jen je integrovat? Napr. WME? Wink
_________________
- play with objects - www.krkal.org -
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Mnemonic



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

PříspěvekZaslal: 13. srpen 2008, 11:19:56    Předmět: Odpovědět s citátem

Eosie: To jsi mi nahral na smec Smile Co treba tohle:


kód:
// Script kód
MyBelovedUnit.goto(x1,y1)
MyBelovedUnit.wait(1000)
MyBelovedUnit.goto(x2,y2)


Jak tohle napises v C++? Tam uz te cekaji stavy, casovani a kdesi cosi. Neprehlednej neudrzovatelnej hnus.
Ale pravda je, ze ruzny hry maji ruzny naroky. Kazdopadne adventuru nebo RPG bych teda v C++ "skriptovat" nechtel Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
quas4



Založen: 18. 10. 2007
Příspěvky: 199

PříspěvekZaslal: 13. srpen 2008, 12:09:26    Předmět: Odpovědět s citátem

Prozatim tady (jestli dobre ctu) nepadl jakysi obraceny pristup. Programator zacne prototypovat ve skriptovacim jazyce (python/ruby/lua/..) a az casem prepise nektere funkce/tridy do c/c++. Tento "presun" by mel byt obecne az jako posledni reseni ve chvili kdy ma jasno ze optimalnejsi/rychlejsi algoritmus nenavrhne - cilem presunu je totiz jen a pouze zrychleni(!).

Obrovskou vyhodou je rychlost navrhu, odladeni logiky hry apod. Samozrejme pro toho kdo navrhuje nextgen AAA hru ma tento pristup sve mouchy, ale je tady nekdo takovy? Psat vse rovnou v c/c++ chce spoustu zkusenosti.

Take se priklanim k nazoru nepsat obecny engine ale rovnou hru (viz Eosie) a pri jejim psani mohou zacit vypadavat obecnejsi funkce/algoritmy/struktury jako zaklad pro jednoduchy engine - jak si chcete engine "otestovat" bez hry? Stale je dobre se pri navrhu ohlizet zpet a klidne zpetne kod prepisovat a nejen pridavat novy a novy kod (muj engine v c/c++ ma cely jen 10k radku). Nesnazit se implementovat neco co neni rovnou potreba. (nektere vety zavani extremnim programovanim ale nejsem az tak uplne jeho priznivcem) Peclive si vybirat 3rd party knihovny, atd.. atd..


Naposledy upravil quas4 dne 13. srpen 2008, 12:57:36, celkově upraveno 1 krát
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Mnemonic



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

PříspěvekZaslal: 13. srpen 2008, 12:24:28    Předmět: Odpovědět s citátem

quas4 napsal:
Prozatim tady (jestli dobre ctu) nepadl jakysi obraceny pristup. Programator zacne prototypovat ve skriptovacim jazyce (python/ruby/lua/..) a az casem prepise nektere funkce/tridy do c/c++. Tento "presun" by mel byt obecne az jako posledni reseni ve chvili kdy ma jasno ze optimalnejsi/rychlejsi algoritmus nenavrhne - cilem presunu je totiz jen a pouze zrychleni(!).

Takhle to funguje v Unreal Engine, nemylim-li se. Tam muzes mit budto nativni tridy, nebo tridy napsane v UnrealScriptu, a pak mezi nimi realivne snadno prechazet, aniz by se musel menit zbytek kodu.
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 -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3  Další
Strana 2 z 3

 
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