2D Spiel programmieren C++ SDL
Hallo :) Ich würde gerne ein einfaches 2D-Spiel programmieren, ähnlich wie Pokemon oder Zelda. Programmiererfahrung habe ich bereits und (wie dem Titel zu entnehmen ist) würde ich das ganze gerne in C++ schreiben, mit Hilfe der SDL-Library. Allerdings kenne ich mich, was Spielentwicklung (und auch GUI-entwicklung allgemein) angeht überhaupt nicht aus und wüsste gerne, wie man da heran geht. Zunächst einmal würde ich gerne einfach nur eine einfache map haben, auf der der Spieler sich in alle Richtungen bewegen kann (mithilfe der Pfeiltasten). Leider finde ich einfach keinen Einstieg und meist nur Beispielprogramme in Java :/ Hat jemand etwas mehr Erfahrung bzw etwas ähnliches schon einmal programmiert? Ich bin dankbar für jeden Hinweis :)
3 Antworten
Dafür brauchst Du eine Engine die Du selbst schreiben oder aber auch downloaden kannst (gibt genug kostenlose).
Vom Schreiben würde ich abraten außer Du willst Dich damit alleine schon Monate oder Jahre beschäftigen.
Ich persönlich würde Dir empfehlen auf C# umzusteigen. Der Umstieg von C++ ist sehr einfach und damit kannst Du Unity nutzen. Eine wirklich sehr gute Engine.
Danke schonmal fuer die Antwort :) Also bei C++ werde ich auf jeden Fall bleiben, schon alleine weil ich unter Linux arbeite ;) Das ganze ist auch nicht dringend, sondern eher ein Projekt nebenbei, von daher ist es nicht schlimm wenn es laenger dauert, aber ich moechte das schon selber aufbauen :)
Richtig. Unity ist aber im Vergleich zu anderen doch sehr schnell und einfach zu erlernen. Geschweige den das nach meiner Erfahrung nach dem ersten oder spätesten nach dem zweiten ein 3D Spiel folgt und dann biste mit Unity sehr gut dabei.
Aber wenn es c++ sein soll gibt es ja andere Engines.
Ich kann dir nichts konkretes zur SDL sagen, aber zur SFML. Das ist fast das selbe wie die SDL, funktioniert auch in C++.
Da ist es so, dass du theoretisch 2 Möglichkeiten hast: Klassenorientiert oder nicht klassenorientiert (also alles in die main.cpp reinpacken). Letzteres kann ich nicht empfehlen. Geht zwar vielleicht etwas schneller, allerdings ist es sehr unübersichtlich und geht auch stark auf die Performance.
Wenn du also klassenorientiert schreibst, hast du i.d.R. viele Dateien:
main.cpp - diese ruft nur das Framework auf
framework.hpp/cpp - Dort wird quasi der "Rahmen" und das Grundgerüst definiert. In der SFML gibt es 3 Funktionen, die sich ständig wiederholen:
handle() - für Eingaben des Spielers
update() - Um Positionen, Variablen etc. zu verändern
render() - Um Sprites / Texturen zu zeichnen.
Dann gibt es noch verschiedene Unterklassen wie Audio, Player, Collision, Map...
Wenn du mehr wissen willst, frag nochmal nach ;)
LG
Vielen Dank :) Das ist so ziemlich genau das wonach ich gesucht habe :) Dann werde ich mir SFML mal ansehen - aber da weden garantiert noch weitere Fragen auftauchen :D
Oh noch eine kurze Frage - kannst du mir irgendeine IDE empfehlen? Ich habe bis jetzt fast nur mit reinen Texteditoren programmiert, aber das koennte hier denke ich etwas umstaendlich werden wuerde ich mal sagen :D
Achja, und am besten nicht eclipse; das hab ich bei dem Versuch ein git-repository einzubinden total zerschossen :D Schon mehrmal deinstalliert und wieder neu installiert und alles versucht, aber es klappt einfach nicht mehr :D
Da wird es einige schwierigkeiten geben bei pokemon zb wurde großen wert auf zufall gelegt was dem erscheinen von pokemon angeht noch dazu sind die spiele in einer frei begehbaren welt das heißt man kann in jede richtung steuern und so den handlungs verlauf ändern Aber jetzt mal den hinweis. Um ein spiel zu entwickeln braucht nicht nur ein Programmierer sondern auch ein Grafikdesigner das heist bevor du bilder oder grafiken mit in das programm nehmen kannst muss es die ersteinmal geben hatt man das alles erledigt besteht der rest wahrscheinlich nur noch aus if und else Statments Hoffe das war einigermaßen hilfreich Gruß leon
Er will 2D-Spiele entwickeln, dafür braucht man keine Engine wie Unity!