2D Spiel programmieren C++ SDL

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.

d34362 
Fragesteller
 27.03.2015, 16:07

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 :)

0
cba321  27.03.2015, 16:08

Er will 2D-Spiele entwickeln, dafür braucht man keine Engine wie Unity!

0
d34362 
Fragesteller
 27.03.2015, 16:12
@cba321

Sie :D Aber ansonsten richtig, danke :)

0
cba321  27.03.2015, 16:15
@d34362

Oh, sorry, find ich aber um so cooler, Mädels sind da bestimmt etwas kreativer ;)

0
Nimue187  27.03.2015, 21:09
@cba321

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.

0

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

d34362 
Fragesteller
 27.03.2015, 16:10

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

0
d34362 
Fragesteller
 27.03.2015, 16:40
@d34362

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

0
cba321  27.03.2015, 22:00
@d34362

Ich kann dir nur Microsoft Visual Studio 2013 ans Herz legen.

0
cba321  27.03.2015, 22:00
@d34362

Ich kann dir nur Microsoft Visual Studio 2013 ans Herz legen.

0
zwarthart  06.04.2015, 04:22

die begriffe kenne ich aus den text dateien von battlefield 2

0

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