.[ ČeskéHry.cz ].
Návrh herního klienta (architektůra klient-server)

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



Založen: 14. 05. 2009
Příspěvky: 306
Bydliště: The Void

PříspěvekZaslal: 9. červenec 2011, 19:27:40    Předmět: Návrh herního klienta (architektůra klient-server) Odpovědět s citátem

Dobrý den,

přepisuju teď svou singleplayer hru na herního klienta, a chtěl bych vás poprosit o radu ohledně návhu.

Mám problém s návrhem uspořádaní struktůry celého klienta, původně jsem totiž měl všechny hlavní třídy jako singletony, a celý kód jsem měl všelijak propletený. Rozhodnul jsem se (skoro) všechny singletony odstranit, a předávat raději reference na instance těch tříd.

A protože nevím jak moc budou potřebovat různé části toho klienta mezi sebou komunikovat, rozhodl jsem se všechny ty instance, co jsem měl jako singletony, uchovávat v jedné třídě, kterou jsem nazval ClientContext, a předávat raději referenci na tuto třídu.

Je to dobrý způsob předávání a nebo je to nesmysl? Ten kontext uchovává jen ukazatele na instance těch tříd, nemá vůbec ponětí o implementaci (používám dopřednou deklaraci) těch tříd, takže není možné abych k těm instancím přistoupil, aniž bych musel vložit hlavičkový soubor s deklarací té třídy.

Proto si myslím že je to dobrý způsob, oproti singletonům.

Snažil jsem se narychlo vytvořit nějaký diagram, z jakých tříd se ten klient skládá:


Mohl by mi někdo říct jak moc mám tu struktůru špatně?

Díky za případné rady! Crying or Very sad

P.S. Klient se bude starat jen o renderování a posílání uživatelských příkázů na server.
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Lemik



Založen: 30. 07. 2007
Příspěvky: 138

PříspěvekZaslal: 10. červenec 2011, 00:26:03    Předmět: Odpovědět s citátem

Pardon za OT, ale prostě se musím zeptat.

Ten diagram jsi dělal ručně, nebo v nějakém programu?
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: 10. červenec 2011, 10:13:20    Předmět: Odpovědět s citátem

A co je konkrétně třída ClientContext a jak se liší od třídy Client?

BTW: Neměl by být GUIManager svázán s InputManagerem?
_________________
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
Solid.Sn



Založen: 08. 08. 2009
Příspěvky: 55

PříspěvekZaslal: 10. červenec 2011, 16:51:04    Předmět: Odpovědět s citátem

Lemik napsal:
Pardon za OT, ale prostě se musím zeptat.

Ten diagram jsi dělal ručně, nebo v nějakém programu?


Vypadá to jako http://yuml.me/diagram/scruffy/class/samples . Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
franz



Založen: 30. 07. 2007
Příspěvky: 1325

PříspěvekZaslal: 10. červenec 2011, 20:04:37    Předmět: Odpovědět s citátem

Super, to se hodí Cool
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 -> Game Design Č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