RetroBlit Game Framework

RetroBlit (formerly FES) 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(FES.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
  • Text rendering, with text alignment, overflow settings, and custom pixel font 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 a smaller game that is packaged with RetroBlit, well document source code and all!

https://pixeltrollgames.itch.io/brickbust

Updated 6 days ago
StatusReleased
CategoryTool
PlatformsmacOS, Linux, Android, HTML5
Rating
(2)
Authordafu
Made withUnity, Aseprite, GIMP, Audacity
Tags16-bit, 2D, 8-Bit, Game engine, Pixel Art, Retro, Unity

Install instructions

You can try the above RetroBlit demo reel as a stand-alone application for one of these platforms below!

Download

Download
retroblit-windows.zip 15 MB
Version 2.0.0 9 days ago
Download
rb_demoreel.apk 24 MB
Version 2.0.0 9 days ago
Download
retroblit-linux.zip 20 MB
Version 2.0.0 9 days ago
Download
retroblit-osx.zip 32 MB
Version 2.0.0 9 days ago

Comments

Log in with itch.io to leave a comment.

Hi! Is it totally necessary to run FES in Unity version 2017.1.1? I'm trying to make it run on 2017.3.1f1 and I get this error: "Input Axis P1_VERTICAL is not setup".

Any ideas? thanks

No, FES will run on any version starting 2017.1.1. It sounds like your input settings have changed, FES is a complete project, you should let it keep it's own configuration after you import it.


Feel free to email at the support email address if you're still having trouble!