.[ ČeskéHry.cz ].
RTS revival
Jdi na stránku Předchozí  1, 2, 3
 
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
Spytihněv



Založen: 05. 04. 2011
Příspěvky: 544
Bydliště: Praha

PříspěvekZaslal: 19. červen 2023, 10:09:33    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
dzejkob



Založen: 17. 08. 2013
Příspěvky: 130

PříspěvekZaslal: 19. červen 2023, 18:39:39    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
dzejkob



Založen: 17. 08. 2013
Příspěvky: 130

PříspěvekZaslal: 27. srpen 2023, 23:33:01    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Ladis



Založen: 18. 09. 2007
Příspěvky: 1534
Bydliště: u Prahy

PříspěvekZaslal: 27. srpen 2023, 23:52:23    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
dzejkob



Založen: 17. 08. 2013
Příspěvky: 130

PříspěvekZaslal: 28. srpen 2023, 18:38:01    Předmět: Odpovědět s citátem

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í Smile) 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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Spytihněv



Založen: 05. 04. 2011
Příspěvky: 544
Bydliště: Praha

PříspěvekZaslal: 15. září 2023, 10:55:40    Předmět: Odpovědět s citátem

- 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 Arrow demo do konce září? Cool
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
dzejkob



Založen: 17. 08. 2013
Příspěvky: 130

PříspěvekZaslal: 17. září 2023, 10:36:16    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Spytihněv



Založen: 05. 04. 2011
Příspěvky: 544
Bydliště: Praha

PříspěvekZaslal: 17. září 2023, 14:13:54    Předmět: Odpovědět s citátem

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é Cool
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. Idea
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
dzejkob



Založen: 17. 08. 2013
Příspěvky: 130

PříspěvekZaslal: 17. září 2023, 14:50:12    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
dzejkob



Založen: 17. 08. 2013
Příspěvky: 130

PříspěvekZaslal: 15. leden 2024, 16:49:18    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Ladis



Založen: 18. 09. 2007
Příspěvky: 1534
Bydliště: u Prahy

PříspěvekZaslal: 16. leden 2024, 13:07:07    Předmět: Odpovědět s citátem

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 Very Happy
_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
apoage



Založen: 30. 10. 2009
Příspěvky: 2
Bydliště: Praha

PříspěvekZaslal: 15. únor 2024, 10:38:46    Předmět: Odpovědět s citátem

moc pěkná práce .. Smile rád vidím že je tu i něco živého ..
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
dzejkob



Založen: 17. 08. 2013
Příspěvky: 130

PříspěvekZaslal: 19. květen 2024, 22:41:10    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Ladis



Založen: 18. 09. 2007
Příspěvky: 1534
Bydliště: u Prahy

PříspěvekZaslal: 20. květen 2024, 10:12:42    Předmět: Odpovědět s citátem

Dík za zkušenosti s Pythonem. Asi radši nakonec půjdu C/C++.
_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
dzejkob



Založen: 17. 08. 2013
Příspěvky: 130

PříspěvekZaslal: 20. květen 2024, 17:04:10    Předmět: Odpovědět s citátem

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
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 -> Inkubátor Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3
Strana 3 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