A rudimentary game engine developed in C# utilizing the Raylib framework. Created as a training exercise and test of my knowledge and capability as a programmer. It was overwhelming and a great learning experience, and one day I’d like to restart development with a fresh start.

Significant implemented features include a user interface developed with ImGui.NET based on Unity, an entity component system, the ability to load models with textures and shaders, and the ability to save and load “scene” files, which will automatically generate objects via JSON files from within the editor as well as modified by hand.

Scene format example:

{
  "Objects": [
    {
      "ObjectName": "New Object",
      "Components": [
        {
          "$type": "Bloom.Core.ECS.ECTransform, Bloom.Core",
          "Position": {
            "X": 0.0,
            "Y": 0.0,
            "Z": 0.0
          },
          "Scale": {
            "X": 1.0,
            "Y": 1.0,
            "Z": 1.0
          },
          "Rotation": {
            "X": 0.0,
            "Y": 0.0,
            "Z": 0.0
          }
        },
        {
          "$type": "Bloom.Core.ECS.ECModelStatic, Bloom.Core",
          "ModelData": {
            "AssetPath": "Assets\\Models\\debug\\suzanne.glb",
            "Materials": null
          }
        }
      ]
    }
  ]
}