The Sekam Engine is a game engine made in C# to learn and experiment.
The only libraries used are OpenTK for OpenGL and Newtonsoft for Json serialization.
Features:
- Handle graphical window using OpenTK.
- Game loop (logic/render).
- Inputs handling.
- Maths (Vector2, Vector3, Vector4, 4x4 Matrixes).
- Scene tree with entities with components.
-
Shader and materials handling. They features:
- Special file format to handle vertex shader and fragment shader in the same file (similar to Unity's surface shader).
- Textures and normal maps.
- Lighting (Ambiant, Specular, Diffuse) and Emissive.
- Text rendering.
- Camera and lighting data buffers.
- Orthographic and perspective cameras.
- Forward rendering pipeline: Display 3D models, texts, and user interfaces with their materials seen by cameras on screen, optimizing as much as possible the buffers to avoid draw calls.
- Serialization and deserialization of scenes to save game scenes.
- Creating a bitmap file importer to handle text fonts.
- Creating text components generating 3D models of text optimized for rendering.
- Creating an .obj file importer to handle 3D models.
- Creating a custom immediate mode GUI library handling quad, texts, toggles, buttons and scrollbars.
- Audio Player.
- Basic freecam controller to test scenes.