First: Hello everyone, i'm PsichiX and i'm new here
Second: i'm sorry if i should post in other place - please tell me where is the right place
Third: Since a ~3 years, in my free time, i'm working on game engine called XenoN Core. Release Candidate published a few month ago, on polish community.
What is XenoN Core?Xenon Core is a complete engine for 2D and 3D games (at this moment focused on 2D), which contains six main modules:
- Photon: The module uses OpenGL library to rendering graphics, integrated with the physical module.
- Chaos: Module to simulate the physical world, based on a variety of substances and forces.
- Echo: Sound module that uses a free Audiere library to play nine popular audio formats. It supports standard and streaming playback.
- Ether: Network module that support sockets connections and having a ready functionality of HTTP protocol (other protocols in progress).
- Psyche: Artificial intelligence module based on Filtered Signal Neural Networks.
- TimeBridge: Virtual time control module, integrated with physics. Enables forward and backward simulations on the time axis. Still in progress.
Engine Website: http://xenon.psichix.comCheck out this website to
read news and main features, or
download SDK. You can also
see gallery and
resources (at this moment commented in polish language, but i think that engine is simple so you can quickly understand examples). There is contact to me, if you try to make game on it, and you have a question for me.
I need some feedback, tests, how you see to working on it, what feature you think to add, or what should be changed.
English documentation and examples will be released before version 1.0.
Some images (also i recommend a video on website):
Some code snippet (Hello World):PROGRESS(GameProgress)
{
if( XE_IO::KeyboardGetPressed( XE_KEY_ESC ) ) Game.Exit();
Game.Camera.Update();
Game.Progress();
Game.Sprites( "sprite" )->Draw( Game.MouseGetPos( "main" ) );
XE_STRING str;
str.Format( "Helo World!\nFPS: %f\nDeltaTime: %f", XE_EVENTS::Use().FPS, XE_EVENTS::Use().DeltaTime );
Game.Fonts( "font" )->Draw( str, XE_VECTOR( 10, 10 ) );
XeRenderScene( XE_FLAG_SWAP | XE_FLAG_COLORBUFF | XE_FLAG_TRANSFORMIDENT );
}
SCENE(GameScene)
{
Game.Windows( "main" )->Width = 800;
Game.Windows( "main" )->Height = 600;
Game.WindowCentralize( "main" );
Game.Windows( "main" )->Update();
Game.OnWindowSetup( "main" );
Game.Vsync( true );
Game.ClearSceneColor( 0x00000000 );
Game.Camera.Width = (float)Game.Windows( "main" )->Width;
Game.Camera.Height = (float)Game.Windows( "main" )->Height;
Game.Sprites( "sprite" )->Prepare( "Resources/Textures/Sprite.xet" );
Game.Sprites( "sprite" )->Centralize();
Game.Fonts( "font" )->Prepare( "Resources/Fonts/Font.xet", "Resources/Fonts/Font.fnt" );
XE_EVENTS::Execute( GameProgress );
Game.Cleanup();
}