Skip to content

Khaleed/bubble-trouble

Repository files navigation

Build Status

Bubble Trouble

This is an implementation of the retro game Bubble Trouble.

Instructions

  • The player must shoot the bubbles before they collide with the player to complete each level.
  • The bubbles randomly bounce around the screen in different velocities.
  • All bubbles split-up into two smaller bubbles when shot except the smallest one in the list of standard bubbles.
  • Each level comes with it's own scene and degree of difficulty.
  • You'll be able to play the game here 🎮

Approach

  • Drawing on the HTML5 Canvas, the game loop, and collision detection are all done without any libraries or frameworks.
  • This project is written in a functional style using the Elm Architecture.
  • It's not purely functional because of the limitations of JavaScript and I/O being inheritently impure.
  • Instead of deep cloning objects and arrays for immutability, Immutable JS - a persistent data structures library, is used.

Installation

Dependencies

First you need to install yarn by following instructions on the Yarn documentation or just use npm

To get dependencies

yarn install or npm install

Install Webpack globally

yarn global add webpack-devserver webpack or npm install webpack-devserver webpack -g

Server

To serve at http://localhost:3000/public using Webpack

yarn run watch or npm run watch

Build

To build when NODE_ENV environmental variable is set to production

yarn run deploy or npm run deploy

Test

To run tests using Jest

yarn run test or npm run test

Contributing

Ralph Barton

Tasks

  • Finish prototype
  • Add scores
  • Complete units tests
  • Add lives and levels
  • Add sprites and sound

License

Bubble Trouble is released under the The GPL 3.0 License.