diff --git a/.gitignore b/.gitignore index 1baaa3f..8feed3e 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,6 @@ Thumbs.db # Logs *.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 /scratch/ diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..02a8de4 --- /dev/null +++ b/CHANGELOG.md @@ -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. diff --git a/Cargo.toml b/Cargo.toml index 6a3d646..59e98b1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,7 +28,7 @@ hecs = "0.10" # 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 # 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"] } wgpu = "29" pollster = "0.4" diff --git a/README.md b/README.md index 1699a77..9cc97d6 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ stylized low-poly to realistic graphics, and shipping only what each game uses. ## 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; **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 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:** @@ -117,7 +117,7 @@ Available now: - Rust stable toolchain (`rustup` recommended) - 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`) Install Rust if you don't have it: @@ -208,18 +208,23 @@ cargo fmt --check ## Documentation The full documentation — usage guides, per-system API references, and -explanations of the engine's inner workings — lives in [`docs/`](docs/README.md). -Start there for anything beyond this overview: +explanations of the engine's inner workings — lives on the +[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 -- [Architecture](docs/architecture.md) — workspace and design overview -- [Conventions](docs/conventions.md) — coordinate system, units, color space -- [Development Workflow](docs/development.md) — branches, testing, contributing -- [Math & Core Primitives](docs/math.md) — Stage 1 API reference -- [Windowing & App Loop](docs/windowing.md) — Stage 2 window/event-loop reference -- [Render Context](docs/render-context.md) — Stage 2 GPU/surface reference -- [Scene Graph & Entities](docs/scene.md) — Stage 3 scene/hierarchy/serialization reference -- [Rendering](docs/rendering.md) — Stage 4 mesh/material/camera/forward-renderer reference +- [Getting Started](https://git.houmeres.sk/Houmeres/Oxide/wiki/Getting-started) — build, run, test, install +- [Architecture](https://git.houmeres.sk/Houmeres/Oxide/wiki/Architecture) — workspace and design overview +- [Conventions](https://git.houmeres.sk/Houmeres/Oxide/wiki/Conventions) — coordinate system, units, color space +- [Development Workflow](https://git.houmeres.sk/Houmeres/Oxide/wiki/Development) — branches, testing, contributing +- [Math & Core Primitives](https://git.houmeres.sk/Houmeres/Oxide/wiki/Math) — Stage 1 API reference +- [Windowing & App Loop](https://git.houmeres.sk/Houmeres/Oxide/wiki/Windowing) — Stage 2 window/event-loop reference +- [Render Context](https://git.houmeres.sk/Houmeres/Oxide/wiki/Render-context) — Stage 2 GPU/surface reference +- [Scene Graph & Entities](https://git.houmeres.sk/Houmeres/Oxide/wiki/Scene) — Stage 3 scene/hierarchy/serialization 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/ ├── assets/ # Project logos and shared assets -├── docs/ # Full engine documentation ├── engine/ # Core engine library (oxide-engine) ├── editor/ # In-engine editor binary (oxide-editor) ├── examples/ # Runnable stage examples (oxide-examples) ├── tests/ # Integration test harness (oxide-tests) -├── install.sh # Build + system install script -├── PLAN.md # Staged development roadmap -└── CLAUDE.md # Context and rules for Claude Code +└── install.sh # Build + system install script ``` --- @@ -243,7 +245,7 @@ Oxide/ ## Development roadmap 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. --- diff --git a/editor/src/assets.rs b/editor/src/assets.rs index cac2e78..80f91ac 100644 --- a/editor/src/assets.rs +++ b/editor/src/assets.rs @@ -96,7 +96,7 @@ pub fn seed_default_font(project_assets_dir: &Path) -> std::io::Result { /// The `.rhai` source the "New Script" button writes, personalised with the /// 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 /// (the `init` print) without moving anything until the author opts in. pub fn script_template(stem: &str) -> String { diff --git a/engine/src/ui/panel.rs b/engine/src/ui/panel.rs index 5565898..e41f0ac 100644 --- a/engine/src/ui/panel.rs +++ b/engine/src/ui/panel.rs @@ -55,7 +55,7 @@ //! editor canvas previews). //! //! 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 //! same pipeline. diff --git a/engine/src/ui/routing.rs b/engine/src/ui/routing.rs index 24614d9..edc20b2 100644 --- a/engine/src/ui/routing.rs +++ b/engine/src/ui/routing.rs @@ -2,7 +2,7 @@ //! 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. //! -//! 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 //! action bound to that mouse button. The [`Router`] gives the host one //! object to drive each frame: