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

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

11

13.06.2013, 10:05

Mach doch irgendwas. Von mir aus machst du Kniffel. Je länger du hier überlegst;)
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

BK Simon

Treue Seele

  • »BK Simon« ist der Autor dieses Themas

Beiträge: 151

Beruf: Student

  • Private Nachricht senden

12

13.06.2013, 11:09

Mein Problem dabei ist noch, ich schaue mir die Spiele an und dann überlege mir, was für sinnvolle Klassen ich für die Spiele entwickeln sollte, doch irgendwie habe ich da noch keine Ahnung, was für Klassen ich für die jeweiligen Spiele programmieren sollte, wenn man sich zum Beispiel Kniffel anschaut.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

13

13.06.2013, 11:36

Auch da musst du einfach anfangen. Du kannst das ohne Erfahrung nicht vorplanen. Sinnvoll ist es oft eine Klasse für das Spiel anzulegen. Dann könntest du eine Klasse für den Würfel benötigen. Möglicherweise gibts dann noch ne Klasse für einen Spieler, damit auch mehrere abwechselnd an einem Rechner spielen können. Dann braucht jeder Spieler seine eigene Punkteliste, daraus könnte man auch eine Klasse machen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

BK Simon

Treue Seele

  • »BK Simon« ist der Autor dieses Themas

Beiträge: 151

Beruf: Student

  • Private Nachricht senden

14

13.06.2013, 12:43

Was für Attribute und Methoden befinden sich denn in so einer Spielklasse ?

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

15

13.06.2013, 13:15

Das was du halt brauchst. Mach einfach mal ein neues Projekt auf und fang an. Das lernt man nicht durch lesen oder Sachen vorgekaut bekommen. Das lernt man durchs machen. Und jedes mal wirst du in wenig besser. In die Spielklasse käme normal alles das rein was in deinem Spiel vor kommt. Das kannst du aber auch wieder ganz anders machen. Wie gesagt, starte ein Projekt und versuch es einfach mal. Auch wenn es erst mal fremd ist. Einfach lerning by doing. Und wenn du nicht weiter kommst versuchst du es eben ein wenig anders.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

16

18.06.2013, 12:38

Um auf eine Klassenstruktur zu kommen, könntest du aber auch folgendes machen:

Schreibe dir eine ausführliche Beschreibung deines Spiels auf, mit allen Möglichkeiten, die der Spieler im Spiel hat.
Was kann welcher Spieler wann unter welchen Umständen machen, was sind die Auswirkungen der Aktionen, wann ist das Spiel vorbei und wann hat ein Spieler das Spiel gewonnen?

An dieser Stelle wäre es vielleicht ganz gut, dass du einfach mit der Beschreibung anfängst und danach den Rest meines Beitrags liest.

Jeder Substantiv, der in deiner Beschreibung auftaucht, ist potenziell auch eine Klasse in deinem Spiel. Aus "Die Spieler meines Spiels 2 (wie viele waren das?) Würfel werfen und für jeden Wurf werden die Punkte zusammengezählt. Wer am Ende die meisten Punkte hat, hat das Spiel gewonnen. Die Punkte eines Wurfs werden ermittelt, indem [...]" könnte man die Substantive "Spiel", "Spieler", "Würfel", "Wurf", "Punkte" und "Ende" herauslesen. Ich kann bereits sagen, dass nicht alle Substantive auch geeignete Klassen sind, dazu weiter unten mehr.
Jedes Adjektiv, das in der Beschreibung aufteucht, deutet potenziell auf eine Eigenschaft einer Klasse hin. "[...] Ein normaler Pasch während eines Wurfs der aus 2 Würfeln wird gelb dargestellt, ein Pasch aus 3 Würfeln grün." beinhaltet "gelb" und "grün", die sich beide auf einen Wurf beziehen. Ein Wurf hat also eine Eigenschaft, deren Werte unter anderem "gelb" oder "grün" sein können. Da diese beiden Farben sind, ist die entsprechende Eigenschaft die Farbe des Anzeigetexts oder auch einfacher "farbe". Für später kannst du im Hinterkopf behalten, dass diese Eigenschaft abhängig von anderen Dingen sind.
Jeder Verb deutet potenziell auf ein Verhalten und somit auf eine Methode hin. In der ersten Beschreibung gibt es da beispielsweise "Spieler können Würfel werfen", "für jeden Wurf werden Punkte zusammgengezählt" und "die Punkte eines Wurfs ermitteln". (In diesem Fall habe ich nicht nur ein einzelnes Wort genommen, damit der Kontext ersichtlich bleibt). Daraus kann man also herauslesen, dass die Spieler vielleicht eine Methode benötigen, die dann anhand der Würfel den Wurf dieser simuliert und dass wür einen Wurf die Punkte zusammengezählt oder ermittelt (oder errechnet) werden. Verben, die einen Besitz darstellen, stellen eine Ausnahme dar, da dies eine Beziehung zwischen 2 Klassen darstellt (und somit weitere Eigenschaften). "Spieler hat Punkte" deutet darauf hin, dass der Spieler also Punkte besitzt, allerdings gilt auch hier wieder, dass es sich um einen Zusammengesetzten Wert handelt, den man evtl. nicht separat speichert, sondern erst bei Abfrage zusammensetzt. Hätte ich die 2. Beschreibung fomuliert, hätte diese auch ein "Ein Wurf, der aus einem 2er-Pasch besteht, [...]" beinhalten können, also im wesentlichen "Ein Wurf besteht aus einem Pasch", würde man eine genauere Definition haben, wäre es vielleicht sogar "Ein Wurf besteht aus Augenzahlen".
Wenn du dann schon eine gewisse Struktur für dein Spiel hast, solltest du dieses noch weiterhin bewerten. Wenn eine Klasse nur einen einzigen Wert beinhaltet und ansonsten kein Verhalten/keine Methoden, soltle man darüber nachdenken, ob es eine eigene Klasse sein muss. "Punkte" beispielsweise würde nur aus einer Zahl (int/uint/long/ulong/...) bestehen. In einem solchen Fall ist es ziemlich eindeutig, dass statt einer eigenen Klasse einfach direkt der entsprechende Wert gespeichert wird. Das kann man auch auf die Augenzahlen der Würfel übertragen, allerdings gibt es da zumindest einen festgelegten Wertebereich, weshalb man sich über die Verwendung von Enumerations (sofern in der jeweiligen Sprache vorhanden) Gedanken machen kann. Die Beschreibung am Anfang besitzt weiterhin einen Hinweis auf eine Beziehung, die nicht über ein Adjektiv oder Verb ersichtlich ist: "die Spieler meines Spiels" oder anders formuliert vielleicht "die Spieler im Spiel"/"die Spieler des Spiels". Ein Spiel steht also in Beziehung mit einer Mehrzahl von Spielern.

Das, was man am Ende des Ganzen hat, sollte erstmal einen Anfang darstellen und kann unter Umständen noch unvollständig sein. Ich gehe, wenn ich mit etwas anfange, zwar nicht so vor, dass ich alles möglichst ausführlich auf Papier bringe, allerdings gehe ich in Gedanken vergleichbar zu dem, was ich hier beschrieben habe, meine "Spieldefinition" durch und überlege, welche Klassen, Member und Methoden ich benötigen könnte.

(Es kann durchaus sein, dass ich die Vorgehensweise nicht gänzlich richtig beschrieben habe oder weiterhin noch "Regeln" formulierbar sind, allerdings vertraue ich darauf, dass die anderen Forenmitglieder auf entsprechende Punkte hinweisen werden. ;) )

Ansonsten kann ich eigentlich nur wiederholen, wasi m grunde bereits geschrieben wurde: am Besten siehst du, was du tatsächlich benötigst, indem du einfach mal anfängst und guckst, was du ggf. ändern musst. Wichtig ist dabei, dass man sich nie zu sehr vor Veränderungen an der Struktur scheuen sollte. In meinem Action Adventure, welches schon die eine oder andere Zeile Code mehr besitzt, ich habe noch einige Stellen, die überarbeitet werden müssen, aber ich habe auch schon viele Stellen bereits überarbeitet (Kollisionserkennung (3x "neu" geschrieben... =/), Dateiformat der Maps, Umstellung von X und Y sowie Breite und Höhe auf Position und Größe (jeweils auf einen anderen Datentyp umgestellt) etc. ...).
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Werbeanzeige