Boxed In is a puzzle game that challenges the player's spatial awareness. The player must guide their character out of a maze of boxes, but in order to do so they must first devise a solution that won't leave them trapped.
The project started off as a personal challenge to write a complete game in a week. While I was successful in developing something playable in the week, I decided there was scope to continue work on the game and turn it into something more.
Written initially to target the XNA framework, when it was announced that XNA would not be supported on the Windows 8 store, I decided to port the game to MonoGame to allow maximum scope for releasing multiple platforms.
The game is currently building and running on Windows desktop, Windows Phone 7/8, and Win RT.
The game takes advantage of the touchscreen features available on the Intel Ultrabook to provide an intuitive control mechanism for the player.
MonoGame is largely a drop in replacement for the XNA framework api, but there are currently a few minor features missing that required some rework. Specifically I had to re-write my 3D content pipeline to target CPU rendering of the 3D animations used for the player as MonoGame doesn't currently support GPU rendering of skeletal animation.
The use of MonoGame does give the scope for Android and iOS ports in the future with the use of the MonoDroid and MonoTouch projects.
- Multiple layers of blocks
- Linked blocks
- Buttons (activated by specific colour blocks)
- Gates (Opened when the associated button is pressed.
It became apparent very quickly that I would need a level editor to allow me to design and visual the levels with a quick edit-view cycle.
Thanks to some help from a blog post by Nick Gravelyn I created an XNA rendered panel within a regular WPF application to achieve this. Refactoring the level loading and rendering code into a separate assembly I was able to reuse around 90% of the code required for the level editor from the code already written for the game.
What's Left To Do
- More levels. I currently have 20 levels, but I'm planning to have closer to 50 for the final release.
- More tutorial screens. I have complete some basic movement and objective tutorial screens, but I plan to do some more to introduce some of the more complex puzzle features link the linked blocks and colour activated buttons.
- Final artwork for gates - Although gates work functionally, I still need to complete the visual artwork to make them stand out as a distinct level feature.
- Scaling problems on WinRT - There are some minor bugs with the scaling when using the various different sidebar resolutions on the WinRT platform.
You can download an early alpha test of the game from my website, or here from codeproject. (Note that the alpha download doesn't include many of the newer features mentioned here, but it gives an idea of the concept)
I discovered programming aged 11 with my school's BBC micro, and a book titled "Write your own space action games". (Their ideas of "space action" games were very different to mine. My ideas didn't include a bunch of * signs controlled via a text based menu)
I got hooked on VB for a while (mainly because I discovered I could replace the * signs with .bmp files) until someone pointed out the wonderful world of objects and Java. I also went thought a c++ phase.
I've now been a professional developer for 5 years.
My current language of choice is C#. I spend my free time playing with XNA and microcontrollers.