Page Created: 6/24/2014   Last Modified: 3/17/2016   Last Generated: 12/11/2017
I have more fun building the world, however, than playing it. One of the first things you learn when trying to program a game is creating the background, such as a maze, and moving your player spatially against the background. That is the core of the roguelike.
Most 3D MMORPG's or first-person shooters are actually very similar underneath. There is code underneath tracking your position, the objects, and responding to events in the world. That code underneath is the roguelike logic.
Just like chess, the rules of a roguelike can be basic but lead to complex outcomes, known as emergence↗. But unlike chess, a roguelike is not out to beat you--it is just a world you enter into and experience the consequences of your actions accordingly.
I found that any artificial intelligence algorithms I create for the roguelike could be used for robotics applications in the real world, almost like a testing ground. So I decided that robotics and the roguelike game should be developed simultaneously. I try to line up a lot of projects in this way, overlapping them so they multiply my time and energy.
The roguelike, for me, is also an exercise in minimalistic computing. If you always work in high-level languages and game engines, you might not realize that the same "design patterns" you use at those high levels can be expressed on the lower levels as well. The object model in object-oriented programming seems like a perfect fit for AI "monsters", but, in my opinion, this is too complex and limiting. It is also an exercise in complexity theory, as the sum, mysteriously, is far greater than the parts.
In May 2015, I built a prototype of a solar-powered roguelike and gave a presentation at the first US International Roguelike Developers Conference (US IRDC) at Georgia Tech and met a lot of talented people involved in making such games.
When I was 13 years old, back in 1983, in one of my gifted classes, we were each provided with our own TRS-80 computer for an hour at a time, a great privilege during those days, since the entire school only had a few of them. Most children never got to use them, unfortunately. We were instructed to make a program, and I decided to make something fun, so I made some simple animations such as a Cheshire Cat, the only kind I knew how to make. But one kid in the class created an entire game, called Ram Attack, which blew my mind. He allowed me to print out his source code and I studied it and was shocked at how simple it was, using X and Y variables to track position in Cartesian space, and counters to increment them. At that time, I was thinking linearly, not using the power of loops and variables. It was an epiphany that changed my entire style of programming. He later became a computing professor at Georgia Tech↗, coincidentally the very campus where the first US IRDC took place.
It is these same principles that can be employed in the roguelike, but through interaction with the environment, complex behavior can result, sometimes unpredictable.
It make me also question ourselves. Do we operate from an internal model in our brain, like most people think we do, or are we fused into the fractal shape of our environment, which produces our intelligence? If human beings evolved in an empty, white room, we would be very different today. But we evolved in jungles, forests, mountains, deserts, and plains. The environment shaped the structure of our brain. Similarly, the environment in a roguelike can shape the structure of the AI creatures.
Those tiny loops and variables, the iterations, like in Ram Attack, is the mechanism that may have shaped our universe↗. The universe is like a randomly generated maze, and our lives are paths through this maze. Sometimes we see the walls of the maze, sometimes we don't, but the maze is still there.
A lot of people want to add more complexity, but I believe that the world will do that for us. Instead, we need to examine and re-examine simple constructs, and study how the world interacts with them. We don't have that figured out yet.
* * * *** * * * * * * * * * * * - * * * * * * * ***** * * * ******* Comments