refactor(workspace): rename project codename from Catalyst to Synvael

This commit is contained in:
Serkyo 2026-06-27 22:57:08 +02:00
parent 09bce1abf4
commit 102c75a514
7 changed files with 21 additions and 21 deletions

View file

@ -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/`: 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. - `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`. - `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. - `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. - **`/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/`** (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.
- **`<user-data-dir>/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. - **`<user-data-dir>/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 ## 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. - **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. - **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 ## Coordinate system & units

View file

@ -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/`: 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. - `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`. - `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. - `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. - **`/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/`** (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.
- **`<user-data-dir>/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. - **`<user-data-dir>/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 ## 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. - **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. - **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 ## Coordinate system & units

View file

@ -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. 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 ## 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. 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. 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 Project Catalyst. 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 Project Catalyst as the source of the assets. 4. **Credit:** You must credit Synvael as the source of the assets.
5. **Mod licensing — Lua vs native code:** 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. - **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. - **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. 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 ## 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: Non-commercial server hosting is permitted without a separate commercial license, including:

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-only // 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 //! This crate handles window creation, input processing, and drives the
//! renderer to display the game world. //! renderer to display the game world.
@ -22,7 +22,7 @@ struct App {
impl ApplicationHandler for App { impl ApplicationHandler for App {
fn resumed(&mut self, event_loop: &ActiveEventLoop) { 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) { let window = match event_loop.create_window(attributes) {
Ok(w) => w, Ok(w) => w,
@ -130,7 +130,7 @@ fn main() -> Result<()> {
tracing_subscriber::fmt() tracing_subscriber::fmt()
.with_env_filter(tracing_subscriber::EnvFilter::from_default_env()) .with_env_filter(tracing_subscriber::EnvFilter::from_default_env())
.init(); .init();
info!("Starting Project Catalyst client"); info!("Starting Synvael client");
let event_loop = EventLoop::new().context("Failed to create event loop")?; let event_loop = EventLoop::new().context("Failed to create event loop")?;

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-only // 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 //! This crate handles the integration with Lua (via `mlua`) and provides
//! the API surface for both base game content and third-party mods. //! the API surface for both base game content and third-party mods.

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-only // 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 //! The server handles the authoritative game simulation, including world
//! management, physics, and combat. //! management, physics, and combat.
@ -24,7 +24,7 @@ fn main() {
) )
.init(); .init();
info!("Starting Project Catalyst server"); info!("Starting Synvael server");
#[allow(clippy::expect_used)] #[allow(clippy::expect_used)]
let config_str = fs::read_to_string("assets/data/worldgen/default.json") let config_str = fs::read_to_string("assets/data/worldgen/default.json")

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-only // 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 //! This crate contains data structures and constants that are used by both
//! the client and the server. //! the client and the server.