I’ve been spending a few days experimenting with Sifteo cubes. One hand Sifteo has extreme limitations but on the other it has capabilities that no other system does which makes it a fun platform to develop for. There are not many games yet available for the system but in my opinion what they really need is something like Wii Sports for Sifteo. Using Wii Sports Tennis as inspiration I developed an action oriented multiplayer game that leverages the unique capabilities of Sifteo, tentatively called Peong.
Peong is a twist on the classic Pong formula where instead of controlling paddles each player has their own Sifteo cube. Play begins with one player serving by tilting their cube and rolling the ball into the center cube. Then the opposing player must catch the ball and return it to the center by rotating and tilting their cube without it bouncing more then once. If the ball bounces more then once in any cube then the opposing player wins a point and play restarts. To add a little extra depth to gameplay if a player returns the ball without it bouncing then it powers up and gains speed, making it more difficult to return.
Something thing I wanted to experiment with was giving respect to the area between the cubes by treating it as part of the valid play space. So when the ball rolls off one cube it doesn’t immediately appear on the other but actually rolls through the hidden space between the cubes just as if it were visible. This is crucial to make the ball feel like a physical object that is anchored in reality. It also allows players to more accurately predict the ball’s trajectory while adding some difficulty because it is hidden from sight during that time.
Following a fast moving ball around multiple screens can be difficult especially when it’s not visible at all during the transition between cubes. I wanted to ameliorate this by adding a visible trail to help players understand the ball’s trajectory, however a decent trail is not easy to create on Sifteo. I first tried a sprite based trail, and that looked somewhat sparse with only 3 sprites available other then the player. Then I tried using the background grid as a cellular automaton to create kind of a smoke effect. It’s a bit blocky but it looks cool and solves the problem. Also it’s somewhat computationally expensive but after a bit of optimization it seems to be running at nearly full frame rate though it has yet to be tested on physical hardware.
For displaying the score I didn’t want to confuse players by showing roman numeral text which would imply that there was a correct orientation for the cubes. The gameplay doesn’t care about relative cube orientation, so the numbers could be upside down or sideways. Dice numbers seemed like a neat solution since dice are designed to be read easily from any direction. The smoke effect system is used to show the dice numbers to help create a consistent experience.
This prototype is about as far as I can go without having any actual Sifteo cubes to test it on. I would really like to see how players interact with it in a multiplayer setting, I’m sure it could use a fair bit of tweaking. I’m also thinking about the many interesting ways to expand on the formula. More cubes could be used to add additional players or build up a larger more interesting center area. Currently only 1 sprite is used so there could be some other stuff moving around to avoid or get. The background or foreground grid could incorporate more gameplay elements like obstacles to avoid, blocks to break, or items to pickup. The audio right now is straight from SFXR so it could use some polish and possibly even an ambient music sound track.
If anyone has a set of Sifteo cubes and gets a chance to check this out please leave a note here about how your experience went. This game is a prototype in an early phase of development so any feedback can help, thanks!
How To Play
- Players sit facing each other holding either the blue or orange Sifteo cube. There is a neutral grey cube in the center.
- One player serves by first tapping their cube to activate the ball, then tilting it to launch the ball into the center cube.
- When a player sends the ball into the center cube it becomes owned by the opponent.
- The opponent must then catch the ball into their own cube and return it to the center by tilting and rotating their cube.
- Play continues alternating in this fashion until the ball bounces more then once inside a cube. When this happens the opposing wins a point and starts the next serve.
- Player can also do a power shot by returning the ball without it bouncing. This makes it faster and more difficult to return.
- The controlling player may also rotate or tilt the center cube while the ball is inside it.