Category Archives: 2D
Since finishing my IK research project a few months back I’ve been slowly developing upon the original code base for experimentation purposes, and needless to say it has grown to be very large. I began thinking about usability, or more specifically re-usability in different projects. I had written code that I could find many uses for, and considering the trouble of re-writing sections every time I wanted to experiment with new methods or try a new game idea, the thought of compiling this into a nice simple library crossed my mind.
As a part of our university project we were tasked by Chunk Games, a games studio based in Glasgow, to prototype a game design pitched by Chunk themselves. With a team compromised of artists, designers, programmers and sound engineers, we had 11 weeks to spend on getting our group together, research and design the game, followed by 10 weeks of development.
The game was programmed in C# using Microsofts XNA. One of the key aims of Chunk’s pitch was to make the game playable for a variety of platforms from the get-go. Chunk were interested in the growing Windows Phone 7 platform and intended to target its next few titles within this market. As development began I was tasked with handling the initial framework, entity manager, graphics and physics of the game. Nearing the end of the game’s completion, we had created from the ground-up a demo for each the PC, Xbox 360, Zune and Windows Phone platforms.
Although the original design of the game was in 3D, due to Chunk’s emphasis on being a multi-platform title, it was switched to 2D for portability reasons. While Poppet is perhaps not the most visually appealing game, it prided itself on a puzzle engine that allowed designers and level scripters easy creation of a level using a dedicated XML parser. Our XML engine allowed for easy placement of items and level tiles, and allowed the ability to create new item types and its interaction level, dimensions, and many other gameplay properties. A texture could be assigned to a corresponding item or tile definition via a simple name-match method. Soon after the prototype was completed, Chunk were not only impressed by our prototype, but also took all working assets and resources that we created and decided to carry on development of the game themselves.
Code: Iain Everret, and myslef
Art: Andrew Tait, Graham Cottingham, Sarah Shuttleworth and Robin Ward
Audio: Louis Urbanczyk, Donald Macapherson
Design: Iain Everett
You can download and find the source code for our project here. You’ll need XNA 3.1+ and Visual Studio installed to run the project.
This demo was created during my very first experimentation with the PS2 Development Kit. The focal gameplay concept being the player having to destroy as many enemies as possible while trying to achieve a high score, with the speed and spawning rate of enemies increasing as with the score. The game was very much a success but keeping in mind the underlying concept there wasn’t much that could be done to develop the game further.
As for programming, one of the key methods I learned here was per-pixel collision detection in 2D, which was written from the ground up for this game. It was through this project where I truly grasped the idea behind a game framework, and began playing around with the concept of classes and how they would interact at a flexible level. As such, this project plays an imperative role in my learning process as a programmer.
All the source code for the project can be found here. I should note that you will need a PS2 Dev Kit to run and compile the project.