Project Categories

Project Setting Academic
Team Size 1
Role(s) Creator / Developer
Languages HTML CSS JavaScript
Software/Tools Used Brackets (code), Inkscape (graphics), LMMS (music/sound effects)
Status Released

About

Spleeper is an academic project demonstrating DOM manipulation via JavaScript. Spleeper combines the main gameplay of minesweeper (flagging mines based off of numerical neighbor indicators) and the added quick movement and 'falling' from the Spleef minigame from Minecraft. The game is fully functional on desktop (mobile/portrait-based windows not supported), and offers a couple ways to play (keyboard + mouse or keyboard-only). Many classmates were interested in the game both during a demonstration and feedback day as well as the final presentation.

Note: there is a bug of unknown cause that makes rendering the game area odd in Chrome browsers on high resolution (2K+) monitors. This is either a Chrome issue or a graphical issue out of Spleeper's control.

I am debating on whether or not I want to turn this into a finished game or not. There are multiple features I wanted to add but couldn't due to time constraints and there was plenty of expressed interest in the project. If I did, it would probably be in Unity. For now, it will stay as it is.

My Work

Interface

  • Three displays (instructions menu, play area + game info, and death menu) representing the three main game states
  • Retro-cyberpunk theme fitting the game's story
  • Animations added to give a more lively feedback

Assets

  • Custom sound effects for movement, death/falling, tile revealing, level up, tile flagging, etc.
  • Custom music for the instructions menu, main game, and death menu
  • Custom SVG player graphic
  • Symbolic instructions menu that is easy to read

Code

  • Translated Rosetta Code's implementation of Minesweeper in C# and based recursive revealing algorithm from it
  • 2D vertical/horizontal player movement based off of keyboard input
  • Flagging (intended for tiles that the player believes are access points; if not, corrupts the tile) / Revealing (acts in very similar manner to Minesweeper, with added twist that revealing an access point corrupts it and reduces the number of access points in the level) capabilities using R/F (respectively) keys or right/left (respectively) mouse-clicking
  • Game loop that allows for a time limit (entire level turns into corrupted tiles after expiration) as well as a timer for tiles that are corrupted (in state of corrupting - player has chance to get off of it) or access points (must wait until this timer expires to be able to use it to advance a level)
  • Difficulty that increases as the player levels up: decreases overall time limit, decreases corrupt/access timer, decreases number of access tiles initially available, and increases number of pre-corrupted tiles in tile generation. Each of these scales independently with different %-chances for each of them. All four have limits in place (i.e. difficulty reaches a highest-point).
  • Local storage keeps track of highest achieved score

Samples

These are some screenshots and code snippets that come from the game.

Screenshots

Code

Places

Game Page Spleeper @ people.rit.edu
Page Source Spleeper page source