Gate is a game development library tailored to 2D pixel-art games, written in Rust.

When programming a game, it is good practice to make a layer, specific to one's needs, that separates the game logic from the resource management, rendering, audio, and other interfacing that is needed for a game. "Gate" is the layer that I created for this purpose with my personal game development endeavors, and I decided to make it public. It should be noted that this library was developed for my own personal needs, and is not meant to be a general purpose game development library. This manifests itself mostly with the renderer, which is made specifically for 2D pixel art. If your game has similar needs or you just want to get something going quickly, then this library is for you. If you have slightly different needs, then you can still use this code as a reference point.

Games written with Gate are able to be played on a web browser, thanks to its WebAssembly support. For instance, the games on this website were written with this library. When running games without a web browser, Gate uses SDL2 instead.


Collider is an experimental Rust library for continuous 2D collision detection in games.

Most game engines follow the approach of periodically updating the positions of all shapes and checking for collisions at a frozen snapshot in time. Continuous collision detection, on the other hand, means that the time of collision is determined very precisely, and the user is not restricted to a fixed time-stepping method. There are currently two kinds of shapes supported by Collider: circles and rectangles. The user specifies the positions and velocities of these shapes, which they can update at any time, and Collider will solve for the precise times of collision and separation.


Thanks for visiting my website! My name is Matthew Michelotti, and I am a professional software engineer and a hobbyist game developer. Luduminis is my site where I will post content related to gamedev, such as games I have created that are playable online, open-source software I have written, and blog posts on coding, etc. Donations to support this work are appreciated (click the Donate button at the top of this page).