Autor Beitrag
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Di 01.03.11 23:40 
Hi!

mittlerweile haben wir ja doch einige (semi-)&professionelle Spieleentwickler. Das trifft sich gut, ich will nämlich mal wiessen wie ihr das löst.

Ich hab einige nette kleine Spielideen, aber meistens scheitert die Implementation daran dass ich eine brauchbare Methode bräuchte, ohne viel Codeverdopplung Multiplayerfähig zu sein. Als schönes Kommunikationsframework hat sich user profile iconNarses' NBFPA erwiesen (mit ein bisschen Code drumrum). Das ist also nicht das Problem, eher die grundsätzliche Modul-Aufteilung.

Bisher sehe ich da 3 Möglichkeiten:
  1. Einzelspieler mit PC-Gegner und Mehrspieler völlig getrennt bauen (Minecraft, glaube ich)
  2. Eingebauter Server und für Einzelspielerpartien auf localhost verbinden (in ProjektH/M, für Tester von damals)
  3. Dedicated Server und diesen für Einzelspielerpartien mit Parametern starten (SA:MP)

Ist aber alles doof; entweder wenig Benutzerfreundlich oder unpraktisch zu programmieren.

Generell möchte ich aber vermeiden, den Server nur als Spiegel zu benutzen, weil es dann ja doch einfacher wird zu cheaten (wenn kein "authoritativer" Spielzustand existiert).

Also, wie gesagt: was macht man da am Besten?

Danke schonmal,
Martok

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mi 02.03.11 01:02 
Du hast eine ganz entscheidende Methode noch vergessen (oder aber ich hab sie in deiner Beschreibung grad nicht gefunden):

Server in die Anwendung einbauen und im Einzelspieler einfachmit Pseudo-Sockets mit diesem reden. Im Grunde also user profile iconNarses' NPFBA auf Pipes im Backend. Und da Du dann Code-Dopplungen dort hättest, tauscht Du einfach den Low-Level-Socket-Support gegen eine Klasse aus, die entweder Socket oder Pipe ist.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Martok Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Mi 02.03.11 02:22 
Gut, das ist ja im Prinzip Variante 2, nur mit wesentlich mehr Aufwand :roll:

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."