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

1

16.10.2015, 19:00

Wie gehe ich die Programmierung am besten an?

Hi Leute,

ich habe mich in letzter Zeit mit libGDX beschäftigt (danke für die Empfehlung!) und ein bisschen rum programmiert, um ein Gefühl dafür zu bekommen. Das funktioniert soweit auch alles ganz gut, weswegen ich jetzt dabei bin, meine Idee für ein Spiel genauer zu entwerfen und alles zu strukturieren.
Allerdings habe ich ein Problem bei der Programmierung - Ich weiß nicht genau, wie ich diese angehen sollte.
Grober Umriss des Spiels: Immer gleicher Bildschirm, auf dem man Angriffe abwehrt. Spieler, Umgebung und Angriffe verändern sich im Laufe der Zeit, und auch, wenn man nicht spielt, wird eine Ressource gesammelt.
Wenn ich jetzt einfach alle Bereiche des Spiels in einem programmiere, könnte es zwar theoretisch funktionieren, aber sowohl das betrachten der Bereiche voneinander getrennt als auch das Testen wäre sehr schwierig bis unmöglich (immerhin müsste ich für jede Situation entweder von vorne anfangen oder ein eigenes SaveGame machen).
Also scheint es nicht besonders sinnvoll zu sein, z.B. nur die drei Klassen Manager, GameScreen und PauseScreen zu haben, wobei der Manager die Screens handhabt, der PauseScreen selbstverständlich ist und alles andere im GameScreen steht.
Ist eine Unterteilung in Klassen möglicherweise sinnvoll, wo jedes Element eine einzelne Klasse darstellt und der GameScreen diese dann managed? Aber auch dann weiß ich noch nicht, wie ich den Code später testen soll.

MfG, Joshflux

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

2

16.10.2015, 19:51

Was die Struktur des Codes angeht.. das ergibt sich mit der Zeit. Gerade mit wenig Erfahrung kann man das nicht im voraus planen, und muss einfach mal ein wenig experimentieren und mehrmals waerend der Entwicklung umstrukturieren (Das ganze nennt sich Refactoring und ist voellig ueblich auch in der professionellen Softwareentwicklung).

Generell ist deine Idee eine Klasse fuer verschiedene Elemente des Spiels zu bauen nicht verkehrt.

Was das testen angeht, da gibt es mehrere Moeglichkeiten:
- Du koenntest kleine Testanwendungen bauen die Teilbereiche testen (z.B. eine Anwendung in der du direkt in ein Testlevel mit dem Spieler und einem Gegner kommst)
- Du kannst Cheat-codes einbauen (entweder im Spiel oder im Code direkt ala if(TESTING) openTestLevel(); else openMainMenu(); )
- Unit tests koennten auch hilfreich sein, sind in Spielen jedoch oft relativ schwierig vor allem wenn man noch nicht sehr viel Erfahrung hat.

3

16.10.2015, 20:23

Gut, das beruhigt mich, dass das auch in großen Firmen normal ist :).
Dann setze ich mich denke ich wirklich so da dran, dass ich in die GameScreen Klasse nur das packe, was dort dargestellt wird, und alles andere in separate Klassen.
Auch das mit den kleineren Anwendungen fürs Testen klingt gut und werde ich dann wohl versuchen, wenn es soweit ist.

4

15.12.2015, 12:14

Ich würd mich vor allem zu Beginn nicht so sehr damit aufhalten, alles in verschiende Bereiche, aufteilen zu wollen. Das wird zwar immer so gelehrt, aber in der Realität ist das, für Anfänger aber auch für erfahrene Entwickler schwer möglich. Vor allem wenn man ständig mit neuen Elementen zu tun hat mit denen man zuvor noch nie gearbeitet hat.

Du solltest Dich am Anfang mal drauf konzentrieren was zu entwickeln wo sich "was bewegt". Dadurch behältst Du Deine Motivation. Deinen Code musst Du sowieso ständig wieder ändern. So nach und nach siehst Du dann welche Bereich deines Programms Du separieren, und vielleicht auch für andere Projekte wiederverwenden kannst.

Alles sollte sich halt um eine zentralle Update-Schleife bewegen. Darin werden alle Aktualisierungen vorgenommen. Steuerung, Bewegung, Zeichnen, usw.

Viel Erfolg.

Werbeanzeige