Compare commits
1 Commits
bad780de9d
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
072a7c0b56
|
+1
-1
@@ -27,6 +27,6 @@ Thumbs.db
|
|||||||
# Logs
|
# Logs
|
||||||
*.log
|
*.log
|
||||||
|
|
||||||
# Personal scratch notes (tracked docs live in docs/ and are NOT ignored)
|
# Personal scratch notes (the engine documentation lives on the wiki, not here)
|
||||||
*.local.md
|
*.local.md
|
||||||
/scratch/
|
/scratch/
|
||||||
|
|||||||
@@ -0,0 +1,50 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
Kept as the work happens, not assembled at release time.
|
||||||
|
|
||||||
|
Oxide is in its **alpha phase** — `0.x.x`, on `main`. Phase 1 runs to Stage 16
|
||||||
|
(game export to Linux and Windows), and that milestone is what `1.0.0` means.
|
||||||
|
Until then there is no `dev` channel: alpha *is* main.
|
||||||
|
|
||||||
|
The format is [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
|
||||||
|
versions follow [SemVer](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## Unreleased
|
||||||
|
|
||||||
|
## 0.1.0 — 2026-08-08
|
||||||
|
|
||||||
|
The first tagged version. It is not the first work: Stages 0–9 are complete and
|
||||||
|
Stage 10 (scripting, live reload, editor terminal) is complete on `main` bar the
|
||||||
|
editor-UX batch on `dev`. This entry marks the point the project started being
|
||||||
|
versioned, not the point it started.
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Stages 0–4: workspace and build, math and core primitives, windowing and the
|
||||||
|
app loop, the render context, the scene graph, and forward rendering.
|
||||||
|
- Stage 5, the engine core framework: modules and scheduling, layers/tags with
|
||||||
|
the shared `LayerMask`, the reflection/type registry, the asset server, and
|
||||||
|
the data-driven render pass pipeline.
|
||||||
|
- Stage 6, the editor framework: docking shell, project system, settings
|
||||||
|
framework, file watching, and the module → editor extension API.
|
||||||
|
- Stage 7: the input system — `InputState`, named remappable actions, axes.
|
||||||
|
- Stage 8: the in-game UI system (widgets, layout, theming, text, routing), with
|
||||||
|
the GUI tail still open. Stage 8.5 prefabs and 8.7 editor play mode.
|
||||||
|
- Stage 9: physics on rapier3d, with `LayerMask`-filtered collision.
|
||||||
|
- Stage 10: scripting on rhai — the `Script` component, the sandboxed engine,
|
||||||
|
live reload, the editor console and PTY terminal, and the richer script API.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- The documentation left the repository. `docs/`, `PLAN.md`, `HANDOFF.md` and
|
||||||
|
`CLAUDE.md` are now the [wiki](https://git.houmeres.sk/Houmeres/Oxide/wiki),
|
||||||
|
and the repository's history was rewritten in the same pass so they are not
|
||||||
|
present at any commit. `README.md` and this file stay here, because they ship
|
||||||
|
with the software.
|
||||||
|
- Doc comments and `README.md` that pointed at those files now point at the
|
||||||
|
wiki.
|
||||||
|
|
||||||
|
### Note on history
|
||||||
|
|
||||||
|
Any clone of this repository taken before 2026-08-08 has a different history and
|
||||||
|
should be discarded rather than merged.
|
||||||
+1
-1
@@ -28,7 +28,7 @@ hecs = "0.10"
|
|||||||
# Linux is the primary target on BOTH Wayland and Xorg (X11): keep both winit
|
# Linux is the primary target on BOTH Wayland and Xorg (X11): keep both winit
|
||||||
# backends explicitly enabled so neither can be dropped by a default-feature
|
# backends explicitly enabled so neither can be dropped by a default-feature
|
||||||
# change. (On by default today; listing them makes the contract explicit —
|
# change. (On by default today; listing them makes the contract explicit —
|
||||||
# see PLAN.md "Platform & Target Strategy".)
|
# see the wiki Roadmap, "Platform & Target Strategy".)
|
||||||
winit = { version = "0.30", features = ["x11", "wayland", "serde"] }
|
winit = { version = "0.30", features = ["x11", "wayland", "serde"] }
|
||||||
wgpu = "29"
|
wgpu = "29"
|
||||||
pollster = "0.4"
|
pollster = "0.4"
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ stylized low-poly to realistic graphics, and shipping only what each game uses.
|
|||||||
|
|
||||||
## Status
|
## Status
|
||||||
|
|
||||||
Oxide is built in two phases (see [PLAN.md](PLAN.md)): **Phase 1 (Stages 0–16)**
|
Oxide is built in two phases (see the [Roadmap](https://git.houmeres.sk/Houmeres/Oxide/wiki/Roadmap)): **Phase 1 (Stages 0–16)**
|
||||||
is the general-purpose engine — everything needed to build and export any game;
|
is the general-purpose engine — everything needed to build and export any game;
|
||||||
**Phase 2 (Stages 17+)** adds optional, feature-gated built-in modules.
|
**Phase 2 (Stages 17+)** adds optional, feature-gated built-in modules.
|
||||||
|
|
||||||
@@ -74,7 +74,7 @@ Available now:
|
|||||||
Runnable example: `cargo run -p oxide-examples --bin ui_menu` (Stage-8
|
Runnable example: `cargo run -p oxide-examples --bin ui_menu` (Stage-8
|
||||||
piece 7)
|
piece 7)
|
||||||
|
|
||||||
## Features (planned — see [PLAN.md](PLAN.md))
|
## Features (planned — see the [Roadmap](https://git.houmeres.sk/Houmeres/Oxide/wiki/Roadmap))
|
||||||
|
|
||||||
**Phase 1 — the general-purpose engine:**
|
**Phase 1 — the general-purpose engine:**
|
||||||
|
|
||||||
@@ -117,7 +117,7 @@ Available now:
|
|||||||
|
|
||||||
- Rust stable toolchain (`rustup` recommended)
|
- Rust stable toolchain (`rustup` recommended)
|
||||||
- Linux — primary target, on **both Wayland and Xorg (X11)**. Windows support and cross-platform
|
- Linux — primary target, on **both Wayland and Xorg (X11)**. Windows support and cross-platform
|
||||||
game export are planned (see [PLAN.md](PLAN.md), Stage 16); other platforms are not yet tested.
|
game export are planned (see the [Roadmap](https://git.houmeres.sk/Houmeres/Oxide/wiki/Roadmap), Stage 16); other platforms are not yet tested.
|
||||||
- A GPU with Vulkan or Metal support (for `wgpu`)
|
- A GPU with Vulkan or Metal support (for `wgpu`)
|
||||||
|
|
||||||
Install Rust if you don't have it:
|
Install Rust if you don't have it:
|
||||||
@@ -208,18 +208,23 @@ cargo fmt --check
|
|||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
The full documentation — usage guides, per-system API references, and
|
The full documentation — usage guides, per-system API references, and
|
||||||
explanations of the engine's inner workings — lives in [`docs/`](docs/README.md).
|
explanations of the engine's inner workings — lives on the
|
||||||
Start there for anything beyond this overview:
|
[wiki](https://git.houmeres.sk/Houmeres/Oxide/wiki). Start there for anything
|
||||||
|
beyond this overview:
|
||||||
|
|
||||||
- [Getting Started](docs/getting-started.md) — build, run, test, install
|
- [Getting Started](https://git.houmeres.sk/Houmeres/Oxide/wiki/Getting-started) — build, run, test, install
|
||||||
- [Architecture](docs/architecture.md) — workspace and design overview
|
- [Architecture](https://git.houmeres.sk/Houmeres/Oxide/wiki/Architecture) — workspace and design overview
|
||||||
- [Conventions](docs/conventions.md) — coordinate system, units, color space
|
- [Conventions](https://git.houmeres.sk/Houmeres/Oxide/wiki/Conventions) — coordinate system, units, color space
|
||||||
- [Development Workflow](docs/development.md) — branches, testing, contributing
|
- [Development Workflow](https://git.houmeres.sk/Houmeres/Oxide/wiki/Development) — branches, testing, contributing
|
||||||
- [Math & Core Primitives](docs/math.md) — Stage 1 API reference
|
- [Math & Core Primitives](https://git.houmeres.sk/Houmeres/Oxide/wiki/Math) — Stage 1 API reference
|
||||||
- [Windowing & App Loop](docs/windowing.md) — Stage 2 window/event-loop reference
|
- [Windowing & App Loop](https://git.houmeres.sk/Houmeres/Oxide/wiki/Windowing) — Stage 2 window/event-loop reference
|
||||||
- [Render Context](docs/render-context.md) — Stage 2 GPU/surface reference
|
- [Render Context](https://git.houmeres.sk/Houmeres/Oxide/wiki/Render-context) — Stage 2 GPU/surface reference
|
||||||
- [Scene Graph & Entities](docs/scene.md) — Stage 3 scene/hierarchy/serialization reference
|
- [Scene Graph & Entities](https://git.houmeres.sk/Houmeres/Oxide/wiki/Scene) — Stage 3 scene/hierarchy/serialization reference
|
||||||
- [Rendering](docs/rendering.md) — Stage 4 mesh/material/camera/forward-renderer reference
|
- [Rendering](https://git.houmeres.sk/Houmeres/Oxide/wiki/Rendering) — Stage 4 mesh/material/camera/forward-renderer reference
|
||||||
|
|
||||||
|
The [Roadmap](https://git.houmeres.sk/Houmeres/Oxide/wiki/Roadmap) is the staged
|
||||||
|
plan, and [Working notes](https://git.houmeres.sk/Houmeres/Oxide/wiki/Working-notes)
|
||||||
|
holds the project's rules. Both used to be files in this repository.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -228,14 +233,11 @@ Start there for anything beyond this overview:
|
|||||||
```
|
```
|
||||||
Oxide/
|
Oxide/
|
||||||
├── assets/ # Project logos and shared assets
|
├── assets/ # Project logos and shared assets
|
||||||
├── docs/ # Full engine documentation
|
|
||||||
├── engine/ # Core engine library (oxide-engine)
|
├── engine/ # Core engine library (oxide-engine)
|
||||||
├── editor/ # In-engine editor binary (oxide-editor)
|
├── editor/ # In-engine editor binary (oxide-editor)
|
||||||
├── examples/ # Runnable stage examples (oxide-examples)
|
├── examples/ # Runnable stage examples (oxide-examples)
|
||||||
├── tests/ # Integration test harness (oxide-tests)
|
├── tests/ # Integration test harness (oxide-tests)
|
||||||
├── install.sh # Build + system install script
|
└── install.sh # Build + system install script
|
||||||
├── PLAN.md # Staged development roadmap
|
|
||||||
└── CLAUDE.md # Context and rules for Claude Code
|
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -243,7 +245,7 @@ Oxide/
|
|||||||
## Development roadmap
|
## Development roadmap
|
||||||
|
|
||||||
Development follows a staged plan — each stage is fully tested before the next begins.
|
Development follows a staged plan — each stage is fully tested before the next begins.
|
||||||
See [PLAN.md](PLAN.md) for the complete roadmap.
|
See the [Roadmap](https://git.houmeres.sk/Houmeres/Oxide/wiki/Roadmap) for the complete plan.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ pub fn seed_default_font(project_assets_dir: &Path) -> std::io::Result<bool> {
|
|||||||
/// The `.rhai` source the "New Script" button writes, personalised with the
|
/// The `.rhai` source the "New Script" button writes, personalised with the
|
||||||
/// script's file stem so the Console output identifies which script speaks.
|
/// script's file stem so the Console output identifies which script speaks.
|
||||||
///
|
///
|
||||||
/// Kept to the two lifecycle hooks `docs/scripting.md` teaches first; the
|
/// Kept to the two lifecycle hooks the wiki's Scripting page teaches first; the
|
||||||
/// `update` body ships commented out so a freshly created script visibly runs
|
/// `update` body ships commented out so a freshly created script visibly runs
|
||||||
/// (the `init` print) without moving anything until the author opts in.
|
/// (the `init` print) without moving anything until the author opts in.
|
||||||
pub fn script_template(stem: &str) -> String {
|
pub fn script_template(stem: &str) -> String {
|
||||||
|
|||||||
@@ -55,7 +55,7 @@
|
|||||||
//! editor canvas previews).
|
//! editor canvas previews).
|
||||||
//!
|
//!
|
||||||
//! A future depth-aware mode (where a panel behind a wall is properly
|
//! A future depth-aware mode (where a panel behind a wall is properly
|
||||||
//! hidden) is in [`PLAN.md`](../../../../PLAN.md)'s Stage-8 backlog and
|
//! hidden) is in the wiki Roadmap's Stage-8 backlog and
|
||||||
//! slots in by attaching a depth attachment to a second pass of the
|
//! slots in by attaching a depth attachment to a second pass of the
|
||||||
//! same pipeline.
|
//! same pipeline.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//! focus per widget, and tell the host whether the UI captured the frame's
|
//! focus per widget, and tell the host whether the UI captured the frame's
|
||||||
//! input so the game can decide whether to also handle it.
|
//! input so the game can decide whether to also handle it.
|
||||||
//!
|
//!
|
||||||
//! Stage 8's UI must *consume input before the game* (PLAN.md): if the
|
//! Stage 8's UI must *consume input before the game* (see the wiki Roadmap): if the
|
||||||
//! cursor is over a button, clicking shouldn't also fire the game-world
|
//! cursor is over a button, clicking shouldn't also fire the game-world
|
||||||
//! action bound to that mouse button. The [`Router`] gives the host one
|
//! action bound to that mouse button. The [`Router`] gives the host one
|
||||||
//! object to drive each frame:
|
//! object to drive each frame:
|
||||||
|
|||||||
Reference in New Issue
Block a user