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

Založen: 12. 01. 2014 Příspěvky: 2 Bydliště: Rajhrad
|
Zaslal: 18. červen 2014, 14:57:44 Předmět: Rigs of Rods (GPL) |
|
|
Ahoj vespolek.
Protože jsem tu ještě nic nenapsal, krátce se představím. Jmenuji se Petr Ohlídal, je mi skoro 30, jsem programátor webových stránek (PHP/Java/:NET, co je zrovna potřeba) a také amatérský C++ programátor který by se rád uplatnil jako herní vývojář. Byl jsem na GDS2013, někteří z Vás mě možná poznáte: https://www.linkedin.com/pub/petr-ohl%C3%ADdal/99/225/88a
Projekt který tu chci představit, či spíš připomenout je open-source sandbox simulátor vozidel Rigs of Rods: http://www.rigsofrods.com/content/
Hra je to poněkud zastaralá a opuštěná, protože původní vývojáři utekli a založili komerční projekt BeamNG: http://www.beamng.com/content/ Já si nicméně myslím že stojí za to původní RoR oprášit a omladit. Minimálně je to velká výzva pro málo zkušeného vývojáře. Hra má spoustu nedostatků které už jsou z hlediska common-knowledge podchycené, a já mám šanci je sem implementovat.
První úkol do kterého jsem se pustil byl redesign parseru formátu .TRUCK (definice vozidel). Starý parser bylo léta lepené monstrum, navíc byl těsně spojen (tightly-coupled) s fyzikálním jádrem, které bylo potřeba upravit. Zároveň ale formát nešlo jen tak zahodit, protože v něm bylo vytvořeno nezanedbatelné množství obsahu. Tak jsem se vrhnul do práce.
http://www.rigsofrods.com/threads/113499-RoR-TruckParser2013-test-build
https://sourceforge.net/u/only-a-ptr/ror-truck-parser-2013/ci/default/tree/
Další dílčí úkol byl pořádně uklidit ve zdrojácích. Hra byla založena na začátečnickém OOP frameworku navrženém pro single-thread aplikace. Během let se přidal multithreading a na hře spolupracovalo mnoho programátorů kteří lepili nové funkce kam se zrovna hodilo. Ze ctihodného OOP frameworku zbyly jen trosky které se pletly do cesty. Do toho se ještě rozšířila epidemie singletonů.
Vyřešil jsem to značnou redukcí OOP, odstranil jsem spoustu tříd které hrály dílčí úlohu při startu programu a nahradil je několika málo ucelenými funkcemi. Tím se odhalilo spousta duplicit a mrtvých úseků kódu. Striktně posuzováno je moje architektura špatná, ale velmi zlepšila čitelnost a dala se implementovat postupně a tím bez velkého rizika bugů.
http://www.rigsofrods.com/threads/113807-devs-only-please-RoR-s-software-architecture
https://sourceforge.net/u/only-a-ptr/ror-software-architecture/ci/default/tree/
Plán do budoucna: Přejít na linux, rozchodit Cachegrind http://valgrind.org/docs/manual/cg-manual.html a začít přepisovat jádro simulace. Podle mých teoretických znalostí je úplně špatně, ale jsem zvědav co se dozvím v praxi.
Vzato kolem a kolem nemám zatím moc co předvést. Hlavně se učím vnitřní mechanismy 3D her a experimentuji. |
|
Návrat nahoru |
|
 |
Peto

Založen: 01. 08. 2007 Příspěvky: 206 Bydliště: Košice
|
Zaslal: 23. červen 2014, 09:03:44 Předmět: |
|
|
Vyzera to zaujimavo..
Chcel som skusit hlavne vrtulnik, na ten momentalne sa snazim urobit nejaku rozumnu fyziku...Nepodarilo sa mi to
Stiahol som aj addony, najprv to neslo rozbehat, prepinal som stale medzi OGL a D3D.. nakoniec som sa nejako dostal k vrtulniku ale stroskotal som na tom ze nejde zapnut "ON" lebo mysku mi nevidno nad control panelmi.. . A nielen ze nevidno proste to nic nerobi...
Btw: V tych zdrojakoch sa aj trochu vyznas?  _________________ Code or die!
 |
|
Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 23. červen 2014, 10:41:52 Předmět: Re: Rigs of Rods (GPL) |
|
|
only_a_ptr napsal: |
těsně spojen (tightly-coupled) |
Neměl bys prosím i španělský překlad? :-)
Jinak paráda, moc krásný projekt. Dělám vlastně na něčem podobném, jen to je spíš zaměřený na letadla a nemá to tak vychytaný destrukce.
Co se týče programování, doporučuju ti zůstat u OOP, je naopak pro multithreading vhodný. Jen se stačí držet dobrých zásad: vyhodit ty singletony (stačí jeden na logování a ten musíš ošetřit mutexama), nehrabat na nic globálního (tzn. pro každý objekt jasně určit jeho operační kontext a ten klidně předávat jako další objekt...)....no ale to je vlastně na delší povídání :-)
A hodím ještě pár otázek na to jádro simulace:
- Ty vozdila skládáte z nějakých komponent?
- Jsou v tom jádře vyřešeny interakce mezi jednotlivýma částma "vozdila"? Například u letadel se chovají křídla jinak, když jsou poblíž sebe. Křídla dvouplošníku se chovají dohromady jinak, než kdyby byly zvlášť, protože se mezi nima vyrovnávají rozdíly tlaků.
- Máte na to editor? Neumím si už představit ladit tu fyziku jen v nějakým souboru.
Zareagoval jsem na více věcí z toho, co si psal, protože vlastně neni jasné, na co se ptáš, nebo o čem chceš diskutovat. Tak jako tak, rád se do takovéhle diskuze zapojím. To je přesně téma pro mě ;-). _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 23. červen 2014, 11:15:52 Předmět: |
|
|
Peto: PM (abys nemyslel, že to je spam ;)) _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
 |
only_a_ptr

Založen: 12. 01. 2014 Příspěvky: 2 Bydliště: Rajhrad
|
Zaslal: 7. červenec 2014, 13:57:03 Předmět: |
|
|
Peto napsal: |
Btw: V tych zdrojakoch sa aj trochu vyznas?  |
Podařilo se mi zorientovat v kódu pro menu a spuštění hry. Proto jsem si vytvořil větev https://sourceforge.net/u/only-a-ptr/ror-software-architecture/ci/default/tree/ kde jsem ho přepsal do čitelné podoby. Samotná simulace už není tak nečitelná, i když je tam páté přes deváté (hlavně threading + zvuky přes fyziku)
]semo[ napsal: |
only_a_ptr napsal: |
těsně spojen (tightly-coupled) |
Neměl bys prosím i španělský překlad?  |
Tightly-coupled beru jako terminus technicus, zatímco česká varianta je celkem vágní.
]semo[ napsal: |
- Ty vozdila skládáte z nějakých komponent? |
Základem je kostra z vrcholů a hran (takzvaná N/B, tj, Node/Beam). Další jsou kola, definovaná šířkou a poloměrem (N/B se vygeneruje automaticky). Potom tzv. "props", tedy meshe umístěné na N/B připojením k některým nodům. A pak spousta dalších možností.
]semo[ napsal: |
- Jsou v tom jádře vyřešeny interakce mezi jednotlivýma částma "vozdila"? Například u letadel se chovají křídla jinak, když jsou poblíž sebe. Křídla dvouplošníku se chovají dohromady jinak, než kdyby byly zvlášť, protože se mezi nima vyrovnávají rozdíly tlaků. |
Letadla + lodě jsou do RoR doplněna dodatečně a simulace proudění vzduchu (nebo vody) je celkově hodně základní. Nezapadá to do současné architektury, je to dodělávané hromadou patchů vkládajících kód na nevyhovující místa a nic moc to neumí.
]semo[ napsal: |
- Máte na to editor? Neumím si už představit ladit tu fyziku jen v nějakým souboru. |
Já si to taky neumím přestavit ne, ale přesto to tak dosud všichni dělali. Editor tam není. Existuje pár externích nástrojů a možnost exportovat N/B z blenderu, ale celkově stojí podpora editace za pendrek.
Já samozřejmě chci tvořit svoje vlastní vozítka, bez toho ta hra nemůže bavit, ale bez editoru nehraju. Takže jsem se pustil do jeho tvorby: http://sourceforge.net/u/only-a-ptr/ror-vehicle-editor/ci/default/tree/ Zatím je tam jen základ který ukazuje prázdnou obrazovku. Teď pracuju na zobrazení N/B kostry a její editaci myší.
]semo[ napsal: |
Zareagoval jsem na více věcí z toho, co si psal, protože vlastně neni jasné, na co se ptáš, nebo o čem chceš diskutovat... |
Sám pořádně nevím, prostě jsem to téma hodil do placu. Zajímalo mě jestli tu někdo RoR zná/hrál a jak tu zafunguje diskuse o open-source projektu. |
|
Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 7. červenec 2014, 15:16:58 Předmět: |
|
|
Ad Node/Beam:
Aha, asi rozumím. A ty deformace meshe jsou přes kosti? Jakože kosti připojený nějakou váhou k tomu N/B grafu?
Ad Letadla + lodě:
Je jen málo lidí, se kterými se o tom můžu bavit, nikdo tyhle věci moc neřeší. Jenom Peto, kterého jsem s tim minule asi dost přepadl :-).
Tak kdyby tě to zajímalo, rád přijdu se svou troškou do mlýna.
Ad editor:
máš namysli editor určený pro vývojáře, nebo i pro hráče/komunitu? Tohle by taky mohlo být téma, o kterém by se dalo bavit. Prošel jsem obdobím, kdy jsem měl exporter z maxu, který exporotoval základ fyziky do XML. To se pak dál ručně editovalo. Teď mám editor a fyzika se připravuje daleko líp. Je sice jen pro vývojáře, uplně oddělenej od hry, nicméně myslím, že celkem "nadupanej". _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
 |
Hunter

Založen: 28. 07. 2007 Příspěvky: 544
|
Zaslal: 7. červenec 2014, 19:21:43 Předmět: |
|
|
Máš nějaký reálný plán, udělat z toho hru/aplikaci, nebo to má zůstat jen takovou fyzikální hříčkou? _________________ Sharing is caring. |
|
Návrat nahoru |
|
 |
Peto

Založen: 01. 08. 2007 Příspěvky: 206 Bydliště: Košice
|
Zaslal: 9. červenec 2014, 06:29:33 Předmět: |
|
|
Ja by som odporucal, vybrat z toho nejaku najlepsiu cast (simulaciu auta alebo tak) a urobit z toho nejaku mensiu samostatnu hru, ked to nieje velmi prehladne a velke).. Aj co som skusal demo, tak clovek ked vidi na youtube videa alebo nieco sam rozbeha.. je to zaujimave.. ale do user friendly.. resp user usage to ma daleko..  _________________ Code or die!
 |
|
Návrat nahoru |
|
 |
Hunter

Založen: 28. 07. 2007 Příspěvky: 544
|
Zaslal: 9. červenec 2014, 17:15:13 Předmět: |
|
|
Já - a teď řeknu pouze svůj názor, se kterým může kdokoliv nesouhlasit - si nemyslím, že by bylo dobré z toho udělat závodní hru.
V závodní hře jde hrozně moc o ladění hratelnosti a docela málo o přesnost fyzikálního modelu (viz NFS, TMN) a už vůbec nejde o model poškození.
A udělat _úspěšnou_ závodní hru, kde bys kvality toho enginu vyzdvihl, to je problém ještě větší.
Ale bylo by zajímavé udělat z toho nějakou hříčku typu Porrasturvat/Rekkaturvat (jestli to ještě někdo pamatuje ), snad o něco sofistikovanější.
No, já si to dovedu představit, jak třeba nějakým opatřením minimalizovat (nebo naopak maximalizovat?) následky nehody, srážka s vlakem ... mohlo by to být i naučné (a požádat Besip o sponzorství ) _________________ Sharing is caring. |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 9. červenec 2014, 22:24:51 Předmět: |
|
|
Demoliční derby PLS (k mému avataru asi není třeba nic dodávat ) _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
|