Squaresville is an open world puzzle platformer for Sifteo cubes that I developed for the EGP Sifteo competition. This was a major challenge both optimizing it to run smoothly and also make the design fun to play under extreme limitations. I am very happy with the results, it may be the best game I’ve ever made actually. I hope that players will enjoy it because it’s somewhat confusing but I have added many new features to help with that.
My first goal with this project was to prove the technical feasibility of a game of this scale running on Sifteo. I’ll admit I was skeptical at first, especially after seeing how slow my original prototype ran on the actual hardware. Just playing music can take about a third of the frame time! I ended up deciding to run at a fixed 20 fps which is less then ideal but feels plenty smooth to me. The engine currently supports a 24×24 map which is huge, the demo uses only a tiny fraction of that. The engine has a dynamic game object allocation system with virtual calls to update and draw so it’s easy to create custom objects and enemy types. There are also many tricks being done to fit everything into only 32K of ram. This engine could also be modified to support multiplayer, top down, more cubes, different game play mechanics etc.
The map screen was created to be a lightweight but useful hud to complement the main game screens. It pulls triple duty by also showing the coins and item pick ups as well as displaying up to 7 lines of text message which is slightly less then a tweet. What I like to do is take some artist eraser and mold it into a stand to angle the map toward my view like a mini computer monitor. Players can also play without a map when they need more screens to plan things out.
I tried to make the gameplay as simple as possible because it can get confusing really quickly. The controls are a simple tilt left and right to move and touch to jump. I experimented with a jump gesture but in the end I found it just wasn’t reliable enough and something about touching the screen seems to make it more fun. It was sometimes difficult to tell where your player would come out on another screen, or more specifically why they were being blocked because the cubes are so small it is hard to line them up perfectly. I tried to solve this by showing an arrow on neighboring cubes that point towards the player and it seems to help greatly. At the beginning of the demo there’s really only one way to go before it opens up a little, but it’s a mostly linear path the whole way through. I tried really hard to make sure players can’t get stuck but it probably is possible, so I implemented a shake to restart feature as well as the standard base button menu.
There are many ways to extend this game concept, I already have a rough list of objects, abilities, and enemy’s I can introduce over time to keep things interesting. I want to have towns with NPC’s you can talk to and interact with. I have a vague story in mind but I want to keep it very surreal. The map is so large that there will need to be some warp portals to help the player get around quickly. Currently when you touch the map screen it shows the last message but I may get rid of that and instead make touch switch to another screen where you can see more info about your quest, options, and maybe even a simple inventory selection. Designing the level will be a challenge but my editor is easy to work with and has some handy features. Filling up the 24×24 map seems daunting but I have done similar things before, Faster Blaster is a 32×32 map with much more detail though it will certainly be tricky designing puzzles for this game.
The music was created by Rene Wiersma specifically for this demo. Sifteo Cubes can’t play normal MP3s so the music must be basically programmed in a special format called xm for “extended module”. Not only does it sound great and just the right atmosphere but it’s only 5 channels and 134K! He also recently wrote an extremely informative article about how to create xm music.
- Squaresville – Download the latest version here, everything is included for Windows or Sifteo play.