2D Platformer/Sidescroller Game - Ohne Spielebibliothek zu schwer/aufwändig?

KROKvsKROK

Ensign
Registriert
Apr. 2013
Beiträge
149
Hallo,

Bisher habe ich an eigenen Spielen nur Spiele programmiert, bei denen es sich nicht um Platformer handelte. Dazu gehören z.B. Snake, Space Invanders oder Moorhuhn. Diese Spiele habe ich von Grund auf komplett ohne externe Spielebibliotheken programmiert (in Java). Ich würde sagen, dass das sehr gut möglich ist.

Jetzt wollte ich mich mal informieren, wie man 2D Platformer/Sidescroller entwickelt. Da habe ich leider garkeine Vorstellung, wie dies genau funktioniert. Leider finde ich entweder nur nicht-beendete Tutorialreihen dazu oder Tutorials zu dem Thema, welche allerdings eine Spielebibliothek (wie z.B. LibGDX, Unity, XNA....) verwenden.
Solche Spielebibliotheken habe ich noch nie verwendet. Ich befürchte aber, dass einem da zu viel arbeit abgenommen wird und man sich das Spiel fast nur "zusammenklickt". Sowas möchte ich (vorerst) eher weniger, da ich auf jedenfall verstehen möchte, wie ein Platformer wirklich funktioiert.

Mir gehts auch eigentlich nur um die Platformer-spezifischen Themen wie die Map an sich, Mapaufbau, das Scrolling usw.

Sind 2D Platformer/Sidescroller ohne externe Spielebibliotheken zu aufwändig? Ist dies der Grund dafür, dass fast jedes Tutorial über Platformer/Sidescroller eine Spielebibliothek verwendet? Oder ist ein Platformer nicht viel schwerer als ein Snake, Moorhuhn oder Space Invander?
 
Kommt denke ich drauf an wie komplex dein Sidescroller Game werden soll. Also sowas wie Flappy Bird sollte man auch gut ohne externe Libraries schaffen.:D Gerade durch dieses Spiel gibts massiv Infos im Netz, wie man das angehen kann (mache schreiben das an einem Tag runter).

Ich bin derzeit auch dabei ein tiledbased Spiel zu schreiben. Jedoch mit isometrischer Perspektive und ohne wirklichen Plan was sich konkret daraus entwickeln soll.
 
Zuletzt bearbeitet:
G00fY schrieb:
Kommt denke ich drauf an wie komplex dein Sidescroller Game werden soll. Also sowas wie Flappy Bird sollte man auch gut ohne externe Libraries schaffen.:D Gerade durch dieses Spiel gibts massiv Infos im Netz, wie man das angehen kann (mache schreiben das an einem Tag runter).

Ich bin derzeit auch dabei ein tiledbased Spiel zu schreiben. Jedoch mit isometrischer Perspektive und ohne wirklichen Plan was sich konkret daraus entwickeln soll.

Etwas viel komplexeres als Flappy Bird sollte es (erstmal) nicht werden. Ich dachte da erst an einen "simples" Jump and Run Spiel ala Super Mario in ganz billig. Aber dann eben wirklich auch die ganze Palette vom Mapdesign bis zum Code.
 
Hi,

ich benutze XNA schon seit Jahren und kann es wirklich empfehlen.
XNA ist ein Framework, es nimmt einem also Aufgaben wie die 2D / 3D ausgabe,
die Soundausgabe und Dinge wie Controller input ab.
Außerdem liefert es einige praktische Klassen wie Vector2 / Vector3 / Texture2D
und ähliches mit. XNA hat auch ein integriertes Content Management System.
Du brauchst also auch nichts entwickeln um Resourcen wie Sprites, Sounds und
ähnliches zu laden.

XNA arbeitet mit C#, was dir als Java Entwickler zu gute kommen dürfte,
da C# und Java doch recht ähnlich sind. Der Einstieg dürfte für dich dadurch
einfacher sein.

Solltest du dich für XNA entscheiden, hier gibt es einige sehr schöne Tutorials:
http://rbwhitaker.wikidot.com/xna-tutorials

XNA ist aber kein "Baukasten", du musst dein Spiel schon noch selber schreiben.
Es nimmt einem nur viele nervige Grundlagen ab.


Unity hingegen ist eine Komplette Engine.
Unity nimmt einem noch wesentlich mehr Arbeit ab und ist in seiner Funktionalität
wesentlich Umfangreicher.
Auch in Unity kannst du mit C# scripts arbeiten, bist aber an einige Unity Eigenheiten
gebunden, die dich in deinen Möglichkeiten einschränken.
Und du hast keine Möglichkeiten auf den Unity Sourcecode zuzugreifen.


Für dein Vorhaben eignen sich im Prinzip beide.
Wenn du mehr Eigenleistung in dein Projekt legen willst, dann würde ich
XNA benutzen.

Bei Unity hast du allerdings den Vorteil, dass du dein Spiel auf wesentlich
mehr Plattformen veröffentlichen kasst, da Unity z.B. auch im Webplayer
oder auf iOS / Android portiert werden kann.


So oder so viel Erfolg und gutes Gelingen.
 
T2xlc schrieb:
Hi,

ich benutze XNA schon seit Jahren und kann es wirklich empfehlen.[...]

XNA ist tot, leider. Wäre auch recht unschön hier die Sprache zu wechseln, alleine schon aus Crossplatform-Gründen, aber auch weil:

@Topic:
Nein, du brauchst keine größeren Libs oder Engines für sowas. Ich weiß auch nicht, wie du googlest, aber ich finde sofort massig Beispiele.
 
Zuletzt bearbeitet:
Stimmt, XNA ist leider tot...
Ich habe ja gehofft, dass Microsoft sich aufrafft und einen
Nachfolger entwickelt, aber das wird wohl nichts mehr.

Trotzdem ist XNA ein guter Ausgangspunkt, um in die
2D / 3D games Entwicklung einzusteigen.

Alternativ kann man sich ja die volle "Dröhnung" geben
und mit c++ und DirectX anfangen. (Ja das hab ich schon
und es macht keinen Spaß).

Um auf die eigentliche Frage des Thread Erstellers zurück
zukommen.

Ja, ein solches Spiel sollte auch ohne zusätzliche Libs
machbar sein.
 
Wenn du weißt, wie du ein Bild in einem JPanel zeichnen kannst, dann hast du alles was du brauchst an der Hand, um einen side scroller zu bauen. Bau dir z.B. eine Background-Klasse, die als Felder ein Image, eine x- und eine y-Koordinate hat. Nun inkrementierst du zu jedem x-ten (sonst ist es zu schnell) game loop cycle x für horizontales oder y für vertikales Scrollen. In der paintComponent des JPanels zeichnest du alle Background-Objekte die es so gibt (kannst du ja in eine collection packen und darüber iterieren beim Zeichnen).
Wenn so ein Background-Objekt außerhalb des viewports landet, dann schmeißt du es weg oder benutzt es erneut, indem du die Koordinaten entsprechend resetest.
Das wäre dann ein endlos automatisch scrollendes Spiel. Alternativ eben abhängig machen von der Bewegung der Spielfigur.
 
Zurück
Oben