| The RealmForge GDK is a cross-platform game development framework and toolkit written in Mono/C# and powered by the Axiom 3D engine. It will allow for the rapid development of cutting-edge software and MMORPGs with advanced graphics, audio, and networking capabilities. | | Author | Dan Moorehead | | | | Graphics API | OpenGL, DirectX | Operating Systems | Windows, Linux, MacOS, Solaris, HP/UX, FreeBSD | | Programming Language | C/C++, C#, D, Delphi, Ada, Fortran, Perl, Python, VB.NET | Status | Alpha | | Documentation | Yes | | | | Features |
| | General Features | Object-Oriented Design, Plug-in Architecture, Save/Load System:
| • | Plugin architecture ensures a flexible framework, game engine, and toolset | | • | Everything from the editor to the GUI's are data and script-driven | | • | Master Modules contains nearly all aspects of the game data: world design, script attachment, entity placement and configurations, shader configuration, game settings, in-game literature, races and classes, and gameplay settings to name a few | | • | The framework supports every conceivable game genre (eg. RPG, FPS, MMORPG, Adventure) and even those not often considered for 3D games (ie board, and puzzle) | | • | The framework includes the RealmForge Media Library which is a compilation of free resources developed for it | | • | A heavy singleton architecture is used to create a series of distinct systems with minimal dependencies which can be replaced with custom implementations | | • | Plugin Modules can be created by the editor, these are concise diff-grams similar to those of Morrowind. They can be used by the modding communities or distributed as game updates. | | • | Maintainability and good OOP practices as well as project standards are enforced in this open-source project | | • | The plugin architecture allows OpenGL and DirectX to be used interchangeably, like most aspects of the game; this can be changed simply by changing a value in the Config class. | | • | Written in C# using the .NET Framework, so can be used by all .NET Languages including C#, C++ .NET (MC++), VB .NET, J#, Delphi .NET, Jscript .NET, Lua .NET, Perl .NET, Python .NET | | | | Scripting |
| • | Everything is controlled by scripts and uses interfaces to allow for full customization without modification of the code | | • | Uses C# and JScript.net for scripting language providing unprecedented power, flexibility, and simplicity | | • | Scripts can be developed in the IDE with an optional minimized syntax to emulate JScript.net | | • | Scripts can be compiled and run on the fly mid-game | | • | Assemblies can be automatically loaded and have their scripts registered | | • | Every entity is fully scriptable and has a wide range of events which scripts can be attached to | | | | Built-in Editors |
| • | The Game Editor is integrated into the engine and can be displayed in-game similar to Doom III | | • | The line between design-time and runtime are blurred as a game can be edited using the full range of tool windows similar to an IDE | | • | The in-game edit allows the beta testing and modifications to be made simultaneously | | | | Physics | Basic Physics, Collision Detection, Rigid Body, Vehicle Physics:
| • | The Tao C# binding for ODE is used for an excellent open-source physics implementation | | • | The OOP plugin architecture allows for an extensible physics engine which can easily be configured for you game | | • | Rag-doll physics allows for characters to be designed from a series of body parts for a vast array of different character with minimal effort | | • | Support for the dismemberment of characters | | | | Lighting | Per-vertex, Per-pixel, Lightmapping:
| • | Unlimited number of lights | | • | Easy application of lighting effects such as blinking and sparks | | • | scriptable Light entities with scriptable movement paths | | • | A wealth of properties including ambient and diffuse colors, intensity and radius | | • | Support for different light types including spotlight, point, cone, and ambient | | | | Shadows | Shadow Mapping, Projected planar, Shadow Volume:
| • | Supported techniques include modulative stencil, additive stencil, modulative projective, texture mapped, texture modulative, and decals | | • | Multiple stencil shadow optimizations | | • | Texture shadows fade out at far distance for FPS optimization | | | | Texturing | Basic, Multi-texturing, Bumpmapping, Mipmapping, Volumetric, Projected:
| • | Support for Picture-in-picture to emulate effects such as cameras or rear-view mirrors | | • | Views can be rendered to a texture and applied to an entity to simulate working in-game cameras or video feeds | | • | Textures are registered as Materials so that can be loaded from different resource including compressed archives and libraries. | | • | All materials are simple shaders allowing them have dynamic properties | | • | Excellent in-game cut-scene rendering and path/movement scripting | | • | Supports PNG, JPEG, TGA, BMP and DDS image files | | | | Shaders | Vertex, Pixel, High Level:
| • | Supports vertex and fragment programs (shaders) | | • | Low-level programs written in assembler | | • | High-level programs written in Cg or DirectX9 HLSL | | • | The shaders are abstracted into Modifiers which can be applied to entities to generate the desired visual effects | | • | A number of different properties are provided for each Modifier to allow it to be tailored to the target without the writing multiple programs | | • | The OOP design allows game designers to concentrate on the game itself without an intricate knowledge of shaders | | • | A library of Modifiers abstracting a series of different shaders are provided as a catalyst for game development | | • | Every entity uses a simple shader or Material object to ensure that all textures are dynamic | | • | Material support different techniques to account for different levels of shader support in video cards | | • | Provides automatic support for many commonly bound constant parameters in the shaders | | | | Scene Management | General, BSP, Octrees, LOD:
| • | Highly customizable and flexible scene management | | • | Plugins can override parts scene management with custom implementation | | • | Different Axiom Scene Managers are supported to control low-level culling and features such as terrain rendering | | • | Hierarchical (node-based) scene design | | • | References to node trees provide an inlined prefab support (ie. a house template is used and minor modifications can be made for each instance) | | • | Unique ID's allow referencing of specific entities in scripts | | • | Regions or second-level nodes allow for environment settings such as sky and fog to differ for different areas | | • | Node-based design with Region culling allows for a loadless game design | | • | Realms (or highest level nodes) are used to denote unconnected regions of the game. This can be used to create a game which maintains separate cells and loads them when entered. | | • | All Entities (including Regions, Nodes, and Realm) can be overridden to allow for custom implementations | | | | Animation | Keyframe Animation, Skeletal Animation, Facial Animation, Animation Blending:
| • | Skeletal animation with blending of multiple animations and variable bone weights | | • | Physics-based animations in which forces are applied to bones and body parts to ensure the realism and integrity of animations | | • | Built-in tools for animating rag-doll characters | | | | Meshes | Mesh Loading, Skinning, Progressive:
| • | Hardware-accelerated skinning | | • | Flexible mesh data formats accepted | | • | Loads OGRE Mesh, Skeleton, and Material formats | | • | Working on 3DS and LWO loading | | • | Exporters for 3DS Studio Max, Blender, Lightwave, Maya, Milkshape, Wings3D | | | | Surfaces & Curves | Splines, Patches:
| • | Biquadric Bezier patches for curved surfaces | | | | Special Effects | Environment Mapping, Lens Flares, Billboarding, Particle System, Sky, Water, Fire, Explosion, Decals, Fog, Weather, Mirror:
| • | Interactive water which responds to weather such as rain and hail and is displaced by other entities | | • | Particle Systems represented as IEffect entities which can have scripted movement and variance or be applied to other entities | | • | Support for different sky types including Dome, Plane, and Cube | | • | Use of shaders allows dynamic effects such as wind-speed and direction for Sky and Water | | • | Different water entities have different properties allowing them to be more viscous or thick for the creation of swamps | | • | Fog disguises the camera culling region or can be applied over an area | | • | Underwater foggy effect | | • | Incredible Fire, Explosion, and other particle/sprite effects are represented as configurable IEffect entities which can be placed with the game editor | | • | Environment settings such as sky, fog, ambient light, and weather can be configured separately for different regions of the world | | | | Terrain | Rendering:
| • | Rendering and culling of terrain cells | | • | Loading of meshes and height-maps | | • | Support for lighting and shadows on terrain | | • | Optional approximation of lighting for FPS optimization | | • | Terrain collision detection | | | | Networking System | Client-Server, Peer-to-Peer, Master Server:
| • | Flexible network and server support for different types of games | | • | Centralized server, or peer-to-peer networking | | • | Designed for use in massive-multiplayer games such as MMORPGs | | • | The flexible design provides different server implementation to ensure that the networking is optimized and tailored to each game | | • | The use of .NET Remoting (or clear proxy object with RPC calls under the hood) allows games to be run with a server with no changes in the underling code. This allows games to be networking enabled with no extra effort | | | | Sound & Video | 3D Sound, Streaming Sound:
| • | OpenAL for excelent cross-platform sound | | • | 3D sound with panning, volume, doppler, and cones | | • | Implemented in an OOP fashion with the use of scriptable Sound entities | | | | Artificial Intelligence | Pathfinding, Decision Making, Finite State Machines, Scripted, Neural Networks:
| • | A Neural Networks/Decision-Tree Hybrid is used as the primary mode of AI decision making | | • | A genetic algorithm allows for the evolution or characters or races of creatures for the creation of challenging opponents which learn to match the player’s tactics | | • | Every aspect of the engine is scriptable and AI is no exception | | • | An event-based architecture for the characters to provides a powerful scripting interface for the AI | | • | Different path finding algorithms will be provided to accommodate different game genres | | | | Rendering | Fixed-function, Render-to-Texture, Fonts, GUI:
| • | Level-of Detail rendering optimizes FPS | | • | Transparency in textures automatically applied (eg. png, gif) | | • | Supports the complete range of fixed function operations to account for hardware which doesn’t support shader use | | • | Support for multiple material techniques | | | | Features: |  | Ease of Use: |  | | Stability: |  | Support: |  | | Date Added | Fri, 6 Aug 2004 | Last Updated | Tue, 19 Apr 2005 | | There are currently 10 reviews for this engine | |