Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

31

04.07.2007, 09:12

Ich hab nochmal etwas über das Eventsystem nachgedacht. Ich werde jetzt einen Eventmanager einbauen, an den alle events geschickt werden und der verarbeitet die dann. Das ist kein Problem für mich, aber ich frage mich grade, wieviel soll ihc über events lösen?

Bewegung? Kollision? Hero - Spiel Interaktionen? (Dazu könnt man auch ein kleines Client/Server system aufsetzen, würde auch den aufwand für multiplayer extrem klein halten). Oder soll ich sogar noch interne Funktionen wie z.B. FrageInputab, SpieleSound(xyz)?

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

32

04.07.2007, 10:40

Alle jene Ereignisse welche auch über Netzwerk relevant sind... Also ziemlich alle ;)

btw: machs aber ja virtuellen Methoden und nicht mit Callback-funktionen
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

33

04.07.2007, 12:37

ich wollte eine Abstrake klasse einbauen. die hat dann eine virtuelle methode DoEvent und die muss dann aufjedenfall überschrieben werden.

also praktisch alles was für den clienten wichtig ist um das spiel zu sehen und zu spielen? also hauptsächlich alle funktionen des ui oder?

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

34

04.07.2007, 15:05

Ja... überhaupt alles... Auch wenn etwas "von alleine passiert" sollte es dafür eine Nachricht geben (aus Synchronisationsgründen!). Ein weiterer Vorzug dieses Systems liegt darin, dass die KI dann direkt mit diesen Nachrichten ihren Spieler steuern kann... Sehr viel einfacher!
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

35

09.07.2007, 15:11

So, ich bin jetzt dabei mein Messagesystem praktisch umzusetzen. Hab dafür den Tipp bekommen eine Factory zu benutzen.

http://www.mathematik.uni-ulm.de/sai/ss03/oodb/slides/factory.html

dazu hab ich mir das angeguckt. an sich hab ich das verstanden.

ich habe eine fabrik, die hat eine methode createEvent("Event1"); und dann wird das von der abstrakten klasse Event abgeleitete Event1 erstellt.

so, erstmal dazu eine frage: hab ich dann in der createEvent einen switch für das namensparameter und erstelle danach ein objekt von Event1?

und dann hab ich da etwas von einer Factory in der Abstraktion gelesen, wie ich das umsetzen soll hab ich garkeien idee, kann mir einer dazu evtl mal etwas pseudocode geben? diesen bsp code da check ich garnicht. ist glaub ich python oder so?

36

11.07.2007, 19:31

kann mir keiner dazu wenigstens nochmal nen link geben? :(

the[V]oid

Alter Hase

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

37

13.07.2007, 15:54

Diese Event-Manager Sache klingt ja echt interessant, ich habe aber irgendwie nicht ganz verstanden, welche Vorzüge die Verwendung eines Event-Managers mit sich bringt im Gegensatz zum "klassischen" Programmierstil... hier hat irgendwer geschrieben, dass dadurch die Übersichtlichkeit erhöht werden würde, jedoch kann ich das nicht ganz nachvollziehen. Ferner dürfte ein Event-Manager die Performance des Spiels doch herunterschrauben, da ständig Ereignisse erst noch identifiziert werden müssen, bevor sie verarbeitet werden können. :roll:

38

13.07.2007, 19:58

wenn das mal läuft soll das ganze so funktionieren:

Es gibt eine Eventbasisklasse.
die hat eine virtuelle methode doEvent.
dann leitest du für jedes mögliche Event eine klasse davon ab und überschreibst doEvent.

so, und dann erstellst du in laufzeit ein event, fügst das einer liste oder einem vector hinzu und lässt diese liste durchlaufen und rufst für jedes event doEvent auf, dafür muss der aufrufer dieser Liste nicht wissen von was für einem typ das event jetzt genau ist.[/code]

the[V]oid

Alter Hase

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

39

13.07.2007, 20:05

Ja ok, so etwa habe ich mir das bereits vorgestellt, aber wo sind die Vorzüge zu einer Variante ohne Events? Warum steigert sich die Übersichtlichkeit? Kann ich mir grade nicht wirklich vorstellen ^^ :oops:

40

13.07.2007, 21:49

der vorteil ist mmn, das du im großen und ganzen das Event von überall auslösen kannst und immer nur den pointer auf den singleton dir holen musst und nicht immer iwelche speziellen pointer herholen.
also es ist mehr abstraktion.

die übersichtlichkeit steigert sich deshalb weil du nicht immer dir zig pointer herholen musst damit du iwas machen kannst.

Werbeanzeige