This is a brief list of features currently implemented in the engine:

  1. Scene management
    • Hierarchical scene graph, nodes are organized in a hybrid structure (list, child-parent relations, and spatial index)
    • Scene elements: mesh, camera, light source, sound source, terrain (heightfield), particle system, empty object, light probe, sector, portal, etc.
    • Automatic light probe placement
  2. Space partitioning
    • Quadtree, Octree. Spatial index is replaceable even in runtime.
    • Spatial query support (objects in range, nearest object of a type, ray hit tests, etc.)
  3. Game logic
    • Fully script-based game logic
    • Properties on all accessible engine objects
    • Trigger-based engine callbacks
    • A * pathfinding with automatic navigation graph generation
  4. Rendering
  5. Configurable post-processing composition chain
    • Supports easy setup of rendering and post-processing passes using XML descriptor files
    • Relying on shaders and effects
    • Data dependency graph: nodes are passes, links are dependencies between passes
  6. Shader support
    • “Effect” XML files: shaders with parameters
    • Uber-shader support
    • Automatic engine built-in variable binding
    • Console variable binding
    • C++ and Lua API
    • Optimized rendering with minimized GL state changes
  7. Audio
    • Wrapper around OpenAL
    • Sound management
    • SoundScape support: background noises, looping, random play with varying volume, pitch, etc.
  8. Input
    • Keyboard
    • Mouse
  9. Scripting
    • Lua support
    • All scene and game objects are accessible in the scripting environment
    • Engine objects can be decorated with properties
  10. GUI:
    • OS/API independent UI element class set (not complete): Label, Button, Panel, Slider, Desktop, Window, etc.
    • XML UI declaration files
    • Skinnable: XML skin description files, controls are built from primitives (boxes, texts, colors, textures, etc.) defined in skin files,  skin is replaceable at runtime
    • Automatic GUI layout management
    • Rendered with 3D API, independent from any OS-specific GUI API
    • Scriptable events
    • C++ wrapper class generator included
  11. System, IO, and portability
    • Own system classes (DateTime, File, etc.) with specific OS implementations
    • Own template class set (containers, strings, smart pointers, etc.)
    • Independent from STL or Boost
    • Supported platforms: Win32, Linux (in progress)
  12. In-game console
    • Text output, formatted or unformatted, to in-game screen, console window, or a log file
    • Globally accessible values with names and types, visible from everywhere: code, GUI, scripting, effect and configuration files
  13. Command interpreter
    • Built-in and custom registered commands
    • Command parser
    • Command executives can be registered from any class
    • Supported IO: Win32 console window, Linux terminal, in-game console (only for output)
  14. Production pipeline support for Blender 3D
    • imports models, scenes, lights, properties, etc.
    • automatic scene, effect and model file generation, no manual work is required
  1. That a great works.
    very impressive.

    Di you distribute it ?
    Do you need some help for linux platform ?


    • Thank you very much. 🙂
      It is a work-in-progres so it is not distributed at the moment. If it becomes ready it will be distributed as a game, and maybe as a standalone tool.
      Thank you for your offer, but it is already runs under Linux (it did at last…. :-))

  1. Pingback: List of features « Merlin3d

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: