AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

OOP und RPG

Ein Thema von Master_RC · begonnen am 3. Nov 2005 · letzter Beitrag vom 4. Nov 2005
 
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#5

Re: OOP und RPG

  Alt 3. Nov 2005, 19:35
Hey,
OOP ist eigentlich mehr als gut geeignet für RPGs, schließlich ist die Idee dahinter, das reale Leben (was auch immer das sein soll) abzubilden.
Prinzipiell ist jedes einzelne Objekt (Avatar, NPC, Item, Gebäude, ...) ein eigenes Objekt. Du solltest diese in gemeinsame Gruppen (z.B. Avatar und NPC) stecken. Wenn etwas gemeinsame Eigenschaften hat, gehört es in eine Gruppe (und die gemeinsamen Eigenschaften in eine Basisklasse von der alle Mitglieder erben).
So kannst du auch später leicht neue Dinge deinem RPG hinzufügen.
Was Byte vs. Integer (Cardinal) angeht, solltest du gut überlegen ob es sich lohn die Wertvollen 3 Byte einzusparen. Immerhin wird deine CPU intern eh mit 32Bit arbeiten und somit sind Integers (und Cardinals) immer das Perfomateste.
Ein wichtiges Prinzip ist es, dass du dir von Anfang an auch eine Möglichkeit überlegst, wie du auf Ereignisse reagieren möchtest. Wenn sich z.B. die Stärke eines Spielers ändert, solltest du nicht direkt nur den Wert Strength (o.ä.) ändern, sondern dies über Propertys tun. Diese haben den Vorteil, dass sie mit einer Methode verknüpft werden können. Und in eben dieser kannst du auf Veränderung reagieren.
An sich solltest du auch eine Art Event-Listener-Modell einplanen. Am einfachsten (schönsten) geht dass, indem du zu allen Ereignissen ein Interface oder eine abstrakte Klasse (also immer eine für Zusammengehörige) vorsiehst. In diesen werden dann zu jedem Ereignis Methoden definiert, die als Argument das eingetretene Ereignis bekommen. Nun kannst du in zentraleren Klassen, die das Ereignis auslösen Listener registrieren, die immer benachrichtigt werden, wenn ein Ereignis auftritt. Dazu müssen die Objekte, die eine Nachricht erhalten wollen, das entsprechende Interface implementieren (oder von der abst. Klasse erben) und sich bei der zentralen Klasse als Listener registrieren.
Tritt nun ein Ereignis ein, kann die Klasse einfach jedem der Listener über die entsprechende Methode mitteilen, dass ein Ereignis eingetreten ist (und die Parameter übergeben).

Wie du etwas speicherst, kommt ganz drauf an, was du alles speichern möchtest und was nicht. Du solltest alles was Variablen eines Objekts sind in einen großen Stream schreiben (der wahrscheinlich gar nicht so groß wird). Dann gibt es auch noch gute Komponenten, die es dir erlauben Files zu packen. Gibt auch da viele Möglichkeiten.

Ich glaube das ist schon mal (ein stark vereinfachter) erster Einblick, was du alles mit OOP machen kannst. Aber (auch wenn es hier noch sehr abstrakt ist) ein RGP ist halt doch ein sehr umfangreiches Projekt! Also nicht zu groß planen, Qualität sollte immer Vorzug haben und dann ist etwas kleines auch leichter zu erweitern und macht auch viel mehr Spaß!
Den wünsch ich dir auch,

Gruß Der Unwissende
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz