Ich bin ein C # Webentwickler und möchte meine Fähigkeiten erweitern und dabei ein bisschen Spaß haben. Ich kenne einige der Grundlagen von C ++ und würde gerne ein einfaches 2D-Spiel / eine Spiele-Engine für mich schreiben, die C ++ verwendet. Welche anderen Bibliotheken oder SDKs benötige ich und wo finde ich einige Tutorials und Informationsressourcen, um voranzukommen?
Ich habe mir XNA bereits mit C # angesehen. Dafür gibt es eine Menge Ressourcen, aber ich würde eher Nicht-Microsoft-Produkte verwenden. Das Ziel ist es, ein bisschen Spaß zu haben und gleichzeitig ein besser abgerundeter Programmierer zu werden.
Bitte beachten Sie, dass ich nicht nach dem besten Startplatz frage. Ich frage nur nach einem Ort, an dem ich anfangen kann.
Danke für jede Hilfe!
Ich würde vorschlagen, SDL zu verwenden . Es ist schon eine lange Zeit vergangen, daher sind die Dokumentation und der Support ziemlich gut und es ist eine der einfachsten Möglichkeiten, eine Zeichenoberfläche auf den Bildschirm zu bringen. Sie üben das Schreiben von Klassen in C ++ (da Sie wahrscheinlich viele der SDL C-Funktionsaufrufe einschließen möchten) und haben Erfahrung im Umgang mit Zeigern und Verweisen sowie in der grundlegenden Speicherverwaltung. Das Verwalten des eigenen Speichers ist einer der Hauptunterschiede zwischen C ++ und C #.
quelle
Persönlich würde ich Allegro 5 aus folgenden Gründen wählen :
Es hat ein CMake-basiertes Build-System. Dies macht es viel einfacher als die meisten Build-Systeme für die Arbeit auf mehreren Plattformen. Dies scheint eine Kleinigkeit zu sein, ist aber insgesamt ziemlich wichtig. Dies vereinfacht die Erstellung der Bibliothek erheblich.
SFML ist immer noch in erheblichem Wandel. 2.0 ist eine ziemlich wesentliche Änderung. Während Allegro mit Version 5 bereits eine bedeutende Änderung durchlaufen hat, dreht sich jetzt alles um Stabilität.
Es behandelt die Modularität anders als SFML. Mit SFML fragen Sie nach bestimmten Komponenten, aber Sie bekommen alle. Wenn Sie nach der Grafikkomponente fragen, erhalten Sie die gesamte Grafikkomponente. Mit Allegro 5 erhalten Sie immer die Grafikkomponente. Wenn Sie jedoch die Bitmap-Loader von Allegro nicht verwenden möchten, müssen Sie dies nicht tun. Sie können Ihre eigenen verwenden.
Es hat sehr gute Dokumentation. SFML verwendet eine Dokumentation im Doxygen-Stil, aber selbst das ist ziemlich spartanisch. Während Allegro 5 umfassender ist, sind die Funktionen nach bestimmten Systemen gruppiert, die sie abdecken. Es ist nicht perfekt, aber insgesamt ist es besser.
Sie sind klug genug, um nicht zu versuchen, das Einfädeln zu machen. Mit C ++ 11 / Boost.Threads, das entweder weit verbreitet ist oder gleich um die Ecke ist, kann die Verwendung eines anderen Thread-Wrappers mehr als nur problematisch sein: Es kann gefährlich sein, den Code ordnungsgemäß zum Laufen zu bringen.
quelle
Ich denke, ein fantastischer Startpunkt ist LazyFoo . Auf diese Weise können Sie schneller als an jedem anderen Ort, den ich gesehen habe, mit SDL arbeiten. Ich würde empfehlen, schnell in OpenGL einzusteigen (sobald Sie es ertragen können), da Sie mit der Hardwarebeschleunigung viel mehr für Ihren Programmier-Dollar bekommen. Wenn Sie diesen Weg gehen, empfehle ich diesen Leitfaden .
quelle
Ich würde SFML empfehlen, wenn Sie C ++ verwenden. Es bringt Sie schnell auf den Bildschirm und die Verwendung mit Ihrem C ++ - Spielcode ist unkompliziert.
quelle
Da OpenGL heutzutage die 2D-Seite der Dinge beschleunigt, ist es nicht so wichtig, auf die schnellen Software-Renderer von Allegro und SDL (oder früheren Versionen) zuzugreifen. Wenn ich mich jedoch für eine Bibliothek entscheide, konzentriere ich mich mehr auf Projektreife, Benutzerbasis und Dokumentationsgeschwindigkeit (sofern die Geschwindigkeit angemessen ist), und ich würde sagen, dass SDL und Allegro an diesen Fronten gewinnen. SDL hat auch dreifache AAA-Titel wie Civ: Call to Power veröffentlicht.
quelle