Category Archives: Game Development

The game development category focuses on development issues: programming, development methods, development tips etc.

“Dinner is ready!” and other thoughts about IAP

A funny tweet by Daniel Cook regarding IAP got me thinking that not all IAP is necessarily bad. In fact, I think there could be two ways to categorize In App Purchases. One is “while playing” and other is “while not playing”.

For example, if I’m playing Magic the Gathering with friends and suddenly a salesguy walks in… trying to sell me new cards, I would not appreciate that. It’s my turn and I’m thinking of spending mana here, and *pof* that guy wants me to buy new stuff? Not cool.

That’s “selling to me while I’m playing” which isn’t that nice.

Now, if that salesguy would set up his shoppe outside my friend’s home… and was standing there after I’ve finished playing. If he then would show that there’s additional content to be purchased easily, I would appreciate that.

That’s “selling to me (if I choose to listen) while not playing”, which is good. Also, I’m not talking about what sort of content is being sold. That’s a separate topic in itself.

The point is: not all IAP are evil as is, some can serve the customer.

Remember how it was when your mom told you to join the dinner table while you were intensively playing?

I don’t want IAP to be like that.

What if it wouldn’t cost anything to clone physical objects?

What if physical objects could be easily cloned. what would happen to ownership? If somebody owns a banana that can be replicated instantly, would it change anything? What would you do, if you had the power to clone bananas very, very cheaply:

A) deliver almost free food everywhere in the world
B) patent the banana and require everybody to pay for each additional banana that’s cloned
C) do something else

What you think?

How lost sale is “lost sale by piracy”?

If you were in a situation where two things are about to happen, and you can prevent only one of them. Which one would you prevent from happening?

  • All your assets, home, money, stocks, everything would vanish. Poof. They are gone.
  • Or 100 million players are pirating your $10 indie game.

Now you can choose. Either you prevent (1) destruction of your assets, or (2) you can prevent 100 million players pirating your $10 game.

Which one would you prevent from happening?

Meaningful grinding

A recent tweet and Winter Wolves forum post about grinding got me thinking how to deal with this issue.

Grinding can be relatively boring experience. For example, in an RPG a player character cannot complete a quest because there’s too tough enemy in the end. Therefore the character goes and kills some orcs to get experience points to level up so that he can beat the quest boss enemy.

Grinding here is simply a boring act of clicking without real threat of losing anything. Why is this introduced in the first place? If the purpose of grinding is to make player “wait”, then there’s little meaningful play there.

I’m not trying to fully describe what grinding is or how it should be dealt with, but the basic idea can be that you need to do some boring, repetative action in order to progress in the game.

So, what are alternatives for grinding?

No grinding?
One obvious is: no grinding. This cuts down the playing time, and at least gets rid of the boring parts. But this isn’t necessarily the optimal way since it requires tons of work, and some players actually like some aspects of grinding.

Meaningful quests
One very obvious way to masquerade grinding is to introduce quests. While everybody and their mom can notice that killing spawning rats in a forest is grinding, adding some variety to this in form of quests can bring some meaning into things. Instead of killing a rat you first talk with an old man who has a rat problem, you go to his barn, kill rats, collect rat tails and then come back and gain experience. This too can be grinding, but having few more different actions (talk, walk, kill, collect) add variety into the system, and becomes slightly less boring.

For a time being.

Long-term penalty for grinding
Instead of viewing grinding as “something you need to do to beat the next enemy” we could introduce long-term thinking in how much grinding you do. Usually player can choose to grind so much that there’s no challenge in beating the major boss: for example you might have designed that in the end of Map 2, there’s a Level 2 enemy which should be attacked by Level 2 hero. Hero might have decided to kill spawning wolves so much that he is now level 7 hero, and can easily beat level 2 boss. So, your challenge has become something that has absolutely no challenge (first rat killing, then easy end boss kill).

To prevent this: introduce some long-term negative penalty for grinding. For example, in some games there might be attribute “age”. If player spends 60 years in the forests beating rats, in order to beat the next boss… he might suffer penalties for Dexterity or something. Maybe his skills are getting better, but his core attributes receive penalties (thus he might have perfected his mastery of the sword, but since his endurance is very low he can hit just once). This “age” attribute can be a really harsh penalty, so milder versions most likely are more suitable for most games.

Another thing might be that since time passes, there are certain quests he cannot take. Perhaps there has been a possibility to defend a city from attacking pirates, but since the player character spend 3 years in the forest collecting mushrooms, the pirates conquered the city. There’s no “defend the city” quest (that would reward the player with plenty of experience points, karma and equipment) available any more.

Here player has had a choice between “low-risk, low reward mushroom grinding” and “high-risk, high-reward pirate attack quest”. That can be a meaningful choice as-is. Player must take his pick, he cannot choose both ways.

Or perhaps character receives a curse point every month (I dunno why, maybe he just is cursed) and the more curse points he receives during the game, the worse overall score he’ll receive at the end of the game.

Or perhaps the curse points affect: each curse point increases the likelyhood of random bad encounter during travels. This way, player may decide to grind to gain experience, but receives curse points that affect traveling. Therefore, player cannot grind too much or his long-term progress gets worse.

Or maybe player character is an elf who can live 500 years, and grinding really does increase his age — thus eventually killing the player if he grinds way too much…

Whatever the situation, one way to think of grinding is that “grinding gives you short term help (for example: helps completing the current quest) but introduces long term penalty or hindres progress somehow. This way player might need to think how much grinding he does: he must balance short-term gain vs long-term pain.

And the other way to think of it: allow player to grind (low-risk, low-reward) but also allow him to choose high-risk, high-reward path.

Even more meaningful quests
Adding an another layer of meaning in the previous actions help make things bit more interesting. Naturally this means you have to do some work to get the engine going, and it’s probably a hidious thing to test… but here’s the general idea: doing certain actions change state of the world.

For example, if the player character goes around killing rats throughout the city, eeventually he’ll piss of the “hunter killing guild”, which is the official jobbing place for rat killers. No outsiders are allowed to kill their rats. This means that when your player kills rats, this event triggers negative and positive reputation. Let’s explore this situation bit more.

For example, there could be several entities in the city, some of them listed below:
- rat killer guild
- inn keeper guild
- old man
- miners
- prince
- villagers
- thieves

Then there can be several resources in the town (here’s a few examples):
- rat population
- gold mine
- food situation

Each of these entities could have relationship. For example, “rat killer guild” could be happy when “rat population” is high. “Prince” doesn’t give rat’s arse, if you may, about the rat population, but he cares about “food situation”. Inn keeper guild doesn’t care about “rat population”, and they actually want “food situation” to be poor (so that they can get monopoly over limited resource). Villagers hate rats. Prince wants to keep good relationships with the rat killer guild but also with the inn keeper guild. And somewhat good relationship with the villagers to ensure there’s no riots.

Now, some examples that might occur if the player character was to go really deep into killing rats. Naturally, getting rat population lower might actually be an impossible thing… but let’s assume there’s a town with a really low rat population, and somehow the main character manages to use alchemy to come up with a poison to kill almost all the remaining rats.

What would follow:
- rat killer guild would be pissed off: they have just lost their jobs to an outsider
- inn keeper guild doesn’t care since rat population doesn’t concern them (unless the hero decides to start a rat burger business too)
- old man specifically cares about rats in his barn, but he might also generally like the idea that there’s fewer rats in the city, thus he might thank the player
- miners don’t care, so nothing happens there
- villagers hate rats, so they like the new situation
- prince notices that rat killer guild is pissed off, which might mean prince gets bit pissed off too, but not too much since villagers are happier now

What else might follow?

Rat killer guild members might try kill the player character (this can be simply by spawning random rat killers somewhere near the player character, who have think that player character is “enemy”). Of course if there happens to be “friendly” villagers nearby, those might join to defend the hero.

As you can see, by introducing just a few elements in the game economy, we’ve seen a huge difference in what “rat killing” has become. By introducing generic elements, we can see emerging behavior from different groups, and player needs to choose sides.

And these are just numbers.

See how it’s almost automatic that you think “rat killer guild” is “bad folks” and “villagers” are the “good folks”. (I’m taking a wild guess here that you sort of mentally labeled them one way or another).

And they are just numbers. I could have listed them as groups A, B and C and doing thing X creates negative relationship with group A but positive relationship with group B. But since we labeled them “villagers”, “prince” etc. we assume differently. There’s now, in a way, some meaningfullness in the system itself. Player might choose to do things game designers didn’t anticipate (maybe he pisses off multiple sides, maybe he manages somehow to get villagers and rat killers hostile towards themselves. Maybe villagers manage to kill rat hunters, and then rat population grows too high, pissing of villagers who then go attack prince for not doing anything.

And at that point our lone hero has left the town…

But what about balancing?
Now that’s a tricky subject I purposely left out. In this blog post I thought only about how to add meaningfulness to grinding.

As for the balancing all this, that’s probably beyond this blog post.

Sure, by introducing new elements, you also have to think about the game balance, but one thing is certain: even if you go with “rat killing, no side effects” method… that too has balancing issues. No matter which route you take, there’s always balancing issues.

Here I tried to look at things that might turn grinding into something bit more interesting.

Doing the tiny, irrelevant things is good for the soul

Before I start discussing about the feature I’ve added to my card game, I must first tell you one cool thing that japanese anime artists do, that many others don’t do.

There’s something really cool in anime productions. The artists spend crazy time on adding details or scenes that are barely used in the movies at all. They do additional work that no sane producer would ever allow. They do some tedious, extra work, where gain is minimal.

The producer’s mind – and very many software development methods such as as any scrum system – usually try to follow this rule:

  • Maximize value, minimize work.

I tried googling for a certain scene image that I remember from Fullmetal Alchemist, but since I couldn’t find it, the next one needs to do. Here’s an example image from the Fullmetal Alchemist anime series:

This type of image might be shown for like 2 seconds. Just 2 seconds. And then it’s never used again. Never shown. Look at that image.

Creating this type of image takes time. It’s not born in 2 minutes. And there’s tons of other similar scenes in those series.

The city image I’m thinking had even more details, and it could have been left undone. Or it could have been done with much less effort.

Yet, the artists chose to spend quite a bit of time doing this thing, that adds quite little value. I don’t argue that it wouldn’t be important for viewers to see how the city looks and all that, but hopefully you do get my point. The point is: drawing a very detailed piece of art takes a long time. Showing/using that piece of art only for a second or two means it’s tons of work per second of film. If all seconds were like that, it would be pretty darned expensive movie to draw.

I mean… that art scene was so beatiful, that why not let me look at it for 15 or 30 seconds. Just 2? What’s going on?

But anime aside.

The point is that these type of small, meaningless details add *soul* to a game (or a movie). They add something unexpected, something different to look for. When something new, unexpected occurs… and if that’s a rare moment, that’s good.

Even if it takes some additional time.

And here we finally arrive to what I’ve been cooking the last month.

I’ve tested, balanced, shaped, manipulated, tested, balanced and done some crunch work to get my physical card game The Infected into a releasable state. During the last month, I added one feature. It is somewhat minor addition (using the very basic core elements there’s already in the game) – it’s total of 3 new cards. And 3 new pieces of art. That might not sound like a lot, but if we keep in mind there’s 108 cards in my game, so that’s about 3% of all the cards in the game.

I could have chosen not to add the feature nor these cards. I’m not saying I’m anywhere *near* the level of japanese anime masters in bringing new & exciting things into their product. I’m not saying I’m anywhere near the level of game designers who pour tremendous amount of effort into perfecting their games.

What I’m saying that in my own internal level of “how polished this game is”, I’m darned happy I chose to add the allies in the game. The allies in the game bring some amount of luck (to human team’s favor), but also add a small tactical element to use. I’m not saying they would be useless, but I could argue that this ally feature goes to the basket of “nice to have” feature. Not a critical, not useless either, but perhaps a fun one.

Here’s one of the new ally cards:

Who knows, maybe adding this feature brings something different in the game. Perhaps some fun emerges from it.

Just maybe this brings bit more soul to the game.

What Minecraft, Diablo, Civilization and Farmville have in common?

Designing a a physical card game (still in progress) has given me a new perspective in games. Or at leat strengthened the perspective of game mechanics. I’ve learned to better look the underlying structures of games. I’m definitely not suggesting that I’m now one game designer guru. But I can say that my own game design skills & understanding have improved, much thanks to developing a non-video game.

That’s enough for me to dive into thinking some of the core elements of fun in games.

Recently, I draw the following picture:

While it’s definitely not capturing all aspects of fun, not even meant to be a serious attempt of “figuring out fun”, there’s some underlying nuggets of wisdom there, I’d say.

Hitting the human nerve: growth
The games presented are totally different: Civilization is about developing nations, Diablo is about hero kicking the nasty monsters, Minecraft about mining & building, and Farmville a farming game. There’s still at least one underlying aspect that makes these games fun (for certain people): it’s the growth.

In Minecraft, you are able to dig wood in order to build a bench in order to build axes and pickaxes in order to get more resources in order to build more stuff. The more you mine and collect, the better tools you get to mine and collect. This is one aspect of fun in Minecraft, not the whole truth, but I’d dare to say very important part of it.

In Civilization you build cities to get resource to grow bigger cities (very simply put). In Diablo you kill monsters to get resources & weapons to kill bigger monsters. In Farmville you… well, you grow stuff to grow more stuff.

I think we humans have tremendous need for growth. Think of Internet. Twitter has follower count. Sounds stupid? Yes, but everybody and their mom who is active in Twitter wants more followers.

Think of military: you start at the bottom and try & make your way to the top.

Think politicians. Think of corporations. Think of any career: if the place is fun, quite likely there’s chances for growth.

Think of self defence and belt systems.

Think of sports.

Think of kids.

Think of atoms, and what they are made of. Think of the universe and what it consists of.

“Everywhere” is a dangerous word, since most likely there’s exceptions, but I’m going to use this word anyway. Almost everywhere in the world, there’s need for growth, and motivation for growth. Games are no different.

Why people stop playing tic-tac-toe. Once you know the optimal strategy, the game becomes totally pointless (from the perspective of growth as in “getting better”, naturally you can still poke some fun by fooling around your opponents). Once you’ve achieved everything, there’s nothing else to do. Just boring, mindless thing to “play”. That’s no fun.

What about MineCraft? In MineCraft, there’s shitload of things to do. There’s huge amount of things you can dig that help you dig or build even cooler things.

The “digging resources and building tools in order to dig more resources to build better tools” loop is hugely important part of fun in Minecraft. It’s hugely important aspect of very many games.

This element can be either built-in to the game (for example as in Minecraft) and additionally it often is there automatically in more skill* based games (for example in FPS games where your own skills improve as you play). Or, it can be combination of both, and usually is.

For example, if we’d play game of dice where throwing bigger number wins, there’s no room for growth (in terms of who will win). You throw 4, I throw 3. You win. Play again?

In MineCraft you don’t need superfast reaction skills to survive, yet you can advance & grow your home & tunnel network in the game.

In civilization, you can grow your city and naturally become a better strategist as a player. In civilizations, the both aspects of growth in-game (cities, technologies etc) and outside the game (player strategy skills) are well represented.

In FPS shooters, you might have all the guns/roles unlocked and your survival depends on your reaction skills. There might be shooter that has no in-built system for growth, yet you as a player can “advance” in terms of honing your skills. Thus growing or becoming a more skilled player.

Minecraft, Diablo, Civilization and Farmville. Even if you love one and hate another, that wouldn’t mean these games couldn’t have one underlying common element of fun: possibilities for growth.

Artificial stupidity

Games do not need AI that makes perfect moves, or is highly intelligent in terms of strategy. What games need are acts of stupidity. Human errors. Mistakes. Stupidity – as compared to intelligent play – that occurs only sometimes.

In NHL game series the AI is evolving, but it’s also very predictable. The AI doesn’t make occasional silly moves. There’s no accidental mistakes.

What’s great in online multiplayer games: human opponents. Even the most skilled players make mistakes, silly mistakes. That’s what creates fun, memorable, unexpected moments. That’s what AI should try to replicate.

When AI programming reaches the level of emerging stupidity, then we are onto something.

How to make releasing a game really difficult

5ish years ago I was doing my Dead Wake project, and one of the most important aspect of development was incremental releases. Every 1-2 months, I put out a new release. This was a really big deal to get things tested. I even had this counter on the website that said like “27 days, 11 hours, 9 minutes till the next release”.

That was cool way to do it.

I took a different approach on my card game, which I started in 2010. It’s been now over 2 years since development started. While I’ve done some iterative development (there’s been several internal Big Releases), I notice that while actual public release approach, it becomes harder.

Is it good enough? Will it be well balanced? How will the traitor mechanism really work when there’s different groups playing? I’ve been able to solo test each version pretty well, I’m quite certain the solo version works. The traitor mechanism has had issues, and it’s been improved ever since. I do realize I need to put together this last version, and get the traitor aspect tested once more. There’s been some changes in the last couple of months, which affect this.

Another aspect has been my kids. I’ve purposefully given more attention to my kids, and I’ve took less night shifts to work on my game – thus extending the development time. And of course there has been actually waiting periods while I’ve waited ships and planes to bring me the physical version with the new art.

Anyways.

The point is: there’s been gaps in development. This has meant that occasionally I’ve lost momentum, needed to regain it, go on with nice pace, then stop again. And, I’ve done only internal Big Revisions, not public one. Or even beta ones, as my main testing group is me, and secondary testing group is our board game group. Keep in mind we are talking about a physical card game, not a video game.

So, two big lessons:

  • Iterative releases: set up deadlines, and stick to them. I remember that it was always cool the get a release out, even if it didn’t have all the hoped features. If you release something only every 2 years, that makes it harder to release.
  • Keep going: momentum is important. If there’s weeks of gap in the development, restarting is always hard.

And a bonus tip: physical card game development isn’t as simple as it might sound. There’s tons of reasons why people are doing iPad card games nowadays. That’s a bloody fine idea.

I haven’t ruled out the idea of iPad version of my card game, but as my dream has been to create a physical card game that I can play & enjoy with my buddies. There’s some aspects in multiplaying with buddies that computers simply cannot offer.

I’m very close to a release now. I have all the pieces here. I need to do the final run. Get it tested and I’m good to go. But for the next projects… I doubt it’s going to be a physical one.