cakefoot/README.md

5.9 KiB
Raw Permalink Blame History

Fork it up! Cakefoot is a challenging, single-button dodge em up on rails. Pilot a walking cake hold to accelerate, let go to drift back and survive against all odds. Featuring 22 epic levels, arcade mode, unlockables, and high scores, Cakefoot is endlessly replayable, and impossible to defeat.

Cakefoot is one of the first games made with the open-source SPACE🪐BOX engine and is free to play online. It is the first game available for the dank.game web games portal.

Mod

It is possible to edit or add levels, sprites, and some design parameters without needing to rebuild the game.

Config and assets

Asset swaps and some style edits, such as colors and fonts, are the easiest mods to do. Change the relevant values in config.json. In some cases, the values can even be changed while the game is running just by saving the file changes.

Levels

Levels in levels.json are also easy to add and mod using JSON, but the syntax is not documented yet. The shape of the curve, checkpoints, and enemies are all definable in the level syntax.

Code

Other changes will require code edits. See the Build section.

Build

Clone both the game code and the SPACE🪐BOX engine code using --recursive. The engine code will be in lib/sb/ along with documentation and demos.

$ git clone --recursive https://open.shampoo.ooo/shampoo/cakefoot/

Each platform has a corresponding target in the Makefile. There is some documentation in the Makefile itself that should be checked. The current supported platforms are web browsers, Linux, Windows, and MacOS.

Until further documentation is added, one way to get started building for a platform is to first build the box demo for the desired platform in a separate project.

Once the box demo is confirmed to build, try making a build of Cakefoot, for example the Linux version

$ make Cakefoot-linux_debug.x86_64

Press kit

There is a press kit included in Markdown format in the root of the repository. This can be converted into an HTML page using the conversion tool Pandoc. Once Pandoc is installed, run the make target from the terminal to generate a file press.html in the root folder.

$ make press

The generated page will look like this. To edit the press kit, for example if this repository is being used for a mod or another game, edit the markdown file, CSS rules, metadata, and optionally the template, and re-run the make target.

License

The code is open source under the zlib license, and the assets are released under the Creative Commons BY 4.0 license. This means the game can be legally copied, modified, and used commercially, as long as appropriate credit is given.

See LICENSE.txt for details, including how to provide credit.

Releases

Release versions are available to checkout using tags. This project uses semantic versioning.

1.3.0

  • New background music: each of the four chapters has a new medley of songs
  • Positional audio for sound effects based on where the character is on the screen

1.2.1

  • Fix bug causing walk backward achievements to trigger prematurely.

1.2.0

  • Add achievements and stats, with support for syncing to Steam.
  • Store player's fullscreen and sound preferences, and re-apply them when opening the game.
  • Create a test program for the Linux version which auto loads and plays the game and checks key output and results.
  • Implement CLI, allowing for config JSON to be passed on the command line.

1.1.4

  • Check save file format before loading to prevent the game from crashing from a corrupted save file

1.1.3

  • Disable logging by default (performance gain in some web browsers from removed glGetError calls)

1.1.2

  • Draw version string on pause menu
  • Enable vsync

1.1.1

  • Add Python script for releasing tagged builds as distributables
  • Add Itch.io build
  • Bug fix: replace the removed "arcade coin" key with the bank vector

1.1.0

  • added coin bank to HUD
  • coin status saves per level instead of just as a total count of coins
  • coin displays over the player's head after it is grabbed until it is collected

1.0.4

  • add options sub-menu to title screen: bgm, sfx, fullscreen, and exit
  • hide UI when gamepad is in use, enable when mouse is in use
  • indicate selected UI button using hue rotation animation
  • support for gamepad hat
  • support for disconnecting and reconnecting gamepads
  • sanitize collected data in WASM build and write files per session
  • add function for finding the closest UI button in a given direction
  • bug fix: prevent character from moving when level loads or play is resumed from the pause menu
  • bug fix: cancel character walking sfx when paused

Contact

Contact me with questions or raise an issue on the repository page. Documentation or any other pull requests are welcome 🙂

Method Contact information
E-mail cocktail.frank@dank.game
Web https://dank.game
X https://x.com/diskmem
PayPal https://paypal.me/ohsqueezy