Skip to content

stevereuter/methane-mayhem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Methane Mayhem

Introduction

Methane Mayhem is a puzzle game written for the Commodore 64.

Development

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

Building & Releases

Release packaging uses a hybrid process:

  • Manual for C64 (local build tools required)
  • Automated for Web (GitHub Actions on release publish)

C64 Build (Versioned, Non-Mutating)

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 under c64/build/generated/
  • Compiles from generated sources so files in c64/src/ are never modified

Current placeholders are in:

  • c64/src/splash.bas
  • c64/src/characters.bas

The default VS Code build task in c64/.vscode/tasks.json is set to run this wrapper.

C64 Package (Manual)

Run the packaging script from the project root:

bash package.sh

This script will:

  • Run c64/build-versioned.sh to 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)

Web Package + Pages (Automated)

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 copied dist-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

Release Flow

  1. Run bash package.sh locally and keep the generated C64 zip.
  2. Create/publish a GitHub release and upload the C64 zip asset.
  3. The release workflow automatically adds the web zip asset and deploys GitHub Pages.

Porting This To Template Repo

When copying this workflow to a template project, copy/update these pieces together:

  1. c64/build-versioned.sh
  2. c64/.vscode/tasks.json default build task
  3. package.sh (call into c64/build-versioned.sh)
  4. {version} placeholders in any BASIC and web files
  5. .github/workflows/release-web.yml placeholder replacement step

Quick verification after porting:

  1. Run C64 default build task and confirm PRG is produced in c64/build/.
  2. Confirm version text appears in emulator output.
  3. Run bash package.sh and confirm zip + d64 output.

History

License

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.

About

Connecting pipe puzzle game with cows.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Contributors