.[ ČeskéHry.cz ].
VereWolf's Engine
Jdi na stránku 1, 2  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Inkubátor
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
VereWolf



Založen: 16. 11. 2014
Příspěvky: 18

PříspěvekZaslal: 16. listopad 2014, 22:24:26    Předmět: VereWolf's Engine Odpovědět s citátem

Ahoj já jsem VereWolf už asi tři roky se zabývám programování v C++. Trochu se snažím pokročit a naučit se programovat a vytvořit něco v DirectX. Jelikož příliš malé ambice by mě v podstatě nutily kopírovat a nijak upravovat učební příklady, tak se snažím vytvořit něco vlastního a speciálního. Dalším důvodem, proč bych chtěl vytvořit vlastní engine je, že jsem chvíli pracoval v CryEnginu a tak nějak sem trpěl tím, že pracuji v něčem, o čem nevím, jak pracuje na nejzákladnější úrovni. Další důvod je, že jsem tak trochu posedlí geologickými algoritmy a vrtám si hlavu, jak by mohl vypadat design map, které by byly velké asi jako Britské ostrovy a možná i jako Evropa, a proto bych chtěl naprogramovat engine, které by takhle velké mapy umožňoval. A dále bych chtěl sehnat vývojáře, kteří by byly ochotní mi pomoci nebo i v něčem poradit. Takže co je potřeba udělat:

Vysoká priorita: Vytvoření enginu- Engine by pracoval s několika vrstvami světových dat. Každá vrstva by měla různě velký prázdný datový prostor mezi jednotlivými body a byla by použita podle potřeby. To by mě umožnovalo používat pro každou oblast různě husté informace a zbylé by se dogenerovávaly s pomoci procedur. To by mě umožnilo použít vysokou kompresi. Podle jednoho videa něco podobného používá engine Outerra a zdá se, že s pomoci tohodle dosahují vysoké hodnoty komprese. Problém s desetinou čárkou pro float souřadnice by se vyřešil s pomocí souřadnice kamery, která by byla vždy blízká nule a posunoval a postupně načítal by se tam místo toho svět. V současnosti na tom pracuji.

Střední priorita:

Generování světa a nástroje pro editor: Byla by potřeba vytvořit generátor , který by vytvořil část světa a pak by se oblast pro generování trošku posunula a zase vygenerovala a tak stále dokola. Generátor by pak ukládat data do více vrstev podle hustoty informace. Na to bych se vrhl až bych vytvořil funkční část enginu nebo jestli by s tím někdo nechtěl pomoc. Zde je menší příklad heightmapy, který jsem vytvořil s pomocí vlastních algoritmů, texturu vytvořil v L3DT a vyrenderoval v L3DT:
http://micizek.deviantart.com/art/VereMapGen06-432966735
http://micizek.deviantart.com/art/VereMapGen05-432947411

Program pracuje tak, že jsem si v gimpu vytvořil obrázky a z nich vytvořil mapu, kde každý bod představoval nějaký typ terénu a ke každýmu bodu jsem přiřadil hodnotu ze seznamu křivek, které reprezentovaly základní tvary erozí.

Vytvoření modelů a textur pro terén a vegetaci:
Nejsem grafik, takže jestli by někdo chtěl, tak se do toho může pustit. V přírodě, když jeden druh vegetace ustoupí , tak je z pravidla nahrazen jiným druhem. Když jsou vykáceny stromy, zpravidla tam vyrostou rychle keře a břízy, které jsou většinou i na okraji lesa, kde můžou vytvářet hustou stěnu. Větve , které jsou většinou na straně, kde nejsou další stromy jsou hustší, větší a mají více listí. Chtěl bych vytvořit systém vegetace, která by se procedurálně generovala a vypadala by reálně a umožnovala by plynulí přechod mezi druhy vegetace.

Nízká priorita:

Ostatní assety: Jestli někdo bude mít zájem.

Hra na tomto enginu: Jelikož nedokážu dělat více věcí najednou, tak jsem jakékoliv představy o hře nechal stranou, možná až na to, že by to mělo být fantasy nebo historické RPG. Takže jestli bude mít někdo zájem může se pustit do design dokumentu nebo může přijít s vlastním nápadem IP. Nebo se pak někdo může přihlásit na tvorbu konceptů.

Separátní algoritmy pro simulaci NPC, rozhovorů a měst(něco jako textovka mimo vyvíjené engine?): Jestli by někdo měl zájem, tak se může přihlásit, že by chtěl dělat něco podobného. Jelikož je to plánované, že by se to později implementovalo do tohoto enginu, tak AI a NPC by se generovaly v blízkosti hráče. Hra by si měla pamatovat NPC, které se staly pro hráče nějak důležite. Každému NPC by se měla vytvořit osobnost podle určitých vzorů. Nějaká simulace ekonomiky měst. Nelineární rozhovory NPC. Tohle by byl spíše takový experiment.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 602

PříspěvekZaslal: 17. listopad 2014, 00:48:13    Předmět: Re: VereWolf's Engine Odpovědět s citátem

Engine napíše noob za týden takže, go for it! Unity FTW!
Tyjo 3 roky doufám že až budeš mít firmu tak si na mě vzpomeneš Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
1Pupik1989



Založen: 06. 02. 2013
Příspěvky: 58

PříspěvekZaslal: 17. listopad 2014, 02:21:11    Předmět: Odpovědět s citátem

Souhlasím, že skoro každý imbecil napíše engine. Nicméně málokdo na něm napíše hru. Ty nedostatky, vždy se v tom enginu projeví. Přeji nesmírně trpělivosti. Sám píšu engine pro úplné "debily".

mar Doufám že správně chápu, že to myslíš jako srandu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 602

PříspěvekZaslal: 17. listopad 2014, 07:51:58    Předmět: Odpovědět s citátem

1Pupik1989 napsal:
mar Doufám že správně chápu, že to myslíš jako srandu.

Ano, trochu jsem včera po nějaké době popil, takže to brát s rezervou. Porušil jsem své pravidlo v určitých stavech nic nepostovat, takže se omlouvám... Confused
Ten terén vypadá docela pěkně, pokud je procedurálně generovaný (nevím tedy jak vypadá zblízka). Určitě to zní celkově zajímavě.
Procedurální textury a další věci určitě ušetří hodně, jenom pak nějakou dobu potrvá generování.
Pěkně to mívají vyřešené třeba demaři ve svých toolech - a to nejen procedurální textury ale i geometrie - kdo nezná, doporučuji třeba kkrieger,
což je taková relativně starší malá hra myslím v 96kb Smile
Nějaký jednoduchý editor a pak propojené operátory, které se aplikují, takže ano - pak dosáhneš komprese, o které se i ztrátovým algoritmům může jenom zdát.
Nicméně nějakého šikovného grafika, který je vyrobí, budeš potřebovat stejně.
1pupik: Myslel jsem to právě přesně naopak, že to vůbec není snadné (i když zdání občas klame) a že to je běh na delší trať -
a pak z mého pohledu je renderer pouze součást enginu, který je mnohem komplexnější (alespoň u her)...
Jinak ano, dotáhnout něco až do konce je zase úplně jiný level...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VereWolf



Založen: 16. 11. 2014
Příspěvky: 18

PříspěvekZaslal: 17. listopad 2014, 09:19:15    Předmět: Zdrojak ke generatoru heightmapy Odpovědět s citátem

Klidne muzu postnout zdrojak toho generatoru, ale je to takovy jednoduchy demo, kterym jsem si ukazal z ceho vychazet. Ma sve chyby a zapomel jsem, ze pouziva neco podobneho, jako matematickou erozi. Uz je to dlouho, co jsem to napsal, takze ani nevim v jakem bude stavu, jestli ho najdu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VereWolf



Založen: 16. 11. 2014
Příspěvky: 18

PříspěvekZaslal: 17. listopad 2014, 09:54:15    Předmět: Odpovědět s citátem

[quote] a pak z mého pohledu je renderer pouze součást enginu, který je mnohem komplexnější (alespoň u her)...
Jinak ano, dotáhnout něco až do konce je zase úplně jiny level...[/quote]

Tak prioritou je hlavne render a nastroje pro generovani, dalsi moduly enginu a hra je podle toho jak se mi bude darit a jake sezenu dobrovolniky(0 rozpocet). Kdo by mel zajem muze se podivat na veci, co budou potreba a maji nejakou prioritu. (prvni prispevek)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VereWolf



Založen: 16. 11. 2014
Příspěvky: 18

PříspěvekZaslal: 17. listopad 2014, 09:54:46    Předmět: Odpovědět s citátem

[quote] a pak z mého pohledu je renderer pouze součást enginu, který je mnohem komplexnější (alespoň u her)...
Jinak ano, dotáhnout něco až do konce je zase úplně jiny level...[/quote]

Tak prioritou je hlavne render a nastroje pro generovani, dalsi moduly enginu a hra je podle toho jak se mi bude darit a jake sezenu dobrovolniky(0 rozpocet). Kdo by mel zajem muze se podivat na veci, co budou potreba a maji nejakou prioritu. (prvni prispevek)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VereWolf



Založen: 16. 11. 2014
Příspěvky: 18

PříspěvekZaslal: 17. listopad 2014, 09:58:02    Předmět: Odpovědět s citátem

[quote] a pak z mého pohledu je renderer pouze součást enginu, který je mnohem komplexnější (alespoň u her)...
Jinak ano, dotáhnout něco až do konce je zase úplně jiny level...[/quote]

Tak prioritou je hlavne render a nastroje pro generovani, dalsi moduly enginu a hra je podle toho jak se mi bude darit a jake sezenu dobrovolniky(0 rozpocet). Kdo by mel zajem muze se podivat na veci, co budou potreba a maji nejakou prioritu. (prvni prispevek)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
1Pupik1989



Založen: 06. 02. 2013
Příspěvky: 58

PříspěvekZaslal: 17. listopad 2014, 12:17:31    Předmět: Odpovědět s citátem

mar: Přesně takové pravidlo jsem také porušil, tak se omlouvám za lehce přisprostlý příspěvek.
Podle mě renderer je základ. To je první, co většinou člověk udělá. Jako druhý je parser 3D souborů (3ds, obj, atd.). Potom vyřešit kolizní systém. Nakonec celý engine zoptimalizovat, což se nažím už při psaní. A úplně ve finále nějaký ten tool.

Pokud si člověk řekne, že to má být pro nooby, tak je blázen. Very Happy

Nicméně jsem zastáncem toho, aby si každý tímto prošel. Nemusí nutně psát engine, ale oprášit alespoň matice a vektory. Měl by zkrátka chápat, co momentálně dělá.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VereWolf



Založen: 16. 11. 2014
Příspěvky: 18

PříspěvekZaslal: 17. listopad 2014, 13:06:31    Předmět: Odpovědět s citátem

1Pupik1989 napsal:
mar: Přesně takové pravidlo jsem také porušil, tak se omlouvám za lehce přisprostlý příspěvek.
Podle mě renderer je základ. To je první, co většinou člověk udělá. Jako druhý je parser 3D souborů (3ds, obj, atd.). Potom vyřešit kolizní systém. Nakonec celý engine zoptimalizovat, což se nažím už při psaní. A úplně ve finále nějaký ten tool.

Pokud si člověk řekne, že to má být pro nooby, tak je blázen. Very Happy

Nicméně jsem zastáncem toho, aby si každý tímto prošel. Nemusí nutně psát engine, ale oprášit alespoň matice a vektory. Měl by zkrátka chápat, co momentálně dělá.


Ještě do toho musím zapasovat nástroj pro generování světa nebo pro začátek něco, co převede běžné informace o terénu do mého souboru, ale to asi patří do stejné kategorie jako 3D parser souborů. Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
quas4



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

PříspěvekZaslal: 17. listopad 2014, 15:02:35    Předmět: Odpovědět s citátem

Z tech obrazku hodne couha grid. Neuvazoval ci nezkousel jsi i jine zpusoby vygenerovani trojuhelniku?

Myslim napriklad quadrics-based simplification algorithm - oc jde a ukazka treba zde: http://blog.wolfire.com/2009/06/offthegrid-revisited/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VereWolf



Založen: 16. 11. 2014
Příspěvky: 18

PříspěvekZaslal: 17. listopad 2014, 15:28:58    Předmět: Odpovědět s citátem

quas4 napsal:
Z tech obrazku hodne couha grid. Neuvazoval ci nezkousel jsi i jine zpusoby vygenerovani trojuhelniku?

Myslim napriklad quadrics-based simplification algorithm - oc jde a ukazka treba zde: http://blog.wolfire.com/2009/06/offthegrid-revisited/


Těžko říct jestli bych mohl nejdřív použít diamont-square algiritmus a pak použít quadratic-based simplification. Ještě jsem to nezkoušel implementovat a navíc ten obrázek je použit z programu třetí strany L3DT. Jen jsem použil vlastní heightmapu vygenerovanou vlastními algoritmy. Diamont-square algoritmus a jeho modifikace mi pomůže udržet několik vrstev terénních dat s různou hustotou, tak aby vypadali jako jedna vrstva s vysokou hustotou informace. Do toho patří i vegetace, kterou bych chtěl generovat podobnou metodou bez toho aby hra načítala souřadnice jednotlivých rostlin a kamenů. Doufám, že se mi to podaří bez nějaké velké ztráty výkonu. Podle jednoho videa to vypadá, že podobnou metodu používá i Outerra.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
1Pupik1989



Založen: 06. 02. 2013
Příspěvky: 58

PříspěvekZaslal: 17. listopad 2014, 17:38:14    Předmět: Odpovědět s citátem

Nebo můžeš zkusit Circle algorithm. Nikdy jsem ho netestoval, protože mám zatím taky jen Diamond-square lehce poupravený. Nicméně to vypadá celkem dobře.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
quas4



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

PříspěvekZaslal: 17. listopad 2014, 18:29:18    Předmět: Odpovědět s citátem

myslim ze jsi mne nepochopil. Circle algorithm ci Diamond square jsou algoritmy ktere tvori obsah heightmap, zatimco ja mluvim az o vytvareni meshu z heightmap. Podle obrazku mi pripada ze jde o uniformni grid a ja jsem se ptal zda jsi nezkousel jiny algoritmus ktery by lepe zvladnul texturovani napriklad ostrejsich prechodu vysek mezi sousednimi bunkami v heightmap (viz - "why do we care?" sekci v zaslanem linku).
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VereWolf



Založen: 16. 11. 2014
Příspěvky: 18

PříspěvekZaslal: 17. listopad 2014, 19:05:52    Předmět: Odpovědět s citátem

1Pupik1989 napsal:
Nebo můžeš zkusit Circle algorithm. Nikdy jsem ho netestoval, protože mám zatím taky jen Diamond-square lehce poupravený. Nicméně to vypadá celkem dobře.


No ten odkaz nahoře ukazuje jen vyrenderovanou heigmapu v programu, který jsem si koupil a u heighmapy byl diamont algoritmus požit jenom pro zvýšení rozlišení a vygenerování "geologické" mapy, která předcházela samotnému generování heightmapy.

Když jsem začal mluvit o více vrstvách, tak jsem to myslel jako implementaci pro realtime renderovací zařízení. To znamená použití více vrstev s rozdílnou hustotou informací a to spojené pomoci diamont-square algoritmu do jednoho meshe. (malou hustotu, kde si můžu dovolit ztrátovou kompresi v téměř rovným terénu a velkou hustotu informací, kde si ztrátu nemohu dovolit jako při erozi, řek atd.) Omlouvám se, že v předchozím příspěvku jsem tyto dvě rozdílné věci viditelně nerozdělil.

Další dny bych se pokusil podrobně vysvětlit, jakým způsobem jsem vytvořil heighmapu, kterou jsem demonstroval v prvním postu. Je to trochu podobné matematické erosi, kdy menší 2d pole obtisknete do většího. (omlouvám se za výrazy) a to menší 2d pole jsem vytvořil právě z tý "geologické mapy", kde jsem k hodnotě bodu přiřadil nějakou křivku, kterou jsem si předem vytvořil a použil podle jistých pravidel hodnotu, která leží v křivce. Bug s hranami vznikl pravděpodobně z toho, že "geologická" mapa nebyla rozmazána. Taky jsem s tím kodem pracoval naposledy před tři-čtvrtě rokem.

Pak bych se asi pokusil vysvětlit, jakým způsobem bych chtěl generovat floru. Informace o tvaru terénu a floře by v podstatě byly v jedný struktuře. Taky by to byla vícevrstvá mapa.

Následně bych se mohl začít bavit o ostatních věcech. Asi bych sem tam potřeboval poradit od někoho zkušenějšího. Rád bych sehnal i dalšího programátora a grafika jako dobrovolníky. A jestli by to dopadlo, mohla by se začít řešit i hra, kterou bych si představoval jako fantasy nebo historické RPG. Takže pak by v případě zájmu by se mohli hlásit i další vývojáři. Viz. priority v prvním příspěvku. Mám vlastní sekci na jednou anglickém foru. Ale zatím tam nic není.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Inkubátor Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2  Další
Strana 1 z 2

 
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