Categories
Geek / Technical Personal Development

Learn Computer Science, Not Coding

When I was in college, I was in the computer science program. Some of the classes were about learning programming.

I enjoyed programming, but I didn’t always enjoy the classes. Part of the reason was that we were learning how to program in Visual C++ 6.0.

For anyone who remembers it, 6.0 was…OK. That is, if you wanted to code and compile and run a project, it worked more or less as expected.

But it had a reputation for not supporting the C++ Standard very well. As I didn’t know the Standard very well myself, I had no idea, but in hindsight, it explained why my professors almost universally ran into difficulties teaching certain aspects of it.

Eventually the school’s official language switched to Java. I recall hearing it was because a professor started talking about linkers and object code and got a bunch of stares from confused students who were used to doing nothing more than clicking the “Build” button in a UI.

Similarly, my classes that were ostensibly about teaching database concepts almost always were really classes about using Microsoft Access. Even before I started using GNU/Linux as my main OS and cared about cross-platform compatibility, it seemed wrong to me that the tool we were supposed to use to practice what we learned was so proprietary.

I found I preferred classes in which I learned concepts and theories that could be applied in many contexts. I always liked general principles rather than specific solutions.

Now, when I neared graduation and was worried about finding a job, suddenly my disinterest in specific tools such as Microsoft Access turned out to be a liability, but I was looking for programming jobs in particular, and most of them seemed to want people who knew not only how to work with databases but with specific types of databases.

On the other hand, if I cared, learning Access, or Oracle, or MySQL were all within my grasp if I applied myself. My issue wasn’t skill but experience. I understood how databases worked, and I could apply my knowledge to most of them. And in fact, my knowledge of how they worked could be applied outside of formal databases. When I was creating a component-based entity system for my game objects, I was basically creating my own database system. It’s been said that video games are just databases with pretty front-ends.

So I preferred being able to think generally about solutions rather than learn specific tools. I still hate picking up a game development book and discovering that it’s actually a Windows-specific game development book, or a Game Maker-specific development book, or a Game Salad-specific development book, or a Unity-specific development book.

A few days ago, I enjoyed reading Don’t Learn to Code, Learn to Think. The author is railing against the confusion that computer science is nothing more than programming, against learning a tool as an ends in itself. Computer science is a way of thinking, and programming is how you apply that thinking. The former is more general and has broad applications, the latter…well, creates specific applications. B-)

Not everyone needs to learn how to write code in the same way that not everyone needs to learn how to fly a plane, but knowing logic and information theory helps you in life the same way that knowing physics and math would.

If you want to learn something that also has broad applications, you should check out the online course Model Thinking led by Scott E. Page at the University of Michigan.

In these lectures, I describe some of the reasons why a person would want to take a modeling course. These reasons fall into four broad categories:

  • To be an intelligent citizen of the world
  • To be a clearer thinker
  • To understand and use data
  • To better decide, strategize, and design

Sounds good to me.

Being able to improve my ability to think about problems has wide-ranging benefits. For one, I have more tools. I don’t learn to use a hammer and treat everything as a nail. I learn the screwdriver, the ax, the jigsaw, and more, and I apply the right tool to the problem, and I can even combine tools in ways that make sense.

Similarly, if I learn programming but don’t learn the concepts, I’ve basically learned how to use a hammer. While you could hammer a screw into a board, you can’t use a hammer to remove the screw, or to cut the board. When problems arise, such as compiler or linker issues, or logic bugs, I have almost no frame of reference for how to solve them if I haven’t learned about compilers or De Morgan’s Law.

Categories
Game Design Game Development

Are Your Game Mechanics Off Balance?

Note: this post was originally published in the January 2012 issue of ASPects, the official newsletter of the Association of Software Professionals.

You’ve been working on your action game for so long that you’re sick of playing it. You have a wide variety of enemies with different strengths and weaknesses, and you’ve provided the player with dozens of different weapons to take advantage of those weaknesses. You’ve tested so many different playstyles, changing variables as you found issues, and you even had your family and friends try it out to make sure that they don’t think it is too hard or too easy. Your game is ready for your first customer!

Except something goes wrong. Someone discovers a way to use a weapon that dominates all of the enemies in your game, eliminating the challenge and fun entirely. Or perhaps there’s a sequence in the game that you find slightly challenging, but to someone who doesn’t know all of the intricacies of the game and hasn’t had the opportunity to practice for months, it’s frustratingly too hard. In either case, the reason why your game isn’t ready is that it isn’t balanced.

A Numbers Game

Balance in a game can refer to many things, but the basic idea is that you are deciding what values and numbers to use in a game. As an example, Tic-Tac-Toe, or noughts and crosses, has two players, nice spaces in a 3×3 grid, the requirement that you can place only one ‘X’ or ‘O’ during a turn, the requirement that each space can only hold one mark, and a victory condition of having three of your marks in a row. Tic-Tac-Toe is a fairly simple game, but you can imagine all of the ways you can upset the balance by changing these values. It would be a completely different game with a 4x4x4 matrix and requiring four in a row for a victory condition.

Balancing a game requires getting the numbers right, but it’s not always obvious what “right” is. Should your strategy game have one type of resource to collect or two? Should a unit that does twice the damage of another unit cost twice as much to produce? What if it has half the armor?

As I was getting my strategy game “Stop That Hero!” ready for release, I tried to make sure that even if someone didn’t play perfectly, they would still be able to win while also ensuring that it wasn’t too easy to win. What I found was that even when I played how I thought was sub-optimal, it was still using special knowledge that I had as a developer, so what was somewhat challenging to me was way too hard for someone else. Having other people play it gave me a lot more information to go on.

The feedback you get with playtesting will be invaluable, but you might find you are making guesses at appropriate values. In my game, the player summons minions such as orcs and dragons to fight off heroes such as archers, knights, and wizards. Summoning costs resources, and it takes time to summon a minion. How much should an orc cost? How long does it take to summon a warlock?

While guesses are good for getting the game up and playable in the first place, the guess-and-pray approach can be tedious and slow when you’re trying to get the game ready for customers. There has to be a better way.

A Little Analysis Goes a Long Way

I found two tools helpful in game balancing work: a spreadsheet and a whiteboard.

In the spreadsheet, I entered as much information about the various entities as I could. Data such as HP, movement speed, and minion costs all ended up in the chart. In the game, resources increase by 1 each second for each castle and tower the player controls, so time is another value to keep track of.

EntityDefinitions

Using numbers such as cost, time to summon, game play time, and the number of towers the player controls, you could answer some questions, such as:
With control of one tower, how many orcs can the player afford by the time one orc is available on the battlefield?
How many slimes can be summoned after 30 seconds of game play if the player has control of one tower? After 1 minute? With two towers?
How many orcs could have been produced during the time it takes to produce one slime?

The answers come fairly naturally from the data. For instance, if an orc takes 3 seconds to be summoned, and a slime takes 6.4 seconds to be summoned, you can produce two orcs and part of a third in the time it takes to produce one slime. Knowing this information, you can determine that the cost of one slime should be just slightly more than the cost of producing two orcs, all other things being equal.

But sometimes the values aren’t equal. In my case, an orc does the same damage as a slime during one attack, but orcs deliver attacks every second while a slime needs to spend a little more than 2 seconds to do its next attack. Also, slimes move at less than half the speed of orcs. On the other hand, slimes have ten times the hit points, making it much harder for the heroes to kill it. So how much is a slime worth compared to an orc now?

If you can come up with appropriate formulas, you can gather some statistics to help in balancing. Figuring out the relationships between all of these numbers is key, and this is where a whiteboard can come in handy.

STH_BalanceChart

This chart represents all of the interacting systems during a game session. You can see how player resources are influenced by play time, the structures owned by the player, and resource chests collected. More resources means more minions can be summoned, which decreases resources and increases the number of entities. Some entities can capture towers, which helps increase resources. Combat is represented by the weapon-related boxes at the bottom of the chart, which all impact HP, which impacts whether or not a given entity exists. Speed can be impacted by a slow status effect, which means heroes take longer to move, which means the player has more time to gain resources and summon minions.

Even with only a handful of numbers, you can see that the relationships between them and across systems can get complex. Still, this chart helps us find our way to some interesting statistics. For instance, we can determine how many orcs it takes to kill a one guard. Let’s say that guards have 250 HP and do 33 HP of damage every 1.2 seconds, and orcs have 100 HP and do 17 HP of damage every second.

Orcs take (250 HP / 17 HP damage) x 1 second = 15 seconds to kill a guard. Guards take (100HP/33 HP damage) x (1.2 seconds) = 4.8 seconds to kill one orc. Since guards kill orcs at a rate of 0.208 per second (1 / 4.8 seconds), it takes 15 seconds x 0.208 = 3.125 orcs to kill a guard. In game terms, three orcs will die before the guard’s death blow is dealt by the fourth orc.

STH_MinionKillRatesByHero

Knowing this information, we should make sure that the player is capable of summoning at least four orcs for every guard in the game world, or else it will be impossible to withstand the onslaught of the heroes. If orcs cost 7 resources, and if one level is designed to produce four guards from the nearby village, the player should be able to have 7 resources per orc x 4 orcs per guard x 4 guards = 112 resources before those guards arrive.

You can also see what happens if you change a number. If an orc does twice as much damage, it would take 250 HP / 34 HP damage) x 1 second = 7.4 seconds to kill a guard, so it would take only two orcs to kill a guard (7.4 seconds x 0.208 orcs killed per second = 1.5 orcs).

By studying the relationships between numbers, you can determine what information would be useful, and then simple mathematics can get you that information. Spreadsheets also help you by making it easy to tweak values to see what effect a change might have on other values. You still need to playtest as much as you can since it is only by playing that you can determine if the game is entertaining enough, but this article should have demonstrated that you have tools to aid you in balancing the game.

Categories
Game Development Marketing/Business Personal Development

See Me Present at StartupCity Des Moines on May 29th

StartupCity Des Moines

NOTE: If you couldn’t make it, the presentation is available online.

Des Moines, Iowa has a coworking community called StartupCity Des Moines. It’s a pretty neat place, and there’s a lot of exciting things going on there. It’s the only entrepreneur hub I know of in the area.

Over a month back, I went to a lunch and learn on entrepreneurship given by one of the founders, Christian Renaud.

About halfway through his talk, he mentioned the idea of sharing your failures with the community. While successes are great to share, giving a post mortem for failed business also helps make the entire community of businesses better for the future.

“I would strongly encourage you, just for the betterment, to not make central Iowa suck for startups over the next 20, 30, 50 years. Till that back in. All the good things you learned, all the bad things you learned. Till them back into the soil, because God knows we need them.”

Since then, I’ve been thinking that I have something to share from my experience running GBGames full-time and failing to get it self-sustaining before running out of money.

I’ll be presenting at the end of the month:

Playing the Long Game: The Vital Importance of Purpose, Mission, and Vision to Your Business

Gianfranco Berardi will share the major lessons that can be drawn from his experience running an independent game development business full-time.

He’ll explain what happened between the time he delivered his two weeks’ notice to his day job in 2010 until 2012, when a lack of funds forced him once again back to part-time business owner status. See how a lack of strategic planning resulted in a business with no focus and a business owner feeling out of his depth. More importantly, learn how doing the hard work of identifying your Why, How, and What pays off both immediately and in the long-term.

WHEN:
May 29th, 2014 at noon

WHERE:
StartupCity Des Moines
317 6th Ave, Suite 500, Des Moines IA, 50309
p: 515-868-0473
e: info@startupcitydsm.com

It’s a free event, and I’d love to see you there. Register for it at https://tikly.co/-/2510.

Categories
Geek / Technical

Ooh, Some Pixel Art Tutorials!

I’m a pretty good programmer, but I’m a self-taught artist. That said, I think I make fairly decent programmer art.

July #1GAM

It’s not beautiful, but it’s not strangely proportioned stick figures either.

I used to draw all the time when I was a child, but aside from taking a drawing class in high school, I haven’t had any formal training.

So I’m always on the lookout for ways to improve my craft, especially when it comes to creating better 2D graphics.

A long time ago, I found Alexey Garkushin’s page of pixel art tutorials.

While I’m sure there are more up-to-date documents out there, the page hosts tutorials from a variety of artists, including “So You Want to Be a Pixel Artist?” by Tsugumo which starts out with the ubiquitous grass tile and takes you through multiple lessons on coloring and shading to make your tiles look much more pleasing. Eventually the lessons take you through animating a fighting game brawler sprite.

Also available are tutorials on animating water flow, creating a pixelated portrait, and working with isometric views. They are easy-to-follow and give some insight on how to create the kind of art seen in some of your favorite classic games, such as Final Fantasy 3 (or 6 if you didn’t play it on the SNES).

There are even a few tutorials on non-pixel art, such as using Photoshop to render human hair and a general art tutorial that is appropriate for anyone interested in learning more about how light and shadows play on objects.

If you want to see how some amazing examples of pixel art, check out PixelStamps, “a collection of stamps pixelated by the pixel artists of the world.” When people click on stamps, the stamp price goes up to indicate the popularity of it. It’s a pretty neat site that gives you an idea of what’s possible with a few strategically-placed colors.

Do you know of other pixel art tutorials? Or art tutorials in general? What’s your favorite?

Categories
Game Development Politics/Government

Public Domain Jam Next Weekend #PDJam

Copyright law is kind of messed up. Actual copyright law is actually a combination of codified law and legal rulings to clarify or provide exceptions for such laws. For a primer on copyright law for indie game developers, see What an Indie Needs to Know About Copyright.

The Copyright Clause of the U.S. Constitution states that Congress is empowered “to promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the exclusive Right to their respective Writings and Discoveries.”

That is, copyright is a tool to promote science and art, and it does so by providing a temporary monopoly for creators.

It is NOT meant to provide monopolies for creators as an end in itself. It’s just the means to an end.

Once the temporary monopoly’s time period expires, the work in question enters the public domain.

The public domain is the set of all creative works that are available to the public. There are no licenses required, no fees to pay, and no patents to worry about. That is, someone was able to benefit immediately from creating it, and in exchange, for the rest of posterity, everyone can benefit from it and build upon it. That’s the way it should be.

The nature of creation isn’t completely independent invention. Instead, a new creation tends to rely on existing creations. For example, the invention of the electric motor relied upon the knowledge produced earlier on the nature of electric currents and their interactions with magnets. Another example is the popular BBC television series “Sherlock” which is based upon writings of Sir Arthur Conan Doyle from the late 1800s.

Unfortunately, copyright law keeps extended the “temporary” monopoly indefinitely and there doesn’t seem to be an indication that it will stop, which means the public domain has been frozen in place for decades. So while, for example, Disney was able to build an empire off of freely available public domain works, such as the story of Snow White and the seven dwarves, no one has been allowed to build off of Disney’s works in turn. Basically, some people got some advantages from free culture and aren’t returning the favor, and what’s more, they are actively lobbying to ensure they won’t have to.

Lawrence Lessig is the author of Free Culture, which explains more about how copyright law used to work and how it no longer does. I highly recommend reading that book if you want to understand the vital importance of a healthy and constantly replenished public domain.

But what are we doing today? The public domain that exists, as stuck as it is, still has plenty of great works to build upon. And yet, when it comes to games, are we seeing a lot of unique work?

We have the ubiquitous space marines (including Relic’s Space Marine), zombies, and military shooters. We have the Tolkien-esque fantasy games, the interstellar wars with hostile aliens, and the dudebro hero’s journey.

And yet, there is so much more out there to build games upon.

Enter The Public Domain Jam.

Gritfish explains:

I announced the Public Domain Jam a month ago as a reaction to the over-use of some themes in the indie game scene, but since then, I’ve been flooded with nothing but enthusiasm from people over their love of works in the public domain.

The tagline for the jam is “Because there’s more out there than zombies.”

To encourage the publication of games that immediately contribute to free culture, “Nothing to Hide” creator Nicky Hide has donated a $1,000 prize to be awarded the top rated game published under a Creative Commons Zero license.

There are a number of other incentives, including free art and sound assets, free licenses for cross-platform game engines, and more.

I think it sounds like a fantastic idea. The only concern goes back to my assertion at the top of this post: copyright law is messed up.

Years ago, I wrote about Zorro, the public domain, and derivative works. The Curse of Capistrano is the first story to feature Zorro, and it is in the public domain. The Mark of Zorro was the 1920 film about the story. It’s also in the public domain.

Except, copyright law is different from one country to another, which means that while you can make your game based on this story in the United States, you might not be able to distribute your game in some countries where the story is not yet in the public domain.

Moreover, even though the copyright for some stories about Zorro are in the public domain, the trademarks for Zorro do not expire.

Which is why Zorro Productions is able to exist. If you want to make a Zorro-based film, TV show, comic, game, or book, you probably want to license the rights from them to avoid legal trouble. The claim is that the original story does not describe Zorro the way people expect to see him today. Characters such as his horse Tornado are introduced later in works not in the public domain.

There have been a number of lawsuits, including one last year involving a musical based on the public domain works that Zorro Productions claims is a violation of their trademarks and copyrights. The creator of the musical sued them, and it will be interesting to see if this case plays out in its entirety instead of being settled out of court like they usually do.

So, again, the Public Domain Jam sounds great, but copyright law is complex, and everyone should be careful because otherwise public domain works might have certain organizations asserting they own some piece of it. And in the case of international distribution, they might be right in some cases depending on the laws of certain countries.

But remember, the entire point of the Public Domain Jam is to get us away from building “Yet Another Game About XYZ”. The rich variety of source material available in the public domain should provide plenty of innovation and without as much legal risk.

Categories
Games Marketing/Business

Ship on iOS or Android First?

iOS vs Android

When I talk about making apps for Android, the question I invariably get, occasionally with shock or disdain, is “Why not make apps for the iPhone/iPad/my precious device?”

To be fair, I tend to bias against what’s popular.

But not in an obnoxious way. I not that guy who insists on not having a television and makes sure to tell everyone each chance he gets. And, I’m not a counter-culture activist consumer. I run GNU/Linux, but I do so on a Dell laptop. While I don’t shop at Walmart, I do shop at Target. I make games for GNU/Linux, but I also port them to Windows because it is easy to do.

I just get suspicious when there is a rush to own a piece of something, such as the iPad, or the original iPhone before it, or the iPod before. Camping out to be the first to own a piece of consumer electronics that will be patched and/or obsolete within months is not for me. The same goes for new game consoles or games. I can wait.

I am very clearly not an early adopter, nor am I all that interested in owning an Apple product. I was fairly happy with my Linux-based computing at home, and the idea of buying something I couldn’t tweak or configure bothered me. Of course, the idea that it “just worked” and didn’t need configuration appeals to a lot more people, so Apple has been very successful.

Eventually, I got a a smartphone. It was an Android device, an HTC Evo Shift II. It had a slide-out keyboard, which meant I could text and type easily without needing to learn some gesture-based input. It was bulkier, but I never had to worry about buying an external case for it. I liked it, although eventually I started running out of memory for the thing, and that’s when I learned about how fragmented the Android market was. Also, I ran into the problems with the U.S. market in that my phone is tied to the carrier and not just a device that I can plug the carrier’s SIM card into. That means updates to this phone’s OS were never going to happen unless I jumped through a bunch of hoops.

I now have a Samsung Galaxy S4, but I kept the Shift because when it is connected to my wireless, it’s still a relevant computing device. Plus, I could use it to test any apps I make for Android.

So now I have two Android devices. No, wait, I have a third: the Google Nexus 7 tablet that my wife got me for Christmas last year, my first tablet if you don’t count the EXOPC Slate I got after GDC 2011. That’s three different Android-based devices that I can use myself as well as use as test devices for apps I create.

Android today has a much larger marketshare (so much for biasing against what is popular), but it is common knowledge that iOS apps average more revenue for developers than Android apps. The thinking is that people who are willing to spend the Apple premium are also willing to pay for apps, and the numbers getting reported tend to indicate it is true.

Apparently if someone switches from iOS to Android, it is news. For major app releases, it is very common for the iOS version to be released before the Android version, if a port comes at all. I wonder how Microsoft feels being the Linux of mobile in this regard. If the app gets updated, it is possible that the Android version will lag behind, or have an unnatural UI, or will be otherwise inferior. Now the trend seems to be changing so that Android-first is becoming more common, but not everyone is happy.

The Fallacy of Android First documents one developer’s experience with trying to go Android first. Emu is a messaging app, and apparently Dave Feldman found that Android’s fragmentation was still an issue and the development tools were not as robust or stable as Apple’s. The larger potential audience doesn’t always translate into more users of your app, especially once you take into account backwards compatibility.

Feldman says:

Running a startup is all about learning. This has been a huge lesson for us, one I wish we’d learned faster…but perhaps our experience will help others to make a more informed decision. Android’s flexibility, and its greater strength in certain markets, still make it a far better platform for certain types of product. But it’s a difficult road, and best to travel with your eyes open.

He links to Steve Cheney’s post Why Android First is a Myth from last October which similarly describes a more complex development experience for startups developing on Android, especially those who rely on venture capital.

All that said, what’s it look like for games?

iOS is still dominant in terms of revenue earnings for developers, and if you are selling apps instead of doing a free-to-play model, Apple has demonstrated that they have paying customers. Plus, there’s very little variation and customization, which means you don’t have to do nearly as much work to ensure your game will work on an iOS-based device, and when you do, you have a significant chunk of the market.

Google announced cross-platform Google Play Game Services so that developers can create apps for both Android and iOS more easily. In fact, Google is using services to provide new capabilities without a need to fragment the userbase more than necessary. So, it is getting better there. And with a F2P model, more potential users means you don’t have to worry about how stingy your players are.

But is it really that hard to release simultaneously? If you use a library like libSDL or an engine like Unity, you can have a single code-base that ports more or less seamlessly.

In any case, for my next game, I’m currently wondering if not having an iOS device and a way to develop for it is going to hurt me. I’m looking into my target market to find out if my convenience of using devices I already own to develop the app will coincidentally line up with their own needs, but more and more I’m thinking that I will need to invest in some Apple hardware if I am going to be relevant to my customers.

Do you release for iOS first, Android first, or simultaneously? What has your experience been?

Categories
Game Design

Book Review: Designing Games by Tynan Sylvester

Note: this post was originally published in the March 2014 issue of ASPects, the official newsletter of the Association of Software Professionals.

Designing Games by Tynan Sylvester

Many people have tried to create a comprehensive definition of games but have failed. Most definitions are either insufficient in that certain games are left out, or they are too broad and encompass too much that are not games. In “Designing Games”, Tynan Sylvester writes that games are “an artificial system for generating experiences.” Disney amusement park rides are clearly not games but would be considered such by this definition. It’s obvious he erred with the latter option.

Still, Sylvester’s definition is useful when approaching game design from the point of view of the player. When you tweak a space marine’s jumping ability, what emotion are you trying to provoke? When you insist on having simulated people visible in your simulated city, what is it that you want the player to think? How did the designers change the player experience in Super Mario World by ending levels with a giant gate instead of the flagpole from the original Super Mario Bros?

Much like the principle of Chekov’s Gun says that everything seen or mentioned in a film, play, or story should serve a purpose and everything else should be removed, game design demands that you make decisions in the same way. According to Sylvester, games are made to provoke emotion. As he puts it, “think of a game as a strange kind of machine – an engine of experience.”

The first part of the book is about the nature of games. The author identifies mechanics as the basic rules that define a game, then identifies the interaction of mechanics and play to generate events. A mechanic might be that a player can run. An event is what actually happens, that is, the actual running a player is doing. While most other entertainment media author events directly, events in games occur at the intersection of rules and play.

The key to being a good designer of games is to engineer mechanics that result in meaningful play. Events should be important to the player. He makes the claim that the importance of an event comes from the emotion it provokes. While emotions don’t have to be extreme, they matter. A key skill is identifying subtle emotions.

Sylvester argues that events have emotional relevance when they change the states of values that are important to people. In the game Minecraft, players are attacked at night by creatures, putting them in a state of danger. It is only in building a fortification that a player feels safety. In Lemonade Stand, selling lemonade means a shift from poverty to wealth. In World of Warcraft, joining a guild to fight a major enemy turns strangers into friends.

The greater the emotion, the more significant an event can be. Selling one extra cup of lemonade on a hot day might merely result in a few more cents in your pocket, but selling one extra cup when it means the difference between profit and loss is a huge victory. Some games give you bonuses for doing an event multiple times in a row. For instance, after Pac-Man eats a power pellet, the ghosts turn blue for period of time, and they are edible. Eating a ghost in Pac-Man gives you 200 points, but eating a second ghost gives you 400, a third 800, and a fourth 1600. The event is the same, but each subsequent event has more riding on it.

It’s the combinations of emotions along with the thoughts and decisions of a player that makes up the experience of play. The second part of the book is about how to create a game to generate the general experience you desire for players, the craft of game design. The chapter on elegance focuses on how to create emergent complexity from a few mechanics. Another chapter focuses on skill and how it creates barriers to entry to a game as well as dictate how deep a game is. Tic-Tac-Toe is a solved game for grown-ups while young children might find it a challenge. Chess, on the other hand, seems to have a skill ceiling that is beyond our abilities to master completely. In between we have games that are fascinating until players become bored with them.

The chapter on narrative focuses not on how to craft a good story but on the tools one may use to do so in this interactive medium. A fantastic concept is the idea of apophenia, which is our tendency to see patterns in complex data. I’ve heard of game designers amazed that players attribute malice and tenacity to an enemy that is in actuality programmed to act randomly. Apophenia means that emergent stories can come out of games so long as enough information is there to give players a reason to think. Out of the techniques the author mentions for generating apophenia, my favorite is labeling. Giving two identical monsters the names Poindexter and Grunt might result in a player thinking that one is acting much more intelligently than the other, even if it isn’t the case. There’s also the implied backstory regarding how those creatures were given those names. Labeling can also apply to attributes as well. It’s similar to writing a novel and describing a character as ravishingly gorgeous. Rather than actually write details about how someone is attractive that may or may not appeal to a reader, the reader’s imagination fills in the blanks, resulting in a richer and more entertaining story even though you actually provided less.

There are also chapters on decisions, balance, multiplayer design, motivation and fulfillment, and a game’s interface. I really appreciated the chapter on the market. “Every design decision is affected by the purpose the game was created to serve”, whether it is getting someone to buy a commercial game or walk away with deep thoughts after playing an art game. The entire chapter is about understanding the market you are creating a game for, and it is one of the biggest gaps in most books in game design. I’m pleased it was addressed quite well in this book, providing tools such as positioning and value curves, and explaining market segments, while also reminding the reader that models are imperfect.

For example, no one could predict that StarCraft would become a cultural phenomenon in South Korea. It was the result of a confluence of the popularity of Internet cafes, recent investments in broadband infrastructure, a recession that provided incentive for inexpensive entertainment, and TV channels dedicated to the boardgame Go that made broadcasting professional StarCraft matches a logical conclusion. Another example is The Sims, the greatest selling PC game of all time. It created its own market after struggling to get buy-in from the publisher. Existing models gave no indication that a video game about playing house would be so popular.

The third part of the book focuses on the process. Game design is geared towards the creation of a game, which is a major project. Planning such a project is much like planning a software project: sometimes we don’t know what we want until we see it working, or not working, in front of us. Playtesting is needed when tweaking mechanics or introducing and removing others entirely because it is only through play that a designer can understand the experiences being generated by the changes. Planning becomes difficult as a result, but planning can’t be ignored.

Iteration is the key, and Sylvester borrows ideas from Eric Ries’ “The Lean Startup”. We have uncertainty at every step in designing a game, so we conduct experiments to resolve the uncertainty. The steps are to plan, build, and test, and you do so to get back information about what works, what causes confusion, what problems might exist, and more. The book explains how to conduct playtesting, and it dedicates another chapter to ways to generate the designs to test in the first place.

I learned quite a bit from the chapter on dependencies, an understanding of which can help mitigate the risk that comes with creating a game. By identifying how various aspects of a game design are interrelated and dependent, we can create a graph called a dependency stack. The dependency stack informs us what aspects of a design to focus on implementing first. If goblin raids only make sense if there are castles to raid, you want to focus on the castle-building aspects of the design first. What’s more, a change in the implementation of castle-building would likely cascade to changing how goblin raids work, so a dependency stack also provides information about the risks associated with change. The biggest benefit it can provide is helping the designer identify the core game play, the minimum mechanics at the bottom of the stack that provide the meaning and experience desired.

There are some sections on management, teamwork, workplace politics, and handling incentives to work on a project. While these are all covered quite well in entire books on their own, Sylvester touches on them as a warning to aspiring game developers: recognize that game development is hard.

There’s a way to make it less difficult though. The last chapter focuses on the importance of the values that a game designer has. “I don’t think anyone can prescribe the best values for all designers. I do, however, think that every designer could benefit from thinking about what values they believe in. Because values keep us steady. They are immutable standards that stabilize us against the political and emotional turmoil of daily design work.”

Between this chapter and the one on understanding the market, Sylvester demonstrates his understanding that games don’t get designed in a vacuum. Too many game developers throw something together and put it out without any thought to why. The recent news about Flappy Bird’s creator taking down the highly profitable app because it brought him too much attention highlights the importance of knowing what you are getting yourself into when designing a game.

While I found some of the concepts in the book have been mentioned elsewhere, such as Jesse Schell’s “The Art of Game Design”, and I wish Sylvester would have touched on concepts such as the Mechanics-Dynamics-Aesthetics (MDA) model, I would highly recommend “Designing Games” for its comprehensive treatment of game design. I know I have quite a few new tools I want to wield at my own projects.

Categories
Game Design Game Development

Accessibility and Inclusion in Games: #AccessibilityJam Starts This Weekend

Access for skinny wheelchairs only

I just learned about Accessibility Jam, which is running from May 11th through June 1st.

The goal of this jam is to raise awareness, giving developers knowledge and experience of how to make mainstream video games accessible to gamers with disabilities, to provide good examples of what’s possible, and move accessibility towards being widely accepted good practice in the game design process.

The idea isn’t to make niche games that cater specifically to gamers with disabilities. The jam is meant to raise awareness and increase the accessibility of the kinds of games that are already being made.

I’ve written in the past on designing games to account for color-blindness. I recalled a beta test for a game in which one person complained about how hard it was to see the green vehicle on the green grass. This complaint confused me at first because the vehicle in question was blue. I eventually changed it to look significantly more interesting and give it a different color. Without that beta test, I would have inadvertently ignored a significant chunk of my audience.

Ok, so you can easily accommodate a color-blind player by using more than color to differentiate important aspects of your UI. You just need to be conscious about it and know about the tools of shape and size.

But what about players with other vision impairments, including those who have difficulties with reading? Or people who have hearing, cognitive, or motor impairments? Accessibility is a big topic, and you can’t possibly be expected to spend the time and effort here when you are trying to focus your attention on making the best game you can, right?

Well, the jam provides some awesome accessibility resources and tips, which features a number of useful links, such as the Includification Guide provided by the AbleGamers Foundation. This PDF is only a little less than 50 pages and offers practical checklists, advice, and examples, as well as numbers to indicate that there is a significant market you can reach with your efforts in accessibility.

Another link is Game Accessibility Guidelines, “a straightforward reference for inclusive game design” broken into basic, intermediate, and advanced topics. This site is a treasure-trove of information, and more importantly, it shows how easy it is to address accessibility. Basic considerations include using easy-to-read fonts and font sizes, especially as reinforcement of audio cues. Such a small effort means not just a more accessible game but a better game for everyone.

An example of an intermediate consideration is providing options in game speeds. Offering game speed configuration and the ability to prepare actions while the game is paused are some easy ways to assist those with motor and cognitive impairments. As a side-effect, it means accommodating people with different preferred play styles.

Once while demonstrating my casual real-time strategy game, Stop That Hero!, to someone, he requested that I add a game speed slider. While I’ve had requests for a way to increase speed when you just want to get your orcs across the map quickly to see what happens, this player wanted something more like a turn-based game.

Pausing the game but still allowing player interaction meant that he could take his time to make decisions about what minions to summon and where to summon them. I’m afraid I never got to that feature before I put the game on the back-burner, and while I initially didn’t like it as I thought it might ruin the feel of the game I was creating, I have since realized that allowing players to enjoy the game at their own pace allows for a much better experience for more players. That it means the game would be much more accessible to people who might not otherwise be able to enjoy the game is an exciting prospect.

So, are you planning on participating in Accessibility Jam? It sounds like a great opportunity to learn and practice ways to make your game more playable by a wider audience.

(Photo: https://www.flickr.com/photos/drdul/210641686 | CC-BY-SA-2.0)

Categories
Game Design

Avoiding Player Elimination in Game Design

Dr. Lewis Pulsipher, author of Game Design: How to Create Video and Tabletop Games, Start to Finish and creator of the strategy boardgame Britannia, has a YouTube channel on Game Design, currently with over 20 videos on topics such as tabletop game history, level design, and content creation. A number of these videos are meant to be part of a game design course Pulsipher teaches.

In Avoiding Player Elimination in Game Design, he talks about ways to keep people playing throughout a game instead of feeling that it is hopeless to continue if they are too far behind.

In the above video, he focuses heavily on war games, but he touches on a simple idea for keeping non-conflict games relevant throughout the play session: providing escalating values and rewards. You can see this effect at play in some Eurogames.

Mario Party games tend to incorporate this idea, too. Even if you’re losing, you might get bonus stars in the end to keep you competitive.

The rest of the video is a fascinating bite-size nugget of game design thoughts, and I wish there was more to the discussion.

What are you favorite game design videos on YouTube?

Categories
Game Design Game Development

Game Design Pro Tip: Don’t Ban Specific Activities

Fishing ban!

In Ban the ban: essential game design advice (with examples), Nick Bentley talks about the cognitive dissonance of establishing rules and then creating special “but you can’t do X” rules to prevent problems.

Why do such rules exist? The most common reason is, during play-testing, the designer discovered players want to take an action that would hurt the experience – for example, a too-powerful action every player would take every turn if allowed. The most obvious fix is to ban it.

He then goes on to explain how doing the most obvious fix is a bad solution.

Banning otherwise-expected actions means the rules become harder to learn and the game play itself becomes awkward as you are constantly checking your planned actions against the rules.

Bentley’s post is a fascinating bit of insight into how a design problem can turn into a design success. By not banning actions, you have to allow for them. The entire point of banning a move is because it is unbalanced or otherwise ruins the game, so how do you allow it without the game suffering?

Interestingly enough, the answer can sometimes mean a much deeper and more compelling game.

Basically, take the action that you deem is too strong and assign a huge cost to it.

Bentley gives a couple of examples and a counter-example to see when it makes sense to include a ban, but the result is a choice that makes sense within the rules and can sometimes result in a more strategic game.

While Bentley is talking about boardgames, you can see how it would be applied to video games.

For example, if your game has inventory, you could limit the amount that could be carried. If a player with a full inventory comes across some new loot, the choice is to get rid of something to carry the new thing or not pick it up. Think Diablo or Minecraft.

NetHack, however, allows you to carry whatever you want, but it balances it with an encumbrance penalty. The penalties get more and more severe as you collect more things. You start off with penalties to speed and attack ability. If you carry too much, the penalties include not being able to walk up or down stairs, getting hungry faster. Carry even more, and you start taking damage for each move you take, and eventually you can get to the point where you can’t move at all.

Instead of arbitrarily deciding that a player can’t carry that much inventory, you turn it into a strategic choice. Do you want to struggle to carry all of the groceries from the car into your apartment so you can do it in one trip, or are you going to make multiple trips so it is easier?

You can see how this method of balance would apply in terms of limits on the number of units in a real-time strategy game. Some games add an upkeep cost which increases after you add so many units. Now I can choose to have too many units in my army temporarily if I’m willing to pay the cost, say for a large offensive push or to defend against the same.

“You can’t perform this quest. You don’t have a sufficient experience level.” No, by all means, try to perform the quest, but it is going to be incredibly punishing. The balance is already built in here!

Sometimes limits are technical in nature, such as the number of units you can have in your army at once. Still, you can see how allowing the player to decide if a decision is a poor one or a good one despite the cost means a deeper play experience than it would have been if you were limiting things arbitrarily.

(Photo: https://www.flickr.com/photos/jo-h/6009234100 | CC-BY-2.0)