Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
survik1
Založen: 22. 08. 2007 Příspěvky: 107
|
Zaslal: 4. červen 2008, 21:26:26 Předmět: World War 2 Online |
|
|
Základní principy
Dá se říct, že tentokrát hodlám ekonomiku zcela vynechat. Hodlám vyvinout AI, které by mělo simulovat nejvyšší vedení a zajišťovat ekonomickou stránku hry (např. vývoj nových zbraní ap. - vše bude závislé a obsazených důležitých zdrojích, jako je ropa, města, továrny...). Hra se tak soustřeďuje (z pohledu hráče) především na bojiště. Hra je dělaná "časově", nikoliv tahově. Chci totiž zakomponovat co nejvíce realistiky, tahy tudíž nepřicházejí v úvahu. Důležitá však bude národnostní spolupráce. Tady již nepůjde jen o obyčejné aliance jak jsou známí z mnoha her, ale o opravdu celý národ. Každý věk "povede" jeden nejzkušenější (=>nejlepší) hráč národ. Jediný jeho bonus bude v možnosti plánování útoků (může si vybrat dva další hráče). Hráči ho však uposlechnout nemusí.
Dalším drastickým krokem bude, že jednotky bude přidělovat opět AI a to v závislosti na úspěších hráče.
Co (kdo) je hráč?
To je docela těžká otázka. Hráč je něco mezi nejvyšším stanem a polním velitelským stanem. Hráč totiž bude mít k dispozici námořnictvo, letectvo i pozemní jednotky, ale jak jsem již napsal, nebude mít možnost rozhodovat třeba jen o těch přídělých.
Bojiště
Nejdříve k bojišti. Hraje se na předem vytvořené mapě. Základní mapa má 20x20 jednotek, submapa má 60x60 jednotek. Jednotlivé prvky mapy rozhodují o útoku, rychlosti přesunu, obraně a samozřejmě jsou zde i další faktory.
Boj probíhá střetem dvou armád. Armáda (A) ma za útok zaútočit na obránce (B). Cestou se střetne s jinou armádou a není to jak jinde, že se "minou", ale opravdu se provede útok. Samotný boj není okamžitý, trvá neurčitý čas (záleží na tom, jak rychle se budou armády "mlátit"). Během boje se dá dodat podpora armádám jak ve formě můžu (techniky), tak ve formě dělostřelecké podpory či munice (když není munice, nestřílí se). Během bitvy nejsou jen mrtví, ale i zranění a zajatci. Zde ještě nemám moc promyšleného, co se zajatci. Např. možnost získání informací? Kdo ví...
Encyklopedie
Hra má vlastní encyklopedii. Jsou zde zastoupeny jak skutečné stroje/události/..., tak samozřejmě fiktivní (už jen z důvodu, že by byla námořní situace německa ku anglii až příliš nevyrovnaná - sice to tak ve skutečnosti bylo, ale...)
Velitelé
Hra má unikátní systém velitelů. Velitel velí divizi (to je bojový útvar - není ani nižší, ani vyšší. Vyjímkou jsou flotily - jednotlivé lodě a perutě), samozřejmě má i své zástupce. Důstojníci se vylepšují v závislosti na bojových úspěších. Samozřejmostí je vylepšování jednotlivých oborů či získávání medailí. Velitel není součástí divize, má svůj velitelský stan který může být kdekoliv umístěn (čím dál, tím pomalejší zaslání rozkazu). Je to z důvodu, že velitel také může umřít (avšak jen na zabití v důsledku války - nemoci by mohli být až příliš psychické bomby)
Speciality
Rozsáhlá týmová spolupráce
Nasazení AI na vysoké úrovni
Obrovská víceúrovňová detailní mapa
Unikátní systém velitelů a velení
Vlastní encyklopedie
V závislosti na úspěších zisk lepšího vybavení
Na závěr
Pokud jste vše tak nějak pochopili a dokázali si udělat představu, co na projekt říkáte? Má budoucnost (teď nemyslím vzhledem ke složitosti, light verze má vyjít do konce prázdnin)? Bude se díky své komplexnosti hrát? Máte nějaké návrhy do hry?
Obrázky doplním zítra. |
|
Návrat nahoru |
|
 |
if.then
Založen: 13. 04. 2008 Příspěvky: 579
|
Zaslal: 5. červen 2008, 06:06:31 Předmět: |
|
|
Je to pěkné, nicméně dle mě docela složité...nicméně by to mohlo jít...
Jo a ještě něco: Jak hodláš řídit vojáky "se zpožděním"? Podle mě tobude pro hráče docela fuška  |
|
Návrat nahoru |
|
 |
Vozka

Založen: 28. 07. 2007 Příspěvky: 229
|
Zaslal: 5. červen 2008, 13:14:07 Předmět: |
|
|
Mně to nepřejde nijak složité, přeci jen u počítačové hry máš spoustu možností jak hru udělat snadno pochopitelnou - teď jen aby se ti to povedlo, budu držet palce . Cenu to určitě má - je to originální. Ovšem jestli to bude taky hratelné si netroufám odhadovat protože válečné hry hraju minimálně. |
|
Návrat nahoru |
|
 |
survik1
Založen: 22. 08. 2007 Příspěvky: 107
|
Zaslal: 5. červen 2008, 14:20:56 Předmět: |
|
|
if.then napsal: |
Jo a ještě něco: Jak hodláš řídit vojáky "se zpožděním"? Podle mě tobude pro hráče docela fuška  |
Událost se přidá do fronty, kterou přebírá a provádí (v požadovaný čas) automatický spuštěný script. Problém však vidím ve zpoždění zpoždění kvůli tomu, že script nemůže běžet non-stop
Pro hráče to fuška ani nebude, spíše pro mě Tento systém v jednodušší formě funguje např. na známém travianu.
Pokud by však někdo věděl, tak přebírat data a zpracovávat je neustále, podělte se se zkušenostmi  |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 5. červen 2008, 16:10:13 Předmět: |
|
|
-no pri kazdej akcii hraca zavolat aj script ktory updatuje stav hry.
-mat cron a spustat ho kazdu minutu
-nejaky script ktory moze naozaj bezat neustale. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
survik1
Založen: 22. 08. 2007 Příspěvky: 107
|
Zaslal: 5. červen 2008, 17:33:47 Předmět: |
|
|
nou napsal: |
-no pri kazdej akcii hraca zavolat aj script ktory updatuje stav hry.
-mat cron a spustat ho kazdu minutu
-nejaky script ktory moze naozaj bezat neustale. |
ad 1) - Při představě jak by se to takhle všechno spouštělo se mi až obrací oči v sloup Server by to dlouho neustal ani při deseti hráčích
ad 2) - Jo, o téhle možnosti vážně uvažuji
ad 3) - Pokud by to server dokázal přežít, tak bych to bral, nicméně s něčím takovým nemám zkušenosti. |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 5. červen 2008, 18:58:53 Předmět: |
|
|
1. myslim ze utiahol ale to by musel byt system taky ze zoberie z fronty spravu a spracuje. zoberie dalsiu az je prazdna.
2. vetsina hier funguje na takomto principe a dlzka "kola" je od jedneho dna az po par minut. ak to chces realtime tak daj 1-5 minut na kolo. inak mal by si zabezpecit uzamykanie pocas vypoctu.
3. ak by bol script napisany v C++ tak by to bolo myslim super vykonne. dalo by sa to spravit aj v PHP ale timeout scriptu by musel byt nastaveny aspon na 2 minuty a vlastn epomocou cron spustat kazdu minutu script ktory by v smycke stale cakal na spravy a po jednej minute by sa ukocil kedy by naskocil znova. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
adragon
Založen: 23. 08. 2007 Příspěvky: 72 Bydliště: Praha
|
Zaslal: 5. červen 2008, 19:36:41 Předmět: |
|
|
otazkou je jakou chces mit skalovatelnost.
server dela:
1.prijme zpravu
2.zpracuje zpravu
3.odesle odpoved
4.provede periodicky update mapy
v podstate formatovani a posilani zprav 1. 3. je nezavisle, takze se to da realizovat ve vlastnich threadech.
zpracovani zpravy upravuje stav hry, proto je potreba struktury zamykat nebo pripustit jen beh jedne upravy. pokud je hra delena do nezavislych casti, tak je pak mozne zpracovavat pozadavky na jednotlive casti nezavisle.
zamykani je dost narocne dodrzovat, vede pri opomenuti k tezko hledatelnym chybam.
je tedy mozne snazit se udalosti co nejvic zjednodusit a urychlit a zpracovavat je sekvencne.
zamykani je take mozne nechat realizovat databazi pri pouziti transakci. ovsem relacni databaze jsou oproti specificky navrzenym objektovym, pomale. (mozna by ale na tu hru bohate stacili)
je take mozne nechat vsechny pozadavky hracu zpracovat v periodickem update a prezentovat vzdy starsi stav hry a na pozadi mezitim pocitat novy stav a v urcitem okamziku aktualizovat jen aktualni stav novym
periodicky update
tenhle proces v podstate potrebuje stav cele hry, takze nelze realizovat pozadavky hracu. asi by mel byt co nejkratsi. videl jsem hry, kdy se kazdou hodinu 10 minut neda nic delat. Myslim ze je jednodusi pripustit moznost, ze hrac vidi predchozi stav hry, zadane prikazy, ktere nelze menit a muze zadavat nove prikazy. a stav hry se meni mezitim na pozadi. (jak bylo zmineno v predchozim odstavci).
zaver:
cim vetsi skalovatelnost - tim vetsi pausalni naroky na synchronizaci, naroky na slozitost hry, omezeni vzajemnych vazeb ve hre.
pokud bych delal podobnou hru, tak bych asi vyuzil relacni databaze, do ktere bych ukladal akce hracu a vzal bych starsi stav hry a starsi akce a na zaklade nich v jinem procesu propocetl novy stav hry a ten nahral do databaze. (ten proces bych nechal bezet s uspavanim pravidelne a pokud by nestihal, tak bych si to logoval) rozhodne je treba zajistit, aby se nepustili 2 update stavu hry pres sebe. |
|
Návrat nahoru |
|
 |
if.then
Založen: 13. 04. 2008 Příspěvky: 579
|
Zaslal: 5. červen 2008, 20:04:15 Předmět: |
|
|
survik1 napsal: |
Tento systém v jednodušší formě funguje např. na známém travianu. |
Nedokážu si představit Travian a na mapě se tam budou mastit vojáci  _________________ For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++. |
|
Návrat nahoru |
|
 |
survik1
Založen: 22. 08. 2007 Příspěvky: 107
|
Zaslal: 5. červen 2008, 20:38:12 Předmět: |
|
|
if.then napsal: |
survik1 napsal: |
Tento systém v jednodušší formě funguje např. na známém travianu. |
Nedokážu si představit Travian a na mapě se tam budou mastit vojáci  |
No tak tohle není PC strategie, bude vidět jen vlajka (či znakové označení - nevím, zda-li bych měl náladu toho vytvořit), označení divize a typ divize.
Snad až budou jednou velmi jednoduché jazyky a přijde na řadu třeba Web 3.0 (či 4.0? Už nevím, kde jsem slyšel, že jedna z verzí by pomalu měla začít podporovat 3D).
Nicméně, vlaječka musí stačit
nou napsal: |
2. vetsina hier funguje na takomto principe a dlzka "kola" je od jedneho dna az po par minut. ak to chces realtime tak daj 1-5 minut na kolo. inak mal by si zabezpecit uzamykanie pocas vypoctu.
|
Systém kol nehodlám zavádět, přijde mi to nereálné. Zaútočím na jedné frontě a s druhou nehnu protože nemám "kola". Je to divné.
adragon napsal: |
Ano, nad něčím takovém přemýšlím, nicméně pořád se mi zdá, že to server prostě neutáhne, že zkolabuje.
|
|
|
Návrat nahoru |
|
 |
MD

Založen: 29. 07. 2007 Příspěvky: 437 Bydliště: Praha
|
Zaslal: 6. červen 2008, 09:49:28 Předmět: |
|
|
Na zpravach je zalozen i Krkal C, tak treba se ti nejake napady budou hodit.
Jde o objektove orintovane prostredi, krome bezneho volani metod je tam volani metod "jako zprava". Pri volani si jen reknes, kdy se ma zprava dorucit (V pristim taktu, za 100ms - je to na tobe). Da se tim krasne simulovat paralelni zivot objektu.
Metody v krkalovi nikdy nebezi paralelne, neni tedy nutna zadna synchronizace, zamykani a podobne hruzy.
Zpravy jsou dorucovany v presne definovanem poradi.
Soucasny souboj 2 jednotek muze probihat treba takto:
- Jednotka A zahaji utok (rekneme ze vystreli na B se silou x a presnosti y), Vystrel samozrejme neni okamzita zalezitost, tak zavola u B zpravu: B->zasahni(sila = x, presnost = y) timed 100;
- Jednotka B taky vystreli
- Za urcity cas dojde k vyhodnoceni vystrelu, to muze probihat treba takto:
- Zkusim dorucit prvni zpravu (A->B), to se treba nepovede, protoze B mezitim byla zabita. Takova je valka . Takze neni co vyhodnocovat.
- Pak utok (B->A). Vubec nevadi, ze B uz je mrtva, dojde k zasahu, A si odecte prislusny pocet hitpointu ....
Predpokladam, ze zpravy jsou obsluhovany kratkymi metodami. Kdyz neco potrebuji rozlozit do casu, tak opet vyuziji zpravy. Krkal je primarne navrzen pro real-time hry, defaultne je to taktovane po 30ms a v kazdem taktu to zvlada rekneme nekolik tisic zprav.
Jestli chces, tak si rad pokecam o detailech, ci poslu link na svou diplomovou praci. _________________ - play with objects - www.krkal.org - |
|
Návrat nahoru |
|
 |
adragon
Založen: 23. 08. 2007 Příspěvky: 72 Bydliště: Praha
|
Zaslal: 6. červen 2008, 20:31:30 Předmět: |
|
|
survik1: jakou mas predstavu poctu hracu na jednu hru, kolik uvazujes db transakci na serveru za vterinu?
ad kola, kola nebyla nejspise myslena jako omezeni poctu akci na jednoho hrace, ale spis jako periodicky update mapy za jednotku casu.
samozrejme vse muze bezet realtime jako krkal, ale pokud to bude potreba paralelizovat, tak se to dost zesloziti. (pri vzajemne zavislosti provadenych akcich) |
|
Návrat nahoru |
|
 |
survik1
Založen: 22. 08. 2007 Příspěvky: 107
|
Zaslal: 6. červen 2008, 20:57:01 Předmět: |
|
|
DB transakcí je ohromné množství a nevím, jak to zjednodušit. Např. statistiky jsou drtícími prvky. |
|
Návrat nahoru |
|
 |
komm
Založen: 18. 11. 2007 Příspěvky: 107
|
Zaslal: 6. červen 2008, 23:44:55 Předmět: |
|
|
ahoj,
mozno ti pomozu zdrojaky z tejto hry
http://dragon.se7enet.com/dev.php
ja som sa cez to dost naucil a este sa k tomu vratim.. proste ma to laka tiez nieco take urobit ale vela toho aj tak neviem...
zdrojaky su v tej hlavnej casti jednoduche ale do hlbky je to komplikovane tak dynamicke njn.. vela zabavy teda ak to budes studovat
EDIT: no precital som si lepsie diskusiu.. takze ta hra na ktoru som dal link je len PHP a ziadne viac.. jako tebe to nepomoze..lebo si na inej urovni uz .... ale zase mozno niekomu inemu jo kto to ce vediet..
Naposledy upravil komm dne 7. červen 2008, 00:02:00, celkově upraveno 1 krát |
|
Návrat nahoru |
|
 |
adragon
Založen: 23. 08. 2007 Příspěvky: 72 Bydliště: Praha
|
Zaslal: 6. červen 2008, 23:58:14 Předmět: |
|
|
survik1 napsal: |
DB transakcí je ohromné množství a nevím, jak to zjednodušit. Např. statistiky jsou drtícími prvky. |
statistiky se nemusi pocitat v realtime, staci pouzit nejake starsi, cachovane
soustred se prvne na jadro hry. btw co pouzijes jako server? |
|
Návrat nahoru |
|
 |
|