Tuesday, May 5, 2015

Rock Star Programmers

Left to right: David Onken, Skyler Chase, Andrew Clark, Michael Banks
So Michael worked what I consider to be a small miracle during the course of this project, he put multiplayer functionality into Flux. This was not a feature that I thought was doable with the time and resources we had. This is a shooter, so synchronous gameplay is critical for multiplayer success.  Synchronous gameplay means that what happens on my screen is exactly what's happening on the other player's screen at virtually the same time. For example, if I wanted to shoot another player, I'm going to aim at a particular spot on the screen, a spot where I believe the other player actually is. If there's any lag in our game, then that player has probably moved from the place I'm aiming. Resulting in me thinking I'm shooting at someone who isn't actually there.

Asynchronous mobile games exist, Draw Something is an example of this. I make a move, then the other player makes his move. It's not critical to the game that the players be in sync. A lot of games do this, already. Synchronous mobile games however, are a lot more rare than asynchronous.

Multiplayer support has always been something I want to do with Flux, but I presumed it was something that would come down the road. When Michael set out to do this, I admit I was pretty skeptical - skeptical but impressed. A lot of really cool things are made when you don't know that you can't make that thing. So when Michael said he was setting out to do it,  I was really excited to see what he'd come up with.

I've played an earlier version of multiplayer, Michael was playing on his laptop and I was playing on a mobile device. Sure enough, we were playing together. I was shooting him and he was shooting me. It was pretty impressive.

I haven't played the recent version, but look forward to seeing what Michael has built.

This is only one of the things that the programmers did that I didn't think we'd be able to do. Especially considering that these programmers had virtually no game play programming experience before Flux.

The ai is another example of this. I thought that getting complex ai behavior in the non-player shapes would be something possibly too difficult to add in the time we had. I was prepared to make it work with backup solutions, and would have been ok with that. But as Andrew started implementing the different ai behavior, it became clear pretty quickly that we'd be able to have a relatively robust ai feature set. He worked hard throughout the whole project to get this in.

 I also really appreciated Andrew's leadership and communication abilities. Communication and schedule management have never been my strongpoints. It was great having Andrew take charge with a lot of those things. I think his cool head definitely helped in stressful times that we all went through.

Skyler not only owned all of the controls, created a mini game, implemented the levels, and probably a ton of other stuff I'm unaware of, but he also created some of the art assets and animation. He animated the shapes changing when they got hit. This was a crucial part in helping people understand the evolution devolution idea. It was something that sat on my plate for a while that I was never able to get to. He finally just made something himself and implemented it.

He also created the sound track for the whole game, which has an awesome retro electronic epic feel that I think works really well.

On the CS Capstone demo day, I noticed that he had also created bullet and exploding FX to the game.

When discussing new features to implement, David was usually the first one to say, "That shouldn't be too hard." I don't know how much of it was actually harder than he implied, but the fact that we never heard about it speaks to his always positive attitude. He was also probably the most experienced gamer among us, which came in handy. He provided me with a list of all the games he's beaten, as well as those he has yet to beat. It was quite an extensive list, I didn't even recognize some of the games on the list.

The programmers also deserve a ton of credit for having to put up with me and my lack of time, bad scheduling, and poor communication. They definitely made the most out of what was given to them, and I really appreciate their patience with me.

Ed Catmull recommends working with people smarter than yourself, and I definitely lucked out by being able to work with the kind of intelligence, talent, and hard work of Michael, Andrew, Skyler, and David. Thanks guys it was awesome!

No comments:

Post a Comment