GithubHelp home page GithubHelp logo

shock-lobster's Introduction

Shock Lobster

Copyright 2021 Dave VanEe

Shock Lobster is a Game Boy ROM designed to run on the original Game Boy handheld video game system using a flash cartridge. It should also play well on most emulators.

Venture forth on your quest as a lowly lobster imbued with magical powers, determined to inflict lethal damage to whatever stands in your way!

You start out with a handful of skills allowing you to avoid oncoming obstacles and deal damage, but will use the pearls you collect on your way to unlock more skills, upgrades, and items to push your high score higher and higher.

This game is an entry for the Game Boy Competition 2021.

Controls

Loadout Controls

  • D-Pad: Select item
  • A: Confirm/unlock/toggle
  • B: Back
  • Select: Show/hide details (these are very important, and also included below)
  • Start: Start game

Battle Controls

  • D-Pad: Select active button pair
  • A/B: Use the corresponding skill from the current button pair
  • Start: Pause/Unpause

Items are either usable at the beginning of battle or when defeat is near. The prompt will only be visible for 2 seconds, and can be hidden early by pressing START.

Gameplay Details

Press SELECT on the status screen to show detailed information about each skill, helping you decide how and when to best use the tools at your disposal for maximum output.

The A and B (X and Z) buttons are used to activate skills in combat, with the D-Pad used to select which pair of buttons is active. By default the selected pair will stick to the top pair when the D-Pad is released, but this can be disabled on the status screen. Skills may consume your energy, which is constantly refilling, or generate charges, which are consumed by finishers which scale with the number of charges used.

Several of the skills apply damage-over-time effects to the enemy, time-limited buffs to yourself, or have cooldowns before they can be used again, which are represented by bars on the bottom-left of the game screen.

The game speed and loadout/items used will be summarized on the game over panel, allowing you to compete with your friends to get the highest score using a specific combination of skills and upgrades!

Note: If the game is running from a flash cart without SRAM, skills/upgrades/scores will not be saved between sessions. To help with this, you can hold SELECT as you start up the game to unlock all skills/upgrades.

Skills

Jet

Release a jet of water, propelling yourself upwards and dealing 3 points of damage. The damage effect can only occur once every second.

Zap [40 energy]

Zap the enemy, dealing 40 damage. Generates 1 charge.

Shock [35 energy]

Shock the enemy for 5 damage and an additional 24 damage every 3 seconds over 9 seconds. Generates 1 charge.

Discharge [35+30 energy]

Finisher which deals damage per charge, plus 0.5 additional damage per extra point of energy (up to 30 energy).

  • 1 charge: 17 damage
  • 2 charges: 31 damage
  • 3 charges: 45 damage
  • 4 charges: 60 damage
  • 5 charges: 74 damage

Electrify [30 energy]

Finisher which deals damage over time. Damage is increased per charge:

  • 1 charge: 51 damage over 16 seconds
  • 2 charges: 94 damage over 16 seconds
  • 3 charges: 138 damage over 16 seconds
  • 4 charges: 181 damage over 16 seconds
  • 5 charges: 225 damage over 16 seconds

Empower [25 energy]

Finisher which increases damage done by 30%. Lasts longer per charge:

  • 1 charge: 14 seconds
  • 2 charges: 19 seconds
  • 3 charges: 24 seconds
  • 4 charges: 29 seconds
  • 5 charges: 34 seconds

Invigorate

Instantly regain 60 energy. 30 second cooldown.

Focus

Reduce the energy cost of all skills by 50% for 4 seconds. Invigorate cannot be used while Focus is active. 80 second cooldown.

Upgrades

Amplify

Increase the damage of Zap by 20% when Shock or Electrify are active.

Detonate

Increase the critical strike chance of Disharge by 30% when Shock or Electrify are active.

High Pressure

Jet now launches you further into the air and deals double damage.

Overcharge

Critical hits from skills which generate charges generate an additional charge.

Residual Charge

The periodic damage from your Electrify skill can now critically hit.

Expertise

Double your base critical strike chance from 30% to 60%.

Clarity

All direct damage has a chance to cause you to enter a state of clarity, which reduces the base energy cost of the next skill to zero.

Refresh

Zap will now extend the duration of an active Electrify by 2 seconds (up to 6 seconds total).

Items

Note: All items are consumable, only providing a single use for each purchase.

First Strike

Let loose an initial strike of two 100 damage blasts. Each hit may be a critical hit. [Consumable]

Blitz

Come out swinging with three 100 damage blasts. Each hit may be a critical hit. [Consumable]

Final Word

Unleash an impassioned last-ditch retort, dealing three 100 damage blasts. Each hit may be a critical hit. [Consumable]

Second Wind

Bounce back from defeat for a second chance. [Consumable]

Options

Game Speed

Adjust the game speed. Hiscores are tracked per game speed.

Music

Enable game music.

Sticky D-Pad

Enable sticky button pair selection in-game, which will snap back to the top pair when the D-pad is released.

Reset Save

Press A four times to reset the save data. Details panel must be visible to activate. WARNING No final confirmation!

Tools Used for Development

Additional Code/Assets

Music From GB Studio Community Assets:

  • "Tape It Together" and "Serious Ping Pong Matches" (cropped) by DeerTears
  • "FridgeMusic" by Tomas Danko CC BY 4.0 Patterns were reordered to improve overall effect on hardware in game context
  • "Darkstone Remix" (cropped) by Tronimal

Change Log

2021-10-01 (ROM version: 1)

  • Save new highscore/pearls when game is over, instead of when returning to the status screen, as it feels natural to power off at game over and you'd lose your progress before
  • Change corners of SELECT tiles from color 2 to color 1 (lighter) to match START tiles
  • Add DAS (delayed auto shift) to left/right cursor movement on status screen
  • Fix a single frame visual glitch at the end of the bootup logo effect

2022-03-01 (ROM Version: 2)

  • Rework how the default player state is initialized to allow the game to run on flash carts without SRAM
  • Add the option to hold SELECT when first initializing the player state to unlock all skills/upgrades, as a shortcut for players without SRAM
  • Remove redundant bank switching writes which cause problem when run from a flash cart which mimics MBC5 (EMS or cheap repros)
  • Ensure OAM is fully initialized before enabling objects for the boot logo effect

2022-03-25 (ROM Version: 3)

  • Fixed horrible bug with electrify introduced along with tail call optimizations in ROM version 2.

shock-lobster's People

Contributors

tbsp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

gbcompo21

shock-lobster's Issues

Obstacles other than the one hit may disappear when the player dies

This is likely because once the collision is detected, as long as the player has neither final item, it jumps right to GameOverWithPops, without processing the remaining obstacle entries. If the player has either final item all obstacles are properly processed and the dynamic OAM updating is performed correctly.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.