By: Christopher Beckman, Full Stack Web Developer
I’ve been gaming pretty much for as long as I can remember. My first game was Super Mario Land on the Game Boy Pocket, and I’ve only played more since then. A natural growth from playing games was my growth in technology. I learned how to build computers and write software all so that I could be closer to understanding how games work.
Before my life as a web developer and my time with Eleven Fifty Academy, I completed my capstone course for my Media Arts and Science degree as a video game using Unreal Engine, one of the mainstays of the gaming industry. While I was in college, I had the pleasure of spending almost a solid year tinkering with the engine. My capstone for my degree was a first person story driven game called Peregrination and it was a labor of love for me.
My actual experience in designing games started about a year before I created Peregrination with the first version of the game I called Ebirah at the time, which was built in the Unreal Development Kit, UDK. The game design course at IUPUI ended up switching to the latest and greatest Unreal 4 engine for game development and, aside from a brief bit of confusion on how old things worked, I think it was for the best. The differences between the two engines are numerous and I’m by no means an expert, but sufficed to say that Unreal 4 is a definite improvement, especially when the engine went free to use for everyone as Epic Studios decided instead to create a marketplace of content for game designers.
An Overview of Peregrination
Peregrination has you, the player, taking the role of a maintenance robot on board the titular space ship. You find an elevator, or Hexivator as I call it – a floating platform with a column allowing the player to select one of three buttons. Most of the time it’s easier, resource and scope wise, to have either a menu open up to allow the player to select what level they go to and then load that level or to have the elevator switch between two levels. These solutions, while somewhat simple in their approach, left me wanting to do something more with the mundane concept of elevators. I quickly chose to develop a 3 floor elevator. This required a lot of work.
In retrospect, there were probably simpler ways to proceed with the grand experiment, but I was naive and just got my hands on one of the most powerful game engines in the world. I used the visual editor to create a flow for how the elevators would work. The image above represents the culmination of my work. Let’s dissect this monster of an event.
The key to how the elevator works is the sequence, which fires off every millisecond in the game. There are six possible courses the sequence can take, but it can only take one of them at any given time. The variable ‘isVatorMoving’ basically prevents any movement when the Hexivator is moving from one floor to another. All the logic flows from there with the system determining where you are and where you are going. It then plays the proper animation to get you from point A to point B.
Looking back on it now, after having been through the Accelerated Learning Program at Eleven Fifty, I probably could have made the function a bit better in terms of reusable code. There is a lot of redundant code that could easily have been converted into a single function that used more variable work to get the player where they wanted to go.
However, I still completed my goal of making a realistic functioning elevator, and my capstone came together rather well. It’s interesting going back almost two years later and looking at the configurations I did back then with the knowledge I have now.
I haven’t gone back to Peregrination since completing the version that I used as my capstone a year ago. However, now that I have a better grasp of code and conditional logic, it might finally be time to look back at the project and develop it into a full game.