This project is read-only.

Project Description
SPGE is an open-source graphics engine build over XNA that allows the creation of simple 2D games that target Windows and Windows Phone 7. The aim of this graphic engine is to allow for an easy creation of simple 2D games, game prototyping, and teaching of game development.

More details on the project.

As already mentioned this is a simple 2D graphics engine built over XNA that is useful for developing games for Windows and Windows Phone 7. SPGE is being actively developed by MGNSoft Ltd as a team (company webpage under construction or my XNA blog) and we are actually using the SPGE to produce our own games for the Windows Phone 7. We do eat our own dog food and we are proud of it. At the very least this guarantees that this graphics engine has seen professional use for profit gain, and at best a graphics engine that will suit your needs for game development.

SPGE aims to fill the following needs and\or has the following goals:

  • Enforce a meaningful structure in your game code and enforce good programming practices. This is achieved by the need to inherit from specific base classes, through the use of interface based design for object interaction and other.
  • Allow for quick and easy development of simple 2D games
  • Hide configuration complexity in certain key items.
  • Provide default implementations for key items\behaviours in game. These include UI items, transitions, actors, missiles, movements, Logo screens, Loading screens and many others.
  • Automatically and efficiently handle loading and unloading items and also tombstoning.
  • Be a tool for teaching C# and 2D game development by allowing a simple game to be easily created.

We do have plan to extend SPGE in the future so that eventually this will evolve to be a full toolkit for developing games for Windows and Windows Phone 7. Some of the planned upgrades include:

  • Asset Manager (in development): The asset manager is a module that will automatically handle asset loading and unloading throughout the lifetime of the application. Asset Manager is aware of "Load Groups". Load groups are groups of scenes\game screens that need to be loaded together (for example the Main Menu screens, a certain level screen with its high score and pause screen if any).
  • TextureProcessor (not started): This is a tool to assist in packaging multiple textures into a single texture file that will also produce data for use in game item instantiations. This will be achieved by creating an xml file (along the single texture file) that will hold data that can be used by the game asset loader to instantiate a game item with graphical data already set.
  • Player data management (not started): This module will allow for saving and loading player progress along with retrieval of player info.

We do accept feature requests, so please feel free to make your request in the discussion forum or you can try asking me on twitter or even commenting on my game-related blog (a series of posts about SPGE are to start within early December).

Update: 3 March 2012

This project has not been updated for quite a while now, but it is far from abandoned. Due to some personal health issues, no work could be done on this project the past one and a half months. There are still a lot of changes remaining to be commited which should be online within the next couple of weeks.

We (the team working on this project) have also started work on a more helpfull documentation, but it will take longer to upload.

Update: 11 April 2012

We have commited some major changes a few days ago (at the 6th), but we did not make this the recomended download just yet, and it is considered an unstable release. We will first complete a documentation on how to use our library in the best way. Also please note that there are still some things that need to be addressed with a lot of aspects with this graphic engine; we are nearing a major stable release, but I do not suggest that this engine is put into construction. We are very excited for the next release though!

Also, we made a few changes in our plan and there is also the thought of adding built-in sprite sheet support for our engine. This will help matters immensly when building a game, but we have some concearns about being compatible with SpriteVortex. This will eventually be an in-house decission, but feel free to comment or open a discussion.

Help this project grow

As this project is being developed internally within MGNSoft Ltd., we do not accept help in the form of source code or development assistance.

This project will always be free. However, donations are accepted as this will help us in providing more features into SPGE and on shortening the release and maintenance cycles of SPGE.

Donate to SPGE

I hope that you find development with SPGE pleasant and helpful.


Savvas Kleanthous

Managing Director of MGNSoft Ltd.

Last edited Apr 11, 2012 at 9:55 AM by skleanthous, version 16