.[ ČeskéHry.cz ].
Struktura MMO hry

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
pkubicek



Založen: 07. 12. 2009
Příspěvky: 12
Bydliště: Brno

PříspěvekZaslal: 7. prosinec 2009, 15:47:16    Předmět: Struktura MMO hry Odpovědět s citátem

Dobrý den všem.

Mám v hlavě vizi MMO strategie. V rychlosti - každý z hráčů má svoji frakci, které mezi sebou navzájem válčí, spojují se apod. Není podstatné čeho se týká, spíše jak by měla vypadat struktura takové hry.

V mé vizi je na serveru databáze (platf. InterBase?) s řadou tabulek, které se mění na základě reakcí jednotlivých hráčů - klientských aplikací. Po změně se data odešlou každému z klientů. Je toto reálné, nebo jakým způsobem by měla probíhat komunikace? Jak fungují podobné hry, ať už jakéhokoliv žánru?

Programoval jsem zatím pouze offline projekty a s databazemi mám minimální zkušenost.

Budu vděčný za jakékoliv rady, nápady a postupy. Jakmile si s vaší pomocí ujasním představu a vytvořím základní kostru, rád se o projektu rozepíšu více. Byl bych také velmi vděčný člověku orientujícímu se v této problematice (programujícímu ideálně v Delphi), který by mě provedl více do detailu.

Děkuji.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
if.then



Založen: 13. 04. 2008
Příspěvky: 579

PříspěvekZaslal: 7. prosinec 2009, 15:59:19    Předmět: Odpovědět s citátem

No vlastně všechny MMO mají databázi a komunikují s ní - např. Travian má MySQL.
_________________
For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pkubicek



Založen: 07. 12. 2009
Příspěvky: 12
Bydliště: Brno

PříspěvekZaslal: 7. prosinec 2009, 16:04:01    Předmět: Odpovědět s citátem

Díky za reakci. Omluv moji neznalost, ale dalo by se rozvést více dopodrobna? Travian pošle dotaz asi vždy při aktualizaci stránky, mě jde spíše o realtime věci. Jak konkrétně komunikuje? Díky
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
if.then



Založen: 13. 04. 2008
Příspěvky: 579

PříspěvekZaslal: 7. prosinec 2009, 16:49:43    Předmět: Odpovědět s citátem

Dnes se přenášejí data přes síť pomocí protokolů TCP a UDP - UDP je méně spolehlivý, tedy nemůžeš zaručit, že se data neztratí, nedoručí 2x nebo neposune pořadí, ve kterém jsou pakety doručeny. Nicméně je vhodný pro velké množství paketů, například pro realtime hry.

Pro komunikaci po TCP i UDP je nutné zvolit IP protistrany. Server by měl mít unikátní IP, nevím jestli je to třeba i u klienta. (to lze zajistit např. použitím Hamachi, řešení bez použití externího programu fakt nevím a závisí i na implementaci)

Pak je nutné nastavit port, po kterém budete data posílat. Pro TCP a UDP je k dispozici dohromady 65536 (pro každý protokol 32768) portů. Port není až tak podstatný po dobu, kdy oba máte stejný port a tento port používá jen vaše aplikace.

Ještě nastíním jak by to mělo asi vypadat:
- Klient pošle požadavek na server, v Delphi je na to dobrá komponenta TClientSocket.
- Server požadavek zpracuje, vyjme příslušné údaje z databáze a pošle výsledek klientovi. (v Delphi vhodná asi TServerSocket)
- Klient odpověď obdrží a zpracuje.

P.S.: Samozřejmě to nevím 100% přesně, je to z různých zdrojů a mnohé jsou už dost staré.
_________________
For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Yossarian



Založen: 28. 07. 2007
Příspěvky: 274
Bydliště: Šalingrad

PříspěvekZaslal: 7. prosinec 2009, 16:56:29    Předmět: Odpovědět s citátem

if.then napsal:

Server by měl mít unikátní IP, nevím jestli je to třeba i u klienta.

Pak je nutné nastavit port, po kterém budete data posílat. Pro TCP a UDP je k dispozici dohromady 65536 (pro každý protokol 32768) portů. Port není až tak podstatný po dobu, kdy oba máte stejný port a tento port používá jen vaše aplikace.

lol. sorry za oneliner, ale todle sem si nemoh odpustit Laughing

edit: portu je 2^16 pro tcp i udp, a server by mel mit _verejnou_ ip (nebo nejak forwardovany porty.. nastuduj si princip tcp komunikace a NAT :] )
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
if.then



Založen: 13. 04. 2008
Příspěvky: 579

PříspěvekZaslal: 7. prosinec 2009, 17:19:53    Předmět: Odpovědět s citátem

No tak sorry no, samozřejmě že jsem myslel veřejnou IP.

Co se týče těch portů, tak je to další důkaz, že PC worldu se nedá věřit Smile
_________________
For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Quiark



Založen: 29. 07. 2007
Příspěvky: 816
Bydliště: Chlívek 401

PříspěvekZaslal: 7. prosinec 2009, 17:29:24    Předmět: Odpovědět s citátem

Na serveru musí být něco, co dokáže souběžně přijímat data od více zdrojů a zároveň posílat updaty klientům. Pro tyto účely se obvykle používají databáze, konkrétně relační databáze (MySQL, MSSQL, PostgreSQL, ...). V poslední době začínají být populární i takzvané nerelační (tzv. NoSQL) databáze, které plní stejnou úlohu, ale jdou na to trochu jinak. Na tobě je volba jednoho z těchto přístupů. Pokud chceš jít konzervativní cestou, pak to bude klasická relační databáze.

Co se týče realtime aktualizací, je to jednoduché. Pokud chceš, aby klient viděl nějakou změnu, musí mu ji někdo poslat. Jenže posílat informaci vždy, když se cokoliv změní obvykle vede k velkému nárůstu zpráv, nezbývá, než informace aktualizovat méně často a po větších skupinách. Chtělo by to mít nějakou představu, jak bude hra náročná na objem informací, kolik budeš mít hráčů, jak často musí mít nové informace (např. stačí jednou za 5 sekund?) a podobně.
_________________
Mám strach
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
MePHyst0



Založen: 28. 07. 2007
Příspěvky: 85
Bydliště: SVK/CZK

PříspěvekZaslal: 7. prosinec 2009, 18:20:56    Předmět: Odpovědět s citátem

Odporucam vela vela studovat, ak si s databazami este nikdy nepracoval a chces spravit MMO(zalezi aj co myslis pod MMO, ci system co obsluhuje 10000 klientov v jednej zemi, alebo system co obsluhuje 100mega na celom svete), tak inkubacnu dobu(rozumej zatvorim sa do pivnice a nevylezem dokym to vsetko nepochopim) tak na rok. mozes zacat napr tu http://www.gamedev.net/columns/books/bookdetails.asp?ProductID=216 , potom si mozes citat o synchronizacii klientov, skalovani serverov, optimalizacii posielanych dat, streamovani svetov(vseobecne dat) atd atd
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
pkubicek



Založen: 07. 12. 2009
Příspěvky: 12
Bydliště: Brno

PříspěvekZaslal: 8. prosinec 2009, 10:51:34    Předmět: Odpovědět s citátem

Díky všem zkušnějším za odpovědi. Plus mínus je to tak jak jsem předpokládal. Nehodlám se pouštět do žádných velkých projektů. Pomalinku chci jen udělat nějakou funkční kostru do které pak hodlám postupně nabalovat.

V plánu je maximálně okolo 150-200 hráčů na jeden herní svět. Mělo by se jednat o realtime strategii ve stylu crusader kings, europa universalis, hearts of iron apod. Vyjímečná by měla být v celé řadě věcí, především v systém obtížnosti a startu začínajících hráčů, v neposlední řadě pak v důrazu na management a vztahy mezi hráči, místo na souboje.

Pokud by někoho zajímalo více a popřípadě mi chtěl pomoci (ne psát za mě kód, ale spíše mě otcovsky vést) budu dnes celý den na icq 230892645, popř. mail pkubicek@la-femme.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
DespeRadoX



Založen: 28. 07. 2007
Příspěvky: 520

PříspěvekZaslal: 8. prosinec 2009, 15:02:16    Předmět: Odpovědět s citátem

typujem ze realtime strategia bude znacne narocnejsia nez klasicke mmorpg typu wow a to hlavne koli velkemu mnozstvu updatovanych jednotiek.....skus si precitat toto napriklad http://www.gamasutra.com/view/feature/3094/1500_archers_on_a_288_network_.php...a tiez nieco o predikcii ....no neviem , toho co sa musis naucit je naozaj strasne vela....vela stastia s projektom.
_________________
http://www.touchgames.eu/
http://playito.com
TW: @Despo100
Space Merchants Online ...zruseny, pracujem na mobilnej verzii space merchantu
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
pkubicek



Založen: 07. 12. 2009
Příspěvky: 12
Bydliště: Brno

PříspěvekZaslal: 10. prosinec 2009, 15:41:12    Předmět: Odpovědět s citátem

Nikoliv realtime ve stylu AOE, ale ve stylu Europa Universalis. Zde těch jednotek tolik není. Navíc souboje hodlám minimálně ze startu značně zjednodušit.

Naučit se toho budu muset opravdu hodně. Naštěstí nemám žádnou časovou osu ani milestony. Takže času dost. Jak tak ale zjišťuji bez zkušného rádce nemám moc šanci. Uvidím jak na tom budu s časem, abych mohl studovat jak na to.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
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