Boston GameLoop 2016: Game engines for nonprogrammers

Boston GameLoop is an annual game development unconference. I’ve been going for years, and I’m always impressed by the sheer wealth of knowledge available.

Game engines for nonprogrammers

I have fewer notes from this discussion than any of the others, since I ran this one and couldn’t take notes simultaneously. To compensate, I’ve done a more extensive writeup below, but it’s from memory rather than notes, and I’m doubtlessly forgetting stuff.

Here’s a terrible photo of the whiteboard.

IMG_20160827_151116 (1)

A game engine is a collection of libraries and programs that are used to create a game. Game engines keep you from having to build your own everything from scratch.

Visual scripting engines are generally most accessible to nonprogrammers. Visual scripting engines represent game logic with visual graphics rather than lines of code.

Some game engines don’t require programming per se, but do require non-visual scripting. “sound = beep.wav; play(sound)” is an example of regular scripting. It does require you to learn the specific language of the engine, but (in this example) you don’t have to write your own audio system for it – you’re drawing upon existing programming libraries without delving into them.

You don’t have to be a programmer to build games, but you do have to work within the limitations of your game engine if you don’t know how to program. If you do know how to program, then you can move beyond the normal limitations of your game engine. Choose your game engine carefully.

Twine: Browser-based hyperlink system designed for interactive fiction. It is possible to teach the basics of Twine in 30 seconds, yet it supports variables and sophisticated CSS, and it’s extendible with Javascript. Very good starting place. Also good for prototyping. Free.

Construct 2: Graphical equivalent of Twine in that it’s also visual scripting and fairly easy to pick up. Drag-and-drop code blocks. Includes a physics engine. Size-limited in free version.

MIT Scratch: Graphical engine aimed at kids (8-16) but very good at introducing basic programming concepts. Large community. Remix system allows users to see the code for any game and then create their own versions. Not exportable/commercial.

Stencyl: Related to Scratch, uses the same programming language.

GameMaker: Graphical engine that allows you to build logic either with visual scripting or in its own scripting language. The GameMaker scripting language allows you to do more than the visual scripting system does, which is typical for hybrids.

Flixel: Open source, Flash driven game engine. Uses ActionScript 3.

Unity/Playmaker and Unreal/Blueprints: Unity and Unreal are extremely popular commercial game engines that normally require you to learn coding (C# or modified Javascript for Unity, C++ for Unreal). Playmaker and Blueprints are plugins that allow you to use the engines without knowing how to code, but it doesn’t take away the fact that these are still extremely complex engines. Not recommended as a first game engine for nonprogrammers, even with the plugins.

Amazon Lumberyard is a CryEngine fork and unfriendly to nonprogrammers. Ditto Cocos2D.

Specialized game engines are great for specific projects. Some examples:

  • ChoiceScript – long-form interactive novels
  • Inform 7 – parser interactive fiction
  • RPGMaker – RPGs
  • Ren’Py – visual novels

Starcraft, Warcraft 3, Skyrim: These are all extremely moddable games. Modding games is a good way to learn about game logic in a context that’s already familiar. Skyrim in particular allows you full access to the game’s internals with the same tools used by the actual dev team (may be true for Warcraft 3 and Starcraft too; I just haven’t seen those personally.

Pico-8: Fantasy console system for making and sharing teeny tiny games. Lua scripting.

Want to learn programming? Search for an online REPL (stands for Read, Evaluate, Print Loop) for your chosen language – this allows you to put in code and see the execution results immediately.

Recommended first language: Javascript. It runs on the browser, so you can turn what you’re learning into actual results very rapidly. Also, knowing Javascript converts well into learning C#.

Don’t overlook unusual options for learning programming basics. More than one person in the room got started on a TI-83 calculator.

Bookmark the permalink.


  1. Ah! I’m running a workshop for IF beginners in a few weeks, so this post is perfect timing – thank you. I’ll send them your way.

Leave a Reply

Your email address will not be published. Required fields are marked *