Building Something Cool Chapter 3: “If You Love Something, Set It Free”

March 2015.

On March 2nd, Unreal Engine announced it was becoming free.  Along with that, Unreal released version 4.7 of its Unreal Engine software.  It was a huge day for our little capstone project.  Everything seemed to be clicking into place.  Not only were we knocking out a surplus of tasks early on, but we were also on the forefront of a game design MOVEMENT.  We were ecstatic.

Then we read the release notes.  This epic update was not just changing the game design mantra and buffing an already polished design – it also changed a whole slew of inbuilt function headers, names, and so on.  This is good and all, but more than half of our c++ classes and functions had to be re-written or updated, which was a huge setback.

Sam, Isaac, and I toiled over the hundreds of lines of code we had all already written in an effort to fully integrate 4.7.  We deleted classes, pieced together broken function calls, renamed dozens of outdated references, and debugged our butts off.  Though Kurt and Julia were able to continue work without many interruptions from the update, by the time Isaac, Sam, and I were done updating…

April 2015.

… well, you see where I’m going with this.  After a sprinting start in the first week of March, I had stumbled on the usable actor class I was supposed to implement.  Isaac had only finished half of the animations we needed and still had not started testing out the VR mode. Of course, Sam was still popping out c++ classes like it was his job (it kind of was, but that’s a different story).  However, he was now doing so at an admittedly frustrating pace, due to having to relearn many of the class/function declarations he had already learned, along with having to adapt all of the new stuff into an entirely new architecture (we were now using mostly blueprints).

Beyond the setback of the update, we were hurting in some other implementation fields.  Kurt was struggling with the incredibly complex art of AI in Unreal Engine (for which debugging is often impossibly abstract).  Sam was being crammed with not only his work, but most of the overflow of other group members’ issues.  Julia was having to make some hard design choices, especially when deciding which elements were superfluous and which were essential.  As for me, I had no attached sounds, no player market to speak of, and the usable actor class (I finished a couple weeks into April) was proving to be much less useful than previously thought.

And to top all of this off, STEM backed out of their promise to have developer kits out before the middle of March.  The due date was two or three weeks away, and all of the sudden we had to explain to our professor that an integral part of our design, hand motion, was no longer viable.  We had to scrap a huge piece of our user experience, which upset several of the members of the group immensely.

We were in a nuclear meltdown.  A month and a half ago, we were at optimal cruising speed, and now we were in atmospheric reentry with a malfunctioning parachute.

However, we knew what we had to do – plug on and get this thing finished, come hell or high-water.

Building Something Cool Chapter 2: Dev Days

In this installment of Building Something Cool, I will be going over the first few months of development of our project, and I will discuss the challenges we faced while learning and growing accustomed to the Unreal Engine interface.

image courtesy of Zak Parrish, youtube.com (unreal engine's channel)
Image Courtesy of Unreal’s Zak Parrish

December 2014.

After getting our design fleshed out, it was time to get started with the real work for the project.  Knowing the sheer amount of stuff we wanted to have in our game, we decided to start early.  Before the semester had come to a close, we had already tested our peripheral, the Oculus Rift, and had a github set up for our project.  There was an uphill battle ahead of us, but we took early steps to ensure that we were up to speed before we started our climb.

January 2015.

Having made a repository for Angelis, set up a virtual reality lab on campus (with some badass new graphics cards), and hammered out our design, it was time to write some code.

Cue the classic Scooby-Doo line, “let’s split up, gang.”  Sam, Kurt, and I began work on the C++ classes.  Julia started doing some level design.  Kurt also began work on AI research.  And, Isaac began hammering out some code for the character animations.

I was tasked with creating a usable actor class.  For this, I needed to make it so that we could form actions around specific objects in the game world.  If you clicked on a spawner node, for example, a weapon would spawn close by (or in your inventory).  If you walked in front of an elevator, the up or down arrows would light up when the reticle was over, and the elevatory would move correspondingly.  This was also important for several character interactions, such as picking up a weapon or handing a weapon to an ally.

Kurt was working on AI classes.  For this, he needed to create a diagram of ways the AI interacted with the world.  This involved creating a state diagram, with four super-states – rest, patrol, alert, and attack – and many sub-states and nodes.  Also, he had to manually create cover nodes for the AI to interact with.

Sam had reign over all of the character and weapon classes.  He would gather attributes from our shared Trello page, then file them accordingly into classes.  After this, he would tie them in with character or weapon blueprints and get them all working in one of our test maps.

Julia, after reading up on several design books, was working diligently on creating a captivating level.  After creating one based on her original design, she made the revelation that it was entirely too large for use in the game mode we had in mind, and so she made up a new, more relevant level model.

Isaac was making slow-and-steady strides in the animations department.  Finding assets and applying them to our current characters and weapons was his first task, most of which were readily available in the Unreal Engine asset store.

A couple weeks in, and we had already made strides that some groups weren’t even thinking about yet.

February 2015.

Barring some early midterms, most of us were putting hefty hours into the project every week.  With the semester beginning to fly by, we knew that persistence was paramount to finishing on time.

I had compiled a comprehensive list of game sounds, as well as finalized my economy formulas; I was falling behind on the usable actor task, but I made some real headway on sound assets.  Kurt and Sam ground out several working test levels and characters.  Isaac found some useful information about an upcoming VR mode for Unreal.  And, Julia finished her level entrance.

Things were shaping up fast and we were ahead… but that wouldn’t last.

The Ten Rules of Gaming

Here is a little story I wrote when I was a junior in high school in 2009.  It’s one part hilarious, two parts relevant, and many parts facetious.

I thought that this would be something funny to write about. So here are my ten rules of gaming.

Rule number one-

We do not talk about gaming… to attractive women. Gaming, while it may be the ultimate form of entertainment, is also the ultimate lady repellent.

Fight club ref. Solid start.

Rule number two-

The noob is a subgenre of human that is the scum of civilization and deserves to be crushed in all situations.

Amen, little me.

Rule number three-

Any gun that is cool and/or useful in a first person shooter is not to be used EVER in online play. Those who use such weapons are dirty nooblets and will be trolled. such weapons include, but are not limited to:

the noob tube (CoD)

the sword (halo)

the sniper rifle (any fps)

the chainsaw feature (Gears)

Rule number four-

Screen-watching results in nut-punching. Don’t do it.

Rule number five-

If you can’t tell me what any of these abbreviations mean, you need to gtfo:

LAWL

FTW

FPS

MMORPG

PvP

PvE

SNES

Rule number six-

Just as being social requires consuming copious amounts of alcohol, gaming requires consuming large amounts of mountain dew and sometimes energy drinks or dr pepper.

Or alcohol.

Rule number seven-

The C stick is not a valid instrument in super smash. This is the most sacred rule of gaming. Violations of Rule seven result in severe punishment.

Rule number eight-

Trolling is not cool. It is off-limits unless trolling a noob or a troll.

Rule number nine-

Anyone who humps people they kill in Halo is an 11-year-old nooblet vagina.

Rule number ten-

Achievement gamers are NOT real gamers. Achievements are cool but real gamers game for the experience, not for the experience points.

And that’s my list of the ten rules of gaming.

Well, there it is.  Little me… err… skinny me wasn’t playing around with that writing style.  I have to say, getting serious on the last rule kind of brought all of the elements together (and it is definitely something I haven’t changed my attitude on).  I hope you enjoyed this old list of gaming guidelines.  I know I did.