Tuesday, November 21, 2017

We did a Game Jam! How it happened and what we learned

Sub-Zero Squirrel Games



Little Rock, AR - November 21, 2017

tl;dr we made a game in two days: Hamsterball Heist (xkcd GameJam Game)

I just sat down to start this blog and realized it's been exactly one year to the day since we've posted anything. There's a half finished on sitting in the drafts folder that I started about three weeks ago and never got around to finishing. 

Nonetheless...

This past Friday afternoon, instead of being a productive member of society, I decided to see if our measly stats on Itch.io had magically blossomed into a cult following. 

It hadn't.

But for some reason, I continued to click around the site until I ended up in the Game Jam page. And right at the top, dead center of the page, it told me that the xkcdGameJam was just getting started. I'm a huge fan of xkcd, and have spent hours lost on their site reading comic after comic. I'm not going to chance losing you just yet, so if you want, there's a link at the bottom of this post.

So I spent a little time clicking around xckd randomly until i fell upon this gem:

source: https://imgs.xkcd.com/comics/hamster_ball_heist.png
Being both a fan of Hamster Balls (if you've been with us since the beginning, we started out on a project called Huey the Hamster, which we were not yet ready to build) and The Flaming Lips, i couldn't pass up a chance to make this into a game. So I took my findings to Joe, told him what was up, and we agreed to take on the challenge of making a game in just one weekend.

This was Friday afternoon. Submissions were due by Monday morning, 5AM local time. Plus we both had agreed to volunteer at the Cosplay Con which was on Saturday.

It turns out Joe is also a fan of both xkcd and The Flaming Lips, so he set off immediately to make a Wayne Coyne with running animations. Have a look at this:

notice the beautiful long curly hair and goatee. I said, "Yep, that's Wayne alright."

In the meantime, I started playing around with the Hamster Ball. Simply enough, it's a circle. We add some physics to it, and a way to control him. Simply put, run left, run right and jump. I'm particularly proud of the jump mechanism, since you don't really jump the ball until Wayne hits the top of the ball. In other words, you hit jump, Wayne jumps, hits the top, the the ball goes up. We tweaked on that a little and discussed what other things we might want in the game. Then it was dinner time, and we both called it quits for the night. 

Come Saturday, we both went to work at the Cosplay con, which meant we weren't getting any work done on our game. However, since time at the Con wasn't intensive or require a lot of interaction with others, we had time to decide what we were going to do. We settled on which mechanics we were going to try to incorporate and which assets would need to be created in order to bring it all to life. Now here's where only having a couple of days to complete a game helped us out. We have a BAD habit of starting out on a project, and keep trying to add new concepts and ideas to it as we go. What should be a simple project that should only take a couple of weeks, ends up taking months, or in the case of Super Laser Jail, over a year. Our word of advice to each other:

So we settled on just a couple things. 

  1. The comic (see above) definitely shows the shove mechanic being employed. So we made a pushy-shovey guy
  2. It's agame about crowd surfing. Hitting the ground needs to be a negative
  3. There must be unicorns. Wait, that's a TFL song. There must be beach-balls, and they should be bouncy. Someone should be throwing said balls. We cloned the pushy guy and gave him an unlimited supply of balls. 
  4. No matter which show you go to see, some drunk dude will be throwing bottles. Back in the day, those might have even been glass bottles. They'd be plastic today, but it's a game. Clone the ball throwing guy, and give him some bottles instead.
Put all those together, and it looks something like this:



Late Saturday afternoon, we finally get back to our respective computers and get to work. We realize that this is a platformer/runner and start our first level. We worked for a few hours and then called it for dinner with our respective families. 

Sleep.......

I woke up Sunday morning raring to go early. I saw that Joe was on, but just wanted to get some work done. I ran across an issue which was plaguing me to no end: Raycast2D in Unity will hit the inside of the collider from which it is cast. 

WTF?

This is NOT how it works in the 3D physics engine in Unity. The sides of 3D colliders are one way, outside-in, and not the other. I know this because of my work on the refraction and reflection of light for Super Laser Jail. I could not, for the life of me, figure out how to get past this. I tried ignoring raycasts on certain layers, but could implement that until I finally learned about bit shifting. Bit Shifting is a way of encoding the individual bits of a byte. You look at the individual zeros and ones as on/off flags. Finally, I got my raycast working and we could move on to other things. 

Mid morning, Joe and I start a video chat and work together like that throughout the day. Pro Tip: schedule breaks ahead of time, so you know when you're going to break. Otherwise, you keep working until you're exhausted/starving and you aren't as productive. We could have done better on that edge. 

The best part of the experience is that we got to work on things together, at the same time, and we used Unity Asset Server as a transfer system. We both kept the project up to date while at the same time having some version control in case something went incredibly south. It's hard to demo a game across a network, so he would be able to play it in his copy of Unity as well as change assets in mine on the fly. If you're looking for a free version control system, Unity's Asset Server is not the best out there, but it definitely works well for a free service. 

The time constraint meant that we couldn't worry too much about little buggy things or even making the art look great, which it does look pretty good for what it is. This also meant we didn't have a lot of time for sound, which upsets me, as I really like that part myself. We found some decent sounds online and used those, including an actual sample from a Flaming Lips song (The W.A.N.D.)

All in, we turned our game in late Sunday night, after both our families has gone to bed, and although I didn't have to work the next day, Joe did. I think we both went to bed ourselves happy and proud of what we were able to accomplish.  

We think you'll like it too. The link to play is at the top of the page. Here's a zen Wayne Coyne:



Next Episode - What's up with those crazy robots?

Until then, Stay Frosty,
~Sub-Zero Chuck