RetroBlit Game Framework (v2.3.0)

RetroBlit is a retro pixel game framework, built on top of Unity. It aims to create an ideal, low friction framework for making pixel-perfect retro games from the early 90s era. RetroBlit takes advantage of the portability, and the ease of deployment that Unity provides, but does away with the Unity Editor interface in favour of a traditional game loop, and code-only development.

Code-Only Development

RetroBlit builds on top of Unity, but it takes almost nothing from Unity's usual workflow. The IDE is discarded in favour of classic code-only development. Take a look at this simple "hello world" game:

public class MyGame : RB.IRetroBlitGame { public RB.HardwareSettings QueryHardware() { var hw = new RB.HardwareSettings(); hw.DisplaySize = new Vector2i(320, 180); return hw; } public bool Initialize() { RB.SpriteSheetSetup(0, "MyGame/MySprites", new Vector2i(16, 16)); RB.SpriteSheetSet(0); return true; } public void Update() { if (RB.ButtonPressed(RB.BTN_SYSTEM)) { Application.Quit(); } } public void Render() { RB.Clear(new Color32(50, 104, 108, 255)); RB.Print(new Vector2i(4, 4), new Color32(127, 213, 221, 255), "This game is going to be AMAZING!"); RB.DrawSprite(0, new Vector2i(4, 14)); } }

Features

Pixel perfect rendering

Primitive shape rendering, triangle, lines, rectangles, ellipses, pixels

Multi-layered tilemaps with extensive TMX file support which includes support for infinite maps, objects, and custom properties

Rendering to and from sprite sheets

Unicode text rendering, with text alignment, overflow settings, and custom pixel font support

Sprite packing support

Clipping

Custom shader support

Sound and Music APIs

Simplified Input handling

Optional wide and tall pixel support

Post processing and transition effects, such as scanlines, screen wipes, screen shake, fade, pixelate and more

Garbage Collection aware code, for smooth play without hiccups!

Supports an amazing variety of platforms, courtesy of Unity

Performance

RetroBlit is optimized to run efficiently and smoothly, and should satisfy any of your performance needs. Test the performance yourself in this RetroBlit stress test demo:

https://pixeltrollgames.itch.io/retroblit-stress



But... but the Unity Learning Curve!

RetroBlit only requires the very bare minimum knowledge of Unity to create a RetroBlit project, and you can find a guide for just that here:

http://www.pixeltrollgames.com/RetroBlit/docs/unity.html

Links

For more information and a very in-depth documentation please have a look here:

http://www.pixeltrollgames.com/RetroBlit/docs

If RetroBlit looks like the thing for you then please visit the store page on the Unity Asset Store:

https://www.assetstore.unity3d.com/#!/content/102064



Dogfooding

Lastly, I believe that with frameworks/engines dogfooding is critical. Merl is such a project:

https://pixeltrollgames.itch.io/merl

You can also check out some games that are packaged with RetroBlit, well document source code and all!

https://pixeltrollgames.itch.io/brickbust



https://pixeltrollgames.itch.io/retrodungeoneer

