Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics

Make games you'll love with the Affinity Engine! <3 <3 <3

A topic by briar sweetbriar created Nov 07, 2017 Views: 183
Viewing posts 1 to 1
(7 edits)


The Affinity Engine is an open-source, browser-based game engine. It's entirely free: no licensing, no royalties, and no price tag. And since it’s browser-based, its games are de facto cross-platform: PCs, Macs, iPhones, Androids, you name it.

While the engine is currently adept at making interactive fiction and visual novels, it has the potential to do quite a bit more. Rather than locking game designers into a single, monolothic solution, the engine actually consists of dozens of small modules that designers can pick and choose from. Each module adds new functionality to a game, while also exposing a simple, human-readable API that often feels like a theatrical script or screen play. In this way, it attempts to be both easy to use and infinitely extensible.

If you're interested, you can follow us on Twitter or contribute on GitHub! We've also got an account, because--oh yeah, you can post Affinity Engine games directly into Itch!

Or you can check out the documentation demos!


  • Free, open-source, and browser-based!
  • Complete VN support: text, menus, images, and music/voice/sound effects
  • Advanced Layering: everything on the stage is divided into layers, which you can individually animate for perspective effects
  • Transitions: everything supports animated transitions, from background images to menus to full scenes
  • Text Animation: text is animated and has markup for changing speed, animation, pausing, and more; you can even changing character expressions when the text arrives at a particular point!
  • Data Management: multi-save, load, reset, and rewind
  • i18n: easily manage multiple languages
  • And more:
    • Configurable keyboard and mouse support
    • Full mobile support
    • Multiple style choices, or design your own!
    • Use FontAwesome icons! (Or another icon set of your choosing)

Code Sample

export default Scene.extend({
  start: task(function * (script) {
    const diy = script.character('diy').fadeIn();
    const ember = script.character('ember').fadeIn();
    yield diy._.text("We'd like to welcome you!");
    yield ember.expression('smiling')._.text("We'll be your tour guides.");
This topic has been auto-archived and can no longer be posted in because there haven't been any posts in a while.