Some companies use GameMaker to prootype a game design that is then handed off to (hardcore, C++) programmer(s) to create in full

The value of prototyping

to programmers:

Get to see the big picture

Get to explore some of the key details

to designers:

test out the little details of a design

can focus a prototype on one key, risky design idea to test whether it's feasible

Shane: look at prototypes scientifically: test one thing and treat the process as a true experiment

Sandboxing: this is apparently a technique used at Bungie where they can "sandbox" out a part of the game engine to experiment. The code is easy to hack inside the sandbox, and "hacking" is embraced as a philosophy for such a project

Design question: e.g. can players fall in love with a dog that's powered by modern AI techniques?

Often a prototype is best when it's designed to focus on the intersection of key technical and design questions. This allows a team to make informed decisions about whether to keep or cut big and/or fundamental features early on in a project.

Prototypes are good for UI experimentation (Microsoft and others have practically mastered the art of measuring UI usability)

Prototypes can be a very powerful communication mechanism: it can help get everyone on the same page and tease out differences in peoples' visions of the game

Prototypes can be great for helping team members learn about each others' jobs via cross-disciplinary groups. They can also help determine what role a new hire should take within a team (and see how they work with others).