Arkade: Memories of Canvas
A microgame collection made with C#
Arkade: Memories of Canvas was a microgame collection made on a rudimentary engine based in C#. It was created in 4 weeks with a group of 4 developers, with each developer creating 1 microgame. This was an early project, so please excuse the lack of neatness.
In this project I created a streamlined environment to create and handle microgames in an engine that did little more for us than rendering. The other developers that built their microgames using my systems found that it made collisions and rendering a lot easier to work with.
Abstract microgames and actors
I created a MicroGame class that would handle shared functionality between the microgames, such as rendering the arcade cabinet, a timer, handling the gamestate, checking collissions between actors, and disposing of all actors when the game is closed to prevent data leaks.
The objects within the game are Actors, an abstract class that has a hitbox, a bitmap strip that's easy to animate, and built in lerp and distance functions. The main reason to handle all game objects as an actor was to subvert rendering layer issues, and handle collision easier. It also made it a lot less likely for memory leaks to happen because of undisposed bitmaps.
Mario Autoscroller
After making the whole microgame system, I still had to make my own Mario microgame, with custom collision made for it so Mario is able to bounce on enemies, and a special kind of actor called MarioBackgroundItem to be able to cleanly render the clouds and hills in the background. for the floor, I rendered it without making it actors, as that made it easier to line up every brick together cleanly. The player controller is a simple actor that simulates gravity when it jumps, and animates through its spritesheet depending on what state the player is in.