Onyx-Engine/README.md
OusmBlueNinja 8232b19666 Adds basic editor window classes
Adds the initial structure for the InspectorWindow and
SceneExplorer editor windows, providing a foundation for
implementing editor functionality.
Also adds file browser and other editor windows
2025-06-03 16:09:00 -05:00

1.5 KiB
Raw Blame History

Onyx Engine

Onyx Banner

Onyx is a modern, modular, and fast C++ game engine built for real-time 2D applications.


🧩 Features

  • 🔧 Onyx Engine The core runtime, managing rendering, layers, and systems.
  • 🖥️ Obsidian Editor A standalone GUI editor powered by ImGui and Onyx for scene editing, live profiling, and asset management.
  • 💡 Glint Lighting Engine A flexible and performant 2D dynamic lighting system.

Project Layout

'uaid': Unique asset ID: example: 12345678901234567890123456789012 it's 32 chars long and is unique for every loaded asset.

The Engine will auto create everything. Im debating between a unity asset system, where the actual data and metadata are packed into one file. the other option is to have a system like Hazels, where you import a file and it will create a file like a Hazel asset that links to an image file or a 3d model.




# MyGame.onx
project:
  name: MyGame
  version: 1.0.0
  description: A top-down RPG made in the Onyx Engine
  author: <Author name>

assets:
  - type: texture
    uaid: <len 32 int>
    path: res://assets/textures/player.png
    uid: player_texture
  - type: audio
    uaid: <len 32 int>
    path: res://assets/sounds/theme.ogg
    uid: theme_music

scenes:
  - id: main_menu
    uaid: <len 32 int>
    file: res://scenes/main_menu.yaml
  - id: level1
    uaid: <len 32 int>
    file: res://scenes/level1.yaml

settings:
  resolution: [1920, 1080]
  fullscreen: false
  vsync: true
  language: en-US