Game Jam Rules
Global Game Jam: No starting early. The theme of the jam is announced Friday at 6pm, and you will have until Sunday at 4pm to create a game with that theme from scratch! A jury of local industry professionals and UT faculty will judge our games at the end of the weekend.
Date: Jan 29, 2016 - Jan 31, 2016
Intro to Valve
The first consumer version of the HTC Vive VR Headset was released on April 5th, 2016. This was months prior to. The amazing people at Valve decided to join us at the jam with an early release headset for all to try out and develop on, and even sent us a Valve employee on standby! I watched The Great Unboxing and was no less excited than the first time at the VR Austin Game Jam.
The clock rolled to 6pm and the jam theme was announced planet-wide: Ritual.
I start to picture how cool it'd feel to cast magic in VR, and that could definitely rely on doing a ritual. The headset does have a mic, but it would be more interesting to watch a wand draw energy sparkles in the air. But, I didn't exactly know how to create vector art real-time from the controller's position, so this idea depends on having a coder who could do that already. I knew from past game jams that there's very little time for research and trial and error. I ask my last jam buddy who already knows how to code for the Vive and is a good programmer. Of course he could! But, he's already committed to another team. I quest on. Others are also thinking along the same lines, one thinking of a witch cauldron and one thinking of a Satanic ritual with a pentagram and such. I refine my idea to not overlap theirs as best I could, deciding to add in some humor while they're making horror games. Wizardry instead of witches, magic more than demons. Why not focus on the act of casting itself, and what might happen if a spellcaster did it wrong? The laser precision of the Vive is incredible, so it should work if I wrap the gameplay challenge around tracing a shape in the air as perfectly as possible. Someone at the last VR jam made a game where you precisely draw a line through small hoops, and found out it was too easy. Again, the Vive is amazing. So, it would be best if the player saw the correct shape only for a brief moment, and had to go on spatial memory. Maybe with some tension compelling the player to hurry up. I figure a spellbook could show the correct shape permanently, and a sprite could show the version in the air for a brief moment. Particles sparkling off an animated line would be best, but this is a game jam!
I found a couple programmers and a sound guy who were happy with the idea, but neither knew how to work the line tracing mechanic off the top of their heads. One was unfamiliar with Unity entirely, but hoped he could be of service. Together we circulated among the almost 100 attendees and found one who loved the idea and could make it happen! Time to get started.
We fleshed out the rest of the idea together. You start out as an ignorant wanderer in the forest who finds a magic wand. You see a spellbook before you. There's your village off in the distance. You activate a page of the book, and a shape blazes before you in the air. If you trace it, you cast a spell that helps your village. Who wouldn't want to do that, right? However, if you're off a bit, you end up casting a destructive spell that either hurts the villagers or harms you!
I get to work on the level and sculpt out a landscape with a ledge and a dense forest, but with a clearing where you can see the to-be village below. I model some rocks and stack them into a short wall that stands out from the rest, where the book will go, and orient the starting position to where you can't miss it. Time for the real fun - to check the scale in the Vive!
Fantastic. My screen has become my world, and those pine trees are *right there*. My controller moves through the branches, exactly where my real hand is. We trade off and agree, and I get to work on tweaking the scale. The 'village off in the distance' feel was good, but the tree height needed some work.
The first interruption in flow came after I modeled the wand. How exactly do we attach it? Again, only select companies and devs have had access to a headset up until now, there wasn't much help online. Our programmers looked at the Vive hand tracking code and it wasn't exactly well documented. I asked the Valve employee and he cheerfully said you just code it. Shorthand for, "Just open up our proprietary code and hook into our input system." I went back and looked at their slightly documented controller code with our team, and were stuck again. He hadn't been around CS students in a long while, it seemed. I asked again and he gave us a thumb drive with a neat feature simulating the headset without the headset, but it didn't solve the wand problem. After some guessing and checking we found we could just parent the object to the hand and disable their model code. Ha, no coding needed after all.
We then focus on sound - what kind of mood are we going for? Zelda adventure? Chipper and comedic? Ominous? Natural and woodsy? Of course given the option, we all leaned towards Zelda. Then, what kind of sfx? Are we needing explosions, rain, or only magic dust sparkles? All of these decisions were needed before our sound guy could really get started. That linked right back to me, as the artist, will the sky be overcast? Should the book's illustrations be sacred or cartoony? Semi-serious seemed best, so we could transition the player from feeling safe to suddenly being on-guard. Satisfied with the right mix of direction and freedom, our sound guy went home to custom mix the perfect tracks, preferring a quiet environment.
The next code challenge appeared. Our main programmer couldn't quite figure out the core mechanic. Android swiping is the same concept, right? How hard could it be, he thought? Too many hours were going by. The others were googling code and offering potentials that didn't work out. Being an artist transitioning into dev, I had the incentive to avoid code when possible, and I'd become fairly good at it over the years. I did know how basic trigger collider code worked, and offered a solution. We could create the illusion that the player is accurately tracing the shape by only caring if they hit a handful of invisible colliders or not. They would need to hit them in order, to prevent a random scribble from counting. The programmers agreed, and we were back in business.
I finish the book model and set up the UV's so any image will show up like a page. I could animate it opening or have pages turn, but, it's a game jam and I really shouldn't. It's magic anyway, right? The spells were the easiest part as I'd already purchased a particle effects pack for Chi Me UP and had some uses in mind. I'd still need to test it, scale it, refine it, and have secondary effects show on the village, but that was all skippable if the deadline came up too fast. I was feeling ahead of schedule for once!
Most went home by midnight but I was still good, and really itching to try out a second idea while the VR was lying there, tragically unused. Now knowing for sure how to attach objects to the hands, and already knowing about colliders and physics, I figured a way to reduce my code needs down to one simple emitter... and maybe a counter... and a deleter. I asked the only programmer of the three still with me if he could do me a favor? He said it was trivial and pounded away at the keyboard, and lo, I had my emitter that displayed a debug counter and subtracted upon collision with the deleter! I finished modeling a small room with huge bevels and interesting indentations that I'd started on before the jam in hopes I might have time. Behold - I could now play Keep It Up in VR! You know, the game where kids have to keep the ball from touching the floor. I had a cube emitter instead of spheres for the moment, and my paddle was a huge rectangle, but it worked!
Except, beyond all expectation, it didn't feel good! When 3ft gray cubes fell through my head, my body tensed up, expecting an impact from something at least as heavy and annoying as a cardboard box, maybe worse. VR is immersive, for better and for worse. For this to be fun, I'd need to do a lot more thinking on what art might best imply a safe, harmless environment to the body. Intrigued by the discovery but disenchanted, I decided to focus on the task at hand.
Sunday devolved quickly as we had all mentally considered it another 'day' when it was only 4hrs, and we still had to take some screenshots and do a writeup about the game before submission. Not to mention precious minutes spent making a build, then needing to test it in VR on another computer, then bug fixing. Every corner got cut, and then some. The sound guy had finished all of his work on Saturday and brought it on time, but he didn't know how to add it in to Unity himself, which added to the programmer's load. The collider solution worked, but the code to force the player to hit them in sequence had a bug. The bug was more important than the music and even the spellcasting, as nothing could be triggered without it.
I jumped to submission duty and started taking photos, screenshots, and doing a quick something in Photoshop for the logo. I knew the pages of the book and further artwork was not going to make it in, and the music and sfx ranked higher in priority, if there was even time for it. No names... but we were short one person on Sunday. We wondered, if we upload a build early, can we replace it? Can we replace it.... late?
Suddenly the programmer announces the bug is fixed, and we make it in on time! Uploading took forever as this is a global game jam with the same deadline, all uploading to the same service, and of course all last minute, and our local judges were forgiving. It's all in the name of fun, after all.
Our presentation felt pretty lame as the hidden colliders were not hidden (for the sake of debugging under the looming deadline), but it did WORK and we were able to show off the scenery, the story, and demonstrate an explosive failure. The game, and the name, became symbolic of the natural hazards everyone runs into at a game jam, especially with new hardware. Every success is actually a bunch of failures all stacked together!
Stephanie Traska - Team Lead, Game Designer, Level Designer, 3D Modeler, Texturing
Dan Lewis - Unity Programmer
Matt Dechatech - Unity Programmer
Tad "SpaceManiac" Hardesty - Programmer, Game Design
Kevin Song - Music, Sound Effects
Other assets provided by Valve, Particle Playground, and Unity
Game Jam organized by UTA's Game and Mobile Media Applications (GAMMA) Program