Our Ludum Dare 45 game jam entry. The theme...
Start with nothing
Table of Contents
Experience a work in progress.
Play through the development process of a 2D platformer game,
and watch your environment transform as you progress...
The further you get, the more features are added, including
menacing enemies, destructive spikes, and adaptive music.
Action | Keyboard |
---|---|
Move | W ,S ,A ,D / Up ,Down ,Left ,Right |
Jump | Space / K |
Toggle Pause | Escape / P |
To Main Menu (from pause menu) | Q / Backspace |
Quit Game | Shift+Escape / Shift+Q |
Action | Keyboard |
---|---|
Start Selected | Enter / Space |
Start Selected (without save data) | X / Delete |
Select Next | S / Down / J / Tab |
Select Previous | W / Up / K / Shift+Tab |
Quit Game | Escape / Shift+Q |
Download the build for your platform from itch.io.
Supported platforms: Windows and Linux.
The game's data directory is where the savefile.json
,
and the panic.log
(if an error should occur) files will be saved to.
It's location depends on the platform:
Platform | Path |
---|---|
Windows | C:\Users\<USER>\AppData\Local\ld45-working-title\ |
Linux | $HOME/.local/share/ld45-working-title/ |
Location is determined by the dirs
crate's data_local_dir()
function.
If the game doesn't run, it's likely that you're missing Vulkan API support.
Unless you're using a very old graphics card,
updating your graphics drivers should fix the issue.
If you're on Linux, you may need to install an appropriate
Vulkan driver package for your graphics card.
For Intel graphics on Arch Linux (or arch-based distros),
the package vulkan-intel did the trick for me.
Sorry about this inconvenience, I'm not sure how to circumvent this.
v1.0.0 - v1.0.2
Version | Download | Release Date | Notes |
---|---|---|---|
1.0.0 | Windows Linux |
2019-10-08 (jam deadline) |
Initial Ludum Dare jam release. Has some major bugs, which prevent the game from being completed: When dying and respawning at a checkpoint, after getting the high-jump feature you lose your high-jump, which prevents the game from being completed (unless you beat it without dying). The order in which the music tracks are played are messed-up; you won't experience the intended flow of the music in this build. |
1.0.1 | Windows Linux |
2019-10-08 (~20 minutes after deadline) |
Partially fixes the music playing-order bug from v1.0.0 (still has some bugs). Was released about 20 minutes after the deadline. |
1.0.2 | Windows Linux |
2019-10-08 (~5 hours after deadline) |
Properly fixes the music playing-order bug. Fixes the bug where player's high-jump is taken away after respawning, making the game beatable. Adds frame rate counter system, which prints FPS to the console. Adds the WorkingTitle.desktop file for Linux file manager GUIs. Some minor, meta stuff. Was released about 5 hours after the deadline. |
v1.1.0
Download | Release Date |
---|---|
Windows / Linux | 2019-10-30 |
- Change settings to be more low-gravity and feel more like space.
- Add a hover mechanic, where the player can hold down the jump button
to slowly hover downwards for the space-y gravity sections. - Add four proper levels, each for a different difficulty, from easy to absurd.
Starts with the easy level and goes to the next difficulty when the level is beaten. - Add savefile system.
When you hit a checkpoint your progress is saved to a savefile,
which is loaded when you start the game. - Add red-rectangle ("programmer art") sprites for enemies.
- Adjust animations.
- Bug fixes.
v1.1.1
Download | Release Date |
---|---|
Windows / Linux | 2019-10-30 |
- Add a player death counter, which is printed to the console at regular intervals.
- Improve performance from previous version.
- Bug fixes, level adjustments, settings tweaks.
v1.1.2
Download | Release Date |
---|---|
Windows / Linux | 2019-10-31 |
- Update background image, less distracting.
- Level, textures, settings adjustments.
v1.1.3
Download | Release Date |
---|---|
Windows / Linux | 2019-11-03 |
- Add indicators for when certain features are added (jump, low-gravity).
- Fix savefile issues.
- Add pause menu. Toggle with
P
orEscape
. - Update levels.
- Add plants tiles.
- Add speedrun timer (kinda). Time is printed to the console.
- Animation adjustments.
- Settings tweaks.
v1.2.0
Download | Release Date |
---|---|
Windows / Linux | 2019-11-06 |
- Add main menu, where you can select the difficulty you want to play.
Use keyboard or mouse to select a difficulty.
Each difficulty has its own save. - Save best level clear times for each level.
Display an in-game timer after the level has been beaten once if the timer is running.
Display the best time for each level, in-game next to the running timer. - Minor paused menu UI changes.
- Reset saved player deaths after beating a level.
(Player deaths are only printed to the console.) - The window can be resized by the user.
It's recommended to keep it at a 1:1 size ratio (square window). - Display a different "level complete" text for each level.
- Level changes.
- Tile spritesheets changes.
v1.3.0
Download | Release Date |
---|---|
Windows / Linux | 2019-11-24 |
- Add dynamic tile animations; animations, that are triggered by the player or enemies.
Used in grass/plant tiles, which play a swaying animation when the player collides with them. - Use
savefile.json
from the user's data directory.
Also saves apanic.log
file to the directory, in case a crash happens.
See the Data Directory section. - Add key bindings to start the selected difficulty with a new save for the level.
Bindings as of v1.3.0:X
,Delete
See the Controls section. - Add arrow key bindings for player movement.
- Checkpoints now have fixed respawn positions.
This means the player will always spawn in an ideal position,
instead of somewhere in the air or even spawning inside a solid tile. - Display your best time for the selected level under the button text.
- Rename level difficulties, as shown ingame.
For development the old code names are still used.
Code names to ingame names table:CODE NAME -> INGAME/DISPLAYED NAME VeryEasy -> "Easy" Easy -> "Normal" Normal -> "Advanced" Hard -> "Hard" Absurd -> "Absurd"
- Add a new
VeryEasy
level (now called "Easy" ingame).
Intended to showcase the game's features, without too much challenge. - Add difficulty descriptions to the main menu.
A description of the selected level is shown on the right side of the main menu. - Lock levels. Unlock a locked level by beating its prior difficulty.
LevelsVeryEasy
andEasy
start unlocked, the others start locked.
Add an alternative locked description for each locked level. - Level changes.
- UI changes.
- Show version number in the bottom-right corner of the main menu.
- Camera tries to scale to the window size.
- Print welcome message to stdout when the game starts.
- Add completion text. Beat the game to see it :)
- Fix multi-tile animations de-sync.
Used undefined-medium for the text at the end.
User | Role |
---|---|
dimling | Music, character sprites |
hoichael | Level design, tile/background graphics |
Noah2610 | Programming |
- Rust, programming language
- Amethyst, engine
- Deathframe, framework
- Vim, code editor
- GitHub, git repository hosting
- Gimp, tile/background graphics
- Aseprite, sprite graphics
- FL Studio, music
- Tiled, level design
- Travis-CI, Windows/Linux executable building
You need to have cargo
installed (preferably rustup
).
Run cargo run --release
to build and run the game with your default toolchain.
To run the development build with some debug stuff enabled,
run the provided bin/run
script; you'll need the rust toolchain
nightly-2019-08-13
installed for the development run script.
We use Tiled to create levels.
You'll need to install Tiled and Python.
We use a custom Tiled export script, which requires Python.
To use the custom export script, do the following:
- Enable the python plugin (
Edit -> Preferences -> Plugins
) - create a new directory under
~/.tiled
mkdir -p ~/.tiled
- copy the export script
tiled-export-script.py
to the new directory
cp tiled-export-script.py ~/.tiled/working-title-export.py
- restart Tiled
The export script should now appear in the drop-down menu when exporting a level in Tiled.
To use the level in-game, copy the exported .json
level file to
resources/levels/level.json
, and copy all *.ron
files to
resources/spritesheets/
, associated with the spritesheet .png
files used.
You can use any spritesheets, as long as the .png
and .ron
files are
in the resources/spritesheets
directory.
The file DESIGN.md describes all tile/object properties and object types
you can use in Tiled, which have meaning in the game.
Licensed under the terms of the MIT license.