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

SwatzZ

Treue Seele

  • »SwatzZ« ist der Autor dieses Themas

Beiträge: 119

Beruf: Gymnasist (10. Klasse)

  • Private Nachricht senden

1

26.06.2013, 12:41

Überlegungen zu einem Pokémon-Klon

Hallo!
Da nun die Sommerferien für mich anfangen und ich dieses Jahr nichts besonderes vor hab, dachte ich mir, ich könnte ein größeres Projekt starten, was das Programmieren angeht. Ich hab schon etwas länger her in meiner Klasse rumgefragt, was für ein Spiel sie gerne hätten und da einige unter ihnen begeisterte Pokémon-Fans sind, dachte ich, ich mach einen kleinen Pokémon-Klon. Das erst einmal zum Grund. Nun hatte ich auch etwas Zeit zum Überlegen, wie ich das machen könnte und habe mich schonmal in Klassen geübt, weil ich dachte, dass das für Pokémon wichtig sein wird.
Nun wollte ich eure Meinung hören, weil ich so etwas noch nicht gemacht hab :D

Meine Grundideen:

Ich würde eine Ober-Pokémon-Klasse machen, in der die virtuellen Methoden von Attacke1, Attacke2, Attacke3 und Attacke4 zusammen mit den floats Angriff, Verteidigung, Level usw. sind. Nun würde ich die ganzen Unterklassen für die Pokémon machen, in denen dann alles geerbt wird. Die Klassen würden so funktionieren:
•Im Konstruktor wird ein Integer für das Level abgefragt, je nach dem Wert werden dann die Variablen für Angriff, Verteidung, Spezial-Angriff initialisiert, außerdem bekommen die Pokémon da ihr Aussehen
•Es wird eine Methode void setLevel(int level) geben, die die ganze Zeit läuft und je nach XP einen Level-Up durchführt

Mit den Zufallskämpfen mache ich es wohl so, dass jedes Mal, wenn der Spieler im Gras ist, zufällig eine Funktion aufgerufen werden kann, die je nachdem, wo sich der Spieler befindet, ein Pokémon mit einem bestimmten Level erstellt und dann wohl die große Funktion für einen Pokémon-Kampf aufruft.

Jetzt kommt das Thema, wo ich mir nicht sehr sicher bin. Es geht darum, dass der Spieler 6 Pokémon dabei haben kann, die er jeweils immer wieder tauschen kann. Ich würde dafür (ich weiß nicht genau, ob das geht) sechs Zeiger auf die Ober-Pokémon-Klasse erstellen und sie dann immer auf bestimmte Pokémon-Unterklassen richten. Geht das so?


So, ich denke, dass wären jetzt die heiklen Themen. Die Pokémon-Bilder macht ein Kumpel von mir, der kann das :D
Ich halte das Spiel einfach, soll ja nur ein 30-Minuten-Spiel werden, es geht mir aber auch um die Übung und die Bestätigung, dass ich in den nun fast drei Monaten, die ich programmiere, schon etwas erreicht hab.

Wenn ihr euch das durchlest, was ich hier geschrieben hab.. Hab ich einen Denkfehler, irgendetwas was ich nicht bedacht hab? Stimmt das, was ich geschrieben hab und denkt ihr, dass sowas realisierbar ist?

Danke. :)

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

26.06.2013, 12:42

Hab ich einen Denkfehler, irgendetwas was ich nicht bedacht hab?
Jap. Nennt sich Urheber- und Markenrecht.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

SwatzZ

Treue Seele

  • »SwatzZ« ist der Autor dieses Themas

Beiträge: 119

Beruf: Gymnasist (10. Klasse)

  • Private Nachricht senden

3

26.06.2013, 13:09

Hab ich einen Denkfehler, irgendetwas was ich nicht bedacht hab?
Jap. Nennt sich Urheber- und Markenrecht.
Ich werd ja nicht das Spiel kopieren, ich will ja nur das Spielprinzip. Ja gut... auch nicht besser... Aber ich veröffentliche es ja nicht, dass ist nur fürn paar Kumpel :D

4

26.06.2013, 13:35

Hört sich im Grunde genommen solide an. In einem großen Projekt würde man zwar vermutlich einige Dinge anders lösen, aber als Anfängerprojekt ist das so schon ganz ok.

Bzgl. Urheber- und Markenrecht: Es schmückt sich ja niemand mit fremden Federn, da ja absolut jeder weiß, dass er sich Pokemon nicht selber ausgedacht hat, und wenn die Grafiken auch noch selbstgemacht sind, sehe ich da kein Problem, solange es nicht groß verbreitet wird.
Lieber dumm fragen, als dumm bleiben!

Sp3iky

Treue Seele

Beiträge: 232

Beruf: Entwicklungsingenieur

  • Private Nachricht senden

5

26.06.2013, 17:24

Wenn man es genau nimmt, darf er es gar nicht verteilen, sobald überhaupt das Wort Pokemon oder irgend einer der Namen verwendet wird. Das Spielprinzip und die Level darf man sogar kopieren, wie man will, nur Grafiken, Namen und spezifische Begriffe sind geschützt.

Abgesehen davon kann er aber ruhig loslegen. Ich denke nicht, dass hier Ambitionen bestehen, das Spiel großräumig zu verteilen oder gar Geld damit zu verdienen.

6

26.06.2013, 18:13

Wenn es wirklich super toll wird kann man ja immer noch sämtliche Hinweise auf Pokemon entfernen.

7

26.06.2013, 18:24

Zitat

Ich würde eine Ober-Pokémon-Klasse machen, in der die virtuellen Methoden von Attacke1, Attacke2, Attacke3 und Attacke4 zusammen mit den floats Angriff, Verteidigung, Level usw. sind. Nun würde ich die ganzen Unterklassen für die Pokémon machen, in denen dann alles geerbt wird. Die Klassen würden so funktionieren:
•Im Konstruktor wird ein Integer für das Level abgefragt, je nach dem Wert werden dann die Variablen für Angriff, Verteidung, Spezial-Angriff initialisiert, außerdem bekommen die Pokémon da ihr Aussehen


Auf die bisher genannten Punkte möchte ich nicht eingehen, statt dessen solltest du dir überlegen, eine allgemein "Pokemon" Klasse zu schreiben, und diese mit Daten zu bestücken (Level, Angriff, PokemonID, etc). Desweiteren solltest du auch nicht großartig erben (zumindest nicht für jedes Pokemon eine eigene Klasse), sondern dir entsprechende Daten aus einer Datei auslesen. Macht das ganze ein wenig flexibler.

Entsprechende Parameter für "welches Pokemon darf welche Attacke erlernen; wann findet eine Entwicklung zu was statt; welche Attacken werden beim LvlUp erlernt" und solche Dinge lassen sich auch ganz einfach in einer Datei speichern, und sollten meiner Meinung nach nicht Hardcoded im Quelltext stehen (sofern ich dich richtig verstanden habe).
Ansonsten gibt es tatsächlich erst einmal wichtigere Dinge als die Implementierung der einzelnen Pokemon (Maps anzeigen, Steuerung allgemein, etc).

mfg

8

28.06.2013, 19:47

Das soll jetzt nicht demotivieren, aber ich würde empfehlen, dass von Anfang an zeitlich so zu planen das Ganze zweimal zu machen.

Wenn du das vorher noch nie gemacht hast kannst du das garnicht so planen wie man es eigentlich müsste, viele Denkfehler werden dir erst beim Programmieren auffallen. Das ist nicht schlimm, das ist einfach so, bei jedem. Einige dieser Denkfehler kann man durch Hacks noch irgendwie ausmerzen, andere sind eher strukturell und man hätte zu einem früheren Zeitpunkt sich anders entscheiden müssen.

Packst du das ganze Projekt anschließend ein zweites Mal an weist du solche Sachen und kannst genauer planen. Du kannst dann auch viel Code übernehmen (Grafik zeichnen, Level laden, ...), aber die Struktur wird beim zweiten Mal eine andere sein. Das betrifft nicht unbedingt deine Objekte (das mit der Pokemon-Oberklasse ist denke ich relativ straightforward), sondern etwa Programmfluss, Threads, Design-Patterns, Ein-/Ausgabe und allgemein das User Interface.

Wenn du die gleiche Aufgabe mit neu hinzugelerntem Wissen noch einmal angehst stellt sich auch ein Aha-Effekt ein. Z.b. wenn man ein Programm vorher ohne Design-Patterns macht und anschließend noch einmal mit, erkennt man direkt was es einem bringt. Allgemein lerne ich zumindest solche Konzepte durch Anwendung und Vergleich deutlich besser.

Viel Erfolg.

Werbeanzeige