Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Spytihněv
Založen: 05. 04. 2011 Příspěvky: 547 Bydliště: Praha
|
Zaslal: 19. červen 2023, 10:09:33 Předmět: |
|
|
dzejkob napsal: |
Nepřijde mi, že má velkou přidanou hodnotu se tomuhle problému věnovat |
Podle mě typická situace bude u jednotek s různou délkou dostřelu, kdy bude důležité, aby jednotka zastavila přesně v místě, odkud má nepřítele na dostřel a sama zůstala v bezpečné vzdálenosti - strkání tohle bude rozbíjet. |
|
Návrat nahoru |
|
|
dzejkob
Založen: 17. 08. 2013 Příspěvky: 130
|
Zaslal: 19. červen 2023, 18:39:39 Předmět: |
|
|
Jo, stojí to za úvahu. Ono se děje obojí - jak objíždění tak strkání - je to trochu vidět tady: https://youtu.be/D2djJ3x_t5w?t=120 trochu vylepšit to snad půjde |
|
Návrat nahoru |
|
|
dzejkob
Založen: 17. 08. 2013 Příspěvky: 130
|
Zaslal: 27. srpen 2023, 23:33:01 Předmět: |
|
|
Milý mrtvý deníčku, je zde další update. Demo zatím není, ale blížíme se.
- buildnuto s no-gil Pythonem - což je teda vysvobození - konec rad Pythonistů "vždyť přece paralelní běh více vláken nepotřebujete, stejně to neumíte a jenom byste to posrali" - prostě gil už neobtěžuje a je vypnut. Celkem mě překvapilo, jak málo používaný ten nogil fork je - a je to vlastně jenom hobby projekt jednoho člověka. Spíš to teda nasvědčuje tomu, že moje použití Pythonu je fakt dost mimo - ale co už
- další záchrana v podobě address sanitizeru - bez toho by to asi umřelo, neboť valgrind byl nepoužitelně pomalý
- doděláno generování lepšího meshe mapy - dost pracné nakonec bylo, aby to fungovalo rychle při lokálních změnách. Dá se to snadno rozšiřovat dál - zatím tam je dodělán jednoduchý příliv. Hlavně to není už tak tupě hranaté
- herní objekty pracují už plně s výškou terénu a s tím související úpravy
- dodělána stavba rozvodů zdrojů a jejich distribuce. Zatím to je jednoduché a ani to nijak složitější být nemá - ale chci tam dodělat mechanismy, které budou pracovat s rychlostí distribuce zdrojů
- stavba zdí pomocí tažení myši
- AI rozšíření - stavba trubek, schovávání ekonomických jednotek (tj. nejde AI zlikvidovat rozstřílením minera), atd.
- healing ekonomických jednotek v blízkosti určitých budov
- úpravy pohybu a navigace jednotek - hlavně lépe vyřešen útok davu jednotek, kdy jednotky vzadu, když nemají místo, tak čekají
- hromada bugfixů a dalších detailů
- načmárána nějaká verze loga / splash screen hry
Těch úprav bohužel není příliš moc - hromada času stále padala na optimalizace. V zásadě už skoro vše je pyx, pyd a čistého Pythonu je minimum. Většina objektů je castovatelný extension type.
Aktuální video: https://www.youtube.com/watch?v=O7DnJcYkqnY
|
|
Návrat nahoru |
|
|
Ladis
Založen: 18. 09. 2007 Příspěvky: 1536 Bydliště: u Prahy
|
Zaslal: 27. srpen 2023, 23:52:23 Předmět: |
|
|
Tak je hezký, že už nemáš v realtime hře problém s výkonem Pythonu. Asi to furt byla rychlejší cesta než s jiným jazykem, ne? _________________ Award-winning game developer |
|
Návrat nahoru |
|
|
dzejkob
Založen: 17. 08. 2013 Příspěvky: 130
|
Zaslal: 28. srpen 2023, 18:38:01 Předmět: |
|
|
Ladis napsal: |
Tak je hezký, že už nemáš v realtime hře problém s výkonem Pythonu. Asi to furt byla rychlejší cesta než s jiným jazykem, ne? |
Tak byla to cesta plná objevů a poznání ) Rychlejší by asi bylo celý Python vyhodit a dělat to v něčem jiném - potíž ale je, že ten projekt nemá nějaký roadmap ani konkrétní cíl, takže těžko říct. Kdyby člověk od základu jel Cython+no-gil Python se znalostmi, co už mám, tak by to asi nějaký smysl mělo. V tom čistém Pythonu jde rychle namatlat prototyp nějaké dílčí části. Nicméně asi bych tuhle cestu nikomu nedoporučil. Trochu problém je, že třeba změna v hlavičkovém souboru dělá rebuild všeho - a to dost zbytečně - a build všeho je pomalý (i vícevláknový build). Zase kdybych měl 16 jádrové cpu co žere 200 W, tak by to takový problém snad nebyl.
Plus není stále úplně vyhráno - pořád tam jsou v 1 frame (ať už draw nebo logiky) občasné záseky 100-1000 ms a zatím jsem to nevyřešil. Dělá to i na jiném PC - asi to je něco v Pygletu, kterej už taky upravuju na míru pro ten projekt. |
|
Návrat nahoru |
|
|
Spytihněv
Založen: 05. 04. 2011 Příspěvky: 547 Bydliště: Praha
|
Zaslal: 15. září 2023, 10:55:40 Předmět: |
|
|
- Trubky jsou dobré a také jsem je ve své imaginární RTS zvažoval (tanky přes ně evidentně jezdí, stavba budov v místě trubek je rovněž povolena/vyvolá přestavění trubek?)
- Couvání během střelby taky pěkné
- Ukázka čekání působí divně, když se tam dělá špunt z mrtvých jednotek a celé to končí neúspěchem. Celkově ty skupinové přestřelky v takovém množství jednotek a rychlosti působí docela hekticky (obava nakolik bude možno výsledek bitvy ovlivnit), což je tím pádem potřeba vyzkoušet demo do konce září? |
|
Návrat nahoru |
|
|
dzejkob
Založen: 17. 08. 2013 Příspěvky: 130
|
Zaslal: 17. září 2023, 10:36:16 Předmět: |
|
|
Trubky se do určité vzdálenosti stavěj samy + daj se i přestavět - tokeny pak tečou přes tu budovu. Má to bejt pořád akční rts - nechci tam dávat nic zvlášť složitýho - základní stavba základy je jednoduchá. Chci tam posléze přidat další principy, jako nějaký akumulátory, který půjde nabít a pak rychle vychrlit spousty jednotek, nebo další principy, jak stavět proxy základny blízko nepřítele apod.
Šput z mrtvých jednotek tam není - u té scény to je napsané, že mrtvoly pohyb neblokují. Je to ukázka toho, že předtím jednotky tlačily jedna na druhou a nepřirozeně se protlačily kamkoliv jako voda - což není moc přirozené a hlavně to není strategické. Teď se blokují navzájem a když první řada jednotek střílí, tak jednotky vzadu neprojedou dokud neumřou ty vepředu. Nicméně hráč má možnost to ovlivnit, že přesune část jednotek dopředu ručně. Je to tak mnohem strategičtější - tj. půjde vytvářet tyhle špunty a hráč bude muset vymyslet jak to překonat - třeba rozstřílet letadlama tu artilerii (který tam zatím vůbec nejsou).
Skupinové přestřelky jsou spíše pro efekt aby v tom videu něco bylo. Ono ve finále pro běžné hráče ty strategie jsou víceméně o tom vyrobit hromadu jednotek a poslat to na nepřítele. Ve finále tam ale jsou principy typu kámen / nůžky / papír, takže ovlivnit se to dá a mikrovat - tj. targetovat vhodnejma jednotkama vhodné nepřátelské (+ jsou principy další - poslat takhle do sebe dvě skupiny je blbost). Třeba warcraft 3 měl malý damage a vysoký hitpointy - takže jednotky do sebe kosily "půl hodiny" a bylo více času to odklikat. Jiné strategie jsou obvykle rychlejší ale principy jsou stejný. Zkoušel jsem damage něčím vydělit a přijde mi to blbý - dlouho to do sebe střílí a vypadá to divně.
Taky v tý hře je málo obsahu - maj tam bejt lodě, letadla, upgrady, více budov, více možností.
Demo do konce září bohužel nebude. Chce to alespoň dvě singl mise, tutorial, strategičtější terén + dost detailů, který mě stále vaděj. Ve finále jako asi nemám problém to někomu poslat tak jak to je kdyby měl fakt zájem - ale přijde mi, že to za to nestojí - je to nehotový a videa ukazujou dostatečně co tam je (+ musel bych compilovat nogil python pro windows což asi bude peklo ale někdy se to udělat musí ...) |
|
Návrat nahoru |
|
|
Spytihněv
Založen: 05. 04. 2011 Příspěvky: 547 Bydliště: Praha
|
Zaslal: 17. září 2023, 14:13:54 Předmět: |
|
|
Zajisté jsem nemyslel nějaké oficiální pozlacené demo s omáčkou marketingovou, ale demo interní, které by bylo do konce týdne udělatelné
Vyzkoušel bych věci, které mne zajímají a z videa nejdou poznat. Třeba u těch skupinových přestřelek obvykle ručně zadávám cíle podle zdraví a nebezpečnosti, což mi z videí přijde, že nemůže být stíhatelné a všichni tak budou střílet na všechny. Nebo je tam vidět, jak těžík najíždí na vysypávací plošinu v budově, zda je možné zastavět mu příjezdovou cestu atd. |
|
Návrat nahoru |
|
|
dzejkob
Založen: 17. 08. 2013 Příspěvky: 130
|
Zaslal: 17. září 2023, 14:50:12 Předmět: |
|
|
No a to mám na mysli - interní demo - z mého pohledu nechci plýtvat časem kohokoliv, kdo bude ochoten to zkoušet - tj. potřebuju, aby se v tom dalo snadno zorientovat + nebyly tam problémy a nedodělky, které i mě jsou jasné.
Nicméně já teda klidně do konce příštího týdne udělám interní^2 demo a pošlu ho do pm. Bude funkční hra ai vs hráč a jedna nedodělaná mise + editor + multiplayer. Hra to je ovšem nekompletní.
Zastavět příjezdovou cestu jde, ale komplikovaně. Budovy jako takové mají kolem sebe safe zone. Musí se postavit zeď dokola - když to hráč udělá, je to jeho věc. Těžič pojede do rafinerie, kam najde cestu. Pokud nenajde, vytěží a bude stát.
Uklikat se to dá do určitého počtu jednotek - myslím, že se to tolik neliší od jiných rychlých rts. Případě se to dá nějak zpomalit. |
|
Návrat nahoru |
|
|
dzejkob
Založen: 17. 08. 2013 Příspěvky: 130
|
Zaslal: 15. leden 2024, 16:49:18 Předmět: |
|
|
Mrtvý deníčku, zase nějaký UPDATE:
- herní mapa rozšířena o výškové rozdíly + kompletace meshů hran a plynulých přechodů (po posledním testování to má pořád docela dost much ale je to na dobré cestě)
- jednotky a objekty kopírují terén a natočení + berou v potaz výškový parametr. Totéž se týká střel. Klikání myší respektuje výškovou úroveň
- hra už ve všem uvažuje třetí rozměr (např. pád mrtvol, vraků atd.)
- první strategické mechanismy výškových rozdílů - jednotky o level dole mají menší dostřel a ty, které jsou o level výše, mají dostřel větší. Rozdíl dvou levelů už blokuje střelbu nahorů. Ještě se to bude ladit v závislosti na typu jednotky atd. Rozhodně to ale nemá být fyzikálně přesné - má to být hlavně jednoduché a hratelé. Určitě tam posléze budou letadla, drony atd.
- refinerie jsou zjednodušeny způsobem, že se staví vedle zdrojů a alokují několik políček. Harvester je těsně svázán s rafinerií a nejde ho samostatně stavět. Jakmile se zdroje vyplýtvají, tak je třeba provést přestavbu. Naopak workerů je možné stavět neomezeně. Nejsou už limitované sloty workerů + uvažuju, že vyhodím warehouses a bude se stavět jenom drahý main building. Hra bude takhle víc kopírka starcraftu, nicméně to předchozí řešení bylo moc komplikované a neintuitivní. Takhle když chci více zdrojů, postavím více workerů a posléze více rafinerií. Moc mě nenapadá jak to udělat jinak, aby to nebylo zbytečně složité.
- u některých budov lze postavit samostatně ovladatelného buildera (továrna, věž) a pak provést stavbu na libovolném místě na mapě (builder po stavbě zanikne). Půjde třeba udělat tower drop u nepřátelské základny. U těch továren ještě chybí mechanismus, jak přenášet zdroje do osamocené továrny (asi tam bude nějaký resource transporter)
- vylepšena přesnost jízdy jednotek - předtím to bylo blbě a jednotky jely o několik tilů mimo + další vylepšení
- budova akumulátoru zdrojů + variabilní rychlost distribuce zdrojů. Jakmile je akumulátor naplněn zdroji, tak požadavky odbavuje mnohem vyšší rychlostí což vede k zrychlené produkci (rychlost je teď vlastnost tokenu ne budovy)
- vylepšení attack move a hlavně attack - skupina při attack po zničení cílové jednotky pokračuje v zásadě jako attack move v omezenějším dosahu (jinak bylo attack celkem nepoužitelné)
- int_sqrt cache - nakonec slušný speedup
- power plant a kapacita jednotek je oddělena od energie (bude to pak nazváno nějak jinak)
- optimalizace, bugfixy, detaily, detaily atd.
Aktuální video:
https://www.youtube.com/watch?v=rlnJEbCUwQ0 |
|
Návrat nahoru |
|
|
Ladis
Založen: 18. 09. 2007 Příspěvky: 1536 Bydliště: u Prahy
|
Zaslal: 16. leden 2024, 13:07:07 Předmět: |
|
|
Pěkná editace a vizualizace mapy. Pro zajímavost, teď v zimě majitelé starších elektroaut taky uvažují třetí rozměr, stejně jako před dávnými lety mašinfírové parních lokomotiv _________________ Award-winning game developer |
|
Návrat nahoru |
|
|
apoage
Založen: 30. 10. 2009 Příspěvky: 2 Bydliště: Praha
|
Zaslal: 15. únor 2024, 10:38:46 Předmět: |
|
|
moc pěkná práce .. rád vidím že je tu i něco živého .. |
|
Návrat nahoru |
|
|
dzejkob
Založen: 17. 08. 2013 Příspěvky: 130
|
Zaslal: 19. květen 2024, 22:41:10 Předmět: |
|
|
Milý deníčku, update - video:
https://www.youtube.com/watch?v=Vyof7GRsuQU
- přidána podpora více věží / zdrojů, kterými může jednotka střílet
- jednotka dart-droid a dart střely, které se odrážejí
- dodělána podpora letadel a létajících jednotek, budova letiště atd. + anti-air věže
- odladěna navigace větších jednotek 3x3 a související věci + colosal tank + companion jednotky (drony)
- škálovatelné efekty výbuchů
- dlaší vylepšení navigace - jednotky už nenajíždějí samy na sebe
- příkaz k útoku bere v potaz výšku jednotek atd.
- klíčová optimalizace - buffery se teď přenášejí do gpu pouze při relevantní změně přes glBufferSubData, podobně switch textur
- vedle toho další optimalizační boost - opengl funkce mají teď přímý binding z cpp a je to dost znát (win i linux) - předtím tam sice byl pointer na data přes ctypes a nic to snad kopírovat nemělo, ale ten nárůst výkonu je teď značný
- ctypes je zlo - pokus omyl jsem zjistil, že volání glUniformXX bindovaný něčím v ctypes, tak způsobuje záseky - asi to nějak aktivuje GIL nebo nevim
- hromada dalších detailů |
|
Návrat nahoru |
|
|
Ladis
Založen: 18. 09. 2007 Příspěvky: 1536 Bydliště: u Prahy
|
Zaslal: 20. květen 2024, 10:12:42 Předmět: |
|
|
Dík za zkušenosti s Pythonem. Asi radši nakonec půjdu C/C++. _________________ Award-winning game developer |
|
Návrat nahoru |
|
|
dzejkob
Založen: 17. 08. 2013 Příspěvky: 130
|
Zaslal: 20. květen 2024, 17:04:10 Předmět: |
|
|
Ladis napsal: |
Dík za zkušenosti s Pythonem. Asi radši nakonec půjdu C/C++. |
určitě jo ... a použít to opačně - na nějaké gui, ai, skripty použít python - nebo možná ani to ne. Myslím, že stačí buildnout jednoduchej python skript do c přes cython a podívat se co to reálně dělá - a člověk bude z pythonu vyléčenej. Jako na leckerý usecasy jako předžvejkat data a poslat je do nějakýho api nebo do vyšší logiky to je v pohodě. Ale na realtime aplikace bída - nebo hodně plýtvat výkonem. Nakonec i z toho optimalizovanýho cython skriptu je ten cpp zdroják fakt hnusnej a rozhodně to není maxmálně optimalizované - ale oproti pythonu to je rychlejší řádově (když se používají cpp struktury). |
|
Návrat nahoru |
|
|
|