Axiom

Engine-default

Website:
http://axiomengine.source...

Developer:
Axiom

Launched:
Not specified

Status:
Active

Supported Platforms:
Windows

Languages Written In:
C#, VB.NET

Languages Supported:
C#, VB.NET

Graphics APIs:
OpenGL, DirectX

Rating:
  (8 reviews)

Editor:
None (be one!)

The Axiom Engine Project is a fully object oriented game engine development effort using C# and the Microsoft.NET platform to create an easy to use, flexible, extendable, and powerful engine that allows for rapid development of games for various genres. By using the .Net framework as the target platform, developers can focus more on core functionality and logic, rather than dealing with the complexities of languages like C++. The core of Axiom is a port of the very popular OGRE graphics engine, which was chosen based on its clean object-oriented design, powerful features, and flexibilty.

Supported Features

General

  • Object-Oriented Design
  • Plug-in Architecture
  • Other
  • C# codebase built using Visual Studio .NET 2003 running on .Net Framework 1.1. Also Included is a SharpDevelop combine (.cmbx) that can be used to compile and run the engine.
  • Game agnostic design, allowing the flexibility for use in a variety of game genres.
  • Strict adherence to the best practices of .NET framework naming standards and methodologies (i.e. Use of properties instead of GetX()/SetX(). Usage of .NET framework class library wherever possible. No Hungarian notation, other than the "I" prefix for interfaces. Microsoft .NET Coding Guidelines
  • Flexible plugin architecture for dynamically loading plugin functionality at runtime.
  • Work is in progress to prepare for running under Mono/Linux
  • Basic keyboard and mouse input using Managed DirectInput
  • Comprehensive C# Math Library, with support for Quaternions, as well as various sizes of Matrices, and Vectors. Operator overloads are implemented as well (not CLS compliant yet however). Math code has been ported over from C++ and has been hand optimized to perform as best as the CLR will allow.
  • Automatic resource management, for maintaining memory quotas. Supports flexible archive implementation, including folder structures and .zip files using SharpZipLib.
  • Built in logging support via a log writer that implements TraceListener. All messages are written using Trace.Write.
  • Fixed-function
  • Render-to-Texture
  • Fonts
  • GUI
  • Extensible render system support, via plugins. Current implementations include Tao for OpenGL, and Managed DirectX 9.
  • Virtual hardware vertex/index buffer interface, allowing for faster rendering of primitives by placing geometry data in video AGP memory, eliminating the need for keeping it in application memory and copying it over every frame.
  • Support for Ogre .material files, allowing the flexibility for controlling fixed function render state on a per object basis, in addition to specifying texture blending and texture effects such as scrolling and rotating.
  • Smart rendering pipeline, with sorting designed to reduce render state changes as much as possible. Transparent objects are also sorted to allow blending into the scene correctly.
  • Font bitmap support using the Ogre .fontdef format for loading bitmaps based and dynamically generated font bitmaps.
  • Environment Mapping
  • Billboarding
  • Particle System
  • Sky
  • Fog
  • Mirror
  • Spherical environment mapping
  • Particle systems, extendable via plugins for defining new Emitters and Affectors and definable through Ogre particle scripts.
  • Support for skyboxes via cubic textures, and sky planes.
  • 2d billboard support, with built in pooling to reduce runtime overhead. Supports sprites, and is also used for the particle system.

Lighting

  • Per-vertex

Shadows

  • Shadow Volume

Texturing

  • Basic
  • Multi-texturing
  • Bumpmapping
  • Mipmapping
  • Volumetric
  • Projected
  • Support for a variety of image formats, including .png, .jpg, .gif, .tga, with dynamic MipMap generation. .dds files are supported for 2D, Volume, and Cubic textures in both DirextX AND OpenGL via DevIL.
  • 1D, 2D, Cubic, and Volume textures.

Shaders

  • Vertex
  • Pixel
  • High Level
  • Vertex/Fragment programs, including Cg and HLSL high level plugins, as well as support for loading ASM shaders
  • Vertex/Fragment programs are also fully configurable in the material files, and allow for parameters that instruct the engine to track various states and supply them automatically to the program parameters, such as worldviewproj_matrix, light_position_object_space, camera_position_object_space, etc.
  • Support profiles at present are: * DirectX 8 - vp_1_1, ps_1_1 - ps_1_4 * DirectX 9 - vp_2_0, ps_2_0 * OpenGL - arbvp1, arbfp1, fp20 (GeForce3/4 Register and Texture Combiners supported via nvparse), vp30/fp30 (GeForceFX).

Meshes

  • Mesh Loading
  • Skinning
  • Progressive
  • Fast Mesh loader support the Ogre .mesh file formats 1.10 and 1.20, now including pre generated LOD levels based on the entitie’s distance from the camera.
  • Exporters for various 3D Modeling programs, including Milkshape and 3dx Max can be downloaded from the Ogre downloads page

Scene Management

  • General
  • BSP
  • Octrees
  • LOD
  • Extensible Hierarchical Scene Graph
  • Octree scene manager plugin which includes a basic heightmap loading scene manager

Animation

  • Keyframe Animation
  • Skeletal Animation
  • Skeletal animation with an Ogre .skeleton file loader. Features include multiple bone assignments per vertex, smooth frame rate scaled blending, and multiple animations can be blended together to allow for seamless animation transitions.
  • Allows animations to be assigned to nodes in the scene graph, allowing objects to move along predefined spline paths.

Physics

  • Basic Physics
  • Collision Detection
  • Functional ODE physics plugin; currently supporting gravity, as well as ground plane-box and box-box collision
  • Extendable controller support, allowing a wide variety of automated effects at runtime. Built in examples will include sin wave driven light flashing, rotating objects about an axis, and texture scrolling.

Scripting

Supported.

Licensing

License Name Price in $US Source Code Included?
LGPL Free Yes

Write a Review

Showing 1-8 of 8

0 of 0 people found the following review helpful

Your sample pics look amazing

  by 7442ba45f03f4314d1810d896f641fbc longhorndkr Dec 04, 2007 at 00:19

Just wanted to say that of the engines I have checked out--Torque (costs big-time to build something due to license restrictions, screw that), Irrlicht and Axiom--you have the most amazing pics of any of them. Your two linked pics below (or above now that I see my review at the bottom of thel ist) are the shiznit. They don't look hokey like a game from 1980. They look almost like 7MP camera shots of some sweet place.

I would prefer if you have a better/easier demo process like Irrlicht's--in about five minutes after downloading I was able to double-click on their 20 or so demos in Windows (.exe's) and was sitting there looking at mini-trailers. Also, I see VB.Net listed in the devmaster description--I'm a VB.NET guy--but links to any VB.NET sample code is apparently eluding me, although I have found your great VB API docs at http://axiomengine.sourceforge.net/AxiomSDK-0.7.1.0/Index.html

I understand you are probably working your butt off and doing a pretty damn good job of it from what I see. Just thought I'd add my 2 farthings.

Was this review helpful to you? Yes No
0 of 0 people found the following review helpful

gooooooooooooooood

  by Ec499137ee0d5537956de1a538a7cb05 koner Jan 24, 2007 at 20:21

I have been using Axiom for nearly a year and can not believe how advanced of any engine it is. It has many of the features that you would find in the newest games (such as rag-doll physics, shader programs, Object-oriented design, excellent weather effects, editable terrain, Octree culling, and some absolutely outstanding support for incredible shaders through the use of the simple OGRE Particle Scripts. Because Axiom is licensed under the LGPL, it can be used by commercial and open-source software developers alike and because it is a SourceForge.net project, you have easy access to a wealth of services such as access to the code base via CVS and web-browsing, feature requests, and bug-tracking. Axiom has not received as much use as it deserves as it classifies itself as in an “alpha” status. Axiom is entirely usable; it can be and is used for the development of incredible games. Though Axiom has not made any “official” source releases, you can download their latest version of their source (http://axiomengine.sourceforge.net/modules.php?name=Downloads&d_op=viewdownload&cid=3). Once the refactoring is finished so that the project is made fully cross-platform (something that is only possible with managed languages like C#), this will return to being the nightly source snapshot (which is very often stable despite its label to the contrary). Axiom works well with Mono - the open-source, cross-platform implementation of the .NET framework – and uses prebuild to generate project files for whatever IDE you might wish to develop with.

One of the most attractive features of this engine is its Extensible Hierarchical Scene Graph. Everything is a node which has parents and children. The can be attached and reattached as needed. This design would allow you to remove and entire continent from the rendered world just by temporarily removing its node from the scene. You can also attach an sword to a hand or a light to a wall just by setting the parent node. If a transformation is applied to the parent, then the children will follow suit.

I have tried many commercial engines and have only found one with as advanced technology as Axiom, and that is the OGRE engine. This is expected though as Axiom is a C# rewrite of OGRE. What wasn't expected is that Axiom is much more efficient then OGRE.
C# is often ignored by the game development world and cast aside because it isn't "fast enough" or "mature enough" or even for something as illogical as considering it a "child of Microsoft", but Axiom with its incredible speed, power, and flexibility show these common viewpoints as misconceptions. C# draws the finest points from the most popular languages such as C++, Java, VB, and even Perl and integrated powerful technologies such as Reflection, Remoting, and extensible Serialization. Game Development stresses 3 important points: advanced rendering technology (especially shaders and physics), Rapid Application Development (RAD), and maintainable and reusable code. All of these concepts are exemplified by the Axiom.

Other then the features of the Axiom engine, what sold me on it was the excellent level of support and the structure of the project. The Axiom code reads like a book: good documentation of the API with a very intuitive, object-oriented design. You will never fail to find excellent support with the large community or users and developers that has been fostered in the Axiom Forums (http://axiomengine.sf.net/modules.php?name=Forums).

The engine is truly built on an extensible, plugin-based architecture as nearly every part of the engine can be replaced seamlessly and easily with a custom implementation. You can either override a single method scene culling method in one of the default SceneManager implementations or replace the entire OpenGL or DirectX rendering system. Good programming practices are strictly enforced and due to the RAD nature of C# along with new technologies such as Reflection, Axiom is one of the most concise engines I have every seen. It is infinitely smaller then others (even the OGRE engine on which it is based) and was able to be developed and maintained by far less developers.

Though Axiom is a very well-written and maintained engine with great support and outstanding features which parallel commercial engines, it does – as do all- have a few shortcomings. Axiom is not yet at a production version (though I would consider it alpha either). Though documentation of the API can easily be generated from the source, it does not have any formal documentation on its use. There are a few tutorials on getting started with accomplishing very simple tasks and the rendering demos can be dissected to give some insight into how to use it, but as Axiom these simple hardcoded demos are the most complex projects that can be accomplished when interfacing directly with Axiom. Nearly ever game developed in the past few years is data-driven as opposed to being hardcoded. Most good ones such as Morrowind, Half-Life, Neverwinter Nights, Half-life II, and Doom III are script-driven and developed using an “Editor”, “Toolset” or “Construction Set”. Some developers would consider this a step-away from instance game kits like 3D Game Studio (tried it, hated it), but it is the only way to provide the level of abstraction and the required tools to developer a decent game. One of the incredible features that Half-Life II advertises is the ability to design a level - down to the shaders on entities - using nothing but the editor.

The RealmForge GDK has been in development for some time to provide this means of abstraction to develop an excellent data and script-driven games. It is a much higher-level framework and because it - like Axiom – is designed with a plugin-based architecture in mind, it is not dependent on any one rendering engine. Axiom is currently the only engine in its class, but OGRE and Purple# may be supported later. RealmForge all the critical structure and services for a game. These features include from flexible and efficient serialization to XML, Networking, MMORPG Server-design, a world editors, a fast and flexible script-based event architecture for every entity and system in the game, and even a in-game editor which blurs the distinction between runtime and design-time development of games. The series of interfaces for entities allows an abstraction from the lower-level, rendering-centric Axiom entities which characters and object found in a game. You can easily provide your own attributes for objects and characters using the in-game editor and have you world – scripts, entity information, and all – saved to a game module. Similar to Morrowind, there is also a support for concise plugin modules which can be loaded to make minor modifications (or mods) for the game. RealmForge is both a game development toolset and a framework which serves as an abstraction of rendering engine. It caters to the both the inexperienced hobbyist and the experienced game development team. Due to its LGPL open-source license and extensible OOP design, it can easily to modified or supplemented to serve your needed. The heavy reliance of scripts entities written in C# and Configuration classes allows nearly every aspect of it to be configured without every modifying the code-base. The IDE that will be provided with the editor is capable of dynamically compiling these scripts written in C# into IScript objects which can easily be attached to entities. To cut-down on repetitive code, different parameters can be supplied for a script for each entity that it is attached to. These can even be changed in-game or via the editor without compiling another script. With scripts that can be easily written, compiled, and run with the in-game editor, the game console will become obsolete. As with every-thing else, these scripts can be included in any plugin assembly includes with the engine. You can therefore write the scripts using any IDE. Axiom is an incredible rendering engine and RealmForge is the framework and toolset that will allow for the rapid development of a game with it. Any game what would be developed using just Axiom would have to re-implement all of its features and toolsets. Though it you intend to interface with Axiom directly, the Axiom plugin in the RealmForge code-base serves as a good example of

Was this review helpful to you? Yes No
0 of 0 people found the following review helpful

Project is close to dead

  by Bd9b0539d47a63906973e7a4a109312f flipgimble May 05, 2005 at 14:31

I had high hopes for this project since it promised to deliver a well designed and complete engine architecture with all the functionality of a native .NET library. Based on that I spend good several weeks getting it up and running and porting one my existing Ogre projects as for evaluation purposes.

However the project and the community has been a dissapointment unfortunetly. The HEAD revision does not compile at all. There are no updates, there is no leadership and no possible future for this project. I believe there is already a fork in progress at http://www.realmforge.com. The main author is non responsive and sporadiaclly posts about playing World of Warcraft.

The code produced up to this point is of great value and the people responsible for it should be thanked. However as an example of project management it should be avoided. I would advise anyone with some enthusiasm to spend their energy elsewhere.

Was this review helpful to you? Yes No
0 of 0 people found the following review helpful

A great opensource 3d engine...too bad you cant find doc

  by 49708a8f333968dc999bab7dc4e83cb7 baudspeed Jan 16, 2005 at 02:51

you would like to think that the following doc is good. but i cant get this to compile. Only portions of this do. And my nagging on the forums goes unheard because there are only about 4-5 people who regularly submit their thoughts on anything and most of the time they are dealing with much higher level stuff.

I had done some work in blitzbasic once, and it was far supperior in support, and therefore even though the GDK was limited and simple, i could force it to do things it wasnt designed for. However, even with a powerful ogre based app for .net, (a languageset that i know and feel comfortable in) i cant seem to get it to work. Kinda sad. Hope others have luck, because the other people who submitted their reviews must have been walked through the setup of the projects that need to be precompiled prior to starting your own work.

http://www.cs.usask.ca/~djj734/AxiomTuts/Tut1/AxiomTut1.html
http://www.axiom3d.org/Default.aspx?tabid=27&g=posts&t=1734
http://www.axiom3d.org/Default.aspx?tabid=27&g=posts&t=1745
http://www.gamedev.net/community/forums/topic.asp?topic_id=288099

Was this review helpful to you? Yes No
0 of 0 people found the following review helpful

This Engine Is Fantastic

  by 79063c17febc5a400d7be30c230ee160 Fiz Dec 11, 2004 at 04:41

Man, forget about every other engine you see and grab this one, WOW, Who ever did this one knows how to put things together, I can't believe you can get it for free, grab it while you can, Excellent job, I just can't say enough, very clever piece of work. Power, speed, with it you can create character's to leap over tall buildings, YeeeeeeeHa! Get it, and your only moments from seeing your own polys! All you need is an imagination and AXIOM.... YeeeeeeeHa!

AXIOM forever!

Was this review helpful to you? Yes No
0 of 0 people found the following review helpful

Performance of AXIOM

  by 466c20ee734b5ea7feb3644b7e4f0ebb KOz Nov 22, 2004 at 13:34

This seems to be an excelent engine, except for the fact that I am unable to find any documentation for it. I am also not able to find any offical resease for it yet, so all my experience with it is based on the "Unstable" source code, which, I might add is proving quite stable.

Was this review helpful to you? Yes No
0 of 0 people found the following review helpful

A stable OGRE3D port, and then some...

  by 4665ba1815d90c0b8181df19c296d668 danielmd Sep 19, 2004 at 11:24

Axiom (C#) is a port of the Ogre3D rendering engine (C++), it's user base is smaller, but with the increased performance of the managed .net languages from Microsoft, it is a good bet on productivity.

C++ can be complex, and isoteric sometimes, C# is a good place for newbies, and Axiom provides allot of power in one bag, together with Chronos World Editor it can be a nice solution for Indies and Hobbyist game developers. With some polishing of the code, and a high spec sheet it can even be made into a nice commercial solution.

LINKS:
http://chronos.digitalsentience.com/cgi-bin/trac.cgi
http://www.ogre3d.org/

Was this review helpful to you? Yes No
0 of 0 people found the following review helpful

Open-source, yet better then any commercial alternative

  by F7b189fe0cae25cd27e41b5cebb10b3d xeonx Aug 13, 2004 at 16:03

I have been using Axiom for nearly a year and can not believe how advanced of any engine it is. It has many of the features that you would find in the newest games (such as rag-doll physics, shader programs, Object-oriented design, excellent weather effects, editable terrain, Octree culling, and some absolutely outstanding support for incredible shaders through the use of the simple OGRE Particle Scripts. Because Axiom is licensed under the LGPL, it can be used by commercial and open-source software developers alike and because it is a SourceForge.net project, you have easy access to a wealth of services such as access to the code base via CVS and web-browsing, feature requests, and bug-tracking. Axiom has not received as much use as it deserves as it classifies itself as in an “alpha” status. Axiom is entirely usable; it can be and is used for the development of incredible games. Though Axiom has not made any “official” source releases, you can download their latest version of their source (http://axiomengine.sourceforge.net/modules.php?name=Downloads&d_op=viewdownload&cid=3). Once the refactoring is finished so that the project is made fully cross-platform (something that is only possible with managed languages like C#), this will return to being the nightly source snapshot (which is very often stable despite its label to the contrary). Axiom works well with Mono - the open-source, cross-platform implementation of the .NET framework – and uses prebuild to generate project files for whatever IDE you might wish to develop with.

One of the most attractive features of this engine is its Extensible Hierarchical Scene Graph. Everything is a node which has parents and children. The can be attached and reattached as needed. This design would allow you to remove and entire continent from the rendered world just by temporarily removing its node from the scene. You can also attach an sword to a hand or a light to a wall just by setting the parent node. If a transformation is applied to the parent, then the children will follow suit.

I have tried many commercial engines and have only found one with as advanced technology as Axiom, and that is the OGRE engine. This is expected though as Axiom is a C# rewrite of OGRE. What wasn't expected is that Axiom is much more efficient then OGRE.
C# is often ignored by the game development world and cast aside because it isn't "fast enough" or "mature enough" or even for something as illogical as considering it a "child of Microsoft", but Axiom with its incredible speed, power, and flexibility show these common viewpoints as misconceptions. C# draws the finest points from the most popular languages such as C++, Java, VB, and even Perl and integrated powerful technologies such as Reflection, Remoting, and extensible Serialization. Game Development stresses 3 important points: advanced rendering technology (especially shaders and physics), Rapid Application Development (RAD), and maintainable and reusable code. All of these concepts are exemplified by the Axiom.

Other then the features of the Axiom engine, what sold me on it was the excellent level of support and the structure of the project. The Axiom code reads like a book: good documentation of the API with a very intuitive, object-oriented design. You will never fail to find excellent support with the large community or users and developers that has been fostered in the Axiom Forums (http://axiomengine.sf.net/modules.php?name=Forums).

The engine is truly built on an extensible, plugin-based architecture as nearly every part of the engine can be replaced seamlessly and easily with a custom implementation. You can either override a single method scene culling method in one of the default SceneManager implementations or replace the entire OpenGL or DirectX rendering system. Good programming practices are strictly enforced and due to the RAD nature of C# along with new technologies such as Reflection, Axiom is one of the most concise engines I have every seen. It is infinitely smaller then others (even the OGRE engine on which it is based) and was able to be developed and maintained by far less developers.

Though Axiom is a very well-written and maintained engine with great support and outstanding features which parallel commercial engines, it does – as do all- have a few shortcomings. Axiom is not yet at a production version (though I would consider it alpha either). Though documentation of the API can easily be generated from the source, it does not have any formal documentation on its use. There are a few tutorials on getting started with accomplishing very simple tasks and the rendering demos can be dissected to give some insight into how to use it, but as Axiom these simple hardcoded demos are the most complex projects that can be accomplished when interfacing directly with Axiom. Nearly ever game developed in the past few years is data-driven as opposed to being hardcoded. Most good ones such as Morrowind, Half-Life, Neverwinter Nights, Half-life II, and Doom III are script-driven and developed using an “Editor”, “Toolset” or “Construction Set”. Some developers would consider this a step-away from instance game kits like 3D Game Studio (tried it, hated it), but it is the only way to provide the level of abstraction and the required tools to developer a decent game. One of the incredible features that Half-Life II advertises is the ability to design a level - down to the shaders on entities - using nothing but the editor.

The RealmForge GDK has been in development for some time to provide this means of abstraction to develop an excellent data and script-driven games. It is a much higher-level framework and because it - like Axiom – is designed with a plugin-based architecture in mind, it is not dependent on any one rendering engine. Axiom is currently the only engine in its class, but OGRE and Purple# may be supported later. RealmForge all the critical structure and services for a game. These features include from flexible and efficient serialization to XML, Networking, MMORPG Server-design, a world editors, a fast and flexible script-based event architecture for every entity and system in the game, and even a in-game editor which blurs the distinction between runtime and design-time development of games. The series of interfaces for entities allows an abstraction from the lower-level, rendering-centric Axiom entities which characters and object found in a game. You can easily provide your own attributes for objects and characters using the in-game editor and have you world – scripts, entity information, and all – saved to a game module. Similar to Morrowind, there is also a support for concise plugin modules which can be loaded to make minor modifications (or mods) for the game. RealmForge is both a game development toolset and a framework which serves as an abstraction of rendering engine. It caters to the both the inexperienced hobbyist and the experienced game development team. Due to its LGPL open-source license and extensible OOP design, it can easily to modified or supplemented to serve your needed. The heavy reliance of scripts entities written in C# and Configuration classes allows nearly every aspect of it to be configured without every modifying the code-base. The IDE that will be provided with the editor is capable of dynamically compiling these scripts written in C# into IScript objects which can easily be attached to entities. To cut-down on repetitive code, different parameters can be supplied for a script for each entity that it is attached to. These can even be changed in-game or via the editor without compiling another script. With scripts that can be easily written, compiled, and run with the in-game editor, the game console will become obsolete. As with every-thing else, these scripts can be included in any plugin assembly includes with the engine. You can therefore write the scripts using any IDE. Axiom is an incredible rendering engine and RealmForge is the framework and toolset that will allow for the rapid development of a game with it. Any game what would be developed using just Axiom would have to re-implement all of its features and toolsets. Though it you intend to interface with Axiom directly, the Axiom plugin in the RealmForge code-base serves as a good example of how to use the Axiom engine.

Was this review helpful to you? Yes No

Suggest Edits

Last edited Dec 28, 2011 at 13:11

Are your the owner of this engine? Let us know to be able to update it, and reply to reviews, and other benefits.