Skip to content

Noah2610/LD44-Stabman

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stabman

Post-jam version of our Ludum Dare 44 game jam entry.

Screenshots

Overworld Screenshot Graveyard Screenshot Graveyard Inside Screenshot Bonus A Screenshot

Level One Preview Video

Table of Contents

Description

The theme for Ludum Dare 44 was...

Your life is currency

We went for a simple, generic approach:
You pay with your health to buy items.

The game is a 2D action-platformer.
Your goal is simply to get to the end of each level.

Throughout the levels you will find items which you can buy using your health as currency.
See the items section for a list of all available items.

You regain health by defeating enemies.

Each level acts as a checkpoint; when you die, you restart at the beginning of the level.
The game will also automatically save your progress to a savefile, each time you beat a level or die.

When you beat the game, you may choose to start from the beginning again, keeping all your items ("NewGame+"-style).
Timers for the current level and for the whole game will also appear
once you start your second play-through on the same savefile.

Most of what's written in this README is directed at the post-jam version.

Post-Jam Version

After the jam ended at the end of April, we continued working on the game
with the goal to release a finished product (like always).
This time, we are proud to say, that we actually finished this game!

Post-Jam Version Downloads

Post-jam version downloads are available on itch.io.

Jam Version

To see the jam version, visit out our Ludum Dare page, or
check out the LD44-release tag.

As always with our jam games, we never properly finish.
This jam's game was especially unfinished.
If you intend to check out our game, we recommend trying our post-jam version.

Jam Version Downloads

Jam-version binaries are available via Google Drive:

Platform Download
Windows Google Drive
Linux Google Drive

Running the Game

After downloading the appropriate version for your platform,
simply unzip the zip-archive and navigate into the unzipped directory.

Running on Windows

Double-clicking on Stabman.exe should start the game!

Running on Linux

To run it from the terminal, simply execute the ./Stabman binary.
To run it from within your GUI file manager, simply double-click on Start-Stabman.

Controls

The exact controls are specified in the file resources/config/bindings.ron.
You can change bindings in this file however you want; the syntax should be self-explanatory enough.
But careful: if you make a syntax error, the game will crash.
See the generated file logs/panic.log for error messages, if it crashes.

When playing the game casually for the first time,
we recommend using a controller (if available), or otherwise
using the keyboard keys marked in bold text,
as those are probably the most intuitive.
These are broad suggestions, feel free to use whatever keys you are comfortable with :)
(If you're trying to beat the bonus levels, you may want to look at the other keyboard control options; controller is not recommended for bonus levels)

Note:
For the controller buttons we are using the Xbox naming scheme.
So the A button would be the X button on a DualShock controller, etc.

Action Keyboard Controller Notes
Move LEFT A DPadLeft, JoyStickLeft
Move RIGHT D DPadRight, JoyStickRight
Jump Space, K, Up A Hold down the jump button for a slower fall (lower gravity).
Attack LEFT Left, H X
Attack RIGHT Right, L B
Buy item E Y
Dash Shift, J, Down ShoulderButtons (left or right) Need to hold down movement keys + press dash key; diagonal dashes work; can only dash in-air
Toggle pause P Start
Start game from main menu Enter, Space A Starts the normal campaign, not bonus.
Continue game from pause menu Enter, Space A
Quit game from main menu Escape, Q, Backspace B
Quit to main menu from pause menu Escape, Q, Backspace B

Campaign Types

There are three campaigns you can play:

Normal Campaign

The standard, recommended game.
Includes 10 levels total:

  • 3 in the overworld theme, and
  • 7 in the graveyard theme.

Bonus Campaigns

There are two bonus campaigns: Bonus A and Bonus B.

These are collections of super hard levels, with the main focus on hardcore platforming.
Each of the bonus campaigns includes 3 levels.

These campaign types are primarily just meant for us to play.
But if you're enjoying the game, and are feeling confident enough,
feel free to give these a try! >:D

Items

Item Icons
Item descriptions from left-to-right:

  • Extra Jump Stackable
    Each pickup grants an extra jump in mid-air.
    When in mid-air, the player can jump additional times.
    Extra jumps are recharged when standing or sliding on a solid wall.
  • Wall Jump Non-stackable
    Grants the ability to jump off walls.
    When sliding on a wall, press the jump button to jump off of the wall.
  • (unused)
  • Bullet Deflect Stackable
    Grants the ability to deflect enemy bullets by attacking them.
    Deflected bullets deal one unit of damage.
    Each pickup increases the deflected bullet's damage by one unit.
  • Damage Up Stackable
    Increases attacking damage by one unit.
  • Speed Up Stackable
    Increases the player's speed.
  • Jump Height Up Stackable
    Increases the maximum height of the player's jump.
  • Bullet Shoot Stackable
    Grants the ability to shoot bullets when attacking.
    Bullets deal one unit of damage.
    Each pickup increases the bullet's damage by one unit.
    Don't worry about the weird name, that's what my dumb brain came-up with during the jam, and we stuck with it :)
  • Dash Stackable
    Each pickup grants the player to use a dash in mid-air.
    Dashes can only be done in mid-air.
    Dashes are recharged when standing or sliding on a solid wall.
    See the controls section for the key to trigger the dash.
  • Knockback Up Stackable
    When attacking an enemy, knockback punches the enemy backwards.
    Each pickup adds additional knockback strength.

Enemy Types

Normal Enemy

Normal Enemy
A normal, tank-like enemy.
Has the most amount of health out of all enemy types;
walks slowly and hits hard.

Charger Enemy

Charger Enemy
A small enemy, which will start rolling at the player,
when they move into its trigger range.
Once rolling, this enemy will only stop moving upon hitting a wall.

Flying Enemy

Charger Enemy
This enemy is not affected by gravity.
It simply tries to follows the player when they are within trigger distance.

Turret Enemy

Charger Enemy
This enemy cannot be damaged or killed.
It shoots bullets from its mouth in regular intervals.
Its bullets can be deflected if the player has picked up the Bullet Deflect item.

Changing the window resolution

Included with the game's binary, is a file called resolution.txt.
You can specify a custom window resolution in this file.
Simply write your resolution in the format ...

WIDTH x HEIGHT

... where WIDTH and HEIGHT are positive integer numbers.
Any lines starting with # are seen as comments and are ignored.
See the resolution.txt file itself for more information and some preset resolutions.


Development

Build Status

Compiling from Source

With Stable Rust

If you wish to compile the game directly from its source,
then you will need to have rust installed (preferably rustup).
This game is compiled with Rust version 1.34.2 (other versions may cause issues).
After cloning the repository and navigating into its directory,
compile like so:

cargo +stable-1.34.2 run --release

(omit the +stable-1.34.2 part if you do not have rustup installed.)
This will download all dependencies, compile everything, and run the game when it's done.
This may take a while... You can also omit the --release flag for a slightly increased speed at compile-time,
at the cost of a slightly decreased speed at runtime (FPS may drop below 60).

With Nightly Rust

If you want to run the same setup I ran during development,
you may compile the game using the provided bin/run script.
You will need to have rustup and the nightly-2019-03-01 toolchain installed for this.
The benefits for doing this are primarily for development purposes.

Available Features

Compiling the game from source, gives you access to some additional features:

  • controller
    Includes amethyst's sdl_controller feature, to enable controller support.
    Note: For this feature to work on Windows machines, the SDL2.dll file
    must be included with the binary. This repository redistributes this DLL.
    It seems to work on Linux without dependencies (?) (tested on a blank VM of Puppy-Linux).
    Enabled for pre-compiled binaries: YES
  • debug
    Generate a backtrace and write it to logs/panic.log, when a panic occurs.
    Enabled for pre-compiled binaries: YES (just in case)
  • encrypt_savefile
    Encrypts the savefile using base64.
    I originally planned to encrypt the savefiles for the final binaries,
    but in the end decided against this, so players would have the option
    to mess around with their savefiles.
    (not that it would've been difficult to decrypt the base64-encoded variants)
    So I kept this feature behind a feature-gate. (I'm really liking meta-rust :))
    Enabled for pre-compiled binaries: NO
  • nightly
    Can only be used with a nightly rust toolchain.
    Improves some of amethyt's error messages.
    Enabled for pre-compiled binaries: NO

Tools Used


Licensing

This project, including all of its code and assets (such as images, audio, level files),
excluding fonts, are distributed under the terms of the MIT License.

Fonts

The fonts (found under resources/fonts) remain unchanged,
and are licensed individually by their authors.

Undefined Medium

Ruji's Handwriting

SDL2

This project uses and redistributes an unchanged copy of SDL2,
for controller support with amethyst's sdl_controller feature.
SDL2.dll is distributed under the zlib license.