After four years of writing computer game software, and also designing pen & paper games and board games, I have come to believe that creating a working prototype is very important.
A prototype lets you work out the kinks in your design and your rules before you commit to writing even a single line of code.
Coding (figuring out the machine and how the machine works) is fun. But that “fun” should be reserved for a very distinct phase of development.
Even a simple paper prototype (even for an arcade game) is useful to determine how the player’s spaceship (or whatever) moves about on the screen. How enemies will move, and so forth.
I can prototype in a few hours with figurines or dice or pieces of origami and a large sheet of graph paper how a game will play and some of the fun to be derived.
Whereas I would spend days or even weeks determining if the game play actually works if I were writing out the assembly and converting to machine code.
Programming is immensely fun, but solving interesting problems with figuring out how the machine works should really be a separate development step than figuring out how the game should play.