Ich arbeite momentan an einer Klasse, die die Netzwerkfunktionen wie sie in den meisten Spielen verwendet werden kapselt. Also ähnlich wie DirectPlay. Momentan habe ich das Grundgerüst für die abstrakte Vorfahrenklasse entwickelt, die Protokoll unabhänig ist. Bevor ich mich an die Implementierung eines SDL_NET basierten abgeleiteten Klasse mache, würde ich um etwas feedback zum interface bitten. Also ob ich etwas vergessen habe, oder irgendetwas ungünstig gelöst habe. Die Ereignisse sind als Pseudocode dargestellt, natürlich handelt es sich um properties aus typisierten Methodenzeigern.
Code:
unit NetworkGames;
interface
uses classes,sysutils;
Type TPlayerID=integer;
const pidGame =-1;
//ID des Spiels, für Änderung an Spieleigenschaften
pidHost =-2;
//An Host senden
pidOthers=-3;
//An alle anderen senden
pidAll =-4;
//An alle senden
pidSelf =-5;
//An sich selbst senden
// TNetPropertyList=assoziatives array
Type
TNetPropertyList=class;
...
end;
//Ein Netwerkspiel
Type TNetProcess=(npOpen,npJoin,npSend,npKick,npClose,npCheckEvents);
type TCustomNetworkGame=class
protected
public
//Eigenschaften
property AutoCheckEvents:boolean;
//Thread verwenden um regelmäßig auf ereignisse zu prüfen, und die Ergeignisshandler aufrufen
property RaiseException:boolean;
//Exceptions bei Fehlern generieren?
property Host:TPlayerID;
//SpielerID des Hosts
property IsHost:boolean;
//Bin ich Host?
property MyID:TPlayerID;
//Meine SpielerID
property GameProperties:TNetPropertyList;
//Eigenschaften des Spiels, normal nur als Host änderbar
Mitglieder in diesem Forum: 0 Mitglieder und 39 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.