|
Überblick über eine Game Engine Was ist das eigentlich, eine Game Engine? Um es mit einfachen Worten zu sagen: Eine Game Engine ist eine Ansammlung von einfachen Funktionen die jedoch sehr oft beim entwickeln eines Spiels gebraucht werden. So zum Beispiel das Laden von Sounds, Grafiken, das Zeichnen auf den BackBuffers, etc. pp. Dadurch lassen sich verschiedene Subsysteme eines Spiels definieren: CoreSystem GraphicsSystem InputSystem SoundSystem (NetworkSystem) Dies ist nur eine Auswahl von Subsystemen die in einem Spiel vorkommen können. Aus diesem Grund steht das NetworkSystem auch in Klammern, da es nicht von jedem Spiel gebraucht wird. Weitere solche Module wären unter anderem ein AISystem, ThreadSystem, JobSystem. Diese werden jedoch für den Beginn dieser Artikelserie nicht von Bedeutung sein. Warum verwendet man eine Game Engine? Dies liegt eigentlich auf der Hand: Durch das Bereitstellen von Funktionen die man ständig braucht wird das Erstellen von Spielen wesentlich vereinfacht und läuft somit auch schneller von der Hand. Bei einem richtigen Game Engine Design ist es wesentlich einfacher das Spiel auf andere Plattformen zu portieren, da der Code des Spiels gleich bleibt und nur der Code der Engine erweitert wird. Man muss sich nicht mehr selbst um das Verwalten von Resourcen kümmern. Das erledigt die Game Engine für uns. Was werden wir nun alles machen? Nun, aus den oben genannten Gründen kann man sehen wie vorteilhaft es sein kann eine Game Engine zu verwenden. Und genau aus diesem Grund werden wir uns nun die nächsten Wochen damit beschäftigen wie man so etwas konzipieren, entwickeln und fertigstellen kann. Ich werde mich an dem Plan halten den ich selbst oben gegeben habe. Wir beginnen erst einmal mit dem CoreSystem, danach folgt in der genannten Reihenfolge: GraphicsSystem, InputSystem, SoundSystem. Wenn dann noch Interesse an dieser Serie bestehen sollte werde ich auch noch weiter auf ein NetworkSystem eingehen. Gleich zu Beginn: Wir werden für diese simple 2D Engine alles mit SDL und OpenGL unter der Verwendung von C++ realisieren. Als IDE werde ich, im Sinne der Plattformunabhängigkeit, CodeBlocks verwenden. Zwingendes Wissen ist nicht erforderlich würde aber bestimmt helfen. Wenn ihr nicht wisst wie man SDL aufsetzt und ein SDL Project startet, dann gebt einfach eine kurze Rückmeldung. Ich weis nicht inwiefern ich es schaffe, aber ich versuche jedes Wochenende einen neuen Teil der Serie einzutragen. Im nächsten Teil wird es also um das CoreSystem gehen.
|