Elder.Core

The Elder game system is based on the Microsoft Xna Framework 4.0 and designed to run with full performance on Windows, XBox 360 and Windows 7 Phone based systems. The modular structure of the engine is designed with flexibility in mind to ensure a robust “Jack of all trades” toolkit.

The name ‘Elder’ is a tribute to the elders and the myth of Cthulhu in the novels and short stories of Howard Phillip Lovecraft - we are proud Lovecraftanian.

The nightmare corpse-city of R’lyeh ... was built in measureless eons behind history by the vast, loathsome shapes that seeped down from the dark stars. There lay great Cthulhu and his hordes, hidden in green slimy vaults ... until the end.



Features
  • Graphic System - The graphic system is based on an internal rendering queue which is able to handle instanced, derived and basic meshes. Derived means that the geometry can be instanced or traditional data that differs by shaders etc.
  • Shader System - Elder.Core provides an extensible SAS (Shader Annotation System) compatible framework that manages all commonly used standard annotations including extensions used by the nVidia FX Composer 2.x and mental Mill 1.x.
  • Material System - The framework is based on an internal material system. A material collection is stored as XML document. The materials can be grouped and managed to keep a clean structure. All materials can be defined by a custom .fx shader, parameter initialization, physical representation and behavior of the surface, the sound a surface produces etc. The material system is completely integrated and managed by the Xna Content Pipeline.
  • Post-Processing Framework - A post-processing framework can be applied to Guis and Scenes. A filter can also decide which elements (Gui widgets or Screne nodes) are included in the current post-processor step. Over 70 post-processor instances are defined like bloom, gloom, real HDR, color manipulators, screen based effects etc which can be chained, temporary deactivated and reordered.
  • Gui System - The user interface system is very flexible in both, design and usability. Over 30 standard widgets including containers, buttons, lists, fields, spin-lists, panels, and windows. The design and layout of the guis can be done via code and XML documents which are processed by the content pipeline. Color schemes, skin assignments and global apperance of the widgets are very similar to CSS syntax and can be modified at runtime. Each widget contains standard over 15 events like OnEnter, OnLeave, OnDown, OnUp, OnPressed, OnMove, OnResize etc. By deriving from the base class new widgets can be created within minutes.
  • Scene Management - A very complex scene manager handles the scene nodes. Each node can carry unlimited entities like renderable meshes (skinned, animated or static), lights (directional, point, spot, area or projector), sound emitters, triggers etc. which can be easily extended and derived. The scene manager connects the ‘world’ with the heart of the engine - the graphic system. Complex culling mechanisms decide (broadphase by culling nodes, and narrowphase by culling mesh fragments) what parts of the scene are rendered. The scene manager is hierarchical with a root all other nodes are attached to.
  • Lighting Model - The lighting model is depending on the renderer used to display the scene. Elder.Core offers a forward, a deferred and an inferred renderer to allow nearly unlimited numbers of light sources. The visible lights are calculated by the light manager at flexible frame rates. The shadowing system contains PSM (Perspective Shadow Mapping), LiSPM (Light Space Perspective Shadow Mapping) and CSM (Cascading Shadow Mapping).
  • Physics System - The scene manager contains an interface to commonly used physic engines like Bepu Physics, JigLibX, BulletX (will be deprecated in further versions) and - via wrappers - Intel Havok, nVidia PhysX, Newton Game Physics (only available in conjunction with Windows systems). Each scene node contains a body interface and can be used as a rigid element in the virtual world.
  • Input System - XInput is the main interface to human input devices (Xbox360 controllers, wheels etc.) - for all other types of gamepads a DirectX wrapper is used to simulate the same behavior. The key mapping of the input devices can be changed per gamer at runtime. Since Xna 4.0 Elder.Core now supports multitouch devices.
  • Artificial Inteligence - For basic artificial inteligence a number of tools are implemented like neural networks, complex fuzzy logic, pathfinding (between scene nodes or vectors) and virtual senses (see, smell and hear by attaching hint nodes) including the blackboard to manage the sensing results.
  • Screen Managment - A very complex and intuitive screen manager handles the flow and logic of the games created with the Elder game system.
  • Networking - The framework takes advantage of the Xna Live components (only available in combination of Microsoft certification or Xbox Live Indie Games) and complete integration for Steam and Impulse platforms on Windows based PCs.
  • Controller System - Each object the game engine provided can take a collection of controllers to modify behaviors, apperances or anything else at runtime. The controllers can hijack every exposed property of an object and apply modifications to their values like tweening colors or positions.
  • Content Pipeline - The content pipeline contains fonts (100% unicode with icon and symbol support), skinned animation sequences, atmospheres and skies, custom materials, particle system definitions etc.
  • Tool Sets - Bundled in the Elder.Core binaries a 100% managed WYSIWYG (What You See Is What You Get) Editor for all asset types the engine provides. New asset types can be easily included via plugins.
  • Modularity - The modularity is the most important part of the Elder game system. A number of Elder.xxx modules, providing special-case implementations and extensions for a specific game genre, are already working hand in hand with the core library. For example Elder.Race is a module for racing simulations, Elder.Gore is a specialized framework for first (third) person games. Each module is equipted with a specific content pipeline.
  • Documentation - Over 800 pages of documentation and step-by-step tutorials are provided with Elder.Core to help generating games and virtual application with ease. The documentation is included as PDF and Visual Studio Help files.