Skip to content
Pixel Boulder Game in Elm
Branch: master
Clone or download
Jordy Moos
Jordy Moos New level
Latest commit 5505093 Apr 10, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs Update the readme with pictures and stuff Dec 4, 2018
src New level Apr 10, 2019
.gitignore Upgrading to elm 19 Oct 13, 2018
LICENSE Initial commit Jul 3, 2018
package.json Updating webpack Oct 14, 2018

Elm Pixel Boulder Game

The Elm Pixel Boulder Game is a bit "out-of-hand" experiment to write a game in a pure functional language. I tried to apply some tricks out of the books like the Actor-Component system which allows you to configure the entities in assets.

For years I wanted to build a led table like this one (not mine). Which I would probably do on a raspberry pi in Python. One of the games I would like to make for it is the old school Boulder Dash. And I thought, if I could make Boulder Dash in a pure functional language like Elm. Then I could probably write about any game you can create in a 12 by 12 pixels grid in Python.

This is also the reason why its all pixel-ish (the menu and some original levels).

Original levels are in pixels

When I showed people this they where like "mhe" until I decided to add images. Suddenly it really looked like the old Boulder Dash!

The new version supports images

Play the game!

You can play the game at github pages.

Easy level editor

You can create and play your own levels in the visual editor.

Create your own levels!

And then play your own level!

Play your self created levels!

Advanced level editor

If you do not like the default configuration then you can also use the advanced editor to configure more of your game!

Use the advanced editor to tune about everything


Clone the repository.

git clone

Go into the directory.

cd elm-pixel-boulder-game

Install the dependencies.

npm install

Run the local version.

npm start

And play it in your browser at localhost:3000

Create a prod build

After installing the dependencies you can also create a production build.

npm run prod

Which will create the production version in the ./dist folder.

You can’t perform that action at this time.