Letzer Zugriff am
06 Feb. 2012 um 09:29 Uhr
Kommentare
Beitrag kommentieren
06 Mai 2011
Tastaturen: Logitech G-Serie...
17 Apr. 2011
Joomla 1.6 - Was ist neu...
26 Feb. 2011
Günstig und kostentransparen...
13 Jul. 2010
Wenn Bilder lügen - Photosho...
12 Apr. 2010
» 146346 mal
2. Briefvorlagen nach DIN fü...
» 93112 mal
3. Achtung: Spielen gefährde...
» 22052 mal
4. DVD::RIP - Das Schweizer ...
» 21070 mal
5. O2 can do - wie das Verbr...
» 20732 mal
Erstellt am: 19 Apr. 2007
Ich habe letztes Jahr ein Spiel im Rahmen der open Source Konferenz - Wizzard of OS 04 programmiert. Schüler sollten das Spiel selbst modifizieren, um die Vorteile offener Spieleplattformen zu verdeutlichen. Grund genug, es hier vorzustellen.
Irrlicht 3D ist eine open Source 3D Library in C++. Irrlicht kann sowohl Software, als auch DirectX und OpenGL rendern. Dadurch sind Spiele prinzipiell auch unter Linux und Mac OS lauffähig.
Das Spiel
Mit ein wenig Programmierkenntnis, wird man überrascht sein, wie einfach die Entwicklung von kleinen 3D-Spielereien ist. Dabei hilft Irrlicht3D, da es sehr gut strukturiert und dokumentiert ist. Sogar ein Editor zum gestalten der 3D Szenen ist dabei.
Schon wenige Zeilen Code zaubern ein bewegtes 3D Model auf den Bildschirm.
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
#ifdef _IRR_WINDOWS_
#pragma comment(lib, "Irrlicht.lib")
#endif
int main()
{
IrrlichtDevice *device = createDevice( video::EDT_SOFTWARE, dimension2d(640, 480), 16, false, false, false, 0);
device->setWindowCaption(L"Hello World! - Irrlicht Engine Demo");
VideoDriver* driver = device->getVideoDriver();
SceneManager* smgr = device->getSceneManager();
GUIEnvironment* guienv = device->getGUIEnvironment();
Guienv->addStaticText(L"Hello World! This is the Irrlicht Software renderer!",
rect(10,10,260,22), true);
IAnimatedMesh* mesh = smgr->getMesh("../../media/sydney.md2");
IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode( mesh );
if (node)
{
node->setMaterialFlag(EMF_LIGHTING, false);
node->setMD2Animation ( scene::EMAT_STAND );
node->setMaterialTexture( 0, driver->getTexture("../../media/sydney.bmp") );
}
smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0));
while(device->run())
{
driver->beginScene(true, true, SColor(255,100,101,140));
smgr->drawAll();
guienv->drawAll();
driver->endScene();
}
device->drop();
return 0;
}
Vom Spiel selbst darf man sich natürlich nicht zuviel erwarten. Damit das Programm auch unter Linux ohne Änderungen läuft, habe ich auf andere Libraries verzichtet. Allerdings kann man eigene Level entwerfen. Eigene Klassen oder Headerdateien habe ich auch nicht benutzt, da der Code eh sehr kompakt sein sollte. Das Ganze Spiel passt auf 3 DIN A4 Seiten.
Download
Das komplette Spiel inklusive der Source, Mediadateien und einer Win32 EXE könnt ihr hier runterladen: arkanoid.zip (2.7 MB)
Wer das Spiel verändern und selber compilieren will, der benötigt die Irrlicht Library. Das ca. 13 MB große Paket kommt mit vielen Beispielen. Über die .NET Schnittstelle lässt sich Irrlicht auch in Visual Basic oder Delphi programmieren.
Als IDE empfehle ich Anfängern Code::Blocks. Auch Codeblocks gibt es für Linux und Windows. Die Entwicklungsumgebung ist gut auf Irrlicht abzustimmen.
Alternativ gibt es noch Ogre3D. Auch Ogre ist nur eine 3D C++ Lib, die allerdings mittlerweile zig Plugins kennt und auch für professionelle Spiele, wie Ankh eingesetzt wird.
0 Kommentar(e)
Keine Kommentare bis jetzt.Beitrag kommentieren
Ich freue mich jederzeit über Fragen, Anmerkungen und Kritik. Also gebt euch einen Ruck und kommentiert diesen Artikel.
zur Übersicht




