Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
perry

Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 15. červenec 2014, 14:42:24 Předmět: Vlastní engine |
|
|
Již nějakou dobu (asi rok a něco) píšu ve volném čase vlastní engine v C++. Používám ho pro své projekty. Jsem spokojený a vývoj mě baví => zatím mě nic nenutí nahodit Unity - pak by ubylo pro mě dost zábavy
Každopádně, dotaz. Myslíte si, že má význam uvolnit engine jako free-to-use do světa? Přihodit nějaké tutoriály, jak udělat to a tohle. Nejde mi ani tak o nějakou slávu nebo něco, spíš že by to třeba někomu pomohlo, nebo naopak někdo pomohl mě
Co to umí / má integrované
- psané v C++ (některé věci z C++11 - hlavně hash map a syntaxe)
- Testováno na Win, iOS (podpora multitouch ovládání)
- OpenGL ES
- OpenGL 4 (spíš jen přepis ES verze, přidána podporu pro teselaci a geometry shadery. Do shaderů se nedá posílat data přes buffer, jen uniformy apod.. nicméně to by šlo snadno doplnit)
- Zkoušel jsem tam i OpenCL s bindingem na OpenGL 4
- Přidání DX také lze (je to psané přes interface)
- deferred rendering / forward rendering
- intergace Bullet 2.8
- OpenAL zvuk (OGG Vorbis dekodér)
- tak nějak je tam Lua
- vlastní VFS (podpora zip adresářů)
- vlastní systém na GUI (používá FreeType2 na fonty)
- Někde mám napsaný import Collada modelů (statické)
- Dekomprese textur z JPEG-LS
...
Tooly:
- akorát primitivní naklikávač GUI - naklikáte si GUI v editoru a pak hodnoty (bohužel ručně) přepíšete do XML, z kterého si engine GUI načte _________________ Perry.cz |
|
Návrat nahoru |
|
 |
micky

Založen: 28. 02. 2008 Příspěvky: 348 Bydliště: Plzeň, Praha
|
Zaslal: 15. červenec 2014, 15:14:33 Předmět: |
|
|
Hodně záleží na toolech nebo spolupráci s jiným rozvinutým SW, ale pokud to chceš vypustit jako rozumný open source (něco jako LGPL, ZLIB...), možná by se někdo našel, kdo se kódem minimálně inspiruje, v lepším případě do něj přispěje i přes chybějící nástroje. (Uff, to je dlouhá věta)
Pokud jde provést nějaké změny bez kompilace, je to skvělé. Pokud můžu něco nastavit runtime (osvětlení scény, materiály, částice, cesty, vazby mezi objekty), je to tuplem skvělé. Engine může být sebelepší, ale bez nástrojů se s ním vždy bude pracovat obtížně - což je moje odpověď na to, odkdy by pak tvůj engine někdo reálně využíval.
Snažím se (ostatně jsme o tom vedli nejeden hovor) tímto směrem vést náš engine. I takové maličkosti... teď jsme si udělali úplně jednoduchou jezdicí podložku v našem model vieweru, abychom synchronizovali rychlost animace s pohybovou rychlostí. Nějak extra akademické řešení to není, ale grafik mi teď dodá, jak rychle se pohybuje ta zpropadená vakoveverka. _________________ https://www.bluepulsar.cz/
https://twitter.com/11thDream_Game/ |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 15. červenec 2014, 19:03:17 Předmět: |
|
|
Jenom technická připomínka: Pokud uvolňovat zdroják, tak buď pod BSD-like licencí, a nebo když LGPL, tak udělit výjimku, aby bylo možno linkovat staticky (jako to má FLTK). Je fakt špatné, když licence diktuje technickou realizaci (mluvím o prosté LGPL). _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
Radis
Založen: 29. 03. 2014 Příspěvky: 235
|
Zaslal: 16. červenec 2014, 08:44:24 Předmět: |
|
|
Open-sourcovat cokoliv je vzdycky sympaticke.
Ale nalijme si cisteho vina, kdyz nekdo bude chtit delat hru, tak asi sahne spis po Unity nez po enginu, ktery ma "nekde napsany import Collada modelu" a "tak nejak Luu" a "primitivni naklikavac GUI"
Nekdo si ty zdrojaky mozna ze studijnich duvodu projde, vic bych asi necekal. |
|
Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 16. červenec 2014, 09:58:07 Předmět: |
|
|
Předpokládám, že tvůj engine je malý a jednoduchý. Z toho bych udělal přednost. Mohlo by se to zapouzdřit a udělat z toho jen takový 3D framework se základní a odladěnou multiplatformní funkcionalitou. Příklad: dělám teď 3D exporter pro jednu firmu, která se zabývá lejzrovým měřením kolejnic, tunelů a podobně. Kdybych chtěl udělat k tomu rovnou i prohlížeč (třeba i jako součást jinýho SW), tak bych rozhodně nesáhl po Unity, ani po Ogre, protože to je moc velký a moc to diktuje pravidla. Naopak bych hledal něco malýho, nenáročnýho na kompilaci, použití a provoz. Složitější funkcionalitu by to mohlo mít taky, ale mohla by být při prvním pohledu trochu skrytá a používat by se nemusela.
Jako příklad takovýchto šikovných knihoven bych uvedl TinyXML. I když je jasný, že 3D engine bude lehce větší :-).
Takovou věc bych snad i použil :-).
Co se týče uvolnění zdrojáků jako takových, myslím, že tim získáš, protože před samotným nahráním na internet zjistíš, že nejdřív doděláš tohle, opravíš támhleto... a rázem z toho bude stabilní verze :-). _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
 |
Ladis

Založen: 18. 09. 2007 Příspěvky: 1537 Bydliště: u Prahy
|
Zaslal: 16. červenec 2014, 11:36:58 Předmět: |
|
|
No zas tyhle malý věci přestanou být brzo udržovaný (vadí jak u čeho, přecijen XML v příkladu se mění pomaleji/vůbec narozdíl od zvoleného 3D API). Proto bych se neodvážil to použít na cokoli smysluplnějšího, co se má udržovat (příkladem ten viewer pro zákazníka). _________________ Award-winning game developer |
|
Návrat nahoru |
|
 |
mar
Založen: 16. 06. 2012 Příspěvky: 610
|
Zaslal: 16. červenec 2014, 22:22:53 Předmět: Re: Vlastní engine |
|
|
No, zní to dobře
Pokud se rozhodneš uvolnit zdrojáky, určitě nečekej, že se z ničeho nic vytvoří komunita nebo že ti lidi utrhnou ruce, chce to čas.
Dokud tě to baví máš motivaci, fajn, nicméně ze začátku to budeš muset táhnout sám.
Je to podobné, jako když se objeví nová Unity rychlokvaška na appstore nebo jinde (Unity lovers mě teď asi nebudou mít rádi), myšleno tak, že o tom nikdo v té změti neví.
Nicméně lamy dokážou uvařit jakýkoliv engine, pokud nechápou základní věci, jak něco funguje.
Nedávno jsem někde četl, že si nějaký jedinec stěžoval, že UE4 je pomalý, když zkoušel dělat particle systém tak, že na každý particle spawnoval actora nebo něco podobného.
Teď se mi vybavuje hra 99 levels to hell, v Unity, která si při startu sebrala 1.5 giga paměti (nebo gigo, to je jedno) ve 32-bitovém režimu, což už je na hraně (2D arkáda - pozn.)
Nicméně věřím, že schopní lidé dokážou velké věci, i když jich je samozřejmě málo.
Takže držím palce a hodně štěstí (a souhlasím s Frcou - pokud open source, tak rozumnou licenci, cokoliv co obsahuje GPL vynechat
(Linus by nesouhlasil, ale Linux foundation je financována velkými firmami,
což je pro profesionálního hatera korporací celkem ironie
Pamatuji si třeba C++ templatovou knihovnu, která byla pod LGPL, což samo o sobě je vtipný paradox).
Každopádně palec nahoru (ostatně pro všechny, kdo mají odvahu si v dnešní době psát něco svého). |
|
Návrat nahoru |
|
 |
Weny Sky

Založen: 28. 07. 2007 Příspěvky: 241
|
Zaslal: 17. červenec 2014, 07:35:35 Předmět: |
|
|
Ja bych se zeptal tak. Co tvuj engine nabizi jineho, inovativniho, lepsiho, ... nez enginy, ktere uz mame k dispozici?
V cem je tvuj engine lepsi nez napriklad OGRE, ktery je taky open source?
V cem je lepsi nez Project Anarchy, pokud bude chtit delat hru pouze pro mobilni zarizeni.
V cem je lepsi nez Unity?
V cem je lepsi nez Godot Engine, ktery je open source a multiplatformni.
Budes fixovat vsechny chyby, ktere se objevi u novych ovladacu nebo novych verzi operacnich systemu?
Jake mas reference? Cim lidi presvedcis, aby pouzili tvuj engine a ne OGRE?
Naposledy upravil Weny Sky dne 17. červenec 2014, 07:44:56, celkově upraveno 1 krát |
|
Návrat nahoru |
|
 |
perry

Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 17. červenec 2014, 07:42:27 Předmět: |
|
|
No já primárně nechci nikoho přesvědčovat, aby to používal Hlavně si to píšu pro sebe, protože mě to baví. Spíš mi přišlo případně škoda, nechat to válet doma v šuplíku, když by se někdo mohl třeba něco přiučit. Netvrdím, že všechno je tam 100% super, ale co kdy je.
Pokud to vezmu, jak říkáš, tak oproti Unity to nenabízí nic. To se nedá srovnávat. Na Unity pracují desítky lidí.
--- Edit ---
Můžu k tomu nabídnout i technickou podporu, tzn. kdyby to někdo použil a něco nešlo - opravím / poradím. Samozřejmě v rozumných mezích, ne že za někoho budu psát celý soft
Jinak můžete klidně i napsat, co vám v konkurenci hodně chybí  _________________ Perry.cz |
|
Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 17. červenec 2014, 09:12:39 Předmět: |
|
|
Weny Sky: takhle mluví člověk, který jen hledá důvody, proč něco nejde a proč to či ono nemá vůbec cenu. Tenhle přístup většinou nalézám u lidí, kteří natolik věří v kvalitu cizího SW, že svůj projekt slepí z 3rd knihoven. Výsledkem bývá slabý a (pod)průměrný projekt. A nemají to rychlejc hotový, to googlení zabere víc času, než se zamyslet.
Unity neni C++, ani open source a je to čistě herní engine. Ogre je zastaralý a na něco zbytečně velký.
Fixování chyb: Pokud to bude navržený dobře a odladí se to, tak se nových chyb moc vyskytovat nebude. Toho bych se nebál. _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
 |
Manox

Založen: 30. 07. 2007 Příspěvky: 140 Bydliště: Brno
|
Zaslal: 17. červenec 2014, 09:35:18 Předmět: |
|
|
]semo[ napsal: |
Unity neni C++, ani open source a je to čistě herní engine. Ogre je zastaralý a na něco zbytečně velký. |
Když se nebudem bavit o ceně, tak v Unity PRO možnost programovat v C++ je. Navíc nechápu proč tak lpět na c++, když existuje fůra jiných jazyků. A zajímalo by mne, co myslíš tím čistě herní engine ? |
|
Návrat nahoru |
|
 |
Radis
Založen: 29. 03. 2014 Příspěvky: 235
|
Zaslal: 17. červenec 2014, 09:38:28 Předmět: |
|
|
]semo[ ty mas spolecne s kolegou marem a nekterymi dalsimi problem pochopit, ze psat porad dokola neco, co uz je milionkrat implementovane, je dobre maximalne jako intelektualni cviceni.
Opravdu pokud chci delat hru, tak pouziju osvedceny engine a 3rd party knihovny na vsechno od A* po networking. Nebudu travit dva roky zivota navic tim, ze budu programovat vsechno od piky.
Wena Sky ma k tomu proste pragmaticky pristup, to je cele.
Tvrzeni typu "výsledkem bývá slabý a (pod)průměrný projekt. A nemají to rychlejc hotový" jsou komicka a nema na ne vubec cenu reagovat.
Jinak Unity je samozrejme primarne herni engine, ale nehernich veci je v nem taky spousta: https://www.youtube.com/watch?v=CLPBFlA1DAw |
|
Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 17. červenec 2014, 10:04:38 Předmět: |
|
|
Perry, sorry za offtopicy, ale Manox a Radox mi trochu zvedli tlak.
Manox: I ty brute? :-). Na téma C++ se s tebou nebudu bavit. Promiň, ale jsi už dlouho v jedný práci a nemáš porovnání (kolegy z druhýho oddělení nepočítám).
Radox: pouč mě, ukaž mi nějaký úspěšný projekt, kde jsi použil tento přístup (od A* až po Networking). Asi jsi světlá výjimka, která potvrtzuje pravidlo.
Neherní projekt v Unity: Dělal jsem trenažer obsluhy dopravního tunelu. Na začátku padlo rozhodnutí, že to bude v Unity. Já bych to v tom nedělal, ale špatný rozhodnutí to nebylo. Nastoupil jsem do rozjetého vlaku. Celkem to dopadlo dobře, ale na konci projektu bylo spoustu požadavků na konfiguraci monitorů (dvě aplikace master-slave, různě dělené obrazovky, atp...). V Unity ale nejde vůbec pracovat s oknem, takže sme to museli hnát přes WinApi a caption okna!. Jeden by se z toho poblil.
...ach jo, připadá mi, že ste se asi zbláznili. Ještě před pár lety se tu řešily návrhový vzory, co a jak čistě naprogramovat, jak správně udržovat projekt, atd. Dnes? Dnes se řeší co a jak slepit. _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
 |
perry

Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 17. červenec 2014, 10:13:01 Předmět: |
|
|
citace: |
Navíc nechápu proč tak lpět na c++, když existuje fůra jiných jazyků |
Ano, existuje fúra jiných jazyků, ale kolik jich běží všude? Vím akorát o C++ a C# z těch velikých. Psát to v něčem obskurním typu D je čas spláchnutý do záchoda. C++ je sice starý jazyk, ale na 100% nikdy nevymizí, což se o ostatních říci tak moc nedá.
Java se sice tváří multi-super-duper, ale na iOS nejde, takže bye-bye (plus můj názor na Javu jako takový je, že je to shit).
citace: |
]semo[ ty mas spolecne s kolegou marem a nekterymi dalsimi problem pochopit, ze psat porad dokola neco, co uz je milionkrat implementovane, je dobre maximalne jako intelektualni cviceni. |
To je pravda, na druhou stranu používat cizí knihovny bez interní znalosti jak to funguje, je imho cesta do pekla. Každý, kdo chce použít 3rd party engine, by měl mít alespoň jeden svůj napsaný nebo prostudovaný, aby věděl jak to vevnitř asi tak funguje, a proč je kravina tvořit jednotlivé částice pomocí new (ano i to se vidí). A zde se opět vracíme k C++, které tě tohle odnaučí velmi rychle a přinutí tě všímat si paměti, profilovat apod. Narozdíl třeba od Javy, kde se new sere všude.
Další klad je, když to potřebuješ nějak nestandardně ohnout. Mě třeba neudělá problém tam velmi rychle doplnit OpenCL / CUDA. Tohle rvát do OGRE nebo Unity (pokud to už nemají, nevím), asi nebude na odpoledne.
Jinak přístup "v čem je to lepší než konkurence a proč to dělat, když není / je málo" mě neuvěřitelně sere, typicky na PhD studiu. Ano, chápu že by to mělo mít nějaký přínos, ale za přínos považuji i to, že je to jiné. Proč by všechno muselo být stejné? Prostě jinak udělané a nemusí to znamenat nutně lepší. Ono co je lepší je také dost subjektivní. _________________ Perry.cz |
|
Návrat nahoru |
|
 |
perry

Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 17. červenec 2014, 10:20:51 Předmět: |
|
|
Offtopicy jsou v pohodě Dokud se neprobírá počasí...  _________________ Perry.cz |
|
Návrat nahoru |
|
 |
|