Skip to content

Releases: Rustic-Game-Engine/engine

v1.4-Pre-Alpha

v1.4-Pre-Alpha Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Oct 22:16
3f8c71d

Deleting an attached/startup script or an HTML-linked JavaScript file previously aborted Play. Skip missing manifest references and source files with a runtime warning, keep the remaining scripts running, and do not retry missing scripts during that play session. Snapshot creation and manual reload also skip missing source files. Other I/O, validation and path containment errors remain errors.

Regression coverage checks global, scene and object scopes for missing IDs/files, continued ticks without retries, HTML links alongside inline code, and rejection of invalid UTF-8, directories and escaping paths.

Validation: 74 engine-play library tests passed with the bundled Luau host built locally; rustic-editor compile check, Clippy for both affected packages/all targets with warnings denied, formatting and diff checks passed. Companion documentation: Rustic-Game-Engine/docs#42 (lint, build, TypeScript, audit and docs/link checks passed).

Windows CI follow-up: run unit/integration/doc tests serially on Windows so concurrent native adapter compilation and processes do not contend within the existing three-second callback deadline. Linux retains parallel execution. Local serial validation: 74 engine-play library tests passed. Windows unit/integration/doc tests, rendered viewport verification, and all-target checks passed. A fresh Windows installer was built, tested, and uploaded (RusticGameEngine-Setup-0.1.0-x64-20261014-214047.exe). CI run: https://github.com/Rustic-Game-Engine/engine/actions/runs/38640755836.

v1.3-Pre-Alpha

v1.3-Pre-Alpha Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Oct 21:40
76ae507

Renaming an attached script in Explorer previously left its registry path pointing to the old filename, so Play could no longer find the source. Explorer now updates the script registry while keeping the attachment ID, language, and properties intact. File moves and folder renames/moves update all affected script paths. Failed registry saves roll back the file and metadata move. Invalid script destinations and registry collisions are rejected.

Companion documentation: Rustic-Game-Engine/docs#43

Validation:

  • cargo test -p rustic-editor explorer_tests --no-fail-fast: 20 passed, including script identity, nested relocations, failed-save rollback, and invalid destinations.
  • cargo fmt --all --check: passed.
  • cargo clippy --locked -p rustic-editor --all-targets -- -D warnings: passed.
  • Documentation lint, production build, TypeScript, and npm audit: passed.
  • Windows installer build and packaged Setup tests: passed; a fresh dist/RusticGameEngine-Setup-*.exe was uploaded as RusticGameEngine-Windows-Installer: https://github.com/Rustic-Game-Engine/engine/actions/runs/38538271564.
  • Full Linux CI (workspace lint, tests, rendered viewport verification, target checks, and application smoke tests): passed.

v1.2-Pre-Alpha

v1.2-Pre-Alpha Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Oct 02:12
66d1dc6

Scene actions can now use game.scene.SceneName.ObjectPath:api(...) in Lua/Luau and the corresponding native member syntax in every other gameplay SDK. The path supplies the receiver, so a script attached to Controller can tween Player without passing Player again. Objectless services use game.rustic; Explorer-file operations use game.rustic.files and insert the selected source file into the correct argument position.

Add receiver methods for tweens, movement, effects, cameras, physics, animation, signals, groups/tags, hierarchy, lifetime and components; retain existing API tables for compatibility. Resolve canonical scene targets against the live world, including queued renames in the same callback. Cache Lua/Luau file children so repeated audio selections share their decoded clip. Update generated editor declarations and engine documentation. C uses explicit receiver values because it has no implicit method receiver.

Validation:

  • RUSTIC_REQUIRE_ALL_SDKS=1 cargo test -p engine-scripting -p engine-play --lib: 113 tests pass. The new real-runtime fixture executes all ten scripting types, verifies a renamed target, receiver argument placement, Python/PHP named arguments, a global timer and an Explorer file operation; the script owner remains unchanged.
  • cargo clippy -p engine-scripting -p engine-play --all-targets -- -D warnings and cargo fmt --all -- --check pass.
  • Lua/Luau decoded-audio reuse tests pass; Python, JavaScript and PHP syntax checks pass; native C, C++, C# and Java SDKs compile and execute in the runtime tests.

Windows installer validation remains blocked: the required powershell -ExecutionPolicy Bypass -File ./tools/build-windows-installer.ps1 invocation fails because PowerShell is unavailable in this Linux environment. No fresh setup executable was produced. Keep this PR in draft until the Windows installer build passes.

Companion website documentation PR: Rustic-Game-Engine/docs#41

Conflict resolution: merged current main, preserved SDK parity and canonical path APIs, and removed an automatically duplicated C++ method. Reran all 113 engine-play/engine-scripting tests with every SDK required; Clippy and formatting pass. Windows installer validation remains blocked because PowerShell is unavailable.

v1.1-Pre-Alpha

v1.1-Pre-Alpha Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Oct 01:45
758d665

Reusable audio, recording and hot-mic handles, live object reads and lookup now work through every supported gameplay SDK. Add missing clock-state, C camera and native logging helpers, return unique entity IDs from scene lists, and flush JavaScript writes before synchronous queries.

Update engine docs and generated editor declarations. CI now requires every language toolchain for the new conformance tests.

Validation: cargo xtask test passes (formatting, Clippy, workspace tests/checks, dependency audit and headless smoke tests). The real-runtime fixture exercises all ten script types; microphone packet bindings use a deterministic test host. Generated JavaScript declarations pass strict TypeScript checking.

Windows installer validation remains required: this Linux environment cannot run tools/build-windows-installer.ps1 because PowerShell is unavailable. Keep this PR in draft until the Windows installer job produces a fresh setup executable.

Companion website documentation PR: Rustic-Game-Engine/docs#40

v1.0-Pre-Alpha

v1.0-Pre-Alpha Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Oct 01:15
ddf771a

Clicking the 3D viewport previously gave it keyboard focus and then disabled WASD and Q/E: egui reports keyboard capture for any focused widget, including the viewport itself. Allow the focused viewport to receive its own keys, retain hover navigation when no other widget has focus, and pause keyboard navigation when the editor window loses focus. Use the same focus rule for embedded Play input.

Add headless egui regression tests for clicked/hovered viewports, text-field focus and window focus loss. Document controls and recovery steps in the engine guide and the companion website PR: Rustic-Game-Engine/docs#39.

Validation:

  • All 32 rustic-editor tests passed, including the three focus regression tests.
  • cargo fmt --all -- --check and git diff --check passed.
  • cargo clippy --locked -p rustic-editor --all-targets -- -D warnings passed.
  • Companion website lint, production build, TypeScript, audit and docs/link checks passed.
  • All required engine CI checks passed on Linux and Windows, including rendered viewport verification and application smoke tests.
  • Windows CI built a fresh installer, tested toolchain failures and packaged Setup, and uploaded the 21.7 MB windows-installer artifact: https://github.com/Rustic-Game-Engine/engine/actions/runs/38491493926/artifacts/11862971142.

Native desktop interaction has not been manually tested in this workspace.

v0.9-Pre-Alpha

v0.9-Pre-Alpha Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Oct 00:45
0fc095d

With all optional languages selected, Setup can launch PowerShell up to 15 times for repeated checks and per-language installs. Run all selections in one hidden, noninteractive process as the original user. Stop the batch if WinGet returns 142 or 0xc0000142, skip installed tools, and keep ordinary package failures aggregated.

Record host launch errors and exit codes in an automatic Setup log, resolve the toolchain transcript in the original user's profile, and write a clear package-and-code line for each failed install. Show one optional-toolchain failure while leaving Rustic installed. Validate Inno syntax and Windows PowerShell regression cases before the expensive engine build.

Validation: fresh Windows installer build passed, producing RusticGameEngine-Setup-0.1.0-x64-20261013-212947.exe. All 12 Windows PowerShell regression scenarios and four silent packaged Setup scenarios passed, including all selected languages sharing one host, stopping on initialization failure, keeping the engine installed, and bundled-only Setup skipping the manager. The engine CI jobs on Windows and Linux, language adapter conformance, workflow syntax, secret scan, and Rust dependency audit passed. Local manager smoke checks and all nine installer-release tests also passed.

Tested installer artifact: https://github.com/Rustic-Game-Engine/engine/actions/runs/38469014259/artifacts/11850569802

Build and test logs: https://github.com/Rustic-Game-Engine/engine/actions/runs/38469014259

The original reported error was not reproducible; this change removes repeated host launches and improves diagnosis without claiming a confirmed root cause.

Companion documentation PR: Rustic-Game-Engine/docs#38 (lint, production build, TypeScript, dependency audit, and exported links passed).

v0.8-Pre-Alpha

v0.8-Pre-Alpha Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Oct 07:31
6bd9892

Explorer now highlights files/folders on a single click and renames them on a double click. Pressing an unhighlighted item only highlights it; dragging requires a new primary-button press on an already highlighted item and moves the highlighted group. Shift-click/hold adds items; Ctrl-click selects the visible range from the last highlighted item. These revised gestures apply only to Explorer; Scene controls retain their behavior.

Ctrl+C copies the highlighted group. Ctrl+V pastes every copied entry into every selected destination folder, including nested selected destinations; without a selected folder it uses the last selected file's parent or project root. Text editing keeps normal clipboard shortcuts. Grouped Copy/Cut/Delete is also available through right-click/two-finger menus, and file Open moves to that menu. Rename preserves selection; batches refresh completed operations and report individual errors. Cut accepts one destination; use Copy for fan-out paste.

The PR also retains the branch’s model-refresh and destination-collision fixes, fixes expanded-folder drag interference, adds scene object clipboard/delete controls with Undo/Redo, script scope menus, and World/Local gizmo choices. File deletion is recoverable in .rustic/trash; file moves/renames retain sidecar metadata. Manifest and companion references still require manual updates. Grouped viewport drops are limited to one model/script at a time.

Validation:

  • Full Linux and Windows CI passed, including rendering and headless smoke checks, adapter conformance, security and the fresh Windows installer: https://github.com/Rustic-Game-Engine/engine/actions/runs/38309024462.
  • cargo test --locked -p rustic-editor -p engine-editor: 49 tests pass.
  • Strict Clippy across both packages/all targets, Cargo formatting and editor headless smoke pass.
  • UI tests cover press-time drag eligibility, highlighted group dragging, Ctrl range selection, Shift-held selection, Ctrl+C/V fan-out/repeated paste, inline rename commit/cancel, context menus and empty-space root controls.
  • Filesystem tests cover metadata, collisions, traversal, symlinks, recoverable deletion and partial paste failures.
  • Fresh Windows installer build passed for commit 7b36f526: RusticGameEngine-Setup-0.1.0-x64-20261012-212222.exe. Downloaded and verified the executable. Installer artifact.
  • Full Linux CI passed. The broader Windows engine test job is still running.

Companion docs: Rustic-Game-Engine/docs#37 (lint, types, production build, docs/link checks and dependency audit pass). Original documentation: Rustic-Game-Engine/docs#35.

v0.7-Pre-Alpha

v0.7-Pre-Alpha Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Oct 05:09
481ebf5

Scripts need live entity organization and lifetime operations across language adapters. Add 17 shared Rust/runtime APIs for tags, groups, world-preserving hierarchy edits, subtree/delayed destruction, component presence and tag/radius queries. All SDKs call the same typed query dispatcher; editor Lua/JavaScript API hints are updated. Destroyed component owners stop receiving callbacks and release operations/signals at cleanup.

Stop/change review skips destroyed authored entities and suppresses translation-only diffs when an entity's parent differs from the original scene. Surviving entities with unchanged parents still contribute edits; restoring the authored parent makes local translations reviewable again. Structural edits remain runtime-only, avoiding wrong editor world positions and preserving normal Stop acknowledgements.

Reuse SceneWorld validated commands, generational references, transforms and the existing gameplay clock/signals/scheduler. Runtime metadata avoids a scene format migration; reparenting rejects shear instead of silently changing poses. No dependencies added. This is the first incremental entity slice of Phase 1: component mutation, prefabs/pooling, scene streaming, input/persistence and subsequent phases remain unfinished in the checked-in feature checklist.

Validation for the review fixes: all 70 engine-play tests passed, including two regression tests and a real authenticated Stop exchange after a component destroys its owner and reparents another entity. Both unit regressions were also executed against the pre-fix collector and failed as expected. Workspace/all-target compile check, engine-play Clippy with warnings denied, formatting/whitespace checks passed. Documentation lint/build/types/audit, all 34 site tests and documentation/exported-link checks passed. Existing SDK/world features remain covered by the CI suites. No Windows/macOS hardware compatibility claim.

Companion documentation: Rustic-Game-Engine/docs#31 (merged), with final validation in Rustic-Game-Engine/docs#33 (17 API pages, language examples, setup/lifetime/errors, expansion checklist; site lint/build/types/audit/tests passed).
Stop/change-review documentation fix: Rustic-Game-Engine/docs#34.
Runnable examples: Rustic-Game-Engine/examples#1.

Windows installer and all required CI passed for fix commit 68d11be: https://github.com/Rustic-Game-Engine/engine/actions/runs/38201074736. The full comprehensive scripting expansion remains unfinished.

Fresh Windows installer: https://github.com/Rustic-Game-Engine/engine/actions/runs/38201074736/artifacts/11725608597 (windows-installer, 21,661,427 bytes; the successful upload requires Engine/dist/RusticGameEngine-Setup-*.exe). Both review threads are resolved.

v0.6-Pre-Alpha

v0.6-Pre-Alpha Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Oct 01:45
68b0e5c

The globally registered Rustic MCP command has no --project argument. When a desktop client starts it outside a game directory, the backend exits with code 2 before responding to initialize, so the client cannot discover its tools.

Allow initialization, tool discovery, and ping without a selected game. workspace_info now accepts an absolute project_root to bind a game for the connection; subsequent project tools use that selection. Invalid replacement paths return tool errors and retain the prior game. Automatic discovery from a game directory or subdirectory still works. Project selection remains required for content tools.

Local stdio registration does not expose a user's Rustic installation to a cloud Codex chat. The companion documentation PR explains that distinction and setup/troubleshooting for the updated backend.

Validation: reproduced the old exit from the engine checkout; the updated binary responds to initialization from the same directory. All 7 backend unit/stdio regression tests pass; targeted Clippy with warnings denied and workspace formatting pass. An official MCP SDK client also successfully initializes, lists tools, receives an actionable missing-project error, and pings from outside a game. Website lint, build, TypeScript, and dependency audit pass.

Windows installer packaging passed on Windows via this workflow, producing a fresh RusticGameEngine-Setup-0.1.0-x64-20261012-012313.exe. The artifact is available as RusticGameEngine-Windows-Installer on that run. Full Linux/Windows PR checks are tracked separately by CI.

v0.5-Pre-Alpha

v0.5-Pre-Alpha Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Oct 05:09
ebda9e9

Scripts can now load and play MP3, AAC-LC (.aac ADTS / .m4a MP4), FLAC, and mono/stereo OGG Opus through the existing audio APIs. WAV and OGG Vorbis remain supported; .oga and .opus aliases are recognized. Decoders are bundled in Rust, with no FFmpeg or system codec requirement for players.

Decode packets within the existing PCM limit, reject invalid or changing stream layouts, normalize lossy peaks to the mixer's range, and honor Opus header gain, pre-skip, and end trimming. Update audio importer version, editor file icons, documentation, and bundled dependency notices.

This change builds on the loaded-audio API merged into main in #25.

Companion website documentation: Rustic-Game-Engine/docs#15

Validation:

  • All 164 tests across engine-assets, engine-core, engine-scripting, and engine-play passed.
  • Fixture tests cover MP3, AAC ADTS, AAC M4A, FLAC, OGG Vorbis, OGG Opus, extension aliases, malformed input, Opus corruption, PCM limits, and duration trimming.
  • Runtime integration loads, plays, mixes, and unloads every codec through Lua.
  • Formatting and Clippy for assets/play with warnings denied passed.
  • cargo-deny 0.20.2: advisories, licenses, bans, and sources passed.
  • Companion documentation lint, build, TypeScript check, and audit passed.

GitHub CI passed all eight checks, including the Windows installer build, Windows and Linux engine checks, language adapter conformance, and dependency security/licenses.