From Linderdaum Engine
Revision as of 12:28, 7 June 2009 by Admin
Last updated: June 7, 2009
1. What is a Linderdaum Engine?
The Linderdaum Engine is an open source purely object-oriented 3D gaming engine written in C++. It is designed to be not only the class library, but also an integrated out-of-the box solution for the development of interactive 3D games.
2. Is it a “Linderdaum Engine” or a “Linderdaum 3D Engine”?
Formerly it was named the “Linderdaum 3D Engine” accentuating that one is able to use it as a library for 3D games development. Now it is not just a rendering engine, but a set of different components (Audio, GUI, File system, Renderer, Resources manager, Scene graph, XLML, LinderScript) designed to interoperate together. They are called the “Linderdaum Engine”.
3. What are the video card requirements?
You will need at least a GeForce6×00 class or higher video hardware with OpenGL 2.1 (3.x is better) support to use the engine. For all-around high-performance with Linderdaum Volume Rendering Library, you definitely want the GeForce 275+/Radeon 4890+.
4. What operating systems and platforms are supported? Is the engine portable?
At present only the Win32 and Win64 platforms are supported. A Linux port is on the way. All the OS-dependant components of the engine are well localized and it should not be much pain in porting it to other OSes with OpenGL and OpenAL implementations.
5. In what projects Linderdaum Engine is used?
Fighting Chess is a game project targeted to show different features of the engine. It is available for downloading from here. Also, a couple of other projects are on the way and they will be announced as soon as they are ready. If you have a project to submit – don’t hesitate to contact me at firstname.lastname@example.org.
6. What about a scripting system? Why did not you integrate Lua/Python/etc? How deeply is it integrated into the engine?
The scripting system of the Linderdaum Engine is called LinderScript and it has far more advanced features than usual standalone scripting systems could provide. Let’s start from the last question – the LinderScript Run-Time is the heart of the Linderdaum Engine and provides a metaclasses management facilities. It is inseparable from the engine and as a plus we have a bunch of features which any standalone scripting system is unable to provide: purely object-oriented solution where one can derive scripted classes from native C++ ones, there is no difference for the engine if some class contains scripted methods or not, in derived classes you can override some methods with LinderScript or leave them as inherited C++ methods at your own will. All this stuff is handled at the lowest level inside the engine so any engine’s class could be extended or rewritten using LinderScript. At the same time the performance of the LinderScript is comparable to Python.
7. What is the XLML?
XLML stands for eXtended Linderdaum Markup Language. It has much in common with XML and was implemented to provide a more “plain text editors”-friendly way to describe different resources – shaders, GUI, worlds, actors and even compiled LinderScript classes.
8. What is the LSS?
LSS is the Linderdaum Surface Shader and it is an abstraction of how a single geometry buffer data is rendered. More technically: it specifies a state of the underlying rendering API (OpenGL), like what textures are used, how they are combined (via the fixed pipeline or a shader program), if depth writes and color writes are enabled or disabled, blending, etc.
9. Why are there RAR archives as pack files? Why not ZIP?
RAR archives could be integrated seamlessly into the engine’s file system, because it is very simple to implement a memory-mapped archive files. The second benefit is that files are stored in a linear fashion inside the archive (in ZIP archive files are stored in a folders hierarchy).
10. What development tools do I need?
To compile the engine you will need Visual Studio 2005/2008 or GCC 4.3.3+ compiler. For different resources of the engine the following file formats are used: – Meshes: ASE, MD3, LCM (created by the engine itself after the caching procedure) – Textures: any format via FreeImage library – Shaders: SHADER, SP (both are ASCII text files) – Audio: WAV (uncompressed PCM only), OGG – User interface: GUI (ASCII text file)
No any particular tools are recommended to create these file types for the engine. For additional information about mesh files requirements see an appropriate tutorial.
11. What are you going to do better then the competitors?
The goal is to implement an agile classes infrastructure capable of being tuned to handle many types of game genres. The flexible architecture of the engine serves this purpose. Most other engines are targeted to a small number of game types or even designed only to be used as a solution for some certain type of game (i.e. indoor FPS only. e.t.c.). The Linderdaum Engine is extendable enough to be useful in any type of an interactive 3D project.