Bacon and Games

Page 18 of 19

Developing a Visual Vocabulary for Your Game

Unless you’re making a game like Obey, you don’t want your game to be difficult because it’s confusing. You’ve probably got masterful level design, ingenious AI and all sorts of other neat stuff to throw at the hero. These are the things you’ll use to challenge your audience. People new to your game will be learning and trying to master your control scheme, memorizing the rules of the world you’ve created and are likely trying to keep track of as well as predict what your levels have in store for them. They’ve got enough going on, the rest of your game’s stuff should be as simple and intuitive as possible.

A great opportunity for this is in the imagery you choose for your game, particularly when it comes to collectibles, powerups, obstacles and enemies. The last thing you need is for your gamers to be pausing to recall if the balloon was good or bad. Or worse still, having them pick up the sexy ball of energy that looks like it will transform them into a god only to find themselves a bloody stain on the ground where they once stood. It’s one thing for a gamer to die at the hands of a well designed level. It’s an entirely different thing for them to die just because they couldn’t remember which things were helpful and which were dangerous.

An easy way to illustrate this point is to take a look at 2 common types of game objects: powerups and obstacles. In the most general terms, powerups have a positive effect on the hero and should be collected, obstacles have a negative effect and should be avoided. These are objects taken from 2 different games. See if you can tell the powerups from the obstacles.

This movie requires Flash Player 9

How many did you get right? If you got them all I guess you can stop reading, but I suspect you didn’t.

How do you solve this problem? There are a couple of approaches. The most basic approach is to use objects in your game that are consistent with our model of reality. Hearts, stars, rainbows (hungry for Lucky Charms yet?), coins, gems, shoes, food and generally sparkly or glowing items look friendly and make for good powerups. Spikes, fire, rabid animals, lava and ticking bombs all scream “stay away”. Certainly you can be creative with your art, but if you ground your game imagery in a bit of reality you will save your gamers from the burden of memorizing a new set of associations. They’re free to immerse themselves in your game because the “ooh I want that” and “yikes I better avoid that” moments in your game become reactions rather than decisions. And really, the fun and challenge usually isn’t in remembering what to avoid or collect, it’s in skillfully navigating to or around those objects.

If I asked you to remember these 5 names, Zack, Jennifer, Oscar, Jamie and Clark and then 2 months later asked you what the names were, you would probably have no idea. However if I asked you to remember Bart, Maggie, Marge, Lisa and Homer you would probably remember because I’ve connected the list to an existing mental model. Get it?

“But Sean, what if I want to create a game about far off worlds that have nothing to do with our reality?” No big deal, I’m not an unreasonable man. Besides designing your imaginary powerups and obstacles using elements of real-world imagery (space mines with spikes or energy pills with a soothing sparkle-glow) you can use subtle color schemes to group objects into similar types. For instance greens and blues are typically friendly colors while reds and purples are considered more “angry”. By using these colors (or whatever scheme you choose, so long as you’re consistent) your users will quickly learn that all red objects are bad and the green ones are good. Consider this new scheme for the objects from before:

This movie requires Flash Player 9

Granted these aren’t the nicest looking objects and in some cases changing the color just isn’t an option (such as the ice ball that’s now red an no longer looks like ice). It’s not my execution of this technique that’s important it’s the power of the approach. The above is just a cursory attempt at illustrating how color can suggest a theme that your users will pick up on. Certainly when you’re designing your objects you can inject color themes into them in a much more subtle and stylized manor. The Gears of War team used soft blue highlights to mark all the good guys, teammates who otherwise bore a striking resemblance to the goons you were frantically trying to blast. Mirror’s Edge, a game of agility and timing marked all the interactive walls, railings and other points of interest with bright colors that stood out against the game’s bland, meaningless background. EA recognized that the game wasn’t about hunting for the points of interest, it was about timing your interactions with them.

I don’t mean to suggest that game designers should dumb their games down or that we need to agree on green powerups across the board. Variety is good and inventiveness breeds new and exciting games. As game designers we strive to challenge our audience, but we want those challenges to come from the sum of its parts rather than the ambiguity of any individual ingredient. Whether you choose to piggyback on existing mental models or opt for using subtle color cues, it’s important to develop a visual vocabulary that will help gamers remember the rules of the world you’ve created. When walking down the street, we don’t have to stop and choose not to step in front of an approaching bus. We don’t even really acknowledge that choice. It just happens while we stay focused on the conversation we’re having and the nice weather we’re enjoying on our walk. If you can create the same level of obviousness in your game; “that fire is bad” or “that heart is good”, than your gamers are free to spend more time thinking about how they want to move through your game (the challenge) and less or no time thinking about what the objects in your game represent (the frustration).

Tweet about this on TwitterShare on TumblrShare on FacebookShare on Google+

Flash Gaming Summit Video Archives

If you didn’t have a chance to watch the live streams yesterday, all the presentations have been archived and are now available for you to watch at your leisure. Mochi posted a list here. The presentations are broken down chronologically by room.

The Robertson Room focused mainly on the business side, with presentations about how to market and monetize games. The Fisher Room was more development oriented, hosting talks from Adam Saltsman on Canabalt, Nitrome on their growth from a 2 man operation to what they are today and also from Sean Cooper who shared some of his techniques for handling tons of calculations per second without bringing Flash to its knees. I sat in on an even number from each because I walk the line between game developer and game producer; both topics are of interest to me.

I don’t want to summarize because you really should just go check out whichever you think would be relevant to you, though I will say that I particularly enjoyed the panel entitled Everything About Sponsorship & Licensing from the business side and Sean Cooper’s talk from the developer’s perspective. Sadly I didn’t get up early enough to catch Adam Saltsman but you can be sure I’ll be checking out that archive before long.

There were quite a few great quotes I could pull from the Summit but I particularly enjoyed these 2, which came almost back to back from the panel on Monetizing Your Game Outside of Sponsorship. The first was from William Stallwood of Cipher Prime. When asked (and I’m paraphrasing the question because it was worded poorly) what he hoped would be the future of the Flash game industry, he responded

[51:05] I kinda want to see Flash games not be called Flash games anymore….when somebody says Flash games I want to call it a game…If I had my personal way every person who called a Flash game a ‘Flash Game’ I’d slap them in the face and they’d call it a game for the rest of their life and we could all not have to worry about disguising our games…

Though also poorly worded (it’s ok, these guys were put on the spot) his message was clear: Flash games unfortunately carry a negative stigma. This is probably due to the fact that getting into making Flash games has such a low startup cost. Flash is an affordable tool readily available to the masses. Couple that with sites like Newgrounds, Kongregate and other automated game portals and the average internet patron will find themselves wading through 20 shitty Flash games before they find 1 good one. It’s simple numbers. It’s easy to get into so everyone does which floods the market with sub-par games. Yes bad console games exist, but if you look through your collection you’ll find a better ratio than 20:1. Flash is an easy entry point into programming, game portals are available for instant feedback and as a result a community of basement game developers was born…many of whom will go on to create amazing games on their own or find jobs in the industry (me, for one). This is a great thing from the perspective of game developers and for the game development community as a whole. With new programmers being born every day, the community grows, Adobe starts listening and we can as a community begin to shape the tools we use, help Actionscript evolve into what we want it to do and events like the Flash Gaming Summit can take place. And with attention on the Flash community, sponsorship and ad dollars become viable options for the very people who built the community in the first place.

The downside is that Joe Internet doesn’t know the difference between the dabblers, the new comers, the student drivers and the seasoned and dedicated Flash game developers. They all get lumped under one heading: Flash Games. The community doesn’t deserve to bear the burden of its low startup cost, especially when it’s that startup cost that fostered the growth of the community in the first place. Stallwood’s comment speaks to this point. It would be great if we could get to where the platform is inconsequential. Who cares if it’s a Flash game? A game is a game. Whether tacking Flash to the beginning of a game carries a negative connotation (which at present it can) or a positive connotation (which it probably never will), the platform shouldn’t prejudge the content itself. Ten years ago, in the mind of the average internet goer, Flash was practically synonymous with “annoying banner ads”. I feel confident that association has been replaced with “those casual games you play on that game site”, which is a step in the right direction. Hopefully the next evolution will disassociate the platform from the experience all together. Fun is fun. End of story.

The other comment I really enjoyed came from Colin Northway of Fantastic Contraption who when asked if the trials of being a “true indie developer” were worth the effort, besides responding that indeed it was he added:

[53:25] Having an incredibly boring job is a fantastic way to make a very good game.

This is something I’ve wrestled with on and off throughout my career. There are times when I want to quit my job, go live in a one bedroom apartment somewhere and just make games. Unfortunately, most of us need variety in our lives. All work and no play make Jack a dull boy. If you get a job doing what you love you might never find time to do more of what you love when you go home at night. The converse, which Northway points out, is that if you don’t up and quit your job and give the indie life a go it’s very likely that the monotony of your “day job” will keep you excited and motivated to go home and bang away on that passion project. It was short and sweet, but it speaks volumes.

There’s a lot of great stuff in these archives, so spend some time and pick out a few that would be meaningful to you. And if you’re looking to be inspired, definitely take some time to hear Nitrome’s story.

Tweet about this on TwitterShare on TumblrShare on FacebookShare on Google+

Flash Gaming Summit 2010

The Flash Gaming Summit is going on today in San Francisco today and even if you weren’t lucky enough to be able to attend, you can still get in on the action. They have setup streaming webcams in both presentation rooms so that you can view them from afar!

Robertson Room Streaming:
http://partners.adobe.acrobat.com/flashgamingsummit/
Fisher Room Streaming:
http://partners.adobe.acrobat.com/flashgamingsummit2/

If you’d like to know what/when will be going on, check out the Flash Gamin Summit 2010 Program. Some of the highlights, in my humble opinion, will be presentations from Adam “Atomic” Saltsman (of Canabalt and Flixel fame), Nitrome and Sean Cooper (most recently known for the Boxhead games), but there’s nothing on the bill that I wouldn’t be interested to follow. Hopefully they’ll be archiving these feeds and making them available online later, but there’s no guarantee so if you’ve got some time today drop in and check it out.

Tweet about this on TwitterShare on TumblrShare on FacebookShare on Google+

Calculating the Distance from a Point to a Line in AS3

I recently made a game for a client that involved a giant sweeping laser of doom (the game had the laser, not the client). Sounds cool, right? Not if the laser happened to touch you while you were busy blowing up robots. Sound even cooler now that you know there were robots? It was. But that’s not what I want to talk about today. What I’d like to cover is the slightly more exciting topic of how to calculate the distance between a point and a line.

I won’t go into the math behind it, not because it’s complicated but because it’s just not that interesting or important to understand. I’ll just give you the code and then talk a little bit about why it might be useful in a game. If you really want to know how the math works, leave a comment or email me and I’ll do a follow up. For now, here’s a simple visualization (download source here):

This movie requires Flash Player 9

Once again I’ve built on a handy function written by Keith Hair that finds the point of intersection between two lines. Using his lineIntersectLine() function and my getDistanceFromLine() function you can calculate the distance between a point and a line very easily.

Why is this useful? I wrote it so that I could determine if the doom laser had overtaken my hero. Since the laser was represented in my code by two points (a line) and I knew the location of the hero (a point) all I had to do was calculate the hero’s proximity to that line. When the hero’s proximity was less than a certain distance >> kill hero. And because this calculation was done mathematically rather than being tied to a hitTestObject() based on the laser’s movieClip1, adjusting the laser’s killzone was as simple as changing one variable.

Here’s another example of how this information might be useful in a game. Suppose your game has a laser cannon which fires in a straight line, as opposed to the sweeping radar motion in my prior example. If you know each enemy’s proximity to the laser you can apply varying damage and effects to each enemy based on that information.

There are plenty of ways you could use this in a game, but I’ll leave that up to your creativity. You can download the source files for the above demo here. Oh and as is often the case with art in or around my site, the bad-ass laser and art in the screen grab above was done by my partner in crime, Ajay Karat of The Devil’s Garage. He and I are working on some games (not for clients) so expect to see some stuff from us in 2010.

  1. When designing your games you’ll want to keep your visual assets separate from your calculations. Let your calculations dictate what needs to be displayed, not the other way around. Tying calculations to visual assets is usually, if not always, inefficient and inflexible.
Tweet about this on TwitterShare on TumblrShare on FacebookShare on Google+

Home Sheep Home

Home Sheep Home is a very clever and beautiful physics-based puzzle-platformer by Aardman Animations. You are tasked with getting your 3 sheep, Shaun, Shirley and Timmy, back to their barn by guiding them through 15 obstacle filled levels. Often you’ll need to find a way to bridge a gap, climb over a barrier or use one sheep to hit a switch that allows his (or her) buddies to advance. Each sheep is a different mass, weight and size which affects its ability to move objects, jump high or fit into certain spaces. In order to guide the sheep through the game, you must capitalize on each sheep’s strength. For example Shaun, the heavy one (he’s not fat he’s fluffy), is good for pushing heavy objects that little Timmy cannot, who conversely can fit into spaces his beefy brother can’t. The game is reminiscent of a classic puzzle-platformer for the SNES, The Lost Vikings, which is great company to be in.

The control scheme is simple, the art clean, cute and unique and the sound design is spot on (with the exception of the ambient bird noises that don’t loop cleanly). The level design is clever, but the 15 levels run out before the game gets too difficult. It’s a quick play but I hope they’ll learn from their success and release a new set of levels soon. They certainly don’t need to reinvent their game mechanics (*cough* Mario Kart: Double Dash) they just need to give us more levels [please]. If you haven’t already, go kill 20 minutes and play this game.

Thanks to Ajay Karat of The Devil’s Garage for the story tip.

Tweet about this on TwitterShare on TumblrShare on FacebookShare on Google+
« Older posts Newer posts »

Copyright © 2024 Bacon and Games

Theme by Anders NorenUp ↑