Tools

When choosing a game-making tool it’s easy to just default to the one you are the most familiar with, but it’s not necessarily the best choice, especially if you are prototyping.
In general I describe the dilemma with this graph:

Convenience is the amount of layers of technology that are embedded in the tool (engine, framework, library) and take care of the basic functions of a project, so you don’t have to “reinvent the wheel” every time.

As more elements are included, more assumptions about what a game (in our case) is are made and the flexibility of the tool declines.

The most flexible but inconvenient tool is pure code: starting from scratch, making your own engine etc.
On the other end there are tools that restrict the type of game you can make but greatly simplify the process: Adventure Game Studio, RPG maker, RenPy.

Here are some of the most popular tool from flexible to less flexible:

Paper

You always should visualize everything on paper first. But in some cases playable paper prototypes can be a perfect combination of convenience and flexibility even for digital games. Especially when your game is based on modular and discrete states, grids, turns, chance, or require a fine balance among limited variables: turn based strategy, roguelikes, dungeon crawlers, card games, and a variety of puzzles.
Multiplayer games with hidden information and social interactions can sometimes be tested in the analog world.
Paper prototypes are cheap and easy to iterate.

Code

There are tons of libraries oriented toward game creation. If you have a strong foundation in computer science, starting from code may be the most natural thing to do.
If your project doesn’t involve a lot of spatial design (levels that need a visual IDE etc), relies on low level functions, or procedural generation, that’s the way to go.
But if you find yourself spending more than 5 minutes implementing a button or a sprite animation routine, you are not really prototyping.

Unity

In class I’m going to privilege Unity due to its balance between convenience and flexibility, but you don’t necessarily have to use it.

Free for non-commercial projects, widely used and supported, taught extensively at CMU, does 2D and 3D but it’s primarily 3D, can build for any platform, not exclusively for games, marketplace for assets.
Site

*Unreal and Cryengine are similar engines but more oriented toward high-end, 3D graphics.

Game Maker Studio

Reasonably priced ($100), only 2D, drag and drop and code based scripting, good for 2D arcade games.
Games: Hyper Light Drifter, Niddhog, MinitHotline Miami etc.
Site

Pico 8

Cheap $15, a “fantasy console” creatively restricted but not genre oriented, ultra low res 2D. Integrated level, sprite, sound editors. Built-in community.
Celeste was prototyped with it.
Site

Twine

Free/open source, hypertext editor, no coding needed. Not very flexible per se but it can be useful when prototyping branching stories, dialogues and stories in space.
Black Mirror: Bandersnatch  was prototyped with Twine.
Site

Puzzlescript

Free/open source, remixable platform. Integrated level, sprite, sound editors.
It’s specifically for tile-based, block-pushing puzzle games like sokoban, but that’s a huge range of possibilities.
A Good snowman is hard to build was prototyped with it.
Site

Renpy

Free, code/script driven (python). Weapon of choice for manga visual novels but there are many unorthodox uses as well: The Game: The Game , Digital: a love story.
Site

Bitsy

Free/Online, built-in community, creatively restricted and genre oriented: top down narrative environments only. It can be used to prototype narrative ideas, worlds and spaces.

Adventure Game Studio

Free, open source but Windows only. Visual scripting. Strictly limited to 2D adventure games.
Cart Life was made in AGS
Site

RPG maker

$80. Visually oriented, genre limited. (not recommended for this class)
To the Moon and possibly Hylics were made with it.
Site