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

Screenshots:

相关文章推荐

3D.Engine.Design.for.Virtual.Globes.1568817118

  • 2015年05月12日 10:52
  • 15.29MB
  • 下载

3D Graphics Engine Essentials

3D Graphics Engine Essentials by Eric Lengyel A crash course on topics that every 3D engine desi...

三维渲染引擎渲染层设计(3D Engine Design for Vritual Globes -翻译未完)

1: 渲染层抽象出来的优点不翻译了。
  • zg260
  • zg260
  • 2014年09月21日 14:00
  • 1000

Irrlicht 3D Engine 笔记系列 之 自定义Animator

通过实例来讲解如何扩展Irrlicht的Animator特性,并且分析了Irrlicht的引用计数系统是如何实现的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:3D engine - RealmForge
举报原因:
原因补充:

(最多只允许输入30个字)