Wireframe - #35 - 2020

(Joyce) #1

 Pictured: inside the mind
of a programmer. Maybe.


 Tea? Coffee? Water?
Whatever it is: use a
quality mug.

Advice

Toolbox


Analytical, a complex relationship with rules...
Howard takes us inside the mind of the programmer

The principles


of game design


ass to work. Oh crap – traffic!” Same situation.
Same reaction. Different language.
Now let’s look at programmers. Programmers
are more than systems engineers; they are a
rapidly growing segment of the population. We
are increasingly likely to run into programmers in
our day-to-day lives, so it’s probably worthwhile
getting to understand them a bit more.
Computer programming is a complex and
conceptual undertaking which happens entirely in
the mind. Where else can engineers build working
systems without building muscle mass? Since
computer programs must handle all possible
inputs, programmers must spend their time
trying to think up every perverse thing that could
happen, regardless of likelihood. This includes
the absurd, the incongruous, and the unseen
consequences of complexity. Programmers are
responsible for handling it all correctly (even
things they don’t know about or can’t imagine),
and every miss is a bug that may reflect poorly on
their reputation. Ever try planning for unforeseen
events? It can be very stressful. This is a tough
place to live. Keeping your head in this place
too long can lead to a phenomenon known as
Programmer Brain, and it isn’t pretty.
When you only think in terms of exceptions,
you can lose touch with ordinary happenings and
the regular flow of life. Many programmers fall
into this trap. They’re so busy trying to protect
the software from extraordinary cases that they
lose their sense of proportion. Most people tend
to focus on the usual stuff, figuring they’ll deal
with the exceptions as they arise. This works
pretty well, since common cases are the vast
majority of life. It’s not so good for programmers

AUTHOR
HOWARD SCOTT WARSHAW
Howard is a video game pioneer who authored
several of Atari’s most famous and infamous titles.
onceuponatari.com

computer program running
on a computer is a system.
Programmers who create, modify,
and repair them are systems
engineers. Systems engineers
analyse systems to determine their capabilities
and limitations. Then they figure out how to
best achieve goals within those systems. This
is something all human beings do. We are all
systems engineers, it’s just that most of us don’t
do it explicitly with specialised language.
For example, a systems engineer might wake
up and say, “Hmm, I discovered a bug in my
set-up procedure last night, resulting in a current
circumstance outside the range of acceptable
outcomes. To recover to a nominal situation, I
must derive and execute an optimal (or near-
optimal) strategy for transporting myself from
my present location to a predesignated alternate
location in minimal time. This strategy must
assimilate and accommodate the current state of
all relevant environmental parameters.”
Most other people would just say, “Oh my
God, I forgot to set the alarm. I better haul my

A


28 / wfmag.cc

Free download pdf