From 102c75a514e00af70998de990b88745d56be5e3d Mon Sep 17 00:00:00 2001 From: Serkyo Date: Sat, 27 Jun 2026 22:57:08 +0200 Subject: [PATCH] refactor(workspace): rename project codename from Catalyst to Synvael --- AGENTS.md | 6 +++--- CLAUDE.md | 6 +++--- LICENSE.md | 16 ++++++++-------- crates/client/src/main.rs | 6 +++--- crates/scripting/src/lib.rs | 2 +- crates/server/src/main.rs | 4 ++-- crates/shared/src/lib.rs | 2 +- 7 files changed, 21 insertions(+), 21 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 51fc1fa..08607bf 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -12,7 +12,7 @@ World is procedurally generated. Voxel edge length is half of Minecraft's (0.5 m Cargo workspace (resolver = "3", edition 2024) with four crates under `crates/`: -- `client` — binary. Windowed application using `winit` 0.30 (`ApplicationHandler` pattern, `ControlFlow::Poll`). Also pulls in `image`. Player-facing app titled "Project Catalyst"; handles input, windowing, and drives the renderer. +- `client` — binary. Windowed application using `winit` 0.30 (`ApplicationHandler` pattern, `ControlFlow::Poll`). Also pulls in `image`. Player-facing app titled "Synvael"; handles input, windowing, and drives the renderer. - `server` — binary. Authoritative game simulation (voxel world, combat, players). Used both for dedicated multiplayer hosts and as the simulation backend for single-player. - `renderer` — library. Voxel/scene rendering on Vulkan via `ash`, decoupled from windowing so it can be driven by `client`. - `shared` — library. Types and protocol shared between `client` and `server` (world/voxel data, network messages, combat primitives). Stays lean and dep-light; no `mlua`, no rendering, no engine internals. @@ -45,7 +45,7 @@ Three distinct locations, do not mix them: - **`/assets/scripts/`** — the base game's own Lua, shipped with the binary. This is the dogfooded "first-party mod" the engine loads through the same API mod authors use. Mirror the structure modders will use (e.g. `scripts/blocks/`, `scripts/items/`, `scripts/entities/`) so it serves as a working reference. - **`/mods/`** (top-level) — in-repo example mods or test fixtures. Kept out of `/assets/` because they're not engine-shipped content, and out of `crates/` because they're not Rust source. -- **`/mods/`** — player-installed mods, loaded at runtime only. Resolved via the `directories` / `dirs` crate (Linux: `~/.local/share/project-catalyst/mods/`, with platform equivalents elsewhere). Never read from a hard-coded path. +- **`/mods/`** — player-installed mods, loaded at runtime only. Resolved via the `directories` / `dirs` crate (Linux: `~/.local/share/synvael/mods/`, with platform equivalents elsewhere). Never read from a hard-coded path. ## Data packs & resource packs @@ -165,7 +165,7 @@ All registered content (blocks, items, recipes, biomes, entities, …) is identi - **Charset:** namespace and id are each `[a-z0-9_-]+`, exactly one `:` between them. Lowercase ASCII only. No uppercase, no Unicode, no spaces, no dots, no slashes. Keeps IDs greppable, filesystem-safe, and unambiguous in logs and save files. - **Runtime representation:** intern each ID string into a small integer handle (e.g. `BlockId(u32)`) at registration time. Hot paths compare handles, not strings. Keep the original string for display, save/load, and the Lua API surface. -> *Project codename note:* "Catalyst" is the codename of the project, not the namespace. The engine namespace is deliberately `core:` so it stays stable if/when the project is renamed. +> *Project name note:* The project is named **Synvael** ("Catalyst" was the working codename). The engine namespace is deliberately `core:` — not the project name — so it stays stable independent of branding. ## Coordinate system & units diff --git a/CLAUDE.md b/CLAUDE.md index 17d092b..7f75937 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -12,7 +12,7 @@ World is procedurally generated. Voxel edge length is half of Minecraft's (0.5 m Cargo workspace (resolver = "3", edition 2024) with four crates under `crates/`: -- `client` — binary. Windowed application using `winit` 0.30 (`ApplicationHandler` pattern, `ControlFlow::Poll`). Also pulls in `image`. Player-facing app titled "Project Catalyst"; handles input, windowing, and drives the renderer. +- `client` — binary. Windowed application using `winit` 0.30 (`ApplicationHandler` pattern, `ControlFlow::Poll`). Also pulls in `image`. Player-facing app titled "Synvael"; handles input, windowing, and drives the renderer. - `server` — binary. Authoritative game simulation (voxel world, combat, players). Used both for dedicated multiplayer hosts and as the simulation backend for single-player. - `renderer` — library. Voxel/scene rendering on Vulkan via `ash`, decoupled from windowing so it can be driven by `client`. - `shared` — library. Types and protocol shared between `client` and `server` (world/voxel data, network messages, combat primitives). Stays lean and dep-light; no `mlua`, no rendering, no engine internals. @@ -45,7 +45,7 @@ Three distinct locations, do not mix them: - **`/assets/scripts/`** — the base game's own Lua, shipped with the binary. This is the dogfooded "first-party mod" the engine loads through the same API mod authors use. Mirror the structure modders will use (e.g. `scripts/blocks/`, `scripts/items/`, `scripts/entities/`) so it serves as a working reference. - **`/mods/`** (top-level) — in-repo example mods or test fixtures. Kept out of `/assets/` because they're not engine-shipped content, and out of `crates/` because they're not Rust source. -- **`/mods/`** — player-installed mods, loaded at runtime only. Resolved via the `directories` / `dirs` crate (Linux: `~/.local/share/project-catalyst/mods/`, with platform equivalents elsewhere). Never read from a hard-coded path. +- **`/mods/`** — player-installed mods, loaded at runtime only. Resolved via the `directories` / `dirs` crate (Linux: `~/.local/share/synvael/mods/`, with platform equivalents elsewhere). Never read from a hard-coded path. ## Data packs & resource packs @@ -165,7 +165,7 @@ All registered content (blocks, items, recipes, biomes, entities, …) is identi - **Charset:** namespace and id are each `[a-z0-9_-]+`, exactly one `:` between them. Lowercase ASCII only. No uppercase, no Unicode, no spaces, no dots, no slashes. Keeps IDs greppable, filesystem-safe, and unambiguous in logs and save files. - **Runtime representation:** intern each ID string into a small integer handle (e.g. `BlockId(u32)`) at registration time. Hot paths compare handles, not strings. Keep the original string for display, save/load, and the Lua API surface. -> *Project codename note:* "Catalyst" is the codename of the project, not the namespace. The engine namespace is deliberately `core:` so it stays stable if/when the project is renamed. +> *Project name note:* The project is named **Synvael** ("Catalyst" was the working codename). The engine namespace is deliberately `core:` — not the project name — so it stays stable independent of branding. ## Coordinate system & units diff --git a/LICENSE.md b/LICENSE.md index 2e770b3..ae27a40 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,4 +1,4 @@ -# Project Catalyst License Agreement +# Synvael License Agreement This project is licensed under a multi-part licensing model. By accessing, using, or distributing any part of this project, you agree to be bound by the terms below. @@ -43,18 +43,18 @@ This license explicitly permits the creation and distribution of **resource pack ## Part 3: Modding Policy -**Applicability:** Mods for Project Catalyst — content written by third parties that runs through the modding API or replaces game assets. +**Applicability:** Mods for Synvael — content written by third parties that runs through the modding API or replaces game assets. -Cryoforge Nexus grants a limited, non-exclusive, non-transferable license to use the Game Assets (Part 2) and the modding API (Part 1) specifically for the creation, distribution, and play of mods for Project Catalyst, provided that: +Cryoforge Nexus grants a limited, non-exclusive, non-transferable license to use the Game Assets (Part 2) and the modding API (Part 1) specifically for the creation, distribution, and play of mods for Synvael, provided that: 1. **Non-Commerciality:** The mod itself must be free to download and play. You may not sell the mod or charge for access to it. Donation-based support of mod authors (Patreon, Ko-fi, etc.) is permitted as long as the mod itself remains freely available. -2. **Platform Integration:** Mods are encouraged to be shared through the official Project Catalyst modding platform. -3. **No Standalone Usage:** You may not use the Game Assets to create a standalone game or software product unrelated to Project Catalyst. -4. **Credit:** You must credit Project Catalyst as the source of the assets. +2. **Platform Integration:** Mods are encouraged to be shared through the official Synvael modding platform. +3. **No Standalone Usage:** You may not use the Game Assets to create a standalone game or software product unrelated to Synvael. +4. **Credit:** You must credit Synvael as the source of the assets. 5. **Mod licensing — Lua vs native code:** - **Lua mods** running on the modding-API VM are *not* considered derivative works of the engine. Lua mod authors may license their own code under any license they choose. - **Native (Rust) mods** that link against engine internals are derivative works of the engine and are subject to the AGPLv3 terms of Part 1. If distributed, their source must be made available under AGPLv3. -6. **Mod assets:** Original assets authored by the mod creator may be released under any license. Assets *derived* from official Project Catalyst assets are governed by Part 2 (CC-BY-NC-SA 4.0) and must be shared under the same terms. +6. **Mod assets:** Original assets authored by the mod creator may be released under any license. Assets *derived* from official Synvael assets are governed by Part 2 (CC-BY-NC-SA 4.0) and must be shared under the same terms. This policy is intended to foster a vibrant modding community while protecting the core identity of the game. @@ -62,7 +62,7 @@ This policy is intended to foster a vibrant modding community while protecting t ## Part 4: Server Hosting Policy -**Applicability:** Anyone hosting a Project Catalyst server, official or community-run. +**Applicability:** Anyone hosting a Synvael server, official or community-run. Non-commercial server hosting is permitted without a separate commercial license, including: diff --git a/crates/client/src/main.rs b/crates/client/src/main.rs index 9f6cd4d..dc79c0e 100644 --- a/crates/client/src/main.rs +++ b/crates/client/src/main.rs @@ -1,6 +1,6 @@ // SPDX-License-Identifier: AGPL-3.0-only -//! Main entry point for the Project Catalyst client. +//! Main entry point for the Synvael client. //! //! This crate handles window creation, input processing, and drives the //! renderer to display the game world. @@ -22,7 +22,7 @@ struct App { impl ApplicationHandler for App { fn resumed(&mut self, event_loop: &ActiveEventLoop) { - let attributes = Window::default_attributes().with_title("Project Catalyst"); + let attributes = Window::default_attributes().with_title("Synvael"); let window = match event_loop.create_window(attributes) { Ok(w) => w, @@ -130,7 +130,7 @@ fn main() -> Result<()> { tracing_subscriber::fmt() .with_env_filter(tracing_subscriber::EnvFilter::from_default_env()) .init(); - info!("Starting Project Catalyst client"); + info!("Starting Synvael client"); let event_loop = EventLoop::new().context("Failed to create event loop")?; diff --git a/crates/scripting/src/lib.rs b/crates/scripting/src/lib.rs index 7368406..16e87cc 100644 --- a/crates/scripting/src/lib.rs +++ b/crates/scripting/src/lib.rs @@ -1,6 +1,6 @@ // SPDX-License-Identifier: AGPL-3.0-only -//! Lua scripting and modding support for Project Catalyst. +//! Lua scripting and modding support for Synvael. //! //! This crate handles the integration with Lua (via `mlua`) and provides //! the API surface for both base game content and third-party mods. diff --git a/crates/server/src/main.rs b/crates/server/src/main.rs index 9ff72dd..dc2eb4f 100644 --- a/crates/server/src/main.rs +++ b/crates/server/src/main.rs @@ -1,6 +1,6 @@ // SPDX-License-Identifier: AGPL-3.0-only -//! Dedicated server for Project Catalyst. +//! Dedicated server for Synvael. //! //! The server handles the authoritative game simulation, including world //! management, physics, and combat. @@ -24,7 +24,7 @@ fn main() { ) .init(); - info!("Starting Project Catalyst server"); + info!("Starting Synvael server"); #[allow(clippy::expect_used)] let config_str = fs::read_to_string("assets/data/worldgen/default.json") diff --git a/crates/shared/src/lib.rs b/crates/shared/src/lib.rs index 8f90210..380c9ed 100644 --- a/crates/shared/src/lib.rs +++ b/crates/shared/src/lib.rs @@ -1,6 +1,6 @@ // SPDX-License-Identifier: AGPL-3.0-only -//! Shared types and logic for Project Catalyst. +//! Shared types and logic for Synvael. //! //! This crate contains data structures and constants that are used by both //! the client and the server.