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
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
push:
branches:
- main
- develop
workflow_dispatch:

permissions:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/sync-engine-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ jobs:
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: main

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Synchronize engine releases through develop

When an engine-released dispatch contains a new version, this forces the synchronization job onto main, and the later git push origin HEAD:main writes directly to that branch. This bypasses the newly established develop-first workflow, leaves develop targeting the old engine version, and risks a subsequent develop-to-main merge reverting the synchronized release; check out develop and push with an explicit develop:develop refspec instead.

AGENTS.md reference: AGENTS.md:L18-L21

Useful? React with 👍 / 👎.


- name: Set up PHP
uses: shivammathur/setup-php@v2
Expand Down
8 changes: 8 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,12 @@ These projects demonstrate Lenga workflows and are versioned independently from
- Validate affected PHP with `php -l`, run `composer validate --strict`, and open the affected project in a compatible Lenga Editor build before sharing changes.
- Use Conventional Commits, preferably with the sample as scope, such as `fix(pong): restore paddle input`.

## Remote Branch Policy

- Keep feature, fix, release-preparation, agent, and other topic branches local by default. Never push a non-`develop` branch to GitHub or another remote unless the user explicitly instructs you to push that named branch.
- The normal sharing workflow is to finish or merge local work into local `develop`, then push only `develop` to the remote `develop` branch. Do not push `main` directly unless the user explicitly instructs it.
- A request to implement, commit, continue, prepare a release, or create a branch is not permission to publish a topic branch. Do not infer remote-push permission from the broader task.
- Before every push, verify the current branch and use an explicit `develop:develop` refspec for the normal workflow. Never rely on a bare `git push` when it could publish another branch.
- If the user explicitly authorizes a remote topic branch, remove that remote branch after it is merged or closed unless the user asks to preserve it.

Avoid presenting these projects as engine release gates or as prebuilt public game downloads. Their purpose is to provide editable source examples that help developers understand and combine Lenga features.
19 changes: 10 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<!--suppress HtmlDeprecatedAttribute -->
<div align="center">
<img src="https://lengaengine.com/images/lenga-logo-xl.png" width="140" alt="Lenga Engine Logo" />
</div>
Expand All @@ -6,18 +7,18 @@

This repository contains editable Lenga projects that show how engine features fit together in real games. Open a project in the Lenga Editor, inspect its scenes and components, and use the PHP scripts as practical starting points for your own work.

These are source projects rather than prebuilt game downloads. They evolve independently from the engine repository and may target features on Lenga's current development branch.
These are source projects rather than prebuilt game downloads. They evolve independently of the engine repository and may target features on Lenga's current development branch.

## Projects

| Project | Mode | What it demonstrates |
| --- | --- | --- |
| [Blasters](./Blasters) | 2D | A compact space-shooter project with input, animation, projectiles, and gameplay behaviours. |
| [HelloWorld](./HelloWorld) | 2D and 3D | A feature sandbox for camera behaviours, 2D joints, 3D models, and simple scripted objects. |
| [Platformer](./Platformer) | 2D | A larger platformer project with tile-based levels, animation controllers, combat, menus, audio mixing, and gameplay state. |
| [Pong](./Pong) | 2D | Physics-driven paddle gameplay, configurable input, runtime spawning, UI, and scene transitions. |
| [RollerWorld](./RollerWorld) | 3D | A roll-a-ball game using 3D physics, follow cameras, lighting, materials, shaders, audio, UI, and collectibles. |
| [Super Blastoid](./Super%20Blastoid) | 3D | A minimal 3D project for experimenting with scene setup and native components. |
| Project | Mode | What it demonstrates |
|--------------------------------------|-----------|-----------------------------------------------------------------------------------------------------------------------------|
| [Blasters](./Blasters) | 2D | A compact space-shooter project with input, animation, projectiles, and gameplay behaviours. |
| [HelloWorld](./HelloWorld) | 2D and 3D | A feature sandbox for camera behaviours, 2D joints, 3D models, and simple scripted objects. |
| [Platformer](./Platformer) | 2D | A larger platformer project with tile-based levels, animation controllers, combat, menus, audio mixing, and gameplay state. |
| [Pong](./Pong) | 2D | Physics-driven paddle gameplay, configurable input, runtime spawning, UI, and scene transitions. |
| [RollerWorld](./RollerWorld) | 3D | A roll-a-ball game using 3D physics, follow cameras, lighting, materials, shaders, audio, UI, and collectibles. |
| [Super Blastoid](./Super%20Blastoid) | 3D | A minimal 3D project for experimenting with scene setup and native components. |

## Requirements

Expand Down
2 changes: 1 addition & 1 deletion docs/release-automation.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ The dispatch is idempotent. Repeating it for a version already in use produces n
Configure the following in the `lengaengine/php-engine` repository:

- Secret `SAMPLES_REPOSITORY_TOKEN`: a fine-grained token with permission to dispatch workflows in the samples repository.
- Optional variable `LENGA_SAMPLES_REPOSITORY`: the target in `owner/repository` form. It defaults to `lengaengine/samples`.
- Optional variable `LENGA_SAMPLES_REPOSITORY`: the target in `owner/repository` form. It defaults to `lengaengine/example-games`.

The samples repository must allow GitHub Actions to write repository contents because the receiving workflow commits regenerated dependency locks.

Expand Down
Loading