Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 35 additions & 44 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,35 @@
# Changelog

## 0.4.0 — GitHub Preview

First public-facing Parlyn milestone.

### Added

- final Parlyn logo integrated into the editor
- both light- and dark-background logo SVGs in `assets/branding/`
- first folder-based project model with `parlyn.project.json`
- project creation/opening using native Electron dialogs
- project-local `scenes/`, `assets/` and `.parlyn/` structure
- project-aware scene saving
- first multi-file asset import/storage workflow
- live Asset panel listing imported project assets
- `Billboard2_5D` scene node behavior
- `Light3D` node
- `Camera3D` node
- renderer representation for light and camera nodes
- project format documentation
- public roadmap
- GitHub CI foundation
- release-oriented minified renderer build

### Preserved from 0.3.0

- scene save/open
- add/remove nodes
- undo/redo
- hierarchy and viewport selection
- transform inspector
- 2.5D/3D editor camera presets
- renderer abstraction

## 0.3.0

- persistent scene save/open
- add/remove node workflow
- undo/redo history foundation

## 0.2.1

- first successfully tested interactive Parlyn viewport prototype
# Parlyn Engine Changes

## v0.5.0 — Transform Tools & Module Foundation

### Editor

- Added viewport Move, Rotate and Scale gizmos.
- Added W / E / R shortcuts and Select mode (Q / Esc).
- Gizmo changes update the Inspector live.
- Gizmo operations participate in the existing Undo / Redo history.
- Added 2.5D-aware transform constraints for rotation and scale.

### Modules

- Added the first Parlyn `ModuleRegistry`.
- Added validated module manifests and unique IDs.
- Added activate/deactivate lifecycle hooks.
- Added module state-change events.
- Added a Modules browser to the editor.
- Added a deliberately small official Example Module for lifecycle testing.
- Added `docs/MODULE-SYSTEM.md`.

### Philosophy / roadmap

- Added developer freedom as an explicit architecture principle.
- Official Parlyn systems are defined as optional starting points, never mandatory workflows.
- Added future official Audio, Lighting, Navigation, Settings, Quest, Character Creator, Intro/Cutscene, Credits and AI assistance directions to the roadmap.

## v0.4.0 — First GitHub Preview

- Public project structure and branding.
- Project-folder model and scene persistence.
- Asset import/storage foundation.
- `Sprite2_5D`, `Billboard2_5D`, `Mesh3D`, `Light3D`, and `Camera3D` scene nodes.
- Sample project and public documentation.
39 changes: 29 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

Parlyn treats sprites, billboards, layered depth, lighting and real 3D geometry as parts of the same scene workflow. 2.5D is not a secondary editor mode: it is a first-class engine concept.

> **Current status:** v0.4.0 GitHub Preview — early engine/editor foundation. APIs and project formats may still change.
> **Current status:** v0.5.0 GitHub Preview — early engine/editor foundation. APIs and project formats may still change.

## Why Parlyn?

Expand All @@ -36,6 +36,8 @@ The long-term direction includes:
- 2.5D and 3D editor camera presets
- hierarchy selection and viewport ray-cast selection
- transform inspector
- viewport Move / Rotate / Scale gizmos with W / E / R shortcuts
- live Inspector synchronization during gizmo edits
- editor camera orbit, pan and zoom
- undo/redo history foundation
- native scene open/save dialogs
Expand Down Expand Up @@ -86,6 +88,19 @@ Initial accepted file types include:

This is the **storage/import foundation**, not yet a complete runtime importer. Loading textures, models and audio into runtime nodes is a later milestone.


## Module foundation

v0.5.0 introduces the first Parlyn module registry and lifecycle. Modules can be registered with validated metadata and enabled or disabled through the editor. The bundled Example Module exists only to test this lifecycle; larger gameplay systems are not being pretended into existence before their foundations are ready.

Parlyn's long-term rule is simple:

> **Parlyn gives you a strong starting point, not a fixed path.**

Official Parlyn systems will be maintained options, not mandatory workflows. Developers remain free to replace them with their own solutions or compatible community modules.

See [`docs/MODULE-SYSTEM.md`](docs/MODULE-SYSTEM.md).

## Architecture

Parlyn deliberately owns its higher-level engine concepts instead of exposing renderer-native objects as project data.
Expand Down Expand Up @@ -180,7 +195,11 @@ npm run build:renderer:release

## Editor controls

- **Left mouse:** select
- **Left mouse:** select / manipulate active gizmo
- **Q / Esc:** Select tool
- **W:** Move tool
- **E:** Rotate tool
- **R:** Scale tool
- **Right mouse drag:** orbit editor camera
- **Middle mouse drag:** pan
- **Mouse wheel:** zoom
Expand All @@ -194,14 +213,14 @@ npm run build:renderer:release

The next engine milestones are intentionally foundation-heavy:

1. transform gizmos
2. runtime/play-mode separation
3. real image/model asset loaders
4. Parlyn material system for sprites and meshes
5. normal-map aware 2.5D lighting
6. camera-node preview/runtime use
7. collision and physics abstraction
8. project scene browser and multiple scenes
1. runtime/play-mode separation
2. real image/model asset loaders
3. Parlyn material system for sprites and meshes
4. normal-map aware 2.5D lighting
5. camera-node preview/runtime use
6. collision and physics abstraction
7. project scene browser and multiple scenes
8. external module package and permission model
9. packaging and distributable desktop builds
10. first compact Parlyn showcase project

Expand Down
8 changes: 4 additions & 4 deletions docs/GITHUB-PUBLISHING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Publishing Parlyn v0.4.0 on GitHub
# Publishing Parlyn v0.5.0 on GitHub

This repository is prepared as the first public Parlyn Engine preview.
This repository is prepared for the Parlyn Engine v0.5.0 GitHub Preview update.

## Before the first push

Expand Down Expand Up @@ -32,10 +32,10 @@ npm run dev

## Suggested first release title

`Parlyn Engine v0.4.0 — GitHub Preview`
`Parlyn Engine v0.5.0 — GitHub Preview`

## Suggested release summary

Parlyn Engine v0.4.0 is the first public preview of our independent 2.5D-first game engine. It includes an interactive hybrid 2.5D/3D editor, Parlyn-owned scene/node architecture, scene persistence, undo/redo, a first project-folder model, basic asset importing and first-class Sprite2_5D, Billboard2_5D, Mesh3D, Light3D and Camera3D nodes.
Parlyn Engine v0.5.0 adds direct viewport transform gizmos and the first Parlyn module lifecycle foundation to the existing independent 2.5D-first editor. Move, Rotate and Scale now work directly in the viewport with live Inspector updates and Undo/Redo integration. A first module registry, module browser and developer example establish the extension model without locking Parlyn into mandatory workflows.

This is an early foundation release. Project and scene formats may still change while the engine architecture stabilizes.
68 changes: 68 additions & 0 deletions docs/MODULE-SYSTEM.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Parlyn Module System

Parlyn's module system exists to preserve developer freedom while allowing the project to ship reliable official building blocks.

> **Parlyn gives you a strong starting point, not a fixed path.**

## Design goals

- Keep the engine core small and stable.
- Let official Parlyn systems use the same extension model as third-party systems where practical.
- Never make an optional gameplay workflow the only supported workflow.
- Allow developers to replace official modules with custom solutions.
- Introduce permissions and safe external loading before accepting executable marketplace plugins.

## v0.5 foundation

v0.5 introduces the in-memory module registry and lifecycle:

- manifest validation
- unique module IDs
- metadata and categories
- enable / disable state
- `activate(context)` lifecycle hook
- `deactivate(context)` lifecycle hook
- module-change events
- editor module browser

An intentionally small `Example Module` is included as a developer test. It proves the lifecycle without pretending that larger gameplay systems are already implemented.

## Planned manifest direction

Future external modules are expected to use a manifest concept similar to:

```json
{
"id": "org.parlyn.quest",
"name": "Parlyn Quest System",
"version": "1.0.0",
"engine": ">=1.0.0",
"permissions": ["scene.read", "scene.write"]
}
```

The exact external package format is intentionally not frozen yet.

## Planned official systems

### Engine-adjacent subsystems

- Audio
- Lighting
- Navigation / pathfinding
- Input and runtime services

### Optional gameplay/editor modules

- Settings framework
- Quest system
- Character creation framework
- Intro / cutscene tools
- Credits tools
- AI editor assistance

Official does **not** mean mandatory. Developers remain free to build or install alternatives.

## Security direction

Loading arbitrary third-party JavaScript is executable-code loading and therefore needs a deliberate security model. Before Parlyn enables external plugins, the architecture should define permissions such as project read/write, filesystem access, network access, editor APIs and runtime APIs.
50 changes: 46 additions & 4 deletions docs/ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

This roadmap describes direction, not promises or fixed dates. Parlyn is still young enough that architecture may change when testing proves a better approach.

## Guiding principle — developer freedom

**Parlyn gives you a strong starting point, not a fixed path.**

Parlyn may provide official high-quality systems, but optional Parlyn workflows must not become the only way to build a game. Developers should be able to use official modules, replace them with custom solutions, or choose compatible community alternatives.

## Foundation — current

- independent Node/Scene architecture
Expand All @@ -13,21 +19,58 @@ This roadmap describes direction, not promises or fixed dates. Parlyn is still y
- project-folder model
- asset storage/import foundation
- `Sprite2_5D`, `Billboard2_5D`, `Mesh3D`, `Light3D`, `Camera3D`
- viewport transform gizmos (move / rotate / scale)
- module registry and lifecycle foundation

## Editor foundation

- transform gizmos
- duplication and reparenting
- multi-scene project browser
- rename/move project assets
- unsaved-change protection
- editor preferences
- stronger error reporting
- transform snapping and local/world gizmo options
- optional Surface / Ground Snap for prop placement, plus Grid Snap
- Frame Selected command for quickly focusing lights, cameras, audio sources and distant nodes
- optional scene/world bounds kept separate from the dynamically resizable editor viewport

## Plugin / module platform

- external module package format
- version compatibility rules
- permission model
- safe editor API surface
- controlled module UI extension points (panels, menus, toolbars, Inspector extensions, settings and node registration)
- safe runtime API surface
- module dependency handling
- module install/update/remove workflow
- signed/trusted publishing options where justified

### Planned official Parlyn modules and systems

Engine-adjacent systems:

- Audio
- Lighting
- Navigation / pathfinding
- Input/runtime services

Optional higher-level systems:

- Settings framework
- Quest system
- Character creation framework
- Intro / cutscene tools
- Credits tools
- AI editor assistance with provider abstraction and explicit user approval before changes are applied

These are intended as maintained starting points, **not mandatory workflows**.

## 2.5D renderer foundation

- texture-backed sprites
- billboard modes
- billboard modes, including explicit camera-facing / constrained rotation behavior
- explicit depth ordering
- sprite materials
- normal maps
Expand All @@ -41,7 +84,7 @@ This roadmap describes direction, not promises or fixed dates. Parlyn is still y
- runtime cameras
- input abstraction
- collision/physics abstraction
- audio nodes
- audio nodes with global and spatial sources plus editor visualization for spatial range
- scene switching
- game export/build pipeline

Expand All @@ -59,7 +102,6 @@ This roadmap describes direction, not promises or fixed dates. Parlyn is still y
- animation workflows
- shader authoring support
- debugging/profiling tools
- package/plugin model
- additional renderer backends where justified
- asset marketplace ecosystem
- broader community contribution model
55 changes: 55 additions & 0 deletions docs/TESTING-v0.5.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Parlyn Engine v0.5.0 Test Guide

This test focuses on the two new foundations introduced in v0.5.0: viewport transform gizmos and the module lifecycle.

## Baseline regression

Confirm that the v0.4 workflows still work:

1. Start Parlyn.
2. Open the bundled `samples/Parlyn-Test-Project`.
3. Select nodes in Hierarchy and Viewport.
4. Orbit, pan and zoom the editor camera.
5. Change transform values in the Inspector.
6. Add and delete nodes.
7. Undo and redo changes.
8. Save, close, reopen and reload the project/scene.
9. Confirm imported assets still appear.

## Transform gizmos

1. Select a `Mesh3D` node.
2. Press **W** or click **Move**.
3. Drag each visible axis and confirm Position changes live in the Inspector.
4. Undo and redo the move.
5. Press **E** or click **Rotate**.
6. Rotate the mesh and confirm Rotation changes in the Inspector.
7. Undo and redo the rotation.
8. Press **R** or click **Scale**.
9. Scale the mesh and confirm Scale changes in the Inspector.
10. Press **Q** or **Esc** and confirm the gizmo disappears while selection remains.

### 2.5D checks

1. Select a `Sprite2_5D`.
2. Move it on X, Y and Z.
3. Rotate it: only the Z rotation handle should be available.
4. Scale it: only X and Y scaling should be available.
5. Repeat Move and Scale with a `Billboard2_5D`.
6. Orbit the editor camera and confirm the billboard still faces the camera after editing.

## Module system

1. Click **Modules** in the top toolbar.
2. Confirm the official `Example Module` is listed and disabled by default.
3. Enable it.
4. Confirm the status bar reports activation and the module shows Enabled.
5. Disable it again.
6. Confirm the status bar reports deactivation.
7. Close and reopen the Modules dialog and confirm the current in-session state is represented correctly.

The Example Module intentionally performs no gameplay work. Its purpose is to validate manifest registration and activate/deactivate lifecycle behavior.

## Report anything suspicious

Please report crashes, console errors, incorrect transform values, gizmos that become detached from the selected object, Undo/Redo inconsistencies, billboard rotation problems, or module toggles that do not reflect their actual state.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "parlyn-engine",
"version": "0.4.0",
"version": "0.5.0",
"private": true,
"description": "Parlyn Engine - open-source 2.5D-first game engine editor",
"main": "src/main/main.js",
Expand Down
Loading
Loading