Experimental Game Dev Podcast Show
Experimental Game Dev Interviews — The First Game Dev Podcast Ever-
IndiePub Best Game Design Winner: Vanessa Saint-Pierre Delacroix & Her Nightmare
Posted on October 13th, 2010 No commentsHey folks,
As a follow on to the guest post about game usability, here’s an interview with the founder of Bad Pilcrow Studio about the development and design of Vanessa Saint-Pierre Delacroix & Her Nightmare…
You can download the podcast here…
http://www.indiegamepod.com/podcasts/gdco-bad-pilcrow.mp3Or listen to it here…
[wp_youtube]twOBUIhi55k[/wp_youtube]Enjoy 🙂
-
Guest Post: Game Usability Lessons from Vanessa Saint-Pierre Delacroix & Her Nightmare
Posted on October 11th, 2010 1 commentIntroduction
My studio’s latest game, Vanessa Saint-Pierre Delacroix & Her Nightmare, recently earned a Best Design award in indiePub’s 3rd Independent Game Developers Contest. Our team believes that the graceful usability of Vanessa was a contributing factor to our success. This brief article outlines some of the best practices from our development process.
Before diving into the lessons we learned, an explanation of our game is in order. Vanessa Saint-Pierre Delacroix & Her Nightmare is a 2D puzzle and platform game mapped to a 3D cube. In each level, players must guide the titular character to an exit. In order to do so, they must use Vanessa’s ability to rotate any face of the cube she occupies. In a way, Vanessa Saint-Pierre Delacroix & Her Nightmare borrows from the best parts of Super Mario Bros. and Rubik’s Cube.
[wp_youtube]twOBUIhi55k[/wp_youtube]
Why does Vanessa play so effortlessly? I have identified three key components of the game’s design which I believe contribute to its usability. They are: a subtractive approach, polished difficulty, and a focus on early testing.
A Subtractive Approach
In The Elements of Style, E. B. White writes, “A sentence should contain no unnecessary words, a paragraph no unnecessary sentences, for the same reason that a drawing should have no unnecessary lines and a machine no unnecessary parts.” This philosophy applies to game design. Vanessa works well in part due to the subtractive approach taken during development. Any element out of place was cut. Those that remained created a strong, central core for players to enjoy; they are unburdened by clutter.
For example, early versions of Vanessa included functionality for manually rotating the game’s camera. By controlling the camera, players could adjust Vanessa’s puzzle cube to see each face. As a result, our testers became fixated on trying to solve every puzzle before making any moves. They grew frustrated, and for good reason: studying isn’t fun. So, the manual camera was cut, forcing players to explore the cube in order to find a solution. Exploration is far more satisfying than planning, and it better reflects the nature of our game.
Subtractive design provides developers with an added benefit: it simplifies a game’s controls. As I write, an Xbox 360 gamepad sits in front of me. It has thirteen buttons and three different ways of indicating direction. Feel free to use as few of these options as possible when designing your games. Your users will appreciate the ease with which your project operates.
Vanessa requires five buttons and one thumbstick – the bare minimum specified by the game’s mechanics. Overwhelmingly, players have noted that Vanessa is an easy game to pick up and play. A manual camera, weapons system, or any other unnecessary mechanic would have required more buttons, more training, and more cognitive resources. In short, it would have been less usable.
Difficulty
Most players (and many developers) view difficulty as a linear path from easy to hard. This model is incomplete, and incompatible with good design. In general, difficulty should increase slowly at the beginning of a game, rise significantly once the mechanics have been established, and taper off towards the end (well before challenges become punishing). Along the way, modest dips in difficulty should be included, to allow the player time to demonstrate their mastery of the system.
I recommend introducing new mechanics or challenges individually. Give the player time to acclimate. Vanessa Saint-Pierre Delacroix & Her Nightmare features thirty-six levels, and new mechanics are launched in levels 1, 2, 3, 7, 10, 12, 15, 19, and 26. Notice how, after the initial tutorial levels (1-3) play out, there is increasingly ample space between additions to the game’s complexity. In those levels, difficulty increases modestly, and occasionally drops.
Why should difficulty decrease every once in a while? The idea is simple: games should be fun.  Once players have figured out how a mechanic works, they need opportunities to revel in their mastery of the system. So, if your game is about destroying vampires, introduce your player to a single vampire, then force them to battle two vampires at once, then three. After that, let them go to town on a single vampire again. After the challenge of defeating three bloodsuckers at once, the slight reprieve will be a welcome break for the player. Likewise, the player will compare and contrast their first encounter with a single vampire to their most recent encounter. How will they measure up? A good designer will want their players to feel satisfied and empowered, not unfairly punished.
Of course, what works on paper rarely works in practice. There is no substitute for thorough testing. Developers should listen carefully to feedback from players, and – here’s the kicker – suppress their egos. When someone criticizes your work, it’s easy to dismiss that point of view as uninformed, incomplete, or just plain wrong. But by protecting your ego and clinging to your own opinions, you may be dismissing information that could improve your game.
Developer as Tester
I firmly believe that a game’s developer should be its first and best tester. During production, no one will play your game more than you will. This has both advantages and disadvantages. On the one hand, you will become intimately familiar with every facet of your game. On the other hand, you may fall into testing patterns or become comfortable with certain idiosyncrasies. Remember, just because you know the critical path through a level doesn’t mean you should take it every time. Be thorough, and make every effort to break your game.
I never release a game for testing unless I have exhausted my bug list. If I can no longer find errors, then I need more people looking for them. After submitting the Beta version of Vanessa to indiePub’s 3rd Independent Game Developers Contest, only one critical bug surfaced: in some countries, decimals are stored as commas instead of periods. This formatting issue prevented some foreign gamers from fully enjoying our game. The bug itself was easy to fix, but it demonstrates the need to conduct deep and thorough tests of your game.
Final Notes
If you are unfamiliar with interface design, I highly recommend studying Jakob Nielsen’s Ten Usability Heuristics, available from his website, useit.com.  These ten practical suggestions will help ensure that your game offers a more satisfying experience for players. For example, Nielsen suggests that “every extra unit of information… competes with the relevant units of information and diminishes their relative visibility.” For this reason, Vanessa’s in-game interface consists of only the most important information: a level number, the number of rotations the player has triggered, and the amount of time that has elapsed since the level began.
Conclusion
The ideas expressed in this article worked for Vanessa. However, every game is different, and independent developers should never cling too tightly to a single design philosophy. However, by carefully considering these concepts, you are bound to think more critically about your own games, and arrive at an approach that best suits the project at hand.
David J. Sushil is a professor of Game and Simulation Programming at DeVry University. He is also the owner of Bad Pilcrow, an independent game studio in Orlando, Florida. His most recent game, Vanessa Saint-Pierre Delacroix & Her Nightmare, was awarded Best Design in indiePub’s 3rd Independent Game Developers Competition.
-
The Design and Opportunities of Skill-Based Games
Posted on October 9th, 2010 2 commentsDavin, VP of Social Games for the Game Show Network, talks about the opportunities of skill-based games
You can download the podcast here…
http://www.indiegamepod.com/podcasts/cc-gsn.mp3Or listen to it here…
-
Social Game Flash Engine Tutorial, Part 4: Adding in a special IsoItem
Posted on October 8th, 2010 1 commentHi,
This is the next part in the tutorial to build your own Social Flash Game MMO based on the Free Social Game Flash Engine…
You can read part 1 here…
You can read part 2 here…
You can read part 3 here…
Special items such as animals are handled in a particular way. Animals in the game follow the same standard of set up that normal items do, however in order to control the seperate animation behaviour they were given a slightly extended set up. First of all our animal must exist on one frame and be given the instance name “animal” as shown:
As you can see, the elephant is a 2×2 IsoItem, and is positioned exactly the same way an item is. Now, if we dive into our “animal” movieclip and see how the animation is set up on the timeline:
We can see the three main frame labels we’re looking to have, “standing”, “moving” and “eating”. These three frame labels will get called at the appropriate time for the animal. The rest of the process is exactly the same as adding an item, except that it should be placed in the storeanimals.xml file.
-
Social Game Flash Engine Tutorial, Part 3 – Working with a Store
Posted on October 7th, 2010 1 commentHi,
This is the next part in the tutorial to build your own Social Flash Game MMO based on the Free Social Game Flash Engine…
VetRanch allows the player to purchase items. These can take the form of animals, decor, buildings, or even some extra land. Persistent data is becoming a growing trend in flash games, giving the player an in-game currency and allowing them the ability to purchase items and have them still there when they come back to play again the next day. It’s little things like this that increase the fun and replayability of the game.
The store in VetRanch offers the player extra experience when they purchase the item, this is one of the ways that the player can help raise their level in the game.
To trigger the building of an item in the store, we use the following IsoMap function:
setCurrentBuilding(ref:int, type:String, cost:int)
The reference is the unique id found in the itemlist.xml file talked about earlier, the cost is obviously how much should be deducted for building the item once it has succesfully been built. The type variable is what we’re interested in, this is what we use to determine how the item should behave.
For instance, if we set the type to “item” then it will behave exactly like a static item as we would expect. However, if we set the type to be “zoo” then it will take on the characteristics of an animal.
Placing an Item in the Store
Once we have inserted a new item into the game, we need a way to add it into the store so it can be purchased and placed on the players map.
The store currently loads the decoration information from the storedecorations.xml, which has a typical format of:
<items c=’decorations’>
<item fl=’3′ f=’5′ p=’500′ i=’isopics/statue1.jpg’ uid=’31’ box=’0′ xp=’1′ pt=” t1=’0′ t2=’0′ >Statue 1</item>
<item fl=’10’ f=’5′ p=’500′ i=’isopics/statue2.jpg’ uid=’32’ box=’0′ xp=’1′ pt=” t1=’0′ t2=’0′ >Statue 2</item>
<item fl=’1′ f=’0′ p=’10000′ i=’isopics/pool.jpg’ uid=’30’ box=’0′ xp=’1′ pt=” t1=’0′ t2=’0′ >Pool</item>
<item fl=’10’ f=’25’ p=’250000′ i=’isopics/mediumhouse.jpg’ uid=’43’ box=’0′ xp=’1′ pt=” t1=’0′ t2=’0′ >Medium House</item>
</items>The two important attributes we’re interested in here are the “uid” field, which links directly back to the uid specified in the itemlist.xml file earlier, and the “i” attribute which links to a thumbnail image of our statue. “p” is also of importance, and refers to the price that the item will be sold for.
To add in our large statue, we could place something along these lines in the .xml file:
<item fl=’3′ f=’5′ p=’500′ i=’our_statue.jpg’ uid=’4′ box=’0′ xp=’1′ pt=” t1=’0′ t2=’0′ >Our Statue</item>
Now our item should appear in the decoration tab in the store, and can be purchased and placed into the game with no additional compilation of the main game needed.
Clothing Store The game also comes with a clothes store to give the player compete customisation over their appearance in the game. Feel like dressing your character in the style of a certain adventurous archaeologist? No problem.
By letting the player dress their character any way they please gives them the much needed ability to express themselves and this helps them to truly get hooked into the game. All of the characters clothing can be externally loaded, this means we can add hundreds of costumes into the game, giving the player no end to the possibile combinations to choose from.
The clothing store is fairly self-contained, and can be shown or hidden by calling the following two functions Main.as.
gotoClothingShop()
hideClothingStore()If you’re wanting to play around with how the clothing store works, open up AvatarShop.as, this is also where we can set the prices of the various hair styles, tops, bottoms and shoes along with various other details.
-
Using Google Chrome To Distribute and Promote Your Games
Posted on October 6th, 2010 1 commentMark and Mike, from Google, talk about the Chrome Web Store and the opportunities for indie game developers
You can download the podcast here…
http://www.indiegamepod.com/podcasts/cc-google.mp3Or listen to it here…
-
Social Game Flash Engine Tutorial, Part 2: Adding in a special IsoItem
Posted on October 5th, 2010 No commentsHi,
This is the next part in the tutorial to build your own Social Flash Game MMO based on the Free Social Game Flash Engine…
You can read part 1 here…
Part 2…
The first thing to understand when working with an Iso World is how to generate an isometric grid. This will become very useful when it comes to developing items or flooring for the game.As can be seen, Fig 1.1 is a 2D grid that we start off with. The first thing we need to do is rotate this grid by 45 degrees, then squish it in half in to what is shown by Fig 1.3. This will give us an isometric grid to work with.
The default size of tile we will be working with is 86.2×43.1 pixels, as specified in the IsoMap.as file. This can be obtained by taking a 50×50 pixel square, rotating it the 45 degrees and reducing the height by half.
In order to best develop a standard that we will work with in the Iso World, we will be placing the 86.2×43.1 pixel tile at the (0,0) point in a flash file. For larger IsoItem’s, these must be extended downward in the appropriate direction as illustrated here:
It is really important that these dimensions and positioning are followed in order for them to be displayed correctly when loaded into the game, and for the sorting to work as expected. We have now extended both the xlen and ylen to be of value 2, and have a 2×2 IsoItem basis to work with:
We can make this loose guide into anything we choose, for example this overly sized statue might fit perfectly into a 2×2 IsoItem tile slot:
Now all that’s needed is to delete our tile grid and we have a 2×2 IsoItem ready to be inserted into an Iso World.
In VetRanch, all items are loaded into the game when the Iso World is generated at run time, so we need to save this as a seperate .swf called our_statue.swf.
The next step is to upload this information to our .xml file, so that the game knows where to find the information on the new IsoItem we have just created. Every item in the game must have a unique identifier, and should appear in the itemlist.xml file. Opening the .xml file you will see lots of items listed, it should look something like this:
<items>
<item uid="1" type="item" loc="isoitems/1.swf" frameno="1" xlen="1" ylen="1">This is item #1</item>
<item uid="2" type="item" loc="isoitems/1.swf" frameno="2" xlen="1" ylen="1">This is item #2</item>
<item uid="3" type="item" loc="isoitems/1.swf" frameno="3" xlen="1" ylen="1">This is item #3</item>…
</items>
The attributes of a single “item” is given by the uid (the unique identifier), loc (location of the item), frameno (the frame number that the item is on) and the xlen/ylen, these are the two values we’ve talked about. For our statue they will both take the value 2. Finally, this is followed by the items description.
Next, by taking the next unique identifier (we’ll take the number 4 for this example, assuming there are only 3 other items in the list) we might have something that looks like this:
<item uid=”4″ type=”item” loc=”our_statue.swf” frameno=”1″ xlen=”2″ ylen=”2″>Our statue!</item>
Now that the game knows our item exists, where to find the image of it and the size of tiles it will take up on the map, we will need to place this item in the store so that it can be purchased and placed in the game.
-
Get Interviewed at GDC Online…
Posted on October 4th, 2010 No commentsHey folks,
I’ll be at the GDC Online conference. If you’ll be there, send an e-mail to support **** at ****** indiegamepod **** dot **** com …or post a comment below with a way to contact you (it will not be published)…and we’ll set up a quick interview at the conference.
It’ll be a good way to give back to the community and inspire other game developers 🙂
-
Founder of GameSalad Discusses Making iPhone Game Development Mainstream
Posted on October 3rd, 2010 No commentsMichael, founder of Gendai Games, talks about getting non-programmers to make games
You can download the podcast here…
http://www.indiegamepod.com/podcasts/cc-game-salad-final.mp3Or listen to it here…
[wp_youtube]W9cHfhx9z9M[/wp_youtube]
-
Founders of the Game Audio Alliance Discuss The Benefits of Audio For Games
Posted on September 30th, 2010 No commentsFounders of Game Audio Alliance discuss the benefits of audio and music for games
You can download the podcast here…
http://www.indiegamepod.com/podcasts/cc-gaa.mp3Or listen to it here…
[wp_youtube]tilBeqwvMB0[/wp_youtube]