Crystal Catching

“So, let me make sure we’re completely clear on what I’m doing,” said the Scavenger.

“Whatever helps, friend,” said the Pilot.

“I’m going to - and please let me know if what I’m saying is completely wrong here - I’m going to eject myself from the airlock,” the Scavenger said, tapping the inner seal door to the airlock, “this airlock right here?”

“Yup.”

“I’m then going to stabilize my forced ejection into space with…” started the Scavenger, leaving the question unfinished.

“Your blaster.”

“Right, this,” the Scavenger said, tapping the blaster holstered at the blaster at their hip, “this blaster. The one with which I usually shoot people.”

“And that goat,” added the Pilot.

“Of course, right, mostly people and also one very angry goat. I’m going to use it to stabilize my forced exit from a pressurized airlock into space.”

The Pilot simply nodded affirmative at this.

“So then I’m supposed to fly toward that,” the Scavenger began while pointing out a nearby view screen, “field of debris from the last ship that attempted this.”

“The last two, actually.”

“Oh, right, the last two ships that attempted to retrieve this crystal,” the Scavenger said, rolling their eyes. “Thank you for the correction.”

The Pilot nodded again.

“Now once I clear the terrifying debris field which, if I heard correctly, contains live explosives…”

“It does, yes.”

“Okay, I get past all the wreckage and bombs and I dive into the hole in space?” the Scavenger said very loudly, again pointing out the view screen, this time at a shimmering nothingness just beyond the debris field.

“That’s the one.”

“And once I make it through the rift in space and time, I grab the hunk of blue crystal that’s resting in a deep nothingness beyond the comprehension of mortal minds humming a tune that’s known to warp one’s understanding of the self and potentially cause rapid uncontrollable mutations.”

“Mhm, thus the ear plugs.”

The Scavenger ignored this, “And lastly I need to come back out, which will be from a random direction and at a random…”

“Velocity,” the Pilot finished.

“Right, so I’ll be launched back out of the void within a void at an unpredictable direction and speed back through the same debris field filled with explosives and you’re just going to…” the Scavenger finished, arms open in an exasperated half shrug.

“Catch you.”

“And how exactly are you going to do that?”

“I’m very good.”

“Okay, yes, fine. And the reason we’re not using a drone for this insane stunt is…?”

“The goat.”

“The goat,” said the Scavenger, adding a curse. “Wish I could shoot it again. Well, any advice?”

“Yeah - don’t miss.”

Opportunity

Tension hangs in the air like smog, making everyone in the area uncomfortable and a little short of breath, but they are excited. Something is about to happen and Cameron, like he always seems to be, is right there in the middle of it. He looks down the street and the Red Caps, a group of young men and women in santa-style stocking hats and covered head to toe in tattoos that are anything but festive. He looks back down the other way to look at the Blue Shorts, a gang of well-muscled toughs with a uniform cut of short-cropped hair of vibrant blue and none standing over 5'4".

Cameron feels the heat emanating from both ends of this now-deserted city street. The citizens in the area know what is about to happen and have locked themselves behind closed doors and barred windows. Cameron watches on as one of the Red Caps sharpens a wooden staff painted like a big candy cane, which seems a waste since it's going to be all red very soon. Cameron feels that this is his moment, his time to really take care of business.

"Ice cream!" he cries from the side opening of his white truck as he switches on the familiar jingling of bells like a sweet siren's call. "Come get your pre-fight ice cream! Build your bones up with some calcium before you break your enemies! Bring that sugar rush into battle!"

He sees some heads look around at each other at this. some nods are exchanged and some glaring eyes turn his direction as small groups of ruffians approach the ice cream truck from either end. Cameron braces himself for the coming onslaught.

"Chocolate," says the first of the Blue Shorts.

"One of them blue hedgehogs," demands a Red Cap.

Pretty soon ice cream orders are flying left and right, dollars are piling up higher and faster, and more and more of the members are joining the crowd, wanting to get in on this unexpected distraction from the coming bloodshed. Soon, all of the members of each crew have found themselves crowded together around this white truck with its jingling tune. It seems that, for a moment, it's possible that nothing will happen. But Cameron knows better.

It was the blue hedgehog-eater that falls first. A look of terror fills his eyes as he realizes what is happening to him. There is no cry out, no torrent of hateful words or demands for blood. There is only that look before he falls to the ground and is gone. Panic begins to ripple throughout the crowd as one-by-one they continue to fall. It takes only a few moments for both the crowds of Red Caps and Blue Shorts to turn on Cameron, but he remains calm, as he is sure that the danger to him has passed. Their knees give way beneath them, but one Red Cap manages to catch herself with her sharpened candy cane staff and looks angry and desperate into Cameron's eyes.

"Why?" she manages to get out as she begins to sag heavy against her weapon.

"I scream," Cameron says, opening the sealed door to his truck and stepping out onto the pavement. "You scream," he continues, gazing out over the field of the fallen bodies and unfinished treats."We all scream...for blood."

Dog and the Lottery

It was another good day for very god boy, Dog. The sun was shining, the air was alive with the songs of a hundred birds, and he had two separate chances to chase a squirrel. So it was in these good spirits that Dog received another errant prayer.

“Message addressed to you,” said the heavenly messenger with the soft white cap on their long blonde hair and expressionless face. They had appeared from seemingly nowhere, as they always did, and produced a note from a white canvas messenger bag detailed in gold and silver. They placed the note in Dog’s open mouth. “Have a blessed day,” said the angel without a trace of mirth on their face, before vanishing again.

Dog placed the message on the ground and used his snoot to open the paper to read it. “Plase Dog,” it read, “let thes numbres win teh loteri. 12 15 12 42 47 9. Thx”

This was very serious, thought Dog, This human with awful spelling was counting on him to bless a series of numbers so that he might gain tremendous wealth over all the other participants in the numbers game. Dog knew what he must do. He read the address of the petitioner from the note and, seeing that the human was several hundred miles away, Dog made for the nearest transit station and stowed away on a train headed in that direction.

The adventure was many hours long and filled with many tempting smells and soft hands made for perfect pets, but Dog remained resolute in his purpose. There would be time to indulge in delicious treats and good belly rubs when his duty was done.

He emerged practically within barking distance of his destination and took off in a great run. Finding the home with the address and without slowing his pace, Dog dove straight through the lowest window to the sound of shattering glass and screaming. Ignoring the loud voices that were increasingly becoming quite angry, Dog sniffed the air. Finding his mark, he bolted into another room and rushed up a set of stairs before breaking into the home office of a young man.

“What is this?!” he exclaimed despite not really expecting an answer.

Dog leapt past him onto his work desk and shove papers aside until he found the man’s lottery ticket. He took the scrap of paper into his mouth and tore it to shreds.

“No! Why?! That was my ticket to millions of dollars, you bad dog!” cried the man at Dog.

“The lottery is a tax on the poor!” barked Dog at the startled man.

George Goes Abroad

It was another day on the ceiling of the stairwell and George the spider was having as good a time as any.

"Hello, George!" greeted the kind lady of the house as she did every day.

"Good day to you, ma'am," he replied in a tiny voice too small for her to hear.

Life was going well for George in the house. He had plentiful small bugs to eat and a wonderfully comfortable spot on the ceiling. Everything was going very well indeed.

But it was on that day that a fierce monster reared it's terrible head and many, many legs. A great big centipede encroached on his spot, terrifying and hungry. George could see it moving towards him with snapping jaws from his vantage point.

"Hm," he thought aloud, "perhaps it is time I took a vacation." And with that spun a small sack to hold his things, hurrying to cram them in as quick as he could. The great beast was getting closer and closer, scurrying with its unnaturally large amount of legs. With mastery, George also quickly spun a great parachute and, along with his bag of supplies, George dropped from the ceiling and sailed away on a draft out a nearby open window.

"Goodbye, friendly human!" he said toward the house in his small voice as he drifted away on an air current.

The wind took him many places. First, he drifted from his home in the American Midwest to the south. While there he decided to stop in and see his many thousands of cousins, who lived comfortably in the mild temperatures. Some even lived outside! It was all very surprising to George, who was used to a well-insulated home. He wished them well and continued on his way.

Next he sailed to a great human airport so that he could stow himself away in some luggage bound for Europe. After a good long nap, he awoke to the shrieking of a young man in a Parisian hotel.

"Thank you for the ride, sir!" said George to the man who was scrambling for a shoe. "But I will take my leave now." He opened his silken parachute and flew away out another window.

While in Paris he decided to take in some of the local delicacies. He was very impressed with the insects that could be found atop the Eiffel Tower. He sat comfortably there for several days in a great wide web among the struts of the tower.

"What a great time this has been," he said to no one in particular, "but I believe it is time I return home."

So he spun another parachute, took his bag of things, and made his way back to the airport where he found a suitcase bound for home. In practically no time at all, he was able to make his way back to the nice little house with the kind woman. He squeezed himself under a shut door and crawled back to his favorite little spot on the ceiling, now with no centipedes in sight. There, he rested.

"George, you're back!" said the house human next morning when they both awoke.

"Yes, thank you!" said George in his voice she could not hear. "I had such a wonderful time abroad, but there's no place like home."

The Vault Door

It is 3:00 in the afternoon so, as I do every day, I go about the mansion dusting the various surfaces in the many, many rooms. It seems an oddly large number of rooms for a single man to own, even with the addition of his three young nephews. The rooms they use in particular have been a mess, though none of the other staff seem to mind. It makes this empty place feel more alive and loved.

I pass the big circular door as I do every day. I know that the master uses this room daily. I've seen him as he pulls the large key out from his pocket and look to see that no one is looking. I've watched from my hiding place as he turns the great circular handle and seals the door like a vault. I've observed as he creeps inside and shuts it behind him. What does the master do in that room? And why is he always wearing a bathing suit? Has he hidden away some hot spring beneath the manor? Perhaps a pool or sauna? None of the staff seem to know what lies within, or if they do they have kept to showing ignorance.

I check one of the many clocks throughout the house and see that the time draws near. I must know, I decide.

I find my hidden place in the shadows where I know he will not find me and I wait. I wait several long minutes, my heart thudding in my chest with fear of what I will find when I finally steal away into that vault-looking thing. Finally, I hear him padding down the hall. I bury myself deeper into the darkness, shutting my eyes as if fearing they would give off some luminescence and reveal my position. I listen as he walks by, allowing myself a peak at his figure. I see him in that bathing suit, briefly, and shut my eyes again. This is it, I realize. I am finally going to know. What will the others think, I wonder?

I hear the gentle jangling of the key before it is inserted. The grating of some metal bar as it is removed from a latch. The squeaking of metal as the wheel is turned. I open my eyes and see him swing the large door open.

He steps beyond and I make my move.

Rushing forward as stealthily as I can manage in my servant's uniform, I manage to just barely catch the door before it closes with the feather duster in my hand. I fear for a moment that the weight of the metal door will snap my tool in half. The wood of the handle holds, just barely, and the door is open to me. Cautiously I move my hand forward to the edge of the door and grasp it.

I swing it open and can not believe my eyes.

"Uncle Scwooge?" I hear from behind me. No, this can't be happening! The nephews have caught me. I spin around, ready to explain myself, but I trip upon the edge of the doorway.

The last thing I see before the darkness takes me is that wondrous treasure - a great pool of golden coins as the master swims among them effortlessly.

Chimera

"Come one, come all!" cried the carnival barker. "See with your very eyes the dreaded Chimera! One of a kind! Only thing like it on earth! Only 2 tickets! Only here can you see this miracle of nature, a fusion of two creatures!"

I emptied my pocket for any remaining tickets and looked at the contents as they fell into my hand - a piece of chewing gum, a paddle ball toy I had won from the age guesser, and a single red ticket. I tucked the toy away and walked up to the barker with the yellow suit and black pinstripes.

"Will this do?" I asked, holding out the ticket and gum. "It's all I have left and I really want to see the monster."

The barker looked down at the offering in my hand with a curious expression on his stubbled face. He knelt down to meet me at eye level.

"Tell you what, kid," he said with a smile, "just for you I'll let you in for a single ticket. Be sure to tell everyone you know about what you saw here, okay?" He winked as he snatched the ticket from my hand and shooed me along toward the opening of the tent behind him.

I was small, so it was easy for me to slide past all of the crowding adults to try and get closer to the animal pen. It smelled absolutely awful in here, like they didn't let the creature out very much. I figured it must be very dangerous indeed f they didn't want to risk going outside. I pushed further and further past the adults and around a few kids. It was dark beneath all these tall people, as if under a canopy of suits and brightly-colored dresses, and too-large hats.

Finally, seeing the light at the end, I pushed past to the edge of the animal pen and I saw the "miracle."

It was a dog in a lion costume with a plushy snake tail afixed by a button flopping limply behind it. And the dog was covered in mud. I watched him walk around disinterested before he flopped down on his side and began chewing his "tail."

I crept my way out of the tent, past the forest of adults, and emerged once again into daylight.

"What did you think, kid?" the barker asked as he saw me.

I struck him in the knee with the paddle ball and stole his tickets.

Officer Johnson

"Johnson, get in here!"

Officer Derrick Johnson made his way to the chief's office to see what she needed. It had been a rough month on the force, ever since his former partner fell in a hail of bullets that had spilled a hundred feet from a broken shipping container.  He hoped that the chief had some good news for him today.

"Shut the door!" Chief Lee ordered as he stepped through the entrance. She waited until Johnson followed through and sat down in front of her desk. "Good, you're going to want to be sitting down for this.

"Wh..." Johnson began.

"The thing is, Derrick, that you're a damn good officer but you haven't been quite on the ball since Davis had that terrible accident with the crane and the horse. Clearly you need to have a good partner at your back, so I have a little surprise for you. Davis!"

Derrick felt his blood pressure drop to a trickle as the ghost of his former partner, Laura Davis, materialized in front of him. She was just as he remembered on the day she had suddenly been killed after that crane had poked that horse and the cascading catastrophic events that tipped that freighter over. She smiled down at him in that sarcastic way.

"Well, Officer Johnson, what do you think? Requisitioning a necromancer is costly but I think it's worth it in this case."

"Uh.." he began, "this is great, but, couldn't they have summoned her without all these horrific bullet wounds?"

"Wasn't in the budget."

"Right."

What to blog

After a conversation with a friend today and some thought while waiting around for a bus in a crowded room, I think I’d like to use this blog as a bloggy thing.

So expect blogging.

Sentinel

The following is from a writing prompt in a gamedev slack channel. The prompt was simply a picture of a large chicken statue outside a gas station.

“Give me everything in the register.”
Tad looked up from his book to see the blade of a hunting knife staring him in the face, its wielder's identity hidden by a dark ski mask. He’s always heard about gas stations being robbed before, but he hadn’t expected it would ever happen to him. Tad quickly dropped his book on the counter and put his hands in the air.
“Whoa, man, take it easy,” he said, his voice shaking.
“No, man, I won’t take it easy! Give me everything in the register!” the masked man demanded again.
Tad slowly brought his hands down to the register in front of him and, shooting a quick glance at the robber, he clicked a button on the machine. The drawer did not pop open.
“What the hell did you just do?” the man said angrily, waving his weapon around threateningly. “You call the pigs?”
“No,” Tad said with a light smirk. Outside in the parking lot the ground shuddered once, then twice. The pounding of earth fell into a rapid rhythm. “I called the chicken.”
The window next to the assailer exploded inward as a mass of white feathers and sharp talons erupted amongst shattered glass.
“Ba-kaaaaa!”  the large creature cried as its claws dug full on into the startled man’s chest before quickly kicking out and sending him flying 15 feet into a soda cooler.
With a loud thud, the man crumbled to the floor unconscious. The soda cooler surprisingly showed no signs of damage. The 12’ foot tall chicken, its massive frame barely fitting within the confines of the store, looked at Tad expectantly with a vacant stare.
Tad stood dumbfounded for a moment before fishing out a handful of corn and holding it out to the monstrous bird in his wavering palm. The creature picked at the corn gingerly, avoiding harming the store employee.
“Ba-ka,” it said simply before exiting through the now glassless window to return to its perch.
The Spur Oil Inc. was safe again.

Frostpunk

My Frostpunk thread on twitter gained a fair bit of traction, so I figured I'd copy my thoughts over here.

I haven't been playing as many games since I finished God of War, but I took a dive into #Frostpunk and I think I can safely say that it's the most captivating city builder I've ever played. It's punishing, it's smart, and it's beautiful.

What gets me most of all is that the mechanics manage to communicate the despair and hope of your little town's populace. I scramble to manage the cold and keep all my systems and people running, but sometimes it gets to be too much and you realize that you have to accept losses.

The scale of the thing feels perfect, too. There are few enough people that every one of them feels like they matter, which I love. The radial building grid that requires you to work from the inside-out constrains the amount of building choices in a meaningful way.

From where I am now, skill-wise, it doesn't feel like the min-maxing that I used in games like Banished or Caesar will be as effective in Frostpunk, but time could prove me wrong. Instead it feels like which buildings you lean into depends on personal choices, which are as much of an emotional decision as a practical one. For instance, I can't figure whether child laborers or child medical assistants is a more resource-efficient choice, but I know that my one game watching children die from exposure while gathering coal was too much for me.

Anyway, shout out to @11bitstudios for this game. Frostpunk is very cool (pun definitely intended) and I would recommend it to anyone who enjoys city builders, strategy games, or emergent storytelling.

Signal - PostMortem

Background Information

Signal was a game made by me and a small team of three other people as a part of this year's Global Game Jam. To this date, I believe this was the most successful game jam project that I've been a part of and I couldn't be prouder of what we accomplished. We had a good vision, a decent idea with an interesting primary mechanic, and a balanced team. I will speak first on those points before diving into my analysis.

I went into this game jam with no team, no preconceptions, and no plan aside from completing a game over the weekend. I chatted with a few friends that I saw there and ended up spending more time with Jaremie, who I'd met a couple times before at local Independent Game Developer Association events. After the theme was announced, the two of us began talking over very basic concepts while eating and also talked it over with the two other people, Erik and Zach, that sat near us. The four of us, since we were all sitting there talking, decided to make a team of ourselves and so our team was born (of laziness).

  • Jaremie Romers - Programming, Art
  • Zach Chapman - Art, Animation
  • Erik Raymakers - Sound, Writing
  • Me - Programming, Production

Nailing down a game design to finish in 48 hours (really, 45) is not easy. The four of us went through many different ideas based on the theme, which was Transmission. Here is the list that I have written down in my notes:

  1. Space flight simulation with terrible controls - Transmission is out, controlled by 2 players?
  2. A flight control tower at a space station || Star Gate control tower - bureaucracy simulation and problem solving
  3. Something about decoding alien message - puzzle decoder game
  4. Controlling some space rover with a time delay
  5. Something to do with STIs - Who Gave Me Space Herpes?: a logic puzzle game about calling various sexual partners and attempting to discover where your space herpes came from
  6. The Chinese Room simulation

Our actual design ended up being mostly focused on #3, but with a twist. Instead of simply decoding a message, you can also send messages back. And instead of focusing on aliens in the sky, we decided turn our attention down below the sea, listening to a Signal from the deep. Our major inspirations were Lovecraft and MYST.

What Went Wrong

Feeling very good about how the project went doesn't preclude anything from having gone wrong. While many things did go right, we had a few slip-ups as well. It's also possible that there is more wrong than we realized, because the first major thing that I would say went wrong is that we went too long without all the major systems in place, and so never actually had it fully play tested.

The game design was very much dependent on journal entries that contain puzzles and clues to help the player figure out what the incoming signals mean and how to respond to them. Without those puzzles done, we didn't really have a means of having someone try them. And because we waited until they were done to actually implement the journal system, even if we had sat someone in front of the game there would've been nothing to do aside from tapping on the radio to see what happens. As of this moment, I don't believe anyone on the team has fully gone through the game to make sure the puzzles make sense and can be solved. Also I believe that I'm the only one that stepped through the communication system to make all the calls and responses went as I had in my notes. I wouldn't call this ideal.

Please play our game and tell me what I did wrong so I can fix it? Cool.

I think another major pain point was, surprise, dealing with source control. We did not use git this time around (more on that in the next section), but we still ran into a few issues due to Unity's new Collaboration tool. I will make a list of some important notes based on this particular experience in the "What I Learned" section, but suffice to say at this point that I definitely lost a few hours managing the various conflicts and hacking together a Frankenstein monster of committed assets. But hey, it's alive!

Another repeated enemy showed up again - time. Although this game went relatively smoothly, there is always more polish to add. We have roughly twenty minutes of recorded voice acting for the journal entries waiting to be added. I think the work to implement them would take about an hour or so, but that was an hour we didn't have. I'm hoping to take that time and add them before we present our project to the local community at a party in a couple of weeks. Also the time to play test would have been nice, though with the amount of time our game is likely to take for completion, I doubt anyone else had time for that either.

What Went Well

Most of it! After team formation (which ended with us not attracting anyone else), we discussed our design for about another hour or so figuring out exactly what we needed to hit our minimum viable product for upload. I captured and was tracking those items on a Trello board, which ended up really being for my own benefit for keeping myself on track. We rounded up a few times to discuss what needed doing and to assign marching orders. For the most part, this went as well as could've been expected. With minor hiccups, everyone finished what they set out to do.

It looks and sounds gorgeous. Zach and Jaremie both did a great job with all the art pieces. I am a huge fan of Zach's work on the boat-rocking animation and the piece of the finale. Jaremie did a fantastic job both with the radio ticker and the journal interface. It was a sheer joy to see all the debug junk I had built for myself slowly get replaced by real professional-quality work. The sounds that Erik crafted (and found for a few) add so much to the scene as well. To sell the intended ambience, we needed the visuals and the sound to be on point and I think the team really pulled it off. I am incredibly happy with they pulled off and I am excited to have been a part of it.

Despite also putting it in the "What Went Wrong" section, I'd say that using Unity's Collaboration system was super beneficial to our team. In previous projects I've always used git, but anyone that has read my previous post mortem will remember that it doesn't not work particularly well with Unity. Collaboration, though, solves the majority of those headaches and is super easy to set up. There was the downside of a team for a "free" organization being limited to three team members, but we just asked Erik to drop his assets elsewhere for us to digest and that seemed to work fine. Compared to previous projects, I believe this was the most painless experience I've had with source control.

What I Learned

Personally I learned a lot. I had never worked on a 3D project before, so there were some things to get used to on that end. I decided that it's not terribly different from working on a 2D project in Unity, but I also didn't have to deal with the lighting. I'd also never worked too much with sound in Unity, other than playing a sound or two as a OneShot for various player interactions. The sound in this game was much more complex. I used multiple audio sources, as well as stored and dynamically shifted multiple sounds in my code, setting timers and loops that were modified by listening to player input. It was a lot of fun and I'd relish the opportunity to do even more complex work with audio in the future.

I think the most important things I learned were the lessons from some hiccups with Unity Collaboration. I will list them here for convenience.

  • If you are working within an instance of a prefab and you add an object to it as a child, you need to add the child to the prefab asset as well. If a team member makes a modification to the prefab asset, you will lose your unsaved children when you sync the changes.
  • If possible, don't group too many objects that people are working on within the same prefab asset. We ran into a pretty serious issue on Sunday morning where two different versions of our primary prefab asset were basically irreconcilable. We managed to work it out, but it made me panic a bit and we could've avoided most of it if we had a sturdier architecture in the first place.
  • As with all source control, it is important to commit, push, and pull often. It is much easier to manage issues when there are only one or two of them at any given time. You're also less likely to see strange duplicates if everything is kept basically up to date all the time.

Sleeping more makes you better at work! I know, novel thought - but I slept about 6-7 hours on the second night and I was definitely far more productive on Sunday than I was on Saturday, for which I'd only had five hours of sleep. I'd also add that a team break can be real nice. We had a pleasant dinner together on Saturday night and had a very good plan for going forward after that.

 

Alright, I think that about covers it! If you'd like to check out our game, head over to my Games page (which I will be added later if you're getting here early) or go directly to our Game Jam submission page and download the .zip file. Please, feel free to reach out to me via the comments or my email if you have any questions, comments, or just want to talk!

Space Junk - PostMortem

Background Information

I've already talked about the nature of the capstone project in a previous post, so I will skip all of that here and get straight into the details on our game, Space Junk, starting with the team formation.

The original idea behind Space Junk belongs to two of my eventual team mates - Jessica Dungca, who gave the pitch and acted as team lead during formation, and Erica Lee, who Jessica credits as the originator of the basic premise during brainstorming. I knew immediately upon hearing the words "raccoon-ing junk and building a space ship" that a) my own pitch was bad and I wanted to work on this game instead and b) this needed to be about actual raccoons gathering actual junk.

After being very insistent with Jessica that I would be a good addition to the team and being generally excited, we ended up with the following:

  • Jessica Dungca - art, design
  • Erica Lee - general support, menu design, market research, sound asset gatherer
  • Jordan Hamann - art, animation
  • Michael Biggers - programming
  • Me (Bobby Brace) - programming, production, design

After much discussion, we settled on the following design: the game, Space Junk, would be a very laid-back, cooperative adventure with two players and two stages. Stage one would be the assembly phase, where the two raccoons run around and gather garbage and place it on a rocket-shaped grid, one piece of junk per square. After completing this task, the players would transition to an auto-scrolling space adventure game where the two players would work together to control their garbage rocket, dodging and destroying space debris, before making it to the moon where they would have a picnic. With this in mind, I set up a SCRUM board with all the tasks we could conceive of to meet minimum standards of completion (many more were added later). I decided to put our game's tagline above it which Michael had come up with as a joke but we all loved, "We are all trash held together by friendship." And with that we got to work.

What went wrong

Problems came at me real fast when I hit my first major hurdle on the first night - Windows Updates. Unbeknownst to me, it had been so long since I had used my laptop that I had a major patch to install, which began downloading in the background and hogging all of my hard drive I/O capability. Thankfully I was able to mostly overcome this by letting it run all night and waking up early to make sure the updates installed. Then I disabled Windows Updates for the rest of the project.

The much worse hurdle was setting up GitHub. We decided early on that only Michael and I would be using the repository to mitigate conflicts as much as possible. I also went about setting up a .gitignore file using an existing template. Of course none of that worked the way we expected and we spent roughly two hours being crippled by some cursed conflicts in the meta files (which we learned to ignore) and again with our different interface set ups (which we learned to accept). We did work through these kinks, but between that and my computer issues, I think I lost about 3 hours of working time which is pretty rough.

The biggest problem that we had was, of course, time. The three lost hours cost us a few things - more animations, sound and music, an annoying bug in the controls of stage one, and getting the grid system working in that first stage. That last one was pretty big - we didn't have the level fully running until about 90 minutes before submission and it was then found that the system built to check the contents of each individual box in the grid didn't work and we really didn't have time to fix it, so Michael hacked it apart and just checked the entire grid as a whole for the 15 pieces of garbage we were using. I also lament the loss of Jordan's beautiful explosion animation that they made for the space debris in stage two, as well as all the sound effects that Erica acquired early on in the project. I only had time to hook up one sound, so I chose the firing sound during the second phase which I figured provided some of the highest player feedback.

What went well

I think the first thing that anyone would notice went well is that the art is phenomenal. Jessica and Jordan both did a fantastic job bringing this game to life. Jessica alone managed to churn out 15 individual pieces of garbage in beautiful bright colors as well as the background for stage one. Jordan created two separate animations for the two raccoon heroes (top view and side view) as well as the space debris, can projectiles,  and background for stage two. As mentioned above, there was also an explosion animation that didn't make it in, due to me running out of time to hook it up.

It seems like patting myself on the back, but overall I think our organization as a team also went well. We took the time at the start of the project to clearly mark out what needed doing and verified that it was doable by at least one person on the team. As people finished work, they just needed to walk up to the task board, put their name on a card, and move it on to In Progress. By the end of the 43 hours there were only a couple of To-Do items left, neither of which was actually vital. The project started well-scoped, even for having two completely different play modes which may be considered a bit much for a game jam, and at no point were we struggling with scope creep. If we hadn't lost those few hours, I have no doubt that our problem would've become figuring out what else to add. But most the most important thing is that we completed the project and submitted on time.

I would also say that actually coding the game went well once we got going. With two programmers on the team and two stages to complete, the obvious thing to do was to each take one. Michael handled everything the garbage collection game in stage one (which I wasn't confident I could handle at all) and I handled everything in stage two. My work there actually ended up being far easier than I anticipated and only took me about 4-6 hours to complete. I spent the rest of my time hooking up the animations, handling the sprites, hating the input manager, putting the menus together with the images that Erica handed me, handling all code merges, and eventually performing the actual final build.

What I learned

Make sure your machines are updated before bringing them to a time-sensitive event. Have a backup plan in case of hardware failure. Also, Windows Updates can be completely disabled, so maybe just do that for the time that you need to make sure you have no interruptions. I can't stress enough how annoyed I was with that entire experience.

Know how you're going to handle code at the beginning before you start actually coding. If you're using a system that your unfamiliar with, read up on it ahead of time. For me that would be learning how Unity interacts with GitHub, which honestly is still a bit of a mystery to me. I may try a different management system in my next attempt or, ideally, let someone more experienced handle it and ask them to teach me what they're doing.

Effective time and project management is vital to the success of a project. This is something I already knew, to be fair, but seeing how well everything came together really reinforced this idea. In previous game jams I had used a purely digital SCRUM board that really only I was looking at. I much preferred the method used this time around - index cards taped to a white board. I may endeavor to use a physical board from now on.

Market research is cool, actually. The presentation that we had to give was put together by Jessica and Erica (though we all spoke) and it contained a market/competitive analysis for our game. Honestly, from what we eventually found, child-friendly cooperative games turns out to be a starving market and it's maybe not a bad idea to get in on that. Will we do so with Space Junk? Maybe. But not right away.

 

Thanks for sticking around this long! I hope you enjoyed reading my thoughts. You can check out the game in the Games section of my site here if you're curious. Also feel free to leave a comment here or shoot me an email. I'd love to hear more from the community. I do plan to write one of these up whenever I finish a new project, so you can look forward to a lot more of this in the near future.

Space Junk - Background Information

As mentioned in my previous post, I have just recently completed a program called Immersion through a local organization, GLITCH. Because most of the people that I assume would read this are likely already familiar with GLITCH I won't get into their mission or what they do, but Immersion is a program they run that puts small cohorts of about 15 people through a series of after-hour and weekend lectures, workshops, and a couple of industry visits all about the games industry. In it we learned the development process, a crash course in programming with emphasis on Unity scripting, game art, game design, writing and narrative design, project management with Agile, and marketing. I believe, from my experience, that the primary goal of these courses was to open doors and show us all the things that are available and necessary in the industry. We learned that there is much to learn. This is something I think think I knew but I have a better handle now on which things that I don't know, and that is valuable.

This program ended with a capstone project that took the form of a sort of game jam. There were some key differences between this project and other game jams, which I will detail in this post before doing an actual Post Mortem in the next. The three key differences were the pitching process and team formation, the market and competitive analysis requirement, and presentations.

The pitch process was just slightly different from what I was used to, but was good in what it accomplished. We were given the theme, Voyage, and broke off into groups to discuss possible concepts based on that theme. We were then given 15 minutes alone to draft a pitch and another 15 minutes to give those pitches. Everyone was expected to pitch. The twist to this is that the two heads of the program, Evva and Nic, then went into a meeting room and decided which three pitches would be made into prototypes. We were not privy to the selection process, but my first guess would be they wanted to make sure that the three projects selected would be feasible in the 43 hours we would have to complete it.

Ultimately the three projects chosen were Dungeon Mapper - a game where a pacifist player character enters a dungeon to draw the map for future adventurers; Mountaineer - a claustrophobic mountain climbing simulator starring a person with two broken legs; and the project I worked on, Space Junk - a cooperative adventure starring two raccoons building a spaceship out of garbage.

Part of the rubric we were given for the project contained a market and competitive analysis component. As a part of our development, it was expected that we would also determine how to sell our game. This isn't usually a consideration for a game jam so it struck me as odd, but ultimately I would say that this is a vital part of the project and it gave practical experience on this kind of research that first-time developers might overlook. I believe all of this was handled for our project by my teammate, Erica Lee, who did a great job. I enjoyed going over her findings.

The last difference was in the presentations at the end of the project, which took place just a few hours after the submission deadline. We traveled to an off-site location, Twin Cities Public Television in downtown St. Paul, and gave presentations on the stage there with slides that needed to be also made during the project timeline. Our presentation was mostly put together by Erica and another teammate, Jessica Dungca, though all of us spoke on the stage to different aspects of the project. The turnout was unfortunately low, probably due to the snowstorm that was going on at the same time, but plenty of people showed up and my team did an excellent job of presenting and then demoing Space Junk.

Alright, I think that's enough background information. A Post Mortem of the project itself will be up later today and I will also fill in more information on the game page.

Incoming Post Mortem

I have just completed GLITCH's Immersion program, a two week long deep dive into the full game development process. I believe I was successful in filling some gaps in my knowledge and making good connections, but most importantly I now have the fire lit under me to start working on one of my projects and hunt down funding.

As a part of this program, we did a capstone project that resembled a game jam. I will be writing up my thoughts on this project very soon, as well as further thoughts about the program.

Monster of the Deep: Final Fantasy XV - Some thoughts

Those who know me know that I am a lover of fishing mini-games. I find myself losing hours to them in many games. Now, I don't actually like fishing in real life so it has nothing to do with that. I just find something very satisfying about taking a break from some stressful game world and letting my character find the time to relax into some fishing. There are usually treasures involved, so the game rewards me as well.

Final Fantasy XV has one of the best fishing mini-games I have ever encountered. The main game is wrought with many poor decisions, but many of its little side systems are extraordinary. The fishing, though, is in a league of its own in this game. So I was very excited to find out that SquareEnix was going to create a VR spin-off title for the PlayStation VR. I already owned a helmet, so I knew this would be a day one purchase for me. Having now spent a couple of hours with it, here are my thoughts:

  1. It's very apparent that SquareEnix had to do some hack work to make their FFXV engine work with the PSVR. It's possible that this would be less obvious if I was running a PS4 Pro, but as it is there is some pretty intense artifacting in the peripheral vision and objects don't really come into good focus until they're roughly 10 feet away from you
  2. That being said, what is there runs well. That's a technical requirement so it's not surprising, but the visuals that are there are smooth
  3. Controls are simple and easy to grasp. I haven't yet tried playing with the Move controllers, but both my partner and I had zero trouble picking up the controls. Movement around a space is done via a look-and-teleport method and it feels smooth. Neither of us have experienced even a little motion sickness
  4. The gameplay itself is satisfying and fun! If you're familiar with the fishing minigame from FFXV, you already know how to play this game. I can't tell if it's a dumbed down version of that game or if they simply changed the UI. One thing I noticed is that the line tension meter is replaced with the vibration of the controller, which actually does a really good job. It'd probably be far better with the Switch's JoyCon, but the Dualshock holds its own
  5. The set pieces of the various maps are fun! It is something else seeing those monsters up close. They don't attack you, it's just dressing on the scenery. My partner found it very unnerving being around sahaugin on one map, but also there was a fluffy chocobo chick and we both loved it. I unironically screamed at the chocobo on the first map because it looked so pettable and I was very frustrated that I could not pet it
  6. Cindy is even worse in VR
  7. I want to touch Noctis's feathery hair
  8. This game embraces another thing that FFXV did very well - the photo mode. There are several options for taking/saving pictures within the game's UI and we also additionally both found ourselves hitting that Share button a lot. Maybe we're just dorks, but it seems to be a very screenshot-worthy game
  9. The music is soothing as hell. I think all of it is from the FFXV soundtrack already, but there's some really relaxing stuff in there

That is all I have for now! I am looking forward to spending more time with it over the Thanksgiving break. I may post again on this game.

 

Hello

Hello! Thanks for taking the time to visit my page.

In the coming months I'll be using this space to talk about a variety of different topics, most of which will relate to games. I hope you find them enlightening or at least entertaining!

I've only just started this page, so some more of my work will be populating the other pages in the coming weeks.

Thanks again!