2025-05-18 18:32:39 +00:00
|
|
|
|
# Onyx Engine
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
**Onyx** is a modern, modular, and fast C++ game engine built for real-time 2D applications.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2025-05-18 18:33:05 +00:00
|
|
|
|
## 🧩 Features
|
2025-05-18 18:32:39 +00:00
|
|
|
|
|
|
|
|
|
- 🔧 **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.
|
2025-05-18 17:24:00 +00:00
|
|
|
|
|
2025-05-18 17:26:46 +00:00
|
|
|
|
|
|
|
|
|
|
2025-06-02 18:15:09 +00:00
|
|
|
|
## Project Layout
|
|
|
|
|
|
|
|
|
|
'uaid':
|
|
|
|
|
Unique asset ID: example: 12345678901234567890123456789012
|
|
|
|
|
it's 32 chars long and is unique for every loaded asset.
|
|
|
|
|
|
|
|
|
|
|
2025-06-03 21:09:00 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-06-02 18:15:09 +00:00
|
|
|
|
```yaml
|
|
|
|
|
|
2025-06-03 21:09:00 +00:00
|
|
|
|
|
2025-06-03 21:20:15 +00:00
|
|
|
|
# This file is sored in a folder of the same name
|
|
|
|
|
# ./MyGame/MyGame.onx
|
|
|
|
|
# will set project root as ./MyGame/MyGame
|
|
|
|
|
# then will load all assets inside the ./MyGame/MyGame/Assets/MyGame.oxpk
|
|
|
|
|
|
|
|
|
|
|
2025-06-03 21:09:00 +00:00
|
|
|
|
|
2025-06-02 18:15:09 +00:00
|
|
|
|
# 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
|
|
|
|
|
|
|
|
|
|
```
|