Lypson Game Engine
A game engine is the core software component of a computer or video game or other interactive application with real-time graphics. It provides the underlying technologies, simplifies development, and often enables the game to run on multiple platforms such as game consoles and desktop operating systems such as Linux, Mac OS X, and Microsoft Windows. The core functionality typically provided by a game engine includes a rendering engine ("renderer") for 2D or 3D graphics, a physics engine or collision detection, sound, scripting, animation, artificial intelligence, networking, and a scene graph.
An application programming interface (API) is a source code interface used to communicate with the hardware of a computer system, like the Gameboy Advance. An API support requests for services to be made of it by a computer program, such as a game.
The Lypson Game Engine is an API used for the MMNH game. The Realms of Alternity engineering team has been developing this game engine since the beginning of 2004.
Game Engine Features
Coming soon...
Necessary Game Engine Implementations
The following issues are still necessary for us to develop and implement, for either the Game Engine or the New Horizon game. Implementing all these things will most likely take us more then just one demo to complete, so please bear this in mind when you play our demo and discover that some things are still a little out of place.
High priority
Low priority
Update the demo with more of our music Requires some programming
Finish the graphics for the brief blurb cinema Requires cinema art creation
Add the large aircraft to the first part of the Elysium stage Requires sprite tile management and some programming
Add dead soldiers throughout Elysium Requires sprite palette- and sprite tile management and some programming
Add soldiers inside the Command Center Requires sprite palette- and sprite tile management and some programming
Add remaining enemies: the mettool, pinwheel, chopper and turret Requires sprite palette- and sprite tile management and some programming
Add explosion animations to enemies when they die Requires some programming
Add Alouette's cyber-cat Requires some programming
Add missing street lights to the fourth part of Elysium Requires some programming
Make the background scrolling more smooth Requires some programming
Fix the bug when Mega Man X climbs ladders Requires some programming
Fix the small palette bug when X teleports Requires some programming
More accurate positioning of bullets Requires some programming
More responsive wallkicking Requires some programming
Add a teleport wall in front of Mega Man X by the teleporter Requires some programming
Make Alouette teleport Requires Game Engine implementation
Make it so that bullets are in front of certain objects Requires Game Engine implementation
Add a second (charged) animation for when Mega Man X is shooting Requires Game Engine implementation
Add dash animation Requires Game Engine implementation
Make Alouette and Mega Man X talk to each other Requires mugshots of Mega Man X and Alouette and some programming
Add mugshots of Mega Man X and Alouette
Add mugshots of Mega Man X and Alouette when they talk to each other. However, this will require that more efficient sprite palette- and sprite tile management has been performed. Requires sprite palette- and sprite tile management
More efficient sprite palette management
The Gameboy Advance only allows you to use 128 sprite objects at the same time in a stage, (but note that if a certain sprite is divided into four 32x32 pixel tiles then the whole sprite counts as four objects). Not only that, all these 128 sprite objects must share either one 256-colour palette or sixteen 16-colour palettes. The laboratory that we have in our demo doesn't use that many sprite objects and has still many to spare. However, in order to make the implementation easier we didn't use efficient palette management and used up all sixteen 16-colour palettes. This must be taken care of in order to add more sprite objects to the laboratory. Requires sprite palette management
More efficient sprite tile management
Our sprites are currently used in a very simple manner. For example, each frame in the Mega Man X sprite sheet is used as a large 64x64 pixel sprite. That is very inefficient since each frame contains a lot of black space that doesn't contain any information, and that space takes up a lot of memory in the Tile Map. We need to cut each sprite, including the whole Mega Man sprite sheet, into much smaller tiles (8x8, 16x16 and 32x32 pixels) so that we don't waste precious memory space that could be used for other sprites. The reason why we didn't use the memory space more efficiently was because it took much less time to use whole 64x64 tile blocks. If we manage our sprite tiles more efficiently then we should be able to free up approximately 50% of the tile map for each stage and reuse it for other enemies. Requires sprite tile management
AI-algorithm for Alouette
We have to implement a proper AI-algorithm for Alouette, so that she may follow X from the laboratory to the command center and not just be standing at different places here and there. The AI-algorithm must enable Alouette to follow X's step, avoid enemy bullets to some degree and to teleport closer to X when he happens to get too far away from her. She must also be smart enough not to fall down holes and die. Requires Game Engine implementation
Implementing solid movable platforms
All things that Mega Man cannot fall or walk through (such as the ground and walls) are defined as solid using a collision map. Collision maps cannot be animated though, or moved during the game. The Elysium stage has hovering platforms that Mega Man can stand on. These platforms should move up and down, and since the collision map cannot be animated or moved we cannot do this right now. The Game Engine doesn't have a function for solid objects that can move. The Command Center is supposed to have an elevator, which we have a sprite for, that should also be defined as a solid object that can move. Both the hovering platform and the elevator must be implemented properly. Requires Game Engine implementation
Develop a Sound Mixer for the GBA
We have not yet developed a sound mixer for our Game Engine. Because of this, we can only play one sound at the time, meaning that sound effects cannot be played at the same time as stage music is played. Requires Game Engine implementation
Develop a MOD player for the GBA
The reason why our demo is so large (in MB) is because we have not yet developed a suitable audio compression method for our Game Engine. The demo is actually not that large without music. Once we have developed a MOD player the game should become quite small again. Requires Game Engine implementation

|