Every video game, from World of Warcraft to Tic Tac Toe, has one thing in common: they are incredibly complex orchestrations of data. Even the simplest of games, when analyzed objectively, involve intricate sequences of logic and math in order to function.
For example, explain the logic behind jumping on goombas in Super Mario Brothers to a non-developer, and they’ll easily grasp the concept.But walk through the state changes, collision detection and conditional statements involved, and they’ll be dumbfounded that such a simple action can require so much legwork.
Yet some people can’t get enough of digging into the details of giving precise instructions to computers to bring about such superfluous actions like jumping onto a goomba or falling into a pit. Meanwhile, some people love tinkering with these systems so much they eventually find ways to do it professionally. But they don't dive into urban engineering or real-world construction - somewhere along the way, they were captivated by games.
But why get involved with video games, which tend to be entertainment products of little practical use, instead of impressive fields with immediate real-world applications like space travel, automobile engineering, or genetics research?
For some, the precise lack of real-world consequences is reason enough. The consequences of faulty engineering in almost every field of industrial design can certainly lead to injury or death – in high-rise elevators, in medical life support equipment, in carbon monoxide detectors, and so on. Games, meanwhile, often do not have ramifications of any kind in the real world.
Yet even though making a video game rarely inspires the same degree of wonderment as fabricating your own car or building your own house, the immediate visual feedback when working on a game project is enough to make game development as appealing as it is.
Which is why the practice of developing video games, with its lack of real-world consequences, is the chemistry set of the internet age.
The benefits of approaching game development this way are easy to expound. When you explain to a non-developer the logic behind Super Mario Brothers, or the ghost pathfinding in Pac-Man, within minutes you begin to see a completely new type of understanding unfold across their facial expressions.
As they piece together the new information, comparing their newfound understanding against all of their previous experiences playing and interacting with video games, the rush of insight they feel is exhilarating, granting them access to a completely new way of looking at software in general.
At the same time, using the example of games to teach the basic building blocks of software engineering is not only an unbelievably useful way to educate younger (and older) generations, but can also be employed as a useful programming aptitude test.
For example: Do the underlying concepts behind game logic excite you? Maybe you’ll have the technical aptitude to be a programmer one day. Don’t like the more complex functions and math, but still enjoy the logic puzzles? Perhaps you would enjoy being a level scripter, technical analyst or software support technician. Don’t like any part of it? If you can’t relate to the fundamental engineering ideas in the context of something fun like a game, maybe programming isn’t for you – and that’s OK.
Engineering of the Absurd
Rube Goldberg’s signature works in elaborate, theatrical machines aren’t just entertainment artifacts or installation art. They’re a hidden-in-plain-sight lesson in a certain strain of engineering: engineering of the absurd for the sheer delight of the practice.
For disciples of this kind of engineering – the game programmers, scripters, designers and tinkerers – the process of making the game itself becomes a logic puzzle that engages the mind and provides sheer pleasure when a system finally works.
This is why in the era of the internet – spawning initiatives like CodeAcademy, accessible development frameworks like Construct 2 and the multitude of tutorials and FAQs available in hundreds of languages – the barriers to becoming a game developer are lower than ever, bringing in untold amounts of new people eager to embrace the absurd complexity that stands between them and their vision.
We now have a massive 'playerbase' playing the games game, expanding exponentially, performing their own chemistry experiments, learning about how this new world of software functions at the core.
And that is truly a beautiful thing.