Skip to content
Online platforming game with global score leaderboards. HTML5 Canvas, MongoDB / Express.js
JavaScript HTML CSS
Branch: master
Clone or download
natedonato Merge pull request #2 from natedonato/dependabot/npm_and_yarn/lodash-…

Bump lodash from 4.17.11 to 4.17.15
Latest commit 014d320 Aug 3, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
models leaderboard menu working (needs more styling) May 20, 2019
productionmanual pictures for prod manual Jun 4, 2019
routes heroku Jun 13, 2019
.gitignore preparing for heroku deploy May 20, 2019 Update Jun 4, 2019
arrows.png styling controls page for easier use Jun 27, 2019
guy.js makes player bigger, adds more variation to rock speed & rock generat… May 19, 2019
index.html styling controls page for easier use Jun 27, 2019
index.js this is a bad fix Jun 13, 2019
mobile.html fixes mobile scaling? May 22, 2019
package-lock.json Bump lodash from 4.17.11 to 4.17.15 Aug 3, 2019
package.json adds backend for score posting and getting top 10 May 20, 2019
rock.js Adds Sound FX, slightly increases water speed if you get too far ahea… May 18, 2019
server.js adds backend for score posting and getting top 10 May 20, 2019
style.css Update style.css Jun 9, 2019



Landslide is an online platforming / climbing game based on the flash game Avalance (previously hosted on, now defunct). It is built from scratch in JavaScript and HTML, with an Express.js server and MongoDB backend to host player high scores in an online leaderboard.

Dynamic Gameplay

Landslide features randomly generated content for endless replayability, with blocks dropping from unpredicable positions with randomized size and falling speeds to keep players on the edge. Vector based physics calculations create satisfying gravity and friction effects, making gameplay and movement smooth and satisfying. Collision detection accurately calculates which edges of a block players touch, allowing players to jump off the sides of falling blocks or stand on top of static blocks while avoiding being crushed by falling blocks from above. Water slowly rises behind the player, forcing their movement upwards as the tower height stacks higher and higher.

High Score Leaderboard

Landslide employs a streamlined backend server to persist high scores. Scores are posted to external cloud storage using MongoDB Atlas to hold the collections in a NoSQL database. Any player may post any score, but only the top 10 scores are displayed on the main leaderboard, incentivizing players to keep playing and challenging each other to get the highest possible score.

Mobile Design

Landslide reroutes mobile users to /mobile, a page hosting the mobile opimized version of the game. The mobile page features responsive CSS styling to make sure the game takes up the maximum available space on the device while maintaining a playable aspect ratio and not overflowing the smaller screen. Custom mobile controls are implemented using HTML Web Api Touch events to allow users to play the game without use of a keyboard / mouse.

You can’t perform that action at this time.