2D Platformer with custom level goals.
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
editor Work on slope blocks for farm roof Nov 26, 2018
src Finish Dark Sahara level Feb 2, 2019
.gitignore Add music & make MapLayerConstellation & rain BG much more efficient Nov 20, 2017
.~lock.lvs.ods# Finish Dark Sahara level Feb 2, 2019
LICENSE.md updated license Feb 16, 2017
README.md Update readme Jan 27, 2019
cachegrind.out.25392 Simplify Rope Graphics Aug 11, 2018
callgrind.out.22884 Simplify Rope Graphics Aug 11, 2018
lvs.ods Finish Dark Sahara level Feb 2, 2019
makefile Create Options & Resolution Options States Jul 29, 2018


Boskeopolis Land

¿What Is this Game?

A simple platformer based on the short-story series, (Boskeopolis Stories)[https://boskeopolis-stories.com/].

You play as thief Autumn Springer in her rhymin' & stealin' ventures round Boskeopolis, collecting gems, diamonds, & accomplishing each level's goal to continue on to the next level. Most levels just require you to get the red-&-white-striped delectable "Keycane" @ the end, while others have zanier goals, like collecting a certain # o' PTS ( Boskeopoleon currency ) from gems, collecting a key & reaching a treasure chest, or surviving for a certain amount o' time. These goals are shouted @ you @ the start o' every level like a WarioWare minigame.

'Bout the Development o' this Game

For some reason, I chose to make this game have a monochrome palette system. Each "GameState" has a palette which is used to paint all the textures by indexed color.

Important note 'bout image resources: all images must use the same 7-color indexed palette. Non-indexed graphics will throw an exception when loaded, as it tries to apply the palette to indexed colors & can't 'cause they're not there.

Level, map, palette, & tileset data is held in JSON files in the resources folder. Maps can have any filename & are linked from level files, but level files & block files must have a 3-digit # for a name & are loaded automatically. To add a level, just create a valid JSON file in the levels folder with a 3-digit # below the current limit specified in the Levels class ( now 64 ).

How to Use


  • SDL2 with SDL_image
  • C++ 11 or higher
  • RapidJSON with OStreamWrapper

As mentioned earlier, if you want to add images, you have to use a certain 7-color palette for all files. A GIMP palette file is provided in the resources folder. Just import this into GIMP & turn any image you want to use to indexed ( Image -> Mode -> Indexed ) & select "Use Custom Palette" & the imported palette. Make sure "Remove unused colors from colormap" us unchecked.

Editing or creating new map files requires a recent version o' Tiled ( must allow for mo' custom property values than just string ). Maps should be saved as uncompressed JSON files.


  • J. J. W. Mezun


This project is licensed under the GNU General Public License v3.0 - see the LICENSE.md file for details.



All music is royalty-free music by Kevin MacLeod @ incompetech.com, all o' which is under the Creative Commons License 3.0, Attribution - http://creativecommons.org/licenses/by/3.0/.

Maybe temporary, maybe not.

  • Title: Shaving Mirror
  • Overworld: Breakdown
  • Level Select: Too Cool
  • Success: Happy Happy Game Show
  • Failure: Lobby Time
  • City1, City2, City4: District Four
  • City3: Nouvelle Noel
  • Woods1, Woods2: Breakdown
  • Woods3: Nightmare Machine
  • Mines1, Mines3, Mines4: Secrets of the Schoolyard
  • Desert1: Wepa
  • Desert2: Mischief Maker, Clash Defiant
  • Desert3: DD Groove
  • Desert4: The Show Must Be Go
  • Mountain1 & Mountain2: Groundwork
  • Sky1, Sky2, Sky3: Nowhere Land
  • Sky4: Dreamer
  • Space1: Disco Lounge
  • Ice1 & Ice2: Crinoline Dreams
  • Ice3 & Ice4: Chillin Hard
  • Pirate1, Pirate3: Salty Ditty
  • Pirate2: Rocket Power
  • Sewers1, Sewers2, Sewers3: RetroFuture Nasty
  • Sewers4: Raw
  • Factory1: Robozo
  • Factory3: Noise Attack
  • Factory4: Furious Freak
  • Palace1: Obliteration
  • Palace3: Kool Kats
  • Palace4: Take the Lead
  • Mart: Got Funk
  • Maze: Reformat

The 1 exception is "Play in the Background"'s music, which a rendition o' Mozart's "Rondo alla turca" from Musopen @ https://musopen.org/music/2079/wolfgang-amadeus-mozart/rondo-alla-turca-from-sonata-kv-331/.