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
1.5 KiB
1.5 KiB
Onyx Engine
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