Engine für 2d RPG
-
Hi,
Ich will mich mal an mein erstes größeres Spiel wagen. Es soll 2d sein und vom Grafikprinzip Spielen wie Pokemon,Golden Sun,etc ähneln.
Die meiste Erfahrung habe ich mit Windows Forms applications, weswegen ich ersteinmal nach Möglichkeiten gesucht habe, ein 2d Spiel in Visual Studio als Form Application zu entwickeln.
Da ich diese Möglichkeit nicht wirklich gut finde, habe ich nach 2D Engines gesucht, die mir Arbeit abnehmen können und auch schon ein paar Sachen, wie "Haaf's Game Engine" gefunden.
Ich hab aber das Gefühl, dass diese Engine mehr für andere Spielarten gedacht ist, da es keine Zellen-/Maphilfe gibt.Meine Frage : Kann mir jemand eine geeignete Engine empfehlen?
Was sie können solte :
-2D Sprites (bmp/png) rendern
-Sound und Hintergrundmusik unterstützen
-Einzelne Räume, beziehungsweise Maps, die in einzelne Quadranten eingeteilt
sind aus einer Datei lesen können
-Collision Detection
-Standard Input typen entgegennehmen können (Tastendrücke,Chat Eingaben,Klicken)Das ganze sollte mit C++/C# Kompatibel sein. Empfehlt mir bitte nicht den RPG Maker, denn ich will die logischen Spielinhalte selber programmieren. Ich will nur bei genannten Aufgaben eine Hilfe.
Danke im Voraus
-
Hm.. also das kannst du eigentlich alles recht schnell selbst programmieren. Zudem macht es für eine Engine keinen Sinn den Raum in Quadranten aufzuteilen etc., das solltest du schon selbst machen. Sprites Rendern, Musik abspielen und Tastendrücke erfragen kann z.B. SFML. (C++)
-
Danke, das versuch ich mal. Ich habe nur gedacht es gäbe vielleicht schon ein fertiges System, mit dem ich einfache Tilemaps einlesen kann aber das ist ja nicht sonderlich schwer zu programmieren.
-
Die nervige Arbeit düfte wohl vor allem sein, die ganzen Bildchen zu malen. :xmas1:
-
ich weiß nicht, was ihr euch vorstellt, aber ne ordentliche engine + passenden und umfangreichen editor dauert schon so seine zeit. ich arbeite ja an einer, und das auch nicht erst seit gestern. klar ist es ein unterschied ob man ne engine sehr dynamisch halten möchte, damit ein user sie schnell und einfach verwenden kann, oder sie extra auf seine bedürfnisse hardcoded anpasst. ersteres mache ich gerade, und ich kann sagen (ich bin natürlich auch nciht der über crack, aber ein bisschen was verstehe ich durchaus davon) das es als einzelne person schon seine zeit braucht. kommt natürlich auch immer darauf an, wie hoch man die messlatte hängt.
mfg
-
Jo...ich versteh auch nicht wie 3/4 Leute sagen, dass es nicht sinnvoll ist Engines zu verwenden.Selbst wenn das Programmieren nur einen Tag dauert ist es mehr Arbeit als eine zip Datei runterzuladen.
Zumal meist viele nützliche Sachen dabei sind, die man nicht unbedingt selbst integriert hätte (wie FPS Anzeigen,Helfer Funktionen für Zufallszahlen,etc..)
-
Babb schrieb:
Jo...ich versteh auch nicht wie 3/4 Leute sagen, dass es nicht sinnvoll ist Engines zu verwenden.Selbst wenn das Programmieren nur einen Tag dauert ist es mehr Arbeit als eine zip Datei runterzuladen.
Das verwenden einer fertigen Engine will schon gut überlegt sein. Es ist ja nicht nur eine .zip Datei runterladen. Es beinhalten auch das neu lernen des Frameworks. Es beinhaltet sich durch eine eventuell schlechte und veraltete Doku lesen zu müssen. Dann bekommt man weitere Abhängigkeiten in sein Projekt, muss diese auch immer noch aktuell halten, hat Bugs auf die man keinen Einfluss hat.
Bei allem was man in ~einer Woche auch selbst schreiben kann, ist das im Nachhinein wahrscheinlich weniger Aufwand und man hat gleichzeitig noch was gelernt.
-
Es ist eigentlich ganz einfach:
Dir geht es drum, möglichst schnell deine Spielidee umzusetzen? -> verwend fertige Engine/Framework
Dir geht es drum, die Technik hinter einem Spiel zu verstehen? -> schreib Spiele ohne fertige Engine/Framework zu verwenden
-
Anders gesagt: Write Games, Not Engines
-
Santa schrieb:
Anders gesagt: Write Games, Not Engines
Das bringt mich schon ein wenig zum Nachdenken... Da mir bei den Tutorials für SFML schon einige Unschönheiten/Beschränkungen aufgefallen sind und ständig Fehler mit den Bibliotheken auftauchen, gefällt mir die Idee ein Spiel ohne Engine zu entwickeln eigentlich sehr.
Nur habe ich leider keine Ahnung, wie das gehen soll, denn bis jetzt habe ich nur Konsolenanwendungen / Windows Forms Applications mit Visual Studio geschrieben.Wenn irgendwer mir also sagen könnte, wo ich mich nach dem Erstellen von Fenstern, dem Rendern von 2D Grafiken und Abspielen von Sound Effekten / Musik informieren könnte, wär ich sehr dankbar
-
Was der Blogpost dir eigentlich sagen wollte:
Wenn du ein Spiel machen möchtest, dann schreib dir ein Framework das genau das kann, was du für dein Spiel brauchst - und fange nicht an, eine Engine zu machen auf deren Basis man jedes erdenkliche 2D-Pokemon like Spiel aufziehen könnte.Ach ja, SFML ist weit weg von irgendeiner Art von Engine, die Bibliothek kapselt dir nur ein paar systemabhängige Funktionen in ein gemeinsames Interface.
Und was für Unschönheiten/Beschränkungen sind dir aufgefallen?
-
Genau das habe ich auch vor. Ich will ein Spiel möglichst "from Scratch" bauen, was auch kein großes Problem ist (wie in meinem letzten Post erwähnt fehlt es mir nur an Grafik/Sound Erfahrung).
Naja... SFML sind viele miteinander verbundene Bibliotheken, die man in ein Projekt einbinden kann, um die beinhalteten Funktionen und Klassen benutzen zu können. Ich weiß nicht wirklich was das von einer Engine unterscheidet, aber darum geht es ja gar nicht.
Auf jeden Fall habe ich das Gefühl bekommen, dass SFML
1.Definitiv nicht für Tile basierte Spiele gedacht ist, sondern eher für Spiele wie Pong oder andere Anwendungen
2. Sehr viel mehr beinhaltet, als ich eigentlich brauche oder will.
3. Sogar die Beispielprogramme und Projekte, die ich mir angeschaut habe, selten ohne Änderungen liefen.Wie gesagt, will ich nur wissen, wie ich, mit eigenem Code, möglichst ohne viele fremden Libraries, ein Fenster öffnen kann und Objekte darauf malen / Sounds ausgeben kann.
-
Babb schrieb:
1.Definitiv nicht für Tile basierte Spiele gedacht ist, sondern eher für Spiele wie Pong oder andere Anwendungen
Wie kommst du darauf?
Babb schrieb:
2. Sehr viel mehr beinhaltet, als ich eigentlich brauche oder will.
Na ja. Du willst Fenster, Sound, Graphics. Gut, den Netzwerk-Kram kannste außen vor lassen..
Babb schrieb:
3. Sogar die Beispielprogramme und Projekte, die ich mir angeschaut habe, selten ohne Änderungen liefen.
Hast du dir SFML 2 geladen? Da wurden halt einige Änderungen gemacht, musst die Doku lesen.
Babb schrieb:
Wie gesagt, will ich nur wissen, wie ich, mit eigenem Code, möglichst ohne viele fremden Libraries, ein Fenster öffnen kann und Objekte darauf malen / Sounds ausgeben kann.
No Chance. Zum Fenster öffnen wirst du die API des Systems bemühen müssen, unter Windows wäre das die WinAPI. Nachdem du das Fenster geöffnet hast darfst du dann erst mal überlegen, wie du die Events verwaltest. Ok, auch noch möglich. Dann einen OpenGL-RenderKontext erstellen. Ok, auch möglich. Aber spätestens für OpenGL brauchst du dann wieder extra Bibliotheken. Genau so für DirectX. Und diese Dinge sind alle viel, viel, viel komplizierter als das was du momentan machst. Bleib bei SFML und gib nicht gleich auf, mein Rat.
-
Wie kommst du darauf?
Die Tutorials, die ich bis jetzt überflogen hab (naja, die, die mein Visual Studio nicht zum Abstürzen gebracht haben und die ich in weniger als 30 Minuten so ändern konnte, dass sie kompiliert wurden) haben sich mehr auf kompliziertere Grafiken bezogen, als ich brauche. Aber ok, ich bin mir sicher, dass man damit Sprites dazu bringen kann sich zu bewegen
Hast du dir SFML 2 geladen? Da wurden halt einige Änderungen gemacht, musst die Doku lesen.
Versucht, ja ... Nur leider scheitere ich da schon am builden.Egal welchen Ordner ich mit welchen Einstellungen in CMake lade, es heißt immer der Source Code wäre nicht in Ordnung...
Es soll auch helfen, die 2008 libs für 2010 zu bauen, nur gibt auch da Visual Studio Fehlermeldungen aus und produziert meist nur sfml-system.libBleib bei SFML und gib nicht gleich auf, mein Rat.
Nun gut, ich werd mich mal weiter umschauen. Es ist nur recht frustrierend, wenn man schon beim ersten Beispiel, das nur ein schwarzes Fenster erzeugt, Code entfernen muss, da irgendwas mit der entsprechenden Library nicht stimmt
-
Babb schrieb:
Aber ok, ich bin mir sicher, dass man damit Sprites dazu bringen kann sich zu bewegen
Soweit man das "bewegen" nennen kann, ja.
Babb schrieb:
Nun gut, ich werd mich mal weiter umschauen. Es ist nur recht frustrierend, wenn man schon beim ersten Beispiel, das nur ein schwarzes Fenster erzeugt, Code entfernen muss, da irgendwas mit der entsprechenden Library nicht stimmt
Ich weiß das ist frustrierend, und oft hilft nur so langes Rumbasteln, bis es endlich funktioniert. Aber es wird noch viel frustrierender, wenn ich dir jetzt sage, dass SFML eine der einfachsten und best dokumentiertesten Bibliotheken ist, die ich kenne.
-
In Ordnung, ich schau mal ob ich das nicht doch irgendwie zum laufen bekomme.
Vielleicht funktioniert SFML ja mit Code::Blocks besser
Danke für die Hilfe
-
Oh, eine Frage hätte ich noch. Was haltet ihr denn so von Spielentwicklung mit den Visual Studio Bibliotheken?
In VS kann man ja Sprites recht gut darstellen und es gibt schon viele Tools, die vor allem Sachen, wie Menüs sehr vereinfachen. Ich habe auch schon einige Spiele gesehen, die so gemacht wurden und die laufen eigentlich recht gut.Auf den ersten Blick ist zwar SFML wesentlich sauberer und mächtiger, aber ich wollte nur mal aus Interesse fragen, wie VS so in Sachen Spielentwicklung so ist.
-
Von diesen "Visual Studio Bibliotheken" hab ich noch nie was gehört. Klingt ja spannend, erzähl uns doch mehr
Kanns sein dass du XNA meinst?
-
VS? VS ist eine IDE, was genau meinst du? Edit: lol, da war einer schneller.
-
Oh mann.... Ich sollte meine Posts vielleicht mal probelesen -,-
Ja ich mein XNA... Hab schon viel schlechtes darüber gehört aber die dokumentierten Spiele, die ich gefunden habe, sehen gar nich so schlecht aus...
-
XNA funktioniert aber nicht mit C++. Aber schlecht ist es nicht