Skip to content

README rewrite, example scaffolding tooling, quickstart example#12

Merged
markwpearce merged 7 commits into
mainfrom
feature/quickstart-example
Jul 16, 2026
Merged

README rewrite, example scaffolding tooling, quickstart example#12
markwpearce merged 7 commits into
mainfrom
feature/quickstart-example

Conversation

@markwpearce

Copy link
Copy Markdown
Owner

Summary

  • README: pitches the engine as both a full game framework and a standalone 2D/3D drawing library, adds a runnable quick-start code sample, an examples table, callouts for the BrightScript Simulator (brs-desktop) and the scaffolding script, and moves fork/tooling credits into a new Acknowledgements section (RokuCommunity, Marcelo Lv Cabral).
  • Example scaffolding: npm run create-example -- <name> ["Title"] generates a new examples/<name> from scripts/exampleTemplate (manifest, bsconfig, a minimal MainRoom), auto-generates placeholder icon/splash images (pure-JS via pureimage, no ImageMagick needed), and registers the example in the root .vscode/tasks.json picker.
  • examples/quickstart: the exact Game/MainRoom/Player code from the README's quick-start sample, as a real runnable app. Validated, linted, and built/packaged clean.
  • Cross-platform tooling: rewrote all scripts/examples_*.sh and create_example.sh shell scripts as plain Node (scripts/examples.js, scripts/create-example.js, etc.), so prepare-examples/build-examples/validate-examples/clean-all/create-example all work on Windows without Git Bash/WSL.

Screenshots (Asteroids, 3D, Pong/Snake) to follow - README has placeholders ready under assets/screenshots/.

Test plan

  • npm run validate / npm run lint pass
  • examples/quickstart builds, validates, lints, and packages cleanly
  • create-example.js scaffolds a working example end-to-end (tested with throwaway names, cleaned up)
  • examples.js validate runs across all example dirs, behavior matches old shell scripts (same pre-existing failures in hybrid/terrain, unrelated to this PR)
  • This PR's own validate check passes in CI

markwpearce and others added 7 commits July 16, 2026 09:55
Adds a features pitch, a runnable quick-start snippet, and a table
describing each example. Moves the original-fork credit into a new
Acknowledgements section and adds RokuCommunity and Marcelo Lv Cabral.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
README:
- Pitches the engine as both a full game framework and a standalone
  2D/3D drawing library
- Adds a runnable quick-start code sample (Game/MainRoom/Player)
- Adds an examples table, callouts for the BrightScript Simulator
  (brs-desktop) and the new scaffolding script
- Moves the original-fork credit into an Acknowledgements section and
  adds RokuCommunity and Marcelo Lv Cabral

Scaffolding (npm run create-example -- <name> ["Title"]):
- scripts/exampleTemplate is now a real template (manifest, bsconfig,
  package.json, .vscode configs, minimal main.bs/MainRoom.bs)
- scripts/create_example.sh copies the template, fills in the title,
  generates icon/splash images, and registers the new example in the
  root .vscode/tasks.json example picker
- Icon/splash generation (scripts/generate_example_images.js) uses
  pureimage, a pure-JS canvas implementation, instead of ImageMagick -
  no native/system dependency required. Bundles WorkSans-Bold.ttf
  (OFL-licensed) for the text.

examples/quickstart: the exact Game/MainRoom/Player code from the
README's quick-start sample, as a real runnable app. Verified it
validates, lints, and builds/packages cleanly.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The scripts/examples_*.sh and create_example.sh shell scripts only
worked via a POSIX shell (Git Bash/WSL on Windows) since they used
cp -R, sed, uname, and find -delete. Rewritten as plain Node so
`npm run prepare-examples`/`build-examples`/`validate-examples`/
`clean-all`/`create-example` work identically on Windows, macOS, and
Linux.

- scripts/examples.js replaces the seven examples_*.sh one-liners
  with a single task-dispatch script (install/build/validate/clean/
  audit/ropm-install), still iterating examples/*/ and continuing
  past a failing example, matching the old behavior.
- scripts/create-example.js replaces create_example.sh, using
  fs.cpSync/fs.rmSync instead of cp/find/sed.
- generate-example-images.js and add-example-to-vscode-tasks.js
  (renamed from the underscore versions) now export their logic as
  functions so create-example.js calls them in-process instead of
  spawning child node processes, while still supporting standalone
  CLI use.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@markwpearce
markwpearce merged commit 01cf41d into main Jul 16, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant