Effective Game Achievements

Effective Game Achievements

The more I get into game design, the more pleasantly surprised I am at how much psychology is involved. If you think about it, game designers shape experiences, so they must constantly dig into their toolbox of psychological principles. If you’ve ever played a game and striven to attain any of its achievements (think Angry Birds), the game designers have hooked you in with psychology. Achievements, like visual feedback, audio, and various missions and challenges, play a huge part in the perceived fun and replayability of a game by motivating players. To learn more, take a look at this article on how to design effective game achievements: The Cake Is Not a Lie: How to Design Effective...
Error Terror

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...
Working Smart > Working Hard

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...
Blokhead: The Logo Edition

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 our current game 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,...