xvi
“From Hello World to Halo—It’s Just Code!”
are doing rather than the specic functions. If you still don’t understand the syntax of the
code, you should undertake a beginners’ coding course, there are several online.
In addition, despite the title, this isn’t a book solely about programming Single Board
Computers (SBCs). e use of a cheap target system is a means to an end to encourage the
reader to limit expectations and work within tight constraints, which game programmers,
especially console programmers have to work with. I want primarily to focus on gameplay
concepts and game structures, which will let us get games up and running really quickly.
However, we do have to introduce some technical concepts later, when we’re a bit more
comfortable, because most of these technical concepts will have a direct impact on the
performance of your games. You will need to know just enough to avoid some pitfalls and
get things up and running correctly.
SBCs are usually quite simple systems, so building a working knowledge of the fairly
generic hardware to produce graphics, sound, and data storage is generally easier to learn
on them, than it would be on your up to the minute PC, which will shield you from errors
by virtue of massive processing performance and near unlimited memory.
Once understood, all of the concepts and projects in this book are easily transferrable
to any development target where the reader can stretch their growing skills on more pow-
erful systems while still being mindful of the need to work within constraints of hardware,
which are hard to push, and personal limits, which should always be pushed.
But SBCs are really fun to work with, cheap to acquire, and present a real sense of
achievement when you make them to do more than just act as media servers or control units.
Most important, this is not a how to do x, with y kind of book. I want to take you
through a journey of discovery, mine as well as yours, and provide suggestions and work-
ing examples on how to do things that games need, and let you decide if the approach I’ve
taken is valid. I want to make you question things and hopefully come to dierent conclu-
sions, using what I supply as a base for debate and expansion rather than a gospel to be
followed. When working with beginners, I don’t believe in imposing the right way, I prefer
to have faith in, “this works for me, can I make it better?” e right way, for you at least,
will come with practice and the joy of achievement.
What Are We Gonna Do?
For the last 9years, I’ve been teaching beginner-level game programmers how to write
computer games. Not so much the actual languages used in programming, but the prin-
ciples of actually creating games. Starting with simple space shooter games, scrolling plat-
formers, maze games, character animation games, and so on!
Eventually, at some point in their development when they start to move beyond such
simple themes, and their condence is high enough, I then encourage them to take their
rst steps in writing more complex 3D immersive games on consoles, such as the Nintendo
Wii U, Microso Xbox One, and Sony PlayStation 4.
It sounds like a massive leap, to teach beginners how to make a simple space shooter
game in 2D to then write games on the most powerful consoles on the market, but in fact
the progression is really quite simple. Coding is coding…once you have the basics in your
head, the rest of it is down to understanding how to get your code to work on dierent
machines and with increasingly larger projects, only the levels of complexity change.
Internally, you could not nd more dierent machines than a PC, a Nintendo Wii U,
and a PlayStation 4. However, the basic ideas of getting something to appear on screen,