SpongeCake was written during my second semester studying Computer Games Programming at the University of Derby in order to support the development of a number of prototypes for the Games Design module.It is a 2D XNA framework which can be added to a solution as a project or used as a dll.
Total Collapse, Pocket Doodle Attack, and Battle Pirates all rely on SpongeCake to handle their layers, entities, resources, animations and input. SpongeCake uses a system of layers and blocks described by Sean James in his Innovation Engine tutorials. This is a very powerful system whereby a layer placed above others is capable of blocking input, update, and even draw loops from reaching those beneath it, yet those layers too can override this block. It may sound convoluted but it is a very effective way of handling menus, pauses, and different game states in a modular way. SpongeCake’s Entity class also provides a number of useful collision detection methods including rotated rectangle, and per-pixel collision.
I do plan on using this framework again at some point in the future, but it is in need of a re-code to improve it’s performance, functionality, and maintainability, utilising everything I learned from coding it the first time. It also needs further commenting and documentation, since it was in fact a prototype developed to aid in the development of prototypes, and not intended for use by others.
Although it works almost perfectly and has been a huge help in developing a numebr of games, the s source is not heavily commented, and as such it may be difficult to interperet. Still, feel free to check it out – I’ve provided a couple of test projects with the framework project to point you in the right direction.