This post is a response to Unity’s heartbreaking announcement that they will… charge developers relentlessly for distributing their games? I struggle to frame exactly what they are doing because Unity’s decision is so bizzarely resentful toward their huge developer base that trusted them. You can read this for context…
I’ve done a lot of writing curating and covering tools, and showcasing alternatives to popular ones. I even have a collection on itch.io keeping track of things that are on that platform: https://itch.io/c/235488/cool-tools
For myself, it is an imperative to always be aware of alternatives!
The biggest lesson I learned from the decades of being able to persist as a digital artist working with interactivity (now game design, I guess) is that being platform agnostic is the best thing you can do for yourself.
You need to rely on yourself as much as possible.
That’s my number one rule.
Come to terms with the ephemeral nature of your own work because it has no “real” capitalist value in the grand scheme of things.
Games are viewed as expendable things that quickly expire. The value of IP is weighed by how much money it can make. To what indefinite extent it can be milked… That’s the reality of this place.
Any of us will spend years of our life pouring uncounted hours of work into something we are passionate about. The resulting game might not live longer than five years.
It’s hard to come to terms with the fact that you might work on something longer than it will be relevant.
In the end, you are responsible for ensuring your art’s relevance.
The pursuit of platform agnosticism, in this light, is a way of reclaiming power constantly lost to the game industry’s drive to maximize profits.
The tool is only as great as your ability to follow through on ideas and make it work. That talent to be flexible, to fit your ideas into the ecosystem of any tool (IDE, development environment, platform…) is something that can’t be taken away from you.
– Image via some thoughts on bitsybox and game preservation
It is a hard reality specific to this field. I could go on and on about how, if corporations really cared, they would actually walk their talk.
I am tired of reading exciting sales pitches with the reality that “this thing will go to shit” looming behind it.
The amount of trust that it takes as an artist to invest years into learning something inside and out, just to have the company that owns it pulling the plug on it, is exhausting.
If these corporations cared, basic necessities like “preservation” would be built into our dependence on them.
I find it a powerful statement against our corporate overlords that a game engine like Bitsy, as small as it is, being maintained by just one person, will prioritize preservation (read “some thoughts on bitsybox and game preservation”)…. but a company like Adobe, with its massive amount of resources and teams, can’t lift a finger to help preserve something as fundamental to internet history as Flash.
A long time ago I was part of a book called New Masters of Flash (Volume 3) by Friends of Ed. The philosophy behind the book was that there are “masters” of the tool. The same as you have masters in any other real world craft. People that know the thing intimately, push the thing to the limits, and pursue perfection within the craft of the tool. It alluded to an understanding that the software is a type of craft, and encouraged a sense of pride. It was all so new and exciting! We thought that Flash would live forever. It was everywhere.
Today… just the idea that a single tool would exist long enough to foster pride in a sense of mastery of it is almost a foreign concept to me.
We just can’t. Tech culture keeps disrupting itself. Too much to even care anymore.
It is encouraging to me that you can look at small initiatives like Pico-8, other fantasy consoles (see this very long list) such as TIC-80, GBStudio, or no-code alternatives like GDevelop… and see so much more care put into really being different. More than you would find coming out of corporations with the resources to actually make a difference.
I used to use Unity as an example for indie game’s dependence on a single tool. As a Flash developer it seemed like a disaster waiting to happen. I was often told I’m catastrophizing when I pointed out that our dependence on Unity bodes unwell for the future of altgames. What would happen to altgames if Unity disappeared?
It happened to Flash.
Why expect different this time around?
It keeps happening.
Unity’s hostility toward their user base, reflected in these decisions, is another reminder that we need to get real about who we place our trust in.
I can’t wrap my head around how John Riccitiello can call Unity’s most creative users “fucking idiots” for not being more exploitative with their monetization practices. Somehow creating art for the sake of sharing and creating art is a foreign concept to the people responsible for driving the future of the engine so many artists depend on.
When Riccitiello’s quote blew up on social media it was “walked back”. People defended him, as per usual with these things… reflective of the accountability issue in the game industry. If we just has a little accountability things could be so different.
There is no accountability. This is obvious in all fields… From game journalism, to execs making these decisions.
Either way, everyone else pays for it.
This is even better demonstrated by Reddit thread: Unity silently removed their Github repo to track license changes, then updated their license to remove the clause that lets you use the TOS from the version you shipped with, then insists games already shipped need to pay the new fees.
My hope for this post is to impart some hope.
I’ve been making this stuff for a very long time.
There is a large world of alternatives out there, many of them deserving a lot more attention. Each offer their own vibrant communities, support, philosophies, and mentalities surrounding making a game.
If you look at “Last 28 days / Monthly ranking of repos in this collection by stars, pull requests, issues. Historical Ranking by Popularity.”
You get a small glimpse of just how much is out there.
See also this bar chart race for a good laugh.
Yuri Sizov said it best on Twitter:
“I think that’s an important sentiment. We can’t offer you a “better Unity”. We can only offer you (better) Godot.
And the same is true for any other alternative. The market is full of different tools and approaches, no two alike. Give them a try and see what makes them unique.”
As a “former” Flash developer that often still builds things with AIR and ActionScript, I understand that there can never really be a “Unity alternative”.
AIR is currently being built and maintained by Harman. You can still use the SDK with Adobe Animate, just like you’ve always been able to do. This continues to be one of my favorite workflows. I would be devastated if I lost it.
Like Flash, there is only one Unity. Each tool has a history that built it, communities that poured their undying support, passion, and philosophies into it… When that tool dies we lose a specific type of mastery. We lose all the mentalities, philosophies, communities, and vision that went into it.
This is a constantly shifting landscape.
Each tool is different, some will get you closer than others to how your workflow in Unity existed.
Choosing a tool is about committing to a certain workflow, and understanding what compromises will have to be made because some support things out of the box better than others.Godot
“The Godot Engine is a free, all-in-one, cross-platform game engine that makes it easy for you to create 2D and 3D games.”
Godot is free and open source. The fact that it does not have a corporate entity in charge of dictating its future should be a big selling point right now.
I adore Unreal, and am quite enjoying my time with it… but Unity’s blatant bad decision making is a stark reminder that that can quickly change.
Another great alternative that I need to highlight is Rogue Engine.
It deserves a lot more attention. It is a Unity3D-like environment for creating web games and apps. It’s powered by three.js. The IDE is very similar to Unity, and it offers a lot of other features. It’s specific to creating for the web. I think it does this one specific thing better than Unity.
Other alternatives that get you in a similar ballpark for making browser games are Phaser.io, melonJS, and especially GDevelop.
GDevelop is one of my favorites to show people just starting out because it also features a no-code environment. It occupies the same space as Construct or Game Maker in terms of ease of use, but is much closer to the ideologies surrounding Flash games.
If you are looking for a Unity alternative to 2D games, that’s web based, with a strong community, then GDevelop is a wonderful option.
Other similar alternatives that offer “no-code” are…* ct.js
“ct.js makes learning programming fun and game development easy by its visual tools, good docs and flexible, modular library. It is free, open-source, and is loved by hobbyists, professionals, teachers, and their students.”
Stencyl which also boasts creating amazing games with no-code.
CopperCube is another option centered on 3D game development that offers no-coding. It’s free.
There are many no-code options out there. It’s not something everyone is looking for. Personally I struggle with environments that hide coding from me.
Some other alternatives that offer more power to developers are…
Heaps.io is a mature cross platform graphics engine designed for high performance games. It is designed to leverage modern GPUs that are commonly available on both desktop and mobile devices.
* C4 Engine
The C4 Engine is a proprietary computer game engine developed by Terathon Software that is used to create 3D games and other types of interactive virtual simulations for PlayStation 5, PlayStation 4, PlayStation 3, Windows, Mac OS X, Linux, and iOS.
Stride is an open-source C# game engine for realistic rendering and VR. The engine is highly modular and aims at giving game makers more flexibility in their development. Stride comes with an editor that allows you to create and manage the content of your games or applications visually and intuitively.
No matter if you’re working solo as an indie dev or in a bigger team. Flax brings awesome experience to the game development that scales from small to large teams. Flax supports Version Control Systems and is focused on scalability so your game project can grow from 5 to 50 developers with ease.
* Bevy Engine
A refreshingly simple data-driven game engine built in Rust
Free and Open Source Forever!
2D and 3D renderer. Cross platform.
libGDX is a cross-platform Java game development framework based on OpenGL (ES) that works on Windows, Linux, macOS, Android, your browser and iOS.
Defold comes fully featured out of the box. There’s nothing to set up or configure, not even when bundling. Simply download the editor and get creative!
Features include: Visual editor, code editor, lua scripting, lua debugger, scene editor, particle editor, tilemap editor…
LÖVE is an *awesome* framework you can use to make 2D games in Lua. It’s free, open-source, and works on Windows, Mac OS X, Linux, Android and iOS.
* Haxe Flixel
Create cross-platform games easier and free.
All with one codebase.
* Armory 3D
A powerful, cross-platform, free & open source game engine,
integrated in Blender.
* Cocos Creator
Cocos Creator is more than a efficient, lightweight, free, open-source, cross-platform graphics engine: it’s also a platform to create 3D content in real time. It is not only flawless for 2D and 3D game development, it also provides integral solutions for automotive, XR, Metaverse and Education.
Features include: Editor, 2d and 3d, open source, cross-platform support…
Solar2D is a Lua based game engine with focus on ease of iterations and usage
This is a fully open source project that is forked of the well established and widely used Corona SDK game engine, which is no longer commercially supported.
A lightweight, multiplatform, free and open-source 2D game engine.
DOME is a framework for making 2D games using the Wren programming language which can be played across platforms.
* Falco 3D
Free cross-platform 3D game engine with C# scripting, Bullet physics and OpenAL audio.
* Panda 3D
The Open Source Framework for 3D Rendering and Games.
* Mach Engine
For building high-performance, truly cross-platform, robust & modular games, visualizations, and desktop/mobile GUI apps.
FNA is a reimplementation of the Microsoft XNA Game Studio 4.0 Refresh libraries.
One framework for creating powerful cross-platform games.
Manage code, cross-platform, open-source…
Game engines that offer an approachable way to make either 2D or 3D games while also being cross-platform should be viewed as a dime in a dozen. It’s a normal requirement.
Most of these target as generic of a development approach as possible… They are not set on any specific genre of games.
That said, there are also plenty of alternatives that lean more into specific areas… ranging from visual novels, to RPGs, to just silly and creative ways of making a game (again, see fantasy consoles).
“RPG in a Box lets you easily turn your stories and ideas into games and other interactive experiences! As its name suggests, it contains everything necessary for doing so, all packaged together “in a box”. The software is designed with a fun, beginner-friendly approach in mind as to not require any programming or modelling knowledge, while still providing a wide range of customization and openness.”
RPG In A Box is a big favorite of mine, and I am invested in seeing it succeed. It’s an absolutely beautiful tool!
I wrote a feature on it “RPG In A Box” is a cool tool, and also covered a bunch of games made in it, which I suggest checking out so you can see just how versatile it is.
Similar to RPG In A Box is Minetest.
An open source voxel game engine. You can mod a game to your liking, make your own game, or play on a multiplayer server.
* Adventure Game Studio
Adventure Game Studio (AGS) provides the tools to make your own adventure, for free! Bring your story and artwork and slot it in, and let AGS do the rest.
* RPG Paper Maker
RPG Paper Maker is a game making engine, free for non commercial use, allowing you to create a 3D game with 2D sprites and 3D objects with a very simple interface.
Narrat is a beginner-friendly game engine for making narrative games with RPG features, visual novels, interactive fiction, and more. No coding or game development is required to use narrat, and you can get started making a game in a minute.. Create your game by editing with a Simple scripting syntax. It supports Skills with skill check rolls, an Items inventory, and has a Quests System. The script system is very powerful and allows branching choices, functions, variables and conditions.
Ren’Py is a visual novel engine – used by thousands of creators from around the world – that helps you use words, images, and sounds to tell interactive stories that run on computers and mobile devices. These can be both visual novels and life simulation games.
* Pixel Game Maker MV
Use Pixel Game Maker MV to make your own 2D action games! The latest Maker title provides a simple, fun way to make games with zero coding!
* Pocked Platformer
A code free tool for creating small platformer games. It’s an adorable concept.
This is the source for Murder Engine, a pixel art ECS game engine built on top of MonoGame.
Decker is a multimedia platform for creating and sharing interactive documents, with sound, images, hypertext, and scripted behavior. It draws strong influence from HyperCard, as well as more modern “no-code” or “low-code” creative tools like Twine and Bitsy. If Jupyter Notebooks are a digital lab notebook, think of Decker as a stack of sticky notes.
An experimental game engine that encourages remixing games made in it. It’s browser based.
GZDoom is a modder-friendly OpenGL and Vulkan source port based on the DOOM engine.
It’s worth mentioning something like GZDoom because there’s so much stuff out there involving modding old engines or games, making things for old consoles (like NES)… I mean, there’s no shortage to chose from if you’re looking for a creative outlet.
* Turbo Rascal Syntax error, “;” expected but “BEGIN”
In a nutshell, Turbo Rascal Syntax error, “;” expected but “BEGIN” is a complete suite for developing games and demos for older computer systems. TRSE is created with Qt (C++), and runs as a stand-alone application that contains various tools for developing and deploying projects for these processors.
BrainFuckConsole74 is a brainfuck esoteric fantasy console/computer alias meta game: Write software or games in a language (that was never made for real programming) on a minimalistic console that is ‘brainfucking’.
A dead simple 2D game engine for Go.
raylib is a simple and easy-to-use library to enjoy videogames programming.
Pygame is a set of Python modules designed for writing video games. Pygame adds functionality on top of the excellent SDL library. This allows you to create fully featured games and multimedia programs in the python language.
In light of Unity’s bad history of terrible decisions I see a lot of people talking about custom engines again. Games like Noita successfully did it, and I think that’s worth mentioning.
There’s a smalls study of custom game engines which is worth reading.
Things like bgfx exist that encourage a “Bring your own engine/framework” approach.
There is an appeal to making your own because you are completely responsible for all of your decisions… bad or good. You’re absolutely in charge.
That said, I don’t recommend going the “make your own game engine” route if you are a single person, especially if you are new to game development. You will be responsible for building both the engine AND an actual completed game in it. Making a game is hard enough to see through to fruition. Plenty of developers that pursue making their own engine just kind of… disappear.
It’s a lot of work.
This post may be helpful to smaller productions, solo-developers, auteurs or hobbyists. I can’t imagine the stress right now placed on larger teams that have to figure out what to do.
Reading past all the snarky posts criticizing Unity, there’s that looming fear from people feeling completely betrayed, not sure what to do, and (even worst) not sure if they should even continue making games.
What did it for me is hearing of Unity quietly changing their TOS after all the outrage (see this reddit post). To me, this indicates that they are set on this path and even if they walk it back leadership will make equally as terrible decisions in the future. I don’t think this behavior should be allowed to get “walked back” or excused.
This is nothing short of devastating to too many people.
Making games is hard enough. You have to deal with the whims of platforms, surviving bad decisions from any other place that you put your trust in (see this as an example of it happening in the indie space), while also dealing with toxic player bases, harassment, and abuse… Add regularly having to look over your shoulder when it comes to game engines pulling such moves and I’m sure plenty of people have to question why they are still here.
We should be able to actually trust those that we place our trust into… but promises seem to be just meaningless marketing.
Can that change?
I place hope in open source alternatives. As small as some of them may be, there is something we can look forward to when it comes to promises kept and a sense of stability from being able to count on the tools you use.
My deepest sympathies to developers reevaluating why they even make games.
Mad respect to anyone able to persist pursuing their dreams here.