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.
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.
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.
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.
Don’t overlook unusual options for learning programming basics. More than one person in the room got started on a TI-83 calculator.