RetroBlit Game Framework (v3.4.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
{
    SpriteSheetAsset spriteSheet = new SpriteSheetAsset();
 
    public RB.HardwareSettings QueryHardware() {
        var hw = new RB.HardwareSettings();
        hw.DisplaySize = new Vector2i(320, 180);
        return hw;
    }
 
    public bool Initialize() {
        spriteSheet.Load("HelloWorld/Sprites");
        spriteSheet.grid = new SpriteGrid(new Vector2i(16, L16));
        
        RB.SpriteSheetSet(spriteSheet);
        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
  • Textured line drawing
  • Multi-layered tilemaps with extensive TMX file support which includes support for infinite maps, objects, and custom properties
  • Rendering to and from sprite sheets
  • Rendering raw pixel buffers
  • 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!
  • Synchronous and asynchronous asset loading
  • 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://badcastle.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.badcastle.com/RetroBlit/docs/doc/unity.html

Links

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

https://www.badcastle.com/retroblit/docs/doc/index.html

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

https://assetstore.unity.com/packages/templates/systems/retroblit-102064

Dogfooding

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

https://badcastle.itch.io/merl

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

https://badcastle.itch.io/brickbust

https://badcastle.itch.io/retrodungeoneer

StatusReleased
CategoryTool
PlatformsmacOS, Linux, Android, HTML5
Rating
Rated 4.8 out of 5 stars
(4 total ratings)
Authordafu
Made withUnity, Audacity, Aseprite, GIMP
Tags16-bit, 2D, 8-Bit, Game engine, Pixel Art, Retro, Unity

Download

Download
retroblit-windows.zip 22 MB
Version 3.2.0 Apr 07, 2022
Download
retroblit-android.zip 21 MB
Version 3.2.0 Apr 07, 2022
Download
retroblit-linux.zip 21 MB
Version 2.3.0 Nov 16, 2019
Download
retroblit-osx.zip 32 MB
Version 2.3.0 Nov 16, 2019

Install instructions

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

Comments

Log in with itch.io to leave a comment.

Deleted post

This is amazing man!

(+1)

Man if you ported this to Godot Engine we could have a totally free system and you'd be able to even ship a standalone version. Would be cool .. 

Oh I am loving this.

(+1)

Any chance of you taking a crack at making a version for Godot?

(+1)

I think a benefit of such a port would be marginal. The RB development experience is not anything like Unity nor Godot, it's more of it's own thing, it only piggy backs on Unity to ease deployment to multiple platforms. RB development through Godot would be very much like through Unity, assuming C# on Godot.

What benefits do you see of a Godot port?

(+4)(-1)

Open-source software gives a lot more ability to customize, build and troubleshoot when things go wrong. It also grants a level of clarity that Unity just doesn't have-as well as a lot more space. A Unity install can get quite large, whereas I can almost save Godot on a high-density 3in floppy if I really wanted to.
As a closed source project and with the recent controversy with Improbable, there's also good reason to have objections to using Unity-along with having no actual true 2D mode. While this has upsides, it also means you have some serious downsides. 
Working with Unity gave me nothing but problems, despite the large community and its performance was poor. I found Godot and tried it. Quite zippy in performance.
The final consideration is the price. If a game I make with Unity went viral and sold enough, I'd have to pay a hefty price for a premium Unity subscription and royalties. If I make a game that sells well with Godot, the only things I need to worry about is paying the people I work with and taxes. It's a peace of mind I just don't have with Unity.

(1 edit) (+1)

I mostly agree with your points, and given unlimited time I would port to Godot and other engines, and even make a standalone version using .NET Core. However I do have to manage my time carefully as I have little of it to spare, and Unity seems to cover the most bases in terms of out of the box multi-platform support. Moreover, RetroBlit itself is not a free product ($15 USD as of this writing), so I don't think it fits well with the general free open source mindset. You do get the RetroBlit source code when you purchase it however.

As for Unity itself, there are no royalties at any level that I'm aware of. It's free up to $100k annual profit, and after that it's $40/year up for up to $200k, and $150/year for any amount beyond that (these are new numbers for upcoming cost changes in January). Personally I think that is very reasonable and I would not blink and eye at those costs if I was bringing in $100k+ from a viral game. You will in fact pay vastly more in store front royalties on most non-mobile platforms (Steam/Epic/Others).

I managed to find a link to 2.2 documentation on your website, but most places, including the asset store page and this page, link to a 2.1 version of the documents that has a lot of broken links. You might want to update those links.

I wonder if that's cached somewhere, the old documentation was removed and the new one replaced it entirely. Could you try again, and refresh your page? Thank you for reporting this.

I just tried it on a different computer and you're right, it went to the new version. Thanks. 

Btw, what's the best place to ask questions? Here, the subreddit, PM? 

(+1)

Subreddit if it would benefit others, otherwise you can email me at the support email address!

(1 edit)

Thank you so much . it will help me to learn more Unity 

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

(1 edit)

No, RetroBlit will run on any version starting 2017.1.1. It sounds like your input settings have changed, RetroBlit 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!