MPE

MPE is our in-house written suite of tools used in the development process of games. MPE consist of various distinct modules each of which contains a number of useful tools.
An important thing about the MPE system is it's cross-platform compatibility making it easy to port games from one platform to another

Preprocessing tools

This suite of tools is used in the process of transforming input data to a format useful for the MPE runtime system.
Examples are:
- Building of texture-atlases
- Transforming and optimizing font information
- Creating resource files for the assets used in the game
- Converting 3d meshes

SDK

The c++ source development kit provides various kinds of functionality needed in the development process of games - including
- Geometry classes
- Texture and image classes
- 2d and 3d render systems
- Particle systems
- State/scene managers
- Math tools
- Music and sound effect playback support
- Debugging/tweaking, including tracelogging and remote parameter editing
- Input handling
- Savefile support
- Timer classes
- Asset managers
- File access
- Various helper classes

Runtime tools (tweaking)

A rather large amount of time during development is used to tweak parameters, where example of parameters is everything from leveldata to the framerate of an animation or number of particles in a particle effect. The MPE has a great solution to help the developers not wasting time here. The developer of the game can register parameters in the system and later on edit those parameters via an TCP/IP client that runs somewhere else than the target platform. Another great thing about this is that it gives non-programmers the possibility to try out different things in the game without the need of a programmer

Runtime

The runtime executes one the host-platform and is the part responsible for:
- Loading the game-assets
- Parsing user input (keystrokes, touch events, tiltsensor data) into something the game understands
- Rendering visuals
- Playing music and sound effects

The runtimes abstracted internal interfaces makes it easily portable. At present iPhone, Android, OS x and Windows versions exists using OpenGL ES/OpenGL as render API's