3D engine - RealmForge

转载 2006年06月23日 12:29:00

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  
  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
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
License Name Price Source Code Comments
LGPL Free Yes SourceForge.net Open-source Project


3D engine - RealmForge

The ...
  • bearfirstblog
  • bearfirstblog
  • 2006年06月23日 12:29
  • 1590

3D engine - RealmForge

The ...
  • bearfirstblog
  • bearfirstblog
  • 2006年06月23日 12:29
  • 1590

3D Game Engine Design, Second Edition --- Go to Get it !

         那么多年了,国内的出版商终于发行了一本像样的关于游戏引擎设计的书。以往的《game programming gems》和《GPU Gems》虽然是好书,可惜被翻译之后,大打折扣。  ...
  • soilwork
  • soilwork
  • 2009年03月11日 23:55
  • 7064

3D Engine Design for Virtual Globes-第二章译

  • SingleLegCat
  • SingleLegCat
  • 2016年11月29日 23:24
  • 677


免费和开源引擎 Agar - 一个高级图形应用程序框架,用于2D和3D游戏。Allegro - 基于 C/C++ 的游戏引擎,支持图形,声音,输入,游戏时钟,浮点,压缩文件以及GUI。Axiom...
  • Aaronzzq
  • Aaronzzq
  • 2012年09月27日 16:03
  • 861


开源和免费引擎免费和开源引擎 Agar  - 一个高级图形应用程序框架,用于2D和3D游戏。 Allegro  - 基于 C/C++ 的游戏引擎,支持图形,声音,输入,游戏时钟,浮点,压缩文件以及GU...
  • maikforever
  • maikforever
  • 2011年03月09日 13:31
  • 657

Canvas 3D engine_HTML5动画引擎

HTML5尚在发展当中,说替代Flash还言之过早,但它所实现的炫目功能大家也是有目共睹的,一个canvas 可以做成如此效果,那我们为什么不继续期待它的前景呢?    关键代码: javas...
  • renyiqiu
  • renyiqiu
  • 2013年11月22日 10:51
  • 2525

Irrlicht 3D Engine 笔记系列之 教程4 - Movement

详细解析Irrlicht引擎中关于Event Handle,Animator的实现方法,以及对Framerate Independent和Framerate dependent控制方式进行讨论...
  • i_dovelemon
  • i_dovelemon
  • 2014年12月16日 20:10
  • 4565


游戏引擎列表 免费引擎 Agar - 一个高级图形应用程序框架,用于2D和3D游戏。Allegro library - 基于 C/C++ 的游戏引擎,支持图形,声音,输入,游戏时钟,浮点,...
  • zhaobangyu
  • zhaobangyu
  • 2014年09月19日 13:06
  • 734


游戏引擎列表 免费引擎 Agar - 一个高级图形应用程序框架,用于2D和3D游戏。Allegro library - 基于 C/C++ 的游戏引擎,支持图形,声音,输入,游戏时钟,浮...
  • IT_ZB
  • IT_ZB
  • 2016年05月27日 13:23
  • 1720
您举报文章:3D engine - RealmForge