Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics

FES Retro Game Framework

A topic by dafu created Jan 11, 2018 Views: 230 Replies: 7
Viewing posts 1 to 7
(4 edits)

Hello all,

I'd like to introduce you all to FES Retro Game Framework:

FES takes inspiration from the simplicity of fantasy consoles to create a low friction beautiful API for developing retro games from the 8bit and 16bit era. FES is built on top of Unity and takes advantage of it's second-to-none cross platform compatibility and ease of deployment, but it is a very different Unity asset. FES is a code-only C# framework utilizing a classic game-loop approach. It does not make use of the Unity Editor, and indeed you only need a 5min Unity crash course on where to find the Play button to use FES.

Some features of FES:

  • Pixel perfect rendering
  • RGB and Indexed color mode, with palette swapping support
  • Primitive shape rendering, lines, rectangles, ellipses, pixels
  • Multi-layered tilemaps with TMX file support
  • Rendering to and from offscreen surfaces with custom sizes
  • 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
  • Supports an amazing variety of platforms, courtesy of Unity

If you're interested in developing Retro games then FES may be for you. If you think fantasy consoles are great but wish they were more commercially viable and portable then FES is definitely for you!

Never used Unity, don't want climb that Unity learning curve? No worries, you only need the very bare minimum Unity knowledge to create a FES project, and I've got you covered with this guide:

But that's just words, have a look at the link above for a live WebGL demo, and a number of stand-alone builds for various platforms!


This looks really cool.  I haven't really used unity but if I do in the future I'd definitely want to check this out.

(1 edit)

thanks! It's really not like using Unity at all, it's just piggy backing on Unity but the work flow is code only and completely different. It's a very simple no-nonsense api akin to what you can see in Fantasy Consoles.

Just added a basic Unity guide for those who have never used Unity before. You only need bare minimum knowledge of Unity to create a FES project. The guide is at:

v1.4 was just released! It brings custom shader support and ability to specify which and when post-processing effects are applied.

v1.4 February 5th 2018:

  • Added custom shader support! Shaders can now be applied in pixel-perfect space when drawing sprites/primitives/fonts, and also at post-process effect time. See FES.ShaderSetup(), FES.ShaderSet(), FES.EffectShader()
  • Added FES.EffectApplyNow() API which specifies when post-processing effects should be applied. This is very useful if you want some drawing (eg GUI) to be affected by different post-processing effects (or none at all)
  • Added FES.PaletteColorSet() overload that allows for setting colors directly from another palette file, rather than manually one at a time
  • Added FES.SpriteIndex() overload that takes sprite sheet index as a parameter, previously FES.SpriteIndex() only worked for current sprite sheet
  • Added Unity Crash Course to the Documentation to help new Unity developers get started with FES

Bug Fixes:

  • Fix incorrect clipping region on Offscreen surface of different size than FES.DisplaySize
  • Fix Tilemap cell not updating when only the Tint Color or Flags are changed
  • Fix some Tilemap chunks becoming invalid and unsuable if all tiles set manually set to empty/invalid with FES.MapSpriteSet()
  • Fix some Tilemap chunks not rendering on Offscreen surface of different size than FES.DisplaySize
  • Fix Tilemap rendering when using the Offset parameter, some chunks were not rendered
  • Fix Tilemaps leaking Meshes
  • Fix built-in font not rendering properly if there is no sprite sheets loaded

v1.4.1 is now out. This is a small bug fix release.


  • Added FES.BatchDebugEnable and FES.BatchDebugDisable which shows how many batch/flush operations are being performed and why

Bug Fixes:

  • Fix tilemap chunks not being clipped at an early stage in the pipeline if they are completely out of clip bounds. This should improve tilemap rendering performance in some scenarios

Check out FES at:
Have a look at a FES game in the works, Merl:

FES is now at v1.4.2. It has seen a whole slew of improvements since the original release, but not as many adoptions as I would like to see! Today I'm putting it on a 100% sale (free) for a week only, in hopes of spurring some new interest! I hope you give it a try and find something in it to love!

(1 edit)

FES 1.5.0 is out now. This release includes fully commented source code to a new demo game, BrickBust:

Try BrickBust out at:
Or free on Google Play:


  • Added BrickBust complete brick-breaker demo game!
  • Added FES.Ticks and FES.TicksReset APIs

Bug Fixes:

  • Fix game FES.Effect.Slide not clipping to FES.Display bounds corrects.
  • Fix FES.PaletteSwapGet not return the same value as set by FES.PaletteSwapSet!
  • Fix Tilemap rendering issues when -FES.HardwareSettings.MapSize is not a multiple of the internal chunk size (16)