Methane Mayhem is a puzzle game written for the Commodore 64.
Methane Mayhem game is written in Commodore BASIC 2.0 for the Commodore 64.
- developed by Steve
- written in VSCODE using the VS64 extension
- artwork created in Aseprite
- brainstorming partners and design guides: April and Isabella
Release packaging uses a hybrid process:
- Manual for C64 (local build tools required)
- Automated for Web (GitHub Actions on release publish)
Default C64 builds now run through c64/build-versioned.sh.
What this does:
- Reads the version from
config.json - Replaces
{version}placeholders into generated files underc64/build/generated/ - Compiles from generated sources so files in
c64/src/are never modified
Current placeholders are in:
c64/src/splash.basc64/src/characters.bas
The default VS Code build task in c64/.vscode/tasks.json is set to run this wrapper.
Run the packaging script from the project root:
bash package.shThis script will:
- Run
c64/build-versioned.shto build a versioned PRG from generated inputs - Create a d64 disk image using VICE's c1541 tool
- Package both the PRG and d64 files into
methane-mayhem-vX.X.X.zip
Output files are created in c64/build/.
Requirements:
- VICE tools installed (
c1541) - VS64 extension tools available locally (resolved by
c64/build-versioned.sh)
Workflow: .github/workflows/release-web.yml
Trigger:
- Runs when a GitHub Release is published
Behavior:
- Reads version from
config.json - Replaces
{version}in any matching file inside copieddist-web/content - Creates a web zip named
<repo>-web-vX.X.X.zip - Uploads that zip to the same GitHub Release as an asset
- Deploys the same processed web output to GitHub Pages
GitHub setup required:
- Pages source must be set to GitHub Actions
- Actions workflow permissions should allow Read and write permissions
- Run
bash package.shlocally and keep the generated C64 zip. - Create/publish a GitHub release and upload the C64 zip asset.
- The release workflow automatically adds the web zip asset and deploys GitHub Pages.
When copying this workflow to a template project, copy/update these pieces together:
c64/build-versioned.shc64/.vscode/tasks.jsondefault build taskpackage.sh(call intoc64/build-versioned.sh){version}placeholders in any BASIC and web files.github/workflows/release-web.ymlplaceholder replacement step
Quick verification after porting:
- Run C64 default build task and confirm PRG is produced in
c64/build/. - Confirm version text appears in emulator output.
- Run
bash package.shand confirm zip + d64 output.
Code: Licensed under the MIT License
Assets: Licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
Feel free to learn from the code and use it in your own projects. Assets (images, sprites, audio, etc.) and data generated from them may be shared and adapted under the CC BY-NC-SA 4.0 terms — please provide attribution and distribute derivative works under the same license.