Xenko Game Engine
C# C++ Pascal HLSL C Python Other

README.md

Xenko

This is the source code for Xenko Game Engine (http://xenko.com/).

License

Community

Documentation

Assemblies

Assembly diagram

  • SiliconStudio.Xenko.Graphics: Platform-indepdenent D3D11-like rendering API. Implementations for Direct3D 11 (with feature levels 9.1 and 10), OpenGL 4 and OpenGL ES 2.0.
  • SiliconStudio.Xenko.Games: Windows and game loop management.
  • SiliconStudio.Xenko.Input: Input management, including keyboard, joystick, mouse, touch, gestures.
  • SiliconStudio.Xenko.Engine: Effect system, entity system, particle system, high-level audio engine, etc...
  • SiliconStudio.Xenko.UI: In-game UI library, similar to WPF (including many UI Controls).
  • SiliconStudio.Xenko.Shaders: Xenko shader language, including many new language constructs to make shader programming much more easy/modular.
  • SiliconStudio.Xenko.Audio: Low-level audio engine.
  • SiliconStudio.Assets: Modular asset project management and pipeline system.
  • SiliconStudio.Xenko.GameStudio: Asset editor for Xenko. Allow asset browsing and editing, and Xenko Asset project editing.

We currently do not provide sources for:

  • SiliconStudio.Xenko.GameStudio due to a licensed third party library that we use, Telerik. That might be lifted in the future.
  • Autodesk Max and Maya plugin (which will be released in the future) due to SDK licensing restrictions.

Silicon Studio .NET

SiliconStudio .NET is a collection of shared C#/.NET code that is project independent. It is located inside sources/common subfolder.

Folders and projects layout

core

  • SiliconStudio.Core: Reference counting, dependency property system (PropertyContainer/PropertyKey), low-level serialization, low-level memory operations (Utilities and NativeStream).
  • SiliconStudio.Core.Mathematics: Mathematics library (despite its name, no dependencies on SiliconStudio.Core).
  • SiliconStudio.Core.IO: Virtual File System.
  • SiliconStudio.Core.Serialization: High-level serialization and git-like CAS storage system.
  • SiliconStudio.MicroThreading: Micro-threading library based on C# 5.0 async (a.k.a. stackless programming)
  • SiliconStudio.AssemblyProcessor: Internal tool used to patch assemblies to add various features, such as Serialization auto-generation, various memory/pinning operations, module initializers, etc...

presentation

  • SiliconStudio.Presentation: WPF UI library (themes, controls such as propertygrid, behaviors, etc...)
  • SiliconStudio.SampleApp: Simple property grid example.
  • SiliconStudio.Quantum: Advanced ViewModel library that gives ability to synchronize view-models over network (w/ diff), and at requested time intervals. That way, view models can be defined within engine without any UI dependencies.

buildengine

  • SiliconStudio.BuildEngine.Common: Common parts of the build engine. It can be reused to add new build steps, build commands, and also to build a new custom build engine client.
  • SiliconStudio.BuildEngine: Default implementation of build engine tool (executable)
  • SiliconStudio.BuildEngine.Monitor: WPF Display live results of build engine (similar to IncrediBuild)
  • SiliconStudio.BuildEngine.Editor: WPF Build engine rules editor and used by most projects.

shaders

  • Irony: Parsing library, used by SiliconStudio.Shaders. Should later be replaced by ANTLR4.
  • SiliconStudio.Shaders: Shader parsing, type analysis and conversion library (used by HLSL->GLSL and Xenko Shader Language)

targets

  • MSBuild target files to create easily cross-platform solutions (Android, iOS, WinRT, WinPhone, etc...), and define behaviors and targets globally. Extensible.