Wiedereinstieg (Spiele)programmierung

TheLordix

Ensign
Registriert
Sep. 2010
Beiträge
209
Hallo!

Nach Jahren der Abstinenz, reizt es mich irgendwie wiedermal ein kleines Programmierprojekt anzugehen. Was genau ist noch offen, aber es wird wahrscheinlich in Richtung eines Rundenbasierten oder auch Echtzeit Strategiespielchens (2D Ansicht von oben) gehen.

Welche Sprache soll ich dazu nehmen?

Grundsätzlich hätte ich gerne C# oder Java genommen, da ich da die meiste Erfahrung habe und ich mir schnellere Erfolge als bei C++ erhoffe. Aber mein Hauptziel ist es den Programmieraufwand für die Grafik und die Ein/Ausgabe möglichst gering zu halten und soweit es geht fertige Bibliotheken zu benutzen.

Wäre es evt. sinnvoll das Projekt sogar in 3D zu starten, oder mache ich mir da unnötigen Aufwand im Vergleich zu einem 2D Projekt?


Also immer her mit eueren Ideen und Vorschlägen, ich freue mich über alle Beiträge zum Diskutieren!

Lg, TheLordix
 
Da du C# in Erwägung ziehts, nehme ich an du willst auf Windows bleiben? Dann wäre nämlich C# schon eine sehr günstige Alternative. Speziell mit dem XNA Game Studio kannst du so relativ einfach sogar sehr komplexe Spiele programmieren.

Um einen Einstieg zu finden, empfielt es sich immer das ein oder andere Tutorial zu lesen. Gibt es genug im Netz. Die Einstiegshürden bei C# sind etwa so groß wie bei C++, nur dass die Grundbasis eine andere ist - Bei C++ plagst du dich mit Basics, 3D-Transformationen und Datenhaltung rum, bei XNA mit Contentpipelining und Datenmodellen - Also eine Stufe höher.

Der Unterschied zwischen 2D und 3D ist programmiertechnisch so groß, wie es auf den ersten Blick aussieht: Du hast nur eine Dimension mehr, sonst ändert sich (fast) nichts. Der Mehraufwand für Tiefenpuffer ist marginal (Übernehmen OpenGL/DirectX für dich) und selbst bei Transformationen kannst du dich auf die Grafikbibliotheken stützen. Licht und Schatten werden interessant wenn man es will, aber man kann den ganzen Schnickschnack auch erstmal "auf default" lassen und später verfeinern.

Der Beitrag ist ein wenig XNA-fixiert, das gebe ich zu, aber das finde ich persönlich für den Einstieg am leichtesten. Ansonsten könntest du dir sogar direkt fertige Engines anschauen und dort etwas programmieren ;)
 
Unmissverständlicherweise wird der Support für xNA Game Studio eingestellt.

Als Alternative würde ich evtl. Game Studio empfehlen. Die Software an sich wirkt etwas proprietär und die Möglichkeiten, Perfomance reichen nicht an C# ran. Der grosse Vorteil ist allerdings HTML5 und damit Plattform-Unabhängigkeit!
 
Hallo,
danke für eure Empfehlungen!
Ich habe mir XNA und Game Studio angesehen und bin zu dem Schluss gekommen, dass diese Toolkits für den Anfang doch noch zu komplex sind.

Nach etwas Recherche wäre momentan C# mit GDI+ oder Java mit Java2D im Rennen, 3D habe ich mal komplett abgehackt, da braucht man auch für einfachste Sachen zu viel Drumherum.

Gibts bei C# vs. Java mit GDI+ und Java 2D irgendwelche beachtenwerten Sachen, oder ist es komplett egal was ich nehme?

LG, TheLordix
 
ice-breaker schrieb:
Die Tools sind zu komplex und alles selbst machen einfacher? irgendwie paradox.

Ich kanns verstehen :rolleyes: wir sind halt ne spezielle art xD

@Topic

Ich würde anfangs mit einer c# wpf anwendung anfgangen :)
Unterstützt ein paar nette Features für deinen zweck. (Auch wenn es ausdrücklich nicht für spieleentwicklung gedacht ist - für unsere Zwecke reichts)
 
ice-breaker schrieb:
Die Tools sind zu komplex und alles selbst machen einfacher? irgendwie paradox.

Hallo, ja das klingt paradox, aber da ich wirklich am Anfang nur ein kleines Spiel mit ein paar Sprites die sich über eine statische Karte bewegen bauen möchte ist mir die Einarbeitungszeit in die Tools zu aufwändig. Also Anforderung maximal sowas wie Tetris an die Grafik.
 
Dann ist es völlig egal was du nimmst. C++ mit SDL dürfte noch am schlankesten sein. In Java brauchst du ein bisschen Swing-Wissen und von reinem C# habe ich keine Ahnung.

Sowas in XNA ist aber echt kinderleicht, auch wenn man nahezu keine Ahnung hat. Nach ein paar Wochen Grundlagen in Java während des Studiums, hatte ich mich selbst an XNA gewagt und nach dem ersten Tutorial-Video (so ein kleines Raumschiff-Spiel im Space-Invaders-Stil) konnte ich recht viel machen (wenn auch hacky, mit meinem heutigen Wissen betrachtet).

Bei 3D ist die Komplexität der damit verbundenen Mathematik halt höher. Matrizen statt nur Vektoren. Außerdem ist es viel leichter Grafiken für ein Spiel in 2D zu erstellen, statt in 3D.
 
Für ein 2D Projekt würde ich in der Tat auch C++ und SDL in Erwägung ziehen, liest man sich etwas ein bzw macht ein paar Tutorials ist es eigentlich ganz einfach. Macht es auch nahezu trivial plattformunabhängig zu entwickeln.

Pygame wäre vielleicht auch gut wenn nicht noch besser.
 
Zuletzt bearbeitet:
Zurück
Oben