Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Antriel
Založen: 08. 10. 2008 Příspěvky: 4
|
Zaslal: 8. říjen 2008, 18:38:45 Předmět: Struktura game servra - MMORPG |
|
|
Konecne som sa dostal ktomu co ma vlastne prinutilo zacat sa ucit programovat - spravit vlastne mmorpg (tak ako veeela zaciatocnikov, az na ten detail ze ja som nato siel postupne)
Mam za sebou zopar flash hier, jednu flash multiplayer s serverom v jave. Teraz dosiel rad na jednoduche mmorpg(nic velke..). Klienta budem robit vo flashi, scim neni az takt problem.. horsie je to na serverovej strane. Ak to budem robit ako poslednu hru.. predpokladam ze to 10x prerobim kym dojdem k pouzitelnej strukture. Skusal som najst dake OS herne servre (L2J, eAthena) ale ani jeden nemal dokumentaciu takze som sa este viac stratil. Nakoniec i tak asi budem sam s ceruzkou nad papiermi romyslat co a ako.. ale mozno niekto zvas ma uz daku skusenost s dacim podobnym.
Ide o to ze vobec neviem ako mam rozkuskovat classy, nech to dava trochu logiku... zatial si to predstavujem takto:
Login server - thread ktory bude citat na dakom porte a ak pride spojenie tak ho hodi do game servra
Game server - vytvori vlakno pre kazdeho hraca, pre manazment mobov, NPC, questov
etc - dake pomocne triedy pre methody a konstanty a co ja viem co este..
Problem je ze toto je prvy typ hry kde sa chystam pouzit DB, rozhodujem sa medzi mysql alebo niakou co je robena pre javu (zabudol som ako sa vola). Netusim ani ako funguje veci typu meno heslo..
Potreboval by som daky typ na literaturu ktora ma ktomu dostane.. presiel som asi 50 knich o program. hier ale z tejto oblasti tam moc nebolo...
PS: nepatrim medzi ludi co vsetko vzdaju ked vidia ake je to zlozite. Ak ma trvat rok kym sa naucim co treba aby som mohol zacat.. tak nech to trva rok... (i ked mam len 4 mesiace.. rad by som funkcnu verziu mal na SOC)
Naposledy upravil Antriel dne 17. listopad 2008, 11:59:26, celkově upraveno 1 krát |
|
Návrat nahoru |
|
|
Quiark
Založen: 29. 07. 2007 Příspěvky: 816 Bydliště: Chlívek 401
|
Zaslal: 10. listopad 2008, 12:23:21 Předmět: |
|
|
Pokud vím, je v Javě napsán neoficiální server pro Lineage a řekl bych, že je to použitelné.
Co místo MySQL použít PostgreSQL? Má lepší pověst a je taky zdarma.
A proč tolik vláken? Už se těšíš na tu spoustu zamykání apod. ? Ale je pravda, že to do blízké multiprocesorové budoucnosti je dobře škálovatelné (ale stejně dost záleží na tom, jak se to napíše). _________________ Mám strach |
|
Návrat nahoru |
|
|
Peta
Založen: 28. 07. 2007 Příspěvky: 154 Bydliště: V prvnim patre hned vedle koupelny.
|
Zaslal: 12. listopad 2008, 10:49:19 Předmět: |
|
|
Strukturu serveru lze celkem vykoukat z
https://opensvn.csie.org/l2storm/trunk/Server/
Coz je "pujceny" Lineage 2 server pts (public test server) od NCsoftu.
Pokud tomu das cas a prohrabes se tim vsim, ziskas celkem solidni predstavu o jednotlivych komponentach serveru - npcserver, samotny server, cache, login, auth, community server atd. Asi pro tebe nebude potreba vsechno, nicmene ti to rozhodne ukaze, jak treba zrovna u lineage 2 jsou nektere featury implementovane.
Casem budes muset pak resit jak udelat AI potvor, jak geodata a podobne, z tohoto lze taky hodne vykoukat.
Pripadne doporucuji forum www.postpacific.com nebo www.gamingdevs.com (snad jsem to napsal dobre, PP ma myslim ted potize ze jim vyprsela domena, ale jinak jede...).
Sam se momentalne zabyvam L2 serverem, ale ne Javou nybrz prave PTS. Postupne do toho pronikam, ale moje cile jsou uplne jine nez tve (netvorim zadnou hru).
EDIT: dodam ze konkretne L2 server (ne javovy!) rozjedete pouze na 64bitovych Windows s MSSQL serverem 2003+ a pokud nemate aspon 3 gb ram tak bych se ani nesnazil Jak ten server rozjet je docela orisek, vse spravne nakonfigurovat a podobne, sam jsem to jeste ani nezkousel a patrne ani nebudu (nastesti nemusim, mam jine zdroje... ) _________________ Když je Ti smutno, otoč se tváří ke slunci a všechny stíny padnou za Tebe. |
|
Návrat nahoru |
|
|
Weny Sky
Založen: 28. 07. 2007 Příspěvky: 241
|
Zaslal: 12. listopad 2008, 10:56:50 Předmět: |
|
|
ja bych se spis zameril na nastudovani zdrojaku free WoW serveru MaNGOS a Antrix(Ascent) |
|
Návrat nahoru |
|
|
Peta
Založen: 28. 07. 2007 Příspěvky: 154 Bydliště: V prvnim patre hned vedle koupelny.
|
Zaslal: 12. listopad 2008, 22:40:48 Předmět: |
|
|
Aby sis to nevyložil špatně, nechtěl jsem tím říct, že L2 je ideální kandidát na inspiraci ale doporučil jsem ho proto, že ho znám _________________ Když je Ti smutno, otoč se tváří ke slunci a všechny stíny padnou za Tebe. |
|
Návrat nahoru |
|
|
if.then
Založen: 13. 04. 2008 Příspěvky: 579
|
Zaslal: 13. listopad 2008, 17:57:49 Předmět: |
|
|
citace: |
Zřejmě budu psát server pro čtverečkové MMORPG - tak aby jel na Linuxu i Widlích.Budu ho psát v Java(trochu se děsím jak rychle to pojede, ale Java udělala velký skok ve výkonu a v současné době by to nemělo být problém) |
Java dnes jede na 90% výkonu Céčka - neděs se.
citace: |
Pole objektů mapy a stejně velké pole hráčů. - toto bude samostatné pro každou lokaci k vůli rychlosti |
To ti sežere VELIKÉ množství paměti. Zkus spíš oboje dynamické.
citace: |
Vlákna pro obsluhu klientů.
Vlákno na pozadí pro update objektů v DB
Samostatné vlákno pro přístup do DB tabulek k uložení objektů(itemy,questy...)
Dále pak chci přidat
(dalších 6 vláken...) |
Co se týče vláken - tolik jich nedělej! max. tak 4 vlákna(Při více stejně budou procesory neúměrně vytíženy).
2Peta a WenySky: Pochyboval bych o použitelnosti kodu... L2 a WoW jsou natolik komplexní, že projít to bude utrpením _________________ For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++. |
|
Návrat nahoru |
|
|
Yossarian
Založen: 28. 07. 2007 Příspěvky: 274 Bydliště: Šalingrad
|
Zaslal: 13. listopad 2008, 18:24:08 Předmět: |
|
|
if.then napsal: |
Co se týče vláken - tolik jich nedělej! max. tak 4 vlákna(Při více stejně budou procesory neúměrně vytíženy). |
ehm.. co prosim? ted sem asi spadl z visne, ale podobnou kravinu sem dlouho neslysel. |
|
Návrat nahoru |
|
|
Al
Založen: 23. 10. 2007 Příspěvky: 196
|
Zaslal: 13. listopad 2008, 23:52:48 Předmět: |
|
|
Takže 16 jader a hyper threading? No já bych chtěl vidět ten paměťový řadič, který toto utáhne...
Mimochodem při tak velkém počtu procesorů se používají úplně jiné algoritmy. Systém "kolik jader mám, tolik vláken udělám" je dosti zastaralý. Ve finále je to ta nejlepší možnost, ale programovat to ručně je asi sebevražda. Co takhle jedno nebo několik málo řídicích vláken + fond vláken, kde bude "32 holek pro všechno", kterým budou ta řídicí dávat úkoly. Tj implementovat to tak, že tam bude řada malých úloh, které se budou řadit jednoduše do fronty a kopa těch "holek pro všechno" budou ty úlohy plnit pěkně jednu po druhé, jak jsou v té frontě. |
|
Návrat nahoru |
|
|
pcmaster
Založen: 28. 07. 2007 Příspěvky: 1824
|
Zaslal: 13. listopad 2008, 23:55:28 Předmět: |
|
|
Java ma na to dokonca krasnu vec zvanu ThreadPool, na ktoru si urcite narazal. Je to urcite pekny sposob, ako to spravit.
Ja som ju "dorobil" aj do C++ v Qt, keby niekto chcel :] (sorry za OT) _________________ Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est. |
|
Návrat nahoru |
|
|
Al
Založen: 23. 10. 2007 Příspěvky: 196
|
Zaslal: 14. listopad 2008, 00:01:13 Předmět: |
|
|
Jo, thread pool má jen tu nevýhodu, že při malém počtu procesorů to může vytuhnout celý program, když náhodou všechna živá vlákna začnou na něco čekat a to "něco" je naplánováno v nějaké té další úloze, která teprve čeká ve frontě na spuštění. (Ale to je výjimečná situace, nutno na to jen trochu myslet.) |
|
Návrat nahoru |
|
|
if.then
Založen: 13. 04. 2008 Příspěvky: 579
|
Zaslal: 14. listopad 2008, 07:24:20 Předmět: |
|
|
Za ty vlakna sorry - zrovna jsem za sebou mel narocny den a nejak mi to nemyslelo
AI vystihl ten pripad MMO dobre. Pocasi muze pockat, hlavne kdyz bude server komunikovat s hraci _________________ For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++. |
|
Návrat nahoru |
|
|
Mem
Založen: 28. 07. 2007 Příspěvky: 1959 Bydliště: Olomouc
|
Zaslal: 14. listopad 2008, 08:18:39 Předmět: |
|
|
if.then napsal: |
AI vystihl ten pripad MMO dobre |
OT: To neni AI, to je bohuzel clovek _________________
|
|
Návrat nahoru |
|
|
Mem
Založen: 28. 07. 2007 Příspěvky: 1959 Bydliště: Olomouc
|
Zaslal: 14. listopad 2008, 09:45:27 Předmět: |
|
|
PanVetvicka: Meet Al _________________
|
|
Návrat nahoru |
|
|
MD
Založen: 29. 07. 2007 Příspěvky: 437 Bydliště: Praha
|
Zaslal: 14. listopad 2008, 10:15:25 Předmět: |
|
|
Ad fond vlaken - to je skoro stejne sileny preklad jako "pakovy ovladac" - ja bych tomu taky nerozumel Preklady nekterych pojmu jsou na zabiti.. _________________ - play with objects - www.krkal.org - |
|
Návrat nahoru |
|
|
Augi
Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 14. listopad 2008, 10:59:42 Předmět: |
|
|
Se musím přiznat, že pojem "fond vláken" jsem četl teď poprvé, přestože thread-pool používám (z .NET) |
|
Návrat nahoru |
|
|
|