Um zuerst mal meinen Standardkommentar loszuwerden:
Bevor du in der Lage bist, C++ zu schreiben, ohne permanent irgendwo nachschlagen zu müssen, kannst du ein Onlinegame komplett vergessen. Ehrlich. Du mußt deine Sprache kennen, bevor du damit sinnvoll arbeiten kannst. Für ein Onlinegame mußt du ziemlich gut sein, weil es nicht reicht, wenn du Code schreibst, der funktioniert. Du mußt Code schreiben, der funktioniert und der schnell ist.
Dann mußt du viel lernen. Sehr viel. Du mußt beispielsweise wissen, wie man die Spielwelt im Speicher hält und wie man berechnet, welche Ereignisse welche Spieler betreffen (ansonsten erzeugt man zu viel Datenverkehr). Allein schon die Verwaltung der Welt ist viel Arbeit. Legst du deinen Kram in Arrays ab oder in Bäumen? Sind deine Bäume binär, sind sie Suchbäume, vielleicht sogar AVL-Bäume? Wann braucht man einen Baum, wann eine Tabelle, wann keins von beidem?
Solcher Kram ist schwer einzuschätzen und ohne Erfahrung macht man garantiert Fehler.
Man könnte ein Peet-to-Peer-Netzwerk verwenden, bei dem allein die Verdrahtungsmöglichkeiten fast unendlich sind. Man könnte beispielsweise einen Stern machen (identisch mit einem nicht-dedizierten Server), einen Ring (wo man dann die Wahl hat zwischen einem normalen Ring, einem doppelten Ring, einem Token Ring und einem doppelten Token Ring) oder einem Hyperwürfel (mit oder ohne abgerundete Kanten). Man könnte auch ein zyklisches Netz machen. Oder man verbindet einfach alle Clients untereinander.Zitat von dadie
Oder man implementiert zwei oder mehr Möglichkeiten gleichzeitig.
Glaub' ja nicht, daß mit den drei Optionen dedizierter Server/nichtdedizierter Server/P2P schon alles gesagt ist.