Project NightLight
Verfasst: 12.03.2010 04:45
Mein Projekt ist eine kleine 2D-Engine, die ich später in einem Spiel einsetzen möchte. Doch vorher arbeite ich eben an der Engine für das ganze. Ich bin der Meinung, dass Spielspaß nicht nur in 3D zu finden ist. Auch heute noch.
Die Engine verwendet als unterliegende Technologie folgende freie Produkte:
Ich bin mir sicher, dass mein Code nicht perfekt ist, aber er macht was ich will
.
Ab hier nur weiterlesen, wenn euch das Konzept interessiert und Ihr eventuell selber programmiert. Es wird ein wenig technisch.
Technisch orientiert habe ich mich an den ganzen frei verfügbaren Engines wie Ogre oder Irrlicht. Ich versuche OOP durchzusetzen, bin aber nicht bereit dafür usability zu opfern. Sprich, ich zwänge nicht alles zwanghaft in extra Klassen und mach das ganze unnötig kompliziert.
Als Beispiel das erstellen eines Fensters und das Laden einer Resourcen-Datei:
Das ganze Frontend der API ist extrem einfach gehalten, so dass jeder Programmier-Anfänger, der C++ halbwegs versteht, in der Lage sein soll, ein kleines einfaches Spiel zu programmieren. Es stehen Kollisionsabfragen zur Verfügung, sowie Shader und später auch eine Script-Sprache, namentlich AngelScript, welche von Haus aus Objektorientierung anbietet.
Wer helfen möchte, oder wer einen Bug im Code findet, der sei dazu angehalten mir Patcheszu senden an scorcher24 at gmail dot com.
Das Repository läuft auf SVN-Basis und jeder kann sich eine Kopie des Codes ziehen. Bitte auch das Wiki beachten.
Beantworte gerne Fragen und bin für Anregungen dankbar.
rya.
Die Engine verwendet als unterliegende Technologie folgende freie Produkte:
- OpenGL 3.3 Core Profile
- SFML
- FreeImage Library
- boost
- GLew
- irrXML
- libsigc++
- AngelScript
Ich bin mir sicher, dass mein Code nicht perfekt ist, aber er macht was ich will
Ab hier nur weiterlesen, wenn euch das Konzept interessiert und Ihr eventuell selber programmiert. Es wird ein wenig technisch.
Technisch orientiert habe ich mich an den ganzen frei verfügbaren Engines wie Ogre oder Irrlicht. Ich versuche OOP durchzusetzen, bin aber nicht bereit dafür usability zu opfern. Sprich, ich zwänge nicht alles zwanghaft in extra Klassen und mach das ganze unnötig kompliziert.
Als Beispiel das erstellen eines Fensters und das Laden einer Resourcen-Datei:
Code: Alles auswählen
class MyApplication
{
public:
MyApplication()
: m_controller(NLSystemController::getInstance())
{
}
void run()
{
m_controller.createLog("NightLight.log", LL_ERROR, new NLTextWriter());
m_controller.setVendorName("Scorched Productions");
m_controller.setAppName("MyApp");
m_controller.createUserDataDir();
m_controller.createWindow(NLWindowSettings(1024,768, false, 32, 2));
NLResourceManager& resMgr = m_controller.getResourceManager();
resMgr.loadFile("data/resources.xml");
m_controller.getWindow().enterLoop();
}
private:
NLSystemController& m_controller;
};
Wer helfen möchte, oder wer einen Bug im Code findet, der sei dazu angehalten mir Patcheszu senden an scorcher24 at gmail dot com.
Das Repository läuft auf SVN-Basis und jeder kann sich eine Kopie des Codes ziehen. Bitte auch das Wiki beachten.
Beantworte gerne Fragen und bin für Anregungen dankbar.
rya.