Industry Night

From our first day at VFS, Industry Night was dangled like a carrot before us, that seemingly unreachable goal light years away. Yet after months of hard work, countless brainstorming sessions, and tons of great feedback, we’d produced a game. And last week, we presented it to the industry.

In many ways, Industry Night is the culmination of the VFS game design experience. After working closely with a small team for several months to produce a game, you’re invited to present your game to a group of people from the games industry, who then come and play your games.

Our Industry Night included action games, puzzle platformers, adventure games, and shooters. Our games incorporated creativity, solid design, and unique mechanics. And after working day in and day out with these guys over the past several months, I can say that I’m extremely proud of all the games we showed.

If you’re interested, you can read more about the games and even try them out for yourself. Be forewarned, though, that some of them can be very addictive. Enjoy!

 

Posted in Game Design | Leave a comment

Animation Logic

Remember these logic puzzles? You’re given a brief story and a few seemingly unhelpful hints (e.g., Wanda’s partner doesn’t like roses), and then you have to proceed through the hints, crossing off the non-solutions until you arrive at the solution.

Lately, I feel like I’ve been working through a logic puzzle, only in script. At first, implementing Chip’s animations seemed easy. We only had five animations: walk, jump, throw a ball, hang by his chin, and die. Sounds easy enough, right?

That’s what I thought too. Very quickly, I realized that these animations weren’t mutually exclusive. Chip might jump and throw at the same time, making for a very twitchy looking Chip.

Back at the animation boards, we knew we had to separate out Chip’s body parts in order to run simultaneous animations. But which body parts? And from which animations?

Here comes the logic puzzle. Regardless of what Chip’s doing (walking, jumping, etc.), if he throws a ball, the throw animation should play. So first and foremost, his arm needed to be a separate piece.

Next came the more nitty gritty. When Chip is jumping, even though he’s also moving forward, he’s no longer walking. Similarly, when chin hanging, even with forward inputs, Chip should not be walking. And above all, if Chip is dying, he shouldn’t be doing anything else.

After a few days piecing it all together, Chip has come alive and is now quite animated!

 

Posted in Programming | Tagged , , | Leave a comment

The Beginning of the End

Happy Monday all,

We’ve been quiet the last couple weeks following Alpha and a bit of a mandatory, but probably ill-advised term break. But we’re back at it and with less than three weeks until the game goes gold, it’s pretty safe to say we’re pretty firmly entrenched in the final stretch.

By all accounts, the majority of the game is done. The mechanics work, the levels are in, and the art is mostly final. But that’s not to say we’re not busy, far from it. Polish and bug fixing is now the focus as we try to steer this ship home.

In my last update, I spoke about how we had veered off track a bit. But I’m happy to report that Blokhead, both a team and as a game, is stronger than ever and is really shaping up to be something the four of us can all be proud of.

Beta is this coming Friday, the game needs to final as of the 27th and June 1st is industry night. There’s light at the end of the tunnel, and we’re almost there. But not before the three most focused and determined weeks of our lives.

See you on the other side.

Posted in Uncategorized | Leave a comment

Error Terror

When deciding between using Unity or UDK as our game engine of choice, one of my main qualms was with the error messages Unity throws at you. Whereas UDK will let you jump in the game with multiple kismet errors, Unity spits out lists of errors, refusing to let you run the game before fixing them all.

There are entire forums out there dedicated to dealing with various programming error messages. And as a novice programmer, this scared the heck out of me. How was I supposed to know what was wrong without seeing what my code did?

However, after weeks of braving the sea of error messages, I’m happy to say that I find them quite helpful. Most of the time. In fact, I even have a few favorites:

1. Error CS8025: Parsing error

This is hands-down my favorite. Easiest to fix, yet one of the most annoying. This error usually refers to a misplaced curly brace. Spend a few seconds visually pairing up all the curly braces, and this error is soon out of your hair.

2. Error CS1525: Unexpected symbol ‘{‘

This one is another fun syntax error, usually thrown out as a result of not pairing all the parentheses in conditionals. In programming, most things need partners.

3. Error CS0029: Cannot implicitly convert type ‘int’ to ‘bool’

There are several variations on this error, which usually results from syntax error in the conditional. Most of the time, I get this error when I forget to include double equal signs in my conditionals (e.g., ‘if (iLevel = 1)’ rather than ‘if (iLevel ==1)’), so the statement tries to set values rather than compare them.

From here, the errors start to get more complicated, ranging from null reference exceptions to invalid argument errors. And those are just the ones Unity can detect. Often, the most difficult errors to fix are those that result from faulty logic. It does exactly what you told it to, but unfortunately, your directions were off.

So what have I learned from the countless error messages Unity has thrown my way? Even the best programmers make mistakes that lead to error messages. But figuring out how to successfully deal with those error messages is what separates the good from the great.

 

 

Posted in Programming | Tagged , , | Leave a comment

The Perils of Band-Aid Game Design

Hello again,

Looking back at the last two months, I think it’s fair to say that the development of Blokhead has been relatively pain free. While we’ve certainly had our share of design and technical issues, disagreements and bugs, it hasn’t been anything I’d classify as out of the ordinary. Over the past week however, we’ve run into our first real bit of adversity.

From the outset, the goal with Blokhead was to combine and iterate on some tried and true mechanics, ultimately creating a light, casual, puzzle-platformer that could be enjoyed by a wide audience, regardless of skill level. But somewhere along the way, I think we lost the plot a little. As our mentor Gary Lam has put it: We had the ingredients to make a gourmet meal, we were just cooking them wrong.

Chip's hurting, but he ain't dead yet!

From a design standpoint, we were failing to see the real issues at hand. One of Blokhead’s core mechanics is the interaction between ball and block. Exiting pre-production, we made the assumption that breaking blocks with the ball would be an engaging and rewarding experience. We still believe that, but like anything else, it can get stale with time. We recognized this shortcoming early on and addressed it by piling elements on top of it, rather than examining why that particular mechanic grew stale. A mistake I can only assume is painfully common with junior designers.

This methodology was so pervasive that we rolled into last week with a bloated, over-complicated game that was straying further and further from our target market. We had built a game for us, the designers, and band-aid game design had run amok. Thankfully, things are not so grim. Looking again at the ball and block example, the baseline interaction was never the issue. We just failed to approach things from a psychological perspective. Yeah, I can break the blocks, and that’s kind of fun, but why bother? What’s my motivation, so to speak.

By trimming the fat and streamlining a few elements, we are now much better equipped to deliver on what we set out to. We’ve refined the core mechanics, improved the psychological bond between action and reaction and have a renewed focus on teaching the player through iteration.

Ripping the band-aid off hurt, but the wounds are healing and we’re all stronger for it.

Posted in Game Design, Level Design, Project Management | Tagged , , | Leave a comment

Working Smart > Working Hard

To say I’ve learned a lot about scripting over the past several weeks is an understatement. I’ve gone from struggling to create basic character movement to creating functions that can “think” on their own. But most of all, I’ve learned that programming is not just about working hard, but more importantly, about working smart.

One of my recent tasks has been to design and implement a level select map. After plotting the levels on the map, my first instinct was to script the individual events for each level.

So, for example, if level 3 was just completed, the spotlight for the next level would need to go on the level 4 marker. If Chip is on the raft between levels 3 and 4, he can go to the right for level 4, get back on the raft and go left for the bonus level, or get on the raft and go up to get back to level 3. But he would not be able to go past level 4.

As you can imagine, the list of conditionals and events needed for each spot quickly grew quite lengthy. The solution? Work smart.

I stepped back and analyzed the commonalities amongst the different stopping points on the map. Chip would need to stop at level markers, but also rafts and corners as well. But he would only be able to launch into a level while currently standing on a level marker.

As the patterns started to emerge, I was able to formulate functions and algorithms so the code would work for me, rather than the other way around. It didn’t come without tough moments and tricky spots, but in the end, the code is much cleaner and ready for additional functionality as needed.

So even though working smart may be riskier in the short run and you may spend more time feeling stumped, ultimately, the payoff can be well worth it.

Posted in Art, Programming | Tagged , , | Leave a comment

Blog Entry: 102° Fever Edition

Just in case I haven’t talked about it enough already, we’re now one week away from Alpha. As it stands, we’ve implemented all of the enemies, power-ups, block types, front end menus, level select and HUD. Three of the six levels are in, reasonably tuned and ready to go, with two more scheduled for tomorrow. Same goes for the majority of the placeholder animations, sounds and art. All in all, we’re in pretty good shape… I think?

I wish I could relax and take solace in the fact that we’re more than three quarters through our required backlog, and over one half of the way through our backlog, total. But I can’t; of course I can’t. I’m obligated by some binding force of nature to obsess, worry and perfect. This is everything we were warned about, everything we were promised. The crunch is in full effect, the tension is palpable. Tensions are running high, people are getting sick. Maybe it’s the DayQuil talking, but it’s a ton of fun.

In a week, some of us will go home to visit our families, some of us will catch up on sleep and videogames. Hell, some of us will be here during the break, working like usual. In a couple months, this whole ride will be over, and a new one will begin. Despite all the stress, tension and ridiculously unhealthy eating and sleeping habits formed over the past year, I’m going to miss it when it’s gone.

Now if you’ll excuse me, I need more medicine.

Posted in Game Design, Life, Project Management | Leave a comment

Getting Ready For Alpha.

Now that we have had excellent feedback from mentors and peers on the levels currently in our game, the time to forge ahead and create new designs has come. As a level designer, once you have introduced everything that the player needs to know in order to tackle your game, it is now time to get even more creative.

Environmental layouts and enemy encounters is something that when your at it for too long, can become repetitive and the designer can experience mental blocks, which i have. The best thing to do is step back from the task at hand, really think of the endless possibilities your assets can provide, check to make sure it is in line with the projects vision, put it on paper and make sure others can make sense of it. It really helps when you have new people to bounce ideas off of, and other things to work on.

Production Update!

As Chris mentioned, Alpha is rapidly approaching and we are working hard to make sure we meet the requirements for the course and for our selves. The front end and ui is currently underway as I’m sure you will read more about next week, as well as minor code tweaking to ensure the game feels right in the users hands.

Whats new with me?

This week I have been working on paper layouts for level 1, world 2, the design challenge is high but the task is fun. In addition to level design I have also been updating our audio backlog in order to make it more organized and up to date in regards to what needs to be done.

Whats next…

Finishing the paper layouts for world 2 and implementing them in Unity will go hand in hand with getting all of the newly created placeholder sfx in our game build. After that I will help anywhere I can in order to ensure success for Alpha.

Posted in Uncategorized | Leave a comment

Blokhead: The Logo Edition

Logos have long been one of my favorite parts of graphic design. A logo needs to be simple and straightforward while simultaneously communicating layers of meaning.

When designing a logo, I first think long and hard about what I want the image to communicate, filling the pages of my sketchbook with words and doodles. Color choice, typography, style, and spacing all play important roles and can drastically change the look and feel of a logo.

In designing the logo for Blokhead, I wanted to create a bright and strong logo that would communicate the main mechanic of throwing and deflecting balls. I wanted the logo to communicate both action and fun.

The result is a logo comprised of primary colors and thick blocky letters that incorporate the L and O of Blokhead into an image of a bouncing ball. Simple, functional, memorable.

Posted in Art, Branding | Tagged | Leave a comment

Backlog, Meet Scalpel

With Milestone 2 behind us and the threat of Alpha looming, this is the time in the project when we have to take a hard, honest look at our backlog and decide just what exactly can be classified as critical, and unfortunately, what needs to be cut.

It’s not an easy or enjoyable process, to be sure. In our idealized vision of what this game could be, trivial things like deadlines, bugs and feature creep just don’t exist.  Reality, unfortunately, says otherwise.

Sure, it would be nice to have three more levels, online leaderboards, and a whole assortment of features that just aren’t feasible in a three month development cycle. The key in all of this is perspective and vision. By being honest with ourselves and remembering what we set out to accomplish, we can avoid having a bloated, feature-rich, unpolished proof of concept ooze out on industry night and instead, deliver a polished, tuned and focused experience that stays true to our design philosophies.

Either way, play time is over. Crunch is officially upon us.

Posted in Game Design, Project Management | Leave a comment