Game Engines Primer
So you've decided to make your very first game (terrible). Now you need to decide what software to use (hopefully less terrible if you read this, but no promises).
Okay, so you’ve got a game idea but you’ve never made a game before, and you’re not a programmer. Guides and forum posts all seem kind of obtuse and you’re not sure where to start. You’re not even sure what software to use or why. Allow me to help!
I’ve used and tested out a ton of game development software and tools, commercial, indie, and I want to help you figure out what your needs are, what questions to ask, and how to get started. I’ll explain what you’re going to want out of a game engine, go over a bunch of different tools, and explain what they’re best for and why they’re good options.
What do you need out of a game engine?
There are really just two criteria when choosing a game engine:
What can it do?
Can you make it do it?
The former is often oversimplified, and the latter is often overlooked.
So, first: What can it do? Some of the tools I’ll list below are meant for very specific tasks. Some can do virtually anything that you have the skill to execute. The automatic assumption is that an engine that can do more is better, but that’s not always the case. You can get a screw lodged into a wall with both a screwdriver and a hammer, but one of them is going to do the job a lot easier and cleaner.
It’s often better to choose a tool that suits your exact purpose than a tool that has all of the bells and whistles. You can take every ten-pound textbook with you to every class, but you’re not going to be happy about it.
On the other hand: Can you make it do what you want it to do? Consider your limitations! For example, most engines are going to require a little coding, but some software is going to be way more coding-intensive than others. Some software has more robust assistance than others—better documentation and a better community—which, especially for beginners, can mean the difference between solving problems and getting lost.
I’m not going to rate any of these engines overall, because it can definitely be a lot like rating a screwdriver on how good it is at being a hammer. Instead, I’m going to go over the following categories:
Documentation: ★☆☆☆☆
Versatility: ★☆☆☆☆
Community: ★☆☆☆☆
Beginner-Friendly: ★☆☆☆☆
Price
Languages
Examples (As Seen In…)
What The Engine Is Best For
I’m going to explain this criteria a little up front so that, later on, you’re equipped to evaluate other game engines for yourself and make your own decisions.
Documentation
All software has documentation, and for game engines, it’s paramount. If you’re unfamiliar, documentation is a mixture of a reference guide, a cookbook, and sometimes tutorials. It shows what can be done, explains how it works, and often supplies examples that you can use to springboard off of.
Documentation is of extreme importance for game development software because there are so many different interacting components, each with their own quirks and behavior. For this category, I’ll rate the quality of the documentation, taking into account thoroughness, accessibility, and recency.
Versatility
Some engines are hammers, some are screwdrivers, and some are Boy Scout multitools. Is the software meant to do one thing well, or does it support anything? Can it only work in 2D or 3D, or with specific kinds of assets?
Additionally, some engines have access to plugins or asset marketplaces that can fill specific needs that you have, which makes them very extensible! Sometimes beginner game developers are afraid of using marketplace assets, thinking that it makes them unprofessional or that they’re taking a “shortcut.” That’s not true at all! Professionals use marketplace assets all the time to speed up their work. There’s no shame in it!
Community
How large, welcoming, and helpful is the community?
It’s a simple question, but when you’re working alone, you’ll often need a second opinion, or the advice of someone who’s gone before. There are no new questions in the world; it’s likely that others had the same problem and now are uniquely equipped to explain it to you. That’s invaluable for something like game development where there are so many intricate, moving parts.
Beginner-Friendly
Is the engine approachable? Does it have a landing page with clear links to resources? Is the user interface jumbled or overcomplex? Is it designed in an obtuse way? Is it accessible to artists or beginner programmers? This ties into some of the above criteria, as well.
Something else that makes an engine beginner-friendly: The presence of a visual scripting tool. Visual scripting is a way to “code without coding,” usually by arranging nodes in-editor. While visual scripting may sometimes have functionality limits, professionals still use it plenty, especially to build rapid prototypes and get a project off the ground in its early stages.
My estimation of a beginner, for our purposes here, is someone who hasn’t used a game engine before, isn’t familiar with the pipeline, and has minimal coding knowledge. If you’re coming from a programming background and have simply never used an engine before, you’ll probably be better equipped than my beginner-friendly rating suggests.
Price
Some engines have single price points, some have multiple price points or subscription plans, and some have royalties paid dependent on the revenue your game generates. In this section I’ll go over that, and give a recommendation for what plan(s) would be best for a beginner, if there are multiple options.
Languages
What programming languages does it use? And are those languages considered “easy to learn,” well-documented, and robust?
An “easy” language is not always the best one, and it’s also best to keep in mind that there’s really no such thing as an “easy” programming language. Usually, when people call a language “easy,” they mean that it’s either beginner-friendly (has lots of slow-paced documentation that holds your hand through early learning) or human-readable (looks more like English than hackertyper).
As Seen In…
This section isn’t a rating; any engine can create good games and any engine can create bad ones. However, it can be useful to see examples of games made with different tools so that you understand the scope of what you can accomplish!
What It Excels At
In short: what kinds of games can you make with this thing?
One final note before we get started:
I’d like to make it clear that these are definitely my own opinions, informed by my own experiences and the experiences of my peers. Other developers have other opinions! I’ve used some of these extensively and others of them minimally, and where my personal experience fails me I’ve incorporated the opinions of people I’ve spoken with and whose opinions I trust.
This also isn’t all of the criteria that makes or breaks a game engine! I’ve highlighted some of the aspects that make engines beginner-friendly and can help newcomers make early decisions about which tools to download and toy with on the weekend. As you go, you may find that you prefer one tool over another that seems better on paper. That happens, and it’s okay!
So without further ado, let’s go over some engines!
Engines
Celebrities
The crème-de-la-crème of the game development world: commercially-viable tools commonly used by AAA professional game studios. (But don’t overlook indie options!)
Unity
Unity.com
Documentation: ★★★★☆
Versatility: ★★★★★
Community: ★★★★☆
Beginner-Friendly: ★☆☆☆☆
Price: Free up to $100k revenue; offers a student plan
Languages: C#
As Seen In: Hollow Knight, Sonder, In the Valley of Gods, Cuphead, Pixar short films
What It Excels At: anything, including both 2D and 3D, and even films
Use If: You want a versatile, highly-extensible toolkit
Unity is the most accessible commercial engine. It’s free for people just starting out in development, and it’s wonderfully versatile, with robust 2D tools, 3D tools, UI layout tools, and an easy-to-learn interface. It also has wonderfully robust documentation, and you can’t walk three steps in gamedev sites without tripping over a Unity tutorial.
It also has a very well-populated asset marketplace containing art, programming, musical, and other assets, which can get you very far in terms of building a game with a common premise, such as a turn-based RPG or a visual novel.
That said, it’s not the most artist-friendly engine. There is no way to prototype a game without opening a code editor like there is with Unreal’s blueprinting, and editing art assets in-engine can be a bit less intuitive.
Unity will require you to code, at least minimally. The hands-down best choice to code in is C#. Unity has historically offered a JavaScript-like scripting language called UnityScript, but it’s on the roadmap for deprecation. There’s also a solid supplementary bridge between C# and Lua called MoonSharp.
That said, if you’re willing to get your hands dirty right off the bat, Unity tutorials are everywhere and the documentation won’t steer you wrong, and there’s very little that Unity can’t do, which makes it a good choice if you’re worried about extending your gameplay. Personally, as a programmer, Unity has been one of my first choices whenever I have a game idea that I want lots of control over.
Unreal Engine
Unrealengine.com
Documentation: ★★★☆☆
Versatility: ★★★★☆
Community: ★★★★☆
Beginner-Friendly: ★★★☆☆
Price: Free to $1mil revenue, then 5% royalties
Languages: Blueprint, C++
As Seen In: Robo Recall, Fortnite, Octopath Traveller, Precure (yes, Precure)
What It’s Best For: anything, but mostly 3D games (especially realistic games shooters), VR, and even films
Use If: You want a powerful 3D engine; you want to build a realistic game
Developed by Epic Games, Unreal Engine is a primarily-3D engine built originally for 3D first-person shooter and similar games. It can execute a 2D game, but this isn’t where its strengths lie: It has an extremely powerful toolkit for 3D games, including a powerful internal material editor (comparable to node editors in Maya, if you’re familiar), the Matinee tool which can help build cutscenes almost out-of-box, and default, easily-adjusted game behaviors such as player controllers and physics. Additionally, of the tools on this list, Unreal Engine has the best capacity for PBR, a rendering method that interprets light and materials in the same ways that the real world does, which helps produce genuinely realistic visuals.
Unreal Engine 4 is the current major Unreal release at time of writing, but Unreal 5 is in Early Access, and it’s bringing with it some incredibly powerful tools as well, including Nanite and Lumen, tools which may theoretically reduce or eliminate your need to spend time on the more technical visual development aspects such as normal map baking, light maps, and LODs. (Newbies, I encourage you to look those terms up! They’re all part of how game developers make really heavy graphics move fast enough for realtime rendering!)
That all sounds really cool, right? Definitely! For many games, this toolkit can mean everything. But be mindful that for many games, especially 2D games, a lot of those tools are meaningless. That’s not to say that Unreal can’t do 2D—it absolutely can—but that’s not where its talents lie. Unreal really, really wants to be a 3D game with realistic physics. It carries with it a significant overhead (which, among other things, means that even a very small game will be a certain minimum file size larger than you may expect).
For 3D, it’s also very artist-friendly, with both the aforementioned material editor and easy import, a nice viewport, and easy instancing. It’s also fairly easy to get into writing gameplay in Unreal due to its visual scripting system, Blueprints, which enables you to put together simple behaviors without touching a keyboard at all by allowing you to use nodes in the Unreal editor, instead of lines of code. The Blueprint system has limitations, but is a great place to start if you’re new to programming.
Like Unity, it also has a robust asset marketplace with both free and paid assets to supplement your work.
Finally, Unreal documentation is unfortunately spotty both in terms of topic coverage and being up-to-date, and its UI can be a little complicated, but as it’s a very popular engine, you can supplement this with community knowledge and tutorials.
If I were looking to make a realistic or semi-realistic 3D game with high-poly 3D assets whose core gameplay was platforming, fighting, or exploration, Unreal Engine, especially UE5, would be my first choice.
Indie Darlings
There are plenty of other engines and toolkits that don’t have an AAA reputation but can produce excellent work, especially in the indie game sphere! They’re often cheap, accessible, and have robust communities and tutorials.
GameMaker Studio
Yoyogames.com
Documentation: ★★★☆☆
Versatility: ★★★☆☆
Community: ★★★★★
Beginner-Friendly: ★★★★★
Price: Variable, but a permanent license to export to PC is $99
Languages: GML (GameMaker Language), visual scripting
As Seen In: Undertale, Hyper Light Drifter, Hotline Miami, Minit, The Red Strings Club
What It’s Best For: 2D games and RPGs
Use If: You want to make an RPG; you're relucant to commit to programming
Probably the most well-known of the indie game development suites, Game Maker has made massive strides and added tons of features over the past decade. It’s also one of the only indie suites that has built-in export to non-PC platforms, including consoles.
Owing to the fact that it has a robust visual scripting system (called Drag-n-Drop), documentation specifically aimed at beginners, a custom, beginner-friendly engine language, a massive community, and is “indie dev” royalty (and therefore has as many tutorials out there as there are stars in the sky), this engine is about as beginner-friendly as it gets. The custom language does unfortunately limit the spread of assistance that you can find online; engine-agnostic languages like C# are used in so many contexts that you can easily find hints and solutions on common programming hubs like Stack Exchange, while with GML you’ll be limited essentially to the forums. Thankfully, because the community is so massive, this shouldn’t be a huge problem.
GameMaker is very powerful for 2D game development! If you’re unfamiliar with the examples of GameMaker games I gave above, they include a bullet hell RPG, a very tightly-designed top-down fighter, an exploration RPG, and a quasi-visual novel.
The thing that it’s best equipped to do, however, is probably top-down RPGs a la Undertale and Minit; this is the genre that it’s best outfitted for out-of-box, and the genre that the majority of the community is familiar with and can help with. It also has a very limited toolkit for 3D, to the extent that I would be reluctant to recommend it at all.
All this said, if you want to build something quick and are reluctant to learn coding, or if a robust community is important to you, GameMaker is an excellent choice.
Godot
Godotengine.org
Documentation: ★★★☆☆
Versatility: ★★★★☆
Community: ★★☆☆☆
Beginner-Friendly: ★★★★☆
Price: Free (and open-source!)
Languages: GDScript (GodotScript, a Python-like), C#, visual scripting, more
As Seen In: RPG in a Box, Until Then, Kingdoms of the Dump, Hardcoded
What It’s Best For: Unity utility without the price tag, anyone who wants tons of programming options
Godot is definitely a lesser-known option. It’s a Unity-like… except it’s entirely free. Its UI is similar to Unity and it also uses C#.
Godot has a variety of built-in, premade tools (like prebuilt behavior nodes, a very solid internal animation toolkit, and a custom tool system to build your own tools as well!), a robust physically-based 3D renderer, and 2D tools that other robust engines usually lack out-of-box, such as a built-in map/tile editor.
It does fall short of Unity in several areas, such as easy 3D graphic refinement. However, it’s worth saying that as time goes on, Godot is likely to expand its toolkit far faster than Unity, purely because it’s open-source, which means that any developer in the world can wander in and build tools for it. (If you’re familiar with 3D modeling software, this is the same reason that Blender is rapidly overtaking Maya’s toolkit.)
Godot offers multiple programming approaches: C# for confident programmers, visual scripting for newbies, GDScript for those in between who want minute control, and a variety of community-supported languages such as Python and Rust as well. The sheer breadth of options here is amazing and versatile. Additionally, the documentation is actually available in-editor, meaning that you don’t have to switch back and forth from your Godot window to your browser to look things up.
Also, again: it’s open-source. If you’re unfamiliar with what “open source” means, in short: the internal code is completely available and free to the public to view, study, alter and build, making it extremely accessible. If you publish your game, you never need to pay Godot a cent of your revenue.
I love Godot, though I’m not certain it would be my first recommendation for beginners simply due to its newness and small community. The fact that it’s so feature-robust and completely free, however, makes it exceptionally appealing for those who want to dig into a more “commercial”-feeling engine but can’t take the price tag of big-name commercial engines.
LÖVE
Love2D.org
Documentation: ★★★☆☆
Versatility: ★★☆☆☆
Community: ★★★☆☆
Beginner-Friendly: ★★★☆☆
Price: Free (and open-source!)
Languages: Lua
As Seen In: Blue Revolver, Lunar Depot 38, Oh My Giraffe, UEDJ: A Crime-Solving Desk Job, A Small Town Tavern
What It’s Best For: 2D games
LÖVE is another more obscure indie framework. Like Godot, it’s open-source, meaning anyone can build tools for it and you never have to pay any royalties.
Unlike Godot, it isn’t aiming to be a Unity competitor, or a one-size-fits all toolkit. Instead, it’s much more compact, producing only 2D games in only Lua, with a very beginner-friendly, accessible API. You can build games in Lua very quickly with a little bit of practice.
While its relative obscurity means that the community is smaller, there are two significant factors that improve beginner-friendliness: Firstly, Lua is not a LÖVE-specific language and is very approachable, meaning that there are tons of resources for it across the internet; secondly, there’s a whole host of community-made beginner tutorials, including tutorials made with the assumption that you’ve never coded a day in your life. In particular I recommend Simple Game Tutorials for Lua and LÖVE 11, which walks you through recreating traditional, familiar games with LÖVE in a way that will really make the process “click.”
There’s really not much to say about LÖVE except that it’s easy, it’s free, it’s fun, and it’s a very approachable way to make 2D games. I’d recommend looking through the examples above to see what you can do with it, especially as several of them were made in a week or less!
Specialty Toolkits and Microengines
These are either specialty tools or engines with heavy restrictions. They often do one thing very well. Because of that, they’re generally a really great place to start for beginners!
RPG Maker
RPGMakerWeb.com
Documentation: ★★☆☆☆
Versatility: ★☆☆☆☆
Community: ★★★☆☆
Beginner-Friendly: ★★★★★
Price: $79.99 (RPG Maker MZ), but often on sale
Languages: None
As Seen In: Yume Nikki, To The Moon, Witch’s House, Dreaming Mary, Off
What It’s Best For: RPGs (especially top-down, turn-based)
The one, the only, the classic: RPG Maker. It has default assets and gameplay, extremely easy database and event management, an exceptionally intuitive tilemapping tool, and a whole suite of plugins, free and paid, to compensate for where the built-in tools don’t go far enough.
It does RPGs and only RPGs. It’s possible to subvert the intended uses of the tools, as in above example Dreaming Mary (a narrative sidescroller), especially with plugins, but its strength is in doing exactly what it was built to do.
Everything about RPG Maker is easy. Dialogue, overworlds, battle, enemies, abilities, travel, dialogue, importing assets, building maps… You can go from start to finish without ever touching a line of code and come out with a really solid, polished-looking game.
If you do want to touch code (and if you’ve never tried it before and want to dip your toes in, I recommend this as a good place to start), RPG Maker MZ (the current version as of writing) supports JavaScript. (Previous version MV supports JavaScript as well, and VX Ace supports Ruby, if for whatever reason you prefer that.) JS is one of the most well-documented and widely-known programming languages in the world, so there’s no shortage of support there.
It’s $80, but it’s also on sale or included in bundles constantly. I’ve gotten several copies of RPG Maker from Humble Bundle alone and it seems to be on sale on Steam roughly half the time.
If you want to make an RPG and don’t need any weird, specific bells and whistles, RPG Maker will not steer you wrong.
Ren’py
Renpy.org
Documentation: ★★★☆☆
Versatility: ★★☆☆☆
Community: ★★★★☆
Beginner-Friendly: ★★★★☆
Price: free (and open-source!)
Languages: Ren’py markdown, Python
As Seen In: Butterfly Soup, One Night Stand, Doki Doki Literature Club, One Night Hot Springs, Magical Diary
What It’s Best For: Visual novels
Ren’py is well-known in the visual novel community. Like RPG Maker, it’s built to do one thing and one thing only, and that’s visual novels (dialogue- and choice-based 2D games) and kinetic novels (no choices). Like Godot and LÖVE, it’s open-source, AKA free now and forever.
The core toolkit only asks that you use Ren’py markdown, which is plenty easy to pick up. It’s also extensible by offering true Python support, allowing you to expand past the core toolkit to incorporate customized behaviors (such as custom animation effects or simulators a la Magical Diary or Princess Maker).
Because it’s so focused on its core purpose, it’s very fast to assemble a visual novel in Ren’py. There’s a variety of other visual novel tools out there (usually plugins in other engines such as Unity), but Ren’py’s singular focus makes building a VN incredibly quick. If you want to build a game whose core gameplay is a visual novel and that won’t require any super-customized gameplay, Ren’py is the first choice.
Twine
Twinery.org
Documentation: ★★★★☆
Versatility: ★☆☆☆☆
Community: ★★★☆☆
Beginner-Friendly: ★★★★★
Price: free (and open-source!)
Languages: visual scripting, Twee (internal language), JavaScript, CSS functionality
As Seen In: Queers in Love at the End of the World, Depression Quest, You Are Jeff Bezos, A Tale of Crowns
What It’s Best For: text-based narrative games
If you have a story to tell and you want to jump right in, without stopping to learn code or even make art assets, check out Twine. Seriously, check out Twine, because it’s unbelievably easy to pick up and you can try it right in your browser.
Twine allows you to write scenes and generate choices through a visual scripting-like scene map system which connects nodes of writing to each other. It supports code, but if you want to hit the ground running you won’t need it if you don’t want to get into it. It also exports your game directly to HTML, which means anyone can open and play it in their browser and it’s hostable and embeddable just about everywhere.
It’s easy to pick up, of course, but again: The standout feature that makes it beginner-friendly is that you can use it entirely in-browser without downloading a thing.
Bit.sy
Bitsy.org
Documentation: ★☆☆☆☆
Versatility: ★☆☆☆☆
Community: ★★☆☆☆
Beginner-Friendly: ★★★★★
Price: free
Languages: none
As Seen In: You and I and the Long Long Drive, Virtual Pets, I Don’t Know How to Have Hotpot Alone, Good Morning Radio
What It’s Best For: 8-bit-style walking simulators
Bit.sy is a microengine by Adam Le Doux. What’s a microengine? Well, it’s… a game development tool that’s very, very small. It runs entirely in-browser (even on mobile, though it may be a bit cumbersome!) and exports (and imports!) easily to HTML.
There isn’t a lot of documentation for Bitsy, but that’s because you honestly don’t need it. You can create a game in Bitsy by opening it for the first time without ever leaving the page to look anything up. That said, there’s this handy step-by-step tutorial if you’d like a little more guidance, which also includes some highlights of unique things people have done with Bitsy’s limited toolkit.
It’s intentionally not very customizable; it only supports a 3-color palette per map, for example. But don’t misunderstand me here: Bitsy’s limitations are a feature, not a bug. For example, it uses an in-tool pixel art editor that places your pixel art directly in the game without fussing with assets. A tad limiting? Yes. But what do you get in exchange? It’s extremely easy, quick, and fun to build all of the art, maps, and items.
Speaking as someone who’s made games in massive, commercial behemoths like Unreal, I love Bitsy. Using it is in and of itself like playing a game because it takes the stress of refinement away with its constraints and allows you to focus on just creating an enjoyable experience.
If you have an RPG-style story where you just need the player to be able to move around a world and interact with people and things, and you want to have a fun time, definitely take a look at Bitsy.
Other
I haven’t included full reviews for these because I wouldn’t usually recommend them to beginners, but here are some more tools that you can explore, in no particular order.
Interactive Fiction Tools
Interactive fiction (IF) is that genre of games that often requires you to type words into the console, like “north” or “use key”, such as Alabaster, Zork, 9:05, or The Hitchhiker’s Guide to the Galaxy. More modern ones are sometimes multiple-choice, such as Choice of the Dragon.
ChoiceScript: the scripting markdown of Choice of Games
Ink/Inklewriter: also offers direct Unity integration
Microengines
Check out this itch.io list of small game engines. (I have not used most of these, but microengines are just super fun.)
Recommendations: “What if I want to…?”
★ …just play around?
Twine for purely text-based games, or Bitsy for a fun, 2D adventure game experience!
★ …make a 2D sidescroller?
Unity for a ton of options, or LÖVE to pick up the toolkit fast.
★ …make a 3D platformer?
Unreal Engine, or Godot if you like your engine indie.
★ …just tell a story?
Twine for text only, or Ren’py for a visual or kinetic novel with graphics.
★ …make a visual novel?
Ren’py to get started quick, GameMaker if you want it to be a little more extensible, or Unity if you want very minute control (check out the asset store for visual novel toolkits, and also check out Ink, above).
★ …make a classic RPG?
RPG Maker to get started fast or Bitsy for very simple adventure games, but almost every visual toolkit above can handle a classic RPG, especially if you’re willing to grab scripts and tools from asset stores!
★ …get my game onto the Nintendo Switch/Playstation/Xbox/mobile?
This is a seriously long-term goal, so don’t worry about this too much! But Unreal Engine and Unity are your best bets. GameMaker also offers multiple porting licenses, including a console plan/license, which is $799/year.
More Advice for Beginners
★ Plan small.
You’re not going to publish a Nintendo Switch breakout hit on your first, second, or tenth try at game creation. That’s to be expected! Game dev is ridiculously complex, especially for one person wearing all of the hats. Learn to fail faster! You’ll learn more and have more fun.
★ The right way to do it is the way that works.
You would be surprised how patchwork commercial games can look from the inside. If you have a better way to do something than the tutorials provide, then use your way. And don’t be afraid to use marketplace assets, especially to save time! The only bad game is the one that doesn’t exist because you got frustrated and threw it out.
★ Try a game jam!
If you want to have fun making games, look into game jams! They’ll provide you with a prompt, a community, and often a fun contest that’ll get eyes on your work. The most famous game jam is Ludum Dare, which takes place over a single weekend!
★ Don’t be afraid of code.
We all have to start somewhere. It might feel intimidating, but if you’re going back and forth between two ideas because one will require code and the other won’t, give coding a shot! Use the forums, use Google, use the tutorials, look it up on Youtube, join the Discord! There are so many resources for beginning programmers out there.
★ Publish indie.
Have a tiny game? Publish it on itch.io! Itch.io is the best place online right now for weird, artsy, and indie games, offering flexible pricing, customizable pages, and more.
★ Just enjoy making the game.
It’s easy to get caught up in what-ifs and publishing and monetization. Take a step back—you’re exploring and learning! Make games for yourself. Make games for your friends. You have plenty of time to make something amazing. For now, make something fun!
Is there a game engine, tool, or kit that you think should be featured here that isn’t, outdated information, or your own contribution? Shoot me a message on Discord, or DM me on Twitter.


