Refining a Game Until it is Fun
I’m crafting an economy game using Python and Google App Engine. Called Island of Naru, it is a simulation of a small society on a tropical island. The core design revolves around production and trade:
- Towns produce resources based on the surrounding terrain.
- Towns can trade with each other through a complex trading network.
Because terrain affects production, the location of a town matters. A town surrounded by mountains, for example, can’t grow very much corn, while a town surrounded by corn fields can’t mine very much iron ore. The disparity between locations is what drives the need for towns to trade with each other. By trading with each other, our hypothetical mining camp and farming town can become much more prosperous than they could on their own.

The previous release of Island of Naru added simple trade: cities that were connected by roads could exchange goods. The latest version adds simple production: towns near fields will produce food, towns near mountains will produce raw materials, and towns near factories will produce manufactured good. This change is exciting because it means the core game concept is now playable. In essence, this is the first version of Naru which actually resembles the game I set out to build. Now it is possible to start experimenting with the game design, looking for the fun aspects of it and bringing those to the forefront. Much like a rough draft of an essay, the game needs rework and refinement to bring out the best qualities buried inside it. I’ve already done a little exploring with some changes I’ll talk about below, plus I have some half-formed, fuzzier ideas about where the fun may be hiding that I’ll mention at the end.
As soon as terrain-based production was finished, my first thought for improvement was to make the economy more complex by providing ways to enhance production and by adding another resource type: manufactured goods. Production of raw materials can be improved by digging mines in mountains, while irrigating fields increases the amount of food they will produce. Manufactured goods are only available if you build a factory next to a city. These changes gave the game more depth.
Next I added exploration. I want the player to have to think about where they build their cities, especially the first one. It should be beneficial to hunt around a little for an ideal site, and I think that with a little tweaking, this can be accomplished now that terrain impacts the city’s production. I’m hoping that exploration will help enhance the feeling of landing on a new island and looking for a good spot to build. The island starts out unexplored except for the beach where you came ashore. You can then explore outward from there. I tried making the player explore one tile at a time, but I found that it took too much time: most of the player’s clicks were spent exploring instead of building. That’s not what the focus of the game should be, so I changed the exploration to uncover several squares at a time, which helped. With exploration, the early game is more interesting because the player has to balance exploring with the need to start a town as soon as possible.
Finally I tried to tweak the numbers behind the economy so towns could grow to larger, more realistic populations. This change took more effort than I expected because it uncovered some problems with the way I was calculating demand and the happiness of the population. Fixing it involved modifying the internals of the supply/demand system to allow more control over the minimum and maximum required amounts for each resource. This not only fixed the problem, but also gave me more control over the balance of the game, which may be useful later. The new numbers don’t seem glaringly low, so the game feels more realistic now.
Even with these improvements, I feel like the fun is still buried. So where should I look next? I have three guesses. First, I suspect the game needs more depth. There are only three resource types at the moment, for example. The trade is also very simple. A more complicated trading network with bottlenecks and different capacities for different types of roads would be much more interesting to manage. Right now, once a player connects all the cities with roads, there is nothing else to manage. There’s no upkeep, improvement, foreign trade, or ports. I expect adding these details will help a great deal once the game is almost finished, but they should probably wait until the bare skeleton of the game is a little more refined. You don’t start decorating a house until after the walls are finished being built.
My second guess for making the game more fun is adding a goal. In its current state, Naru is just a toy, not a game. Sure, the player can invent a goal for themselves, like “highest island population in 100 moves” or “biggest single city” but self-imposed goals aren’t very powerful motivators. I think imposing some goals and adding a high-score table or two would help add a competitive edge to the game. I may add a simple goal just to give some direction to the player and avoid confusion about what they are supposed to be doing, but fancier changes like multiple goals or score tracking need to wait until the core idea provides more fun on its own. High score tables enhance existing fun, they don’t magically make boring tasks fun.
I think the biggest thing hiding the fun is lack of resource constraints on the player. They can build everything for free, so nothing feels valuable. For example, the player should have to agonize a little over the perfect location for their first city, but right now there’s no need: if they find a better location later they can always just build a city there. Similarly for roads: the player should feel a sense of accomplishment when they manage to add a new city to the trading network but since roads are free this isn’t difficult and there’s no sense of accomplishment. A typical game goes something like this: build a city in the flatlands, build a second city by the mountains, build 4 road segments to connect them, build a factory, uhh, now what? 7 moves into the game the player already has access to every resource. Each new city gets connected to the others in a handful of moves, and the end result is that the player doesn’t spend any time thinking about the trading network.
I’m going to try the standard solution to this problem: gold. Make the player pay for building cities and roads, so they are more valuable. I’m not sure what the mechanism will be for getting money in the world. Sim City had taxes to raise money, Oasis let you search for followers in the desert, Civilization made you use special “settler” units that were difficult to obtain. Any of these would work; the key thing is that the player has to make choices about what they want to build with limited resources.
If you want to play the game now, even though the fun may still be elusive, go to http://naru.countlessprojects.com. Feedback is always welcome, of course. You can leave it below. I’d be especially interested to hear any thoughts about refining game designs to uncover hidden fun within them.
May 15th, 2009 at 12:02 pm
So, here’s my comments. This is after playing the game for about 10 minutes.
- You should have some sort of character icon and that should dictate where you can explore. I was able to click any gret box around the explored area and it was then explored. It would make it more interesting if you moved the icon around and that’s what explored, built stuff and do whatever else.
- It appears that once you build a factory, you’re stuck with it. You can’t bulldoze it. I think it would be nice if you could bulldoze it, clear the land and then re-purpose it to another land type.
- It would be nice to have some kind of timer in the game. This could do a few things. It can allow for achievements (do this by this time) and it could also help progress the game along. Right now, the game appears to be turn-based. Also, this timer can be used to bring new things into the game. (i.e. trade via the sea, trade via airplanes, etc) You can also “reveal” other stuff. (i.e. bring on the airport, bring on the car, etc.)
- I agree with you with the money issue. I built out a decent three town area, and watched the bars move on the side whenever I tried to build a road on a town.
- I’m not sure I would do a point-based system (which you were eluding to) that you could compare yourself with others. Why not have a number of achievements and then post who has done the achievement, when and how long it took to complete. Then, you add more achievements as the game progresses. (Keep ‘em coming back.)
I’ll return to the game tonight and give more feedback.
Great job and it’s fun to see the game progress!
May 15th, 2009 at 9:30 pm
Here’s some more feedback:
- The game (at least Island #21084), seems to be good one turn, then hate the other as it rotates between the two turn-by-turn. It a bit too formulaic for my choosing.
- The areas of road, irrigation and factories need to decline if they aren’t being “repaired.” This is confirmation of your observation that you need to have other types of units.
- Somewhere on the game page, you need to give a key to what the H, F, M and G means. I’m guessing it means Happiness, Food, Mining, and Goods (Manufactured).
- On the other note, I think it might be interesting to have random events that pop up and do stuff. This could be similar to the Godzilla, alien attack or storms in the SimCity franchise. But, you could add in stuff like locust swarms, highway robbery, tsunamis, drought. meteorites, mine collapse, or any other similar annoyance. This could also mean that you could have some sort of police/emergency unit.
- Another random thing is weather. For example, snow in the mountains would slow down the mines, creating more of a demand of the ore. Rain would help the crops to grow. Too much sunlight would parch the ground, making it more difficult for the crops to grow.
If you’re still working on the game, I can let my students give their feedback in about 3 months. Might be interesting what they have to say. It’s my game level design course. Let me know.
- Andru
May 28th, 2009 at 12:02 am
Good comments! Thanks for taking the time to write those up. We’ll see how far along this is in 3 months when you have the game level design class (of course, most of the stuff we’re discussing now is game mechanics and not game level design. I don’t know what the scope of your class is, but I’m definitely taking the procedural route with game level design because I don’t have anyone to hand-craft individual maps. I don’t know how that would impact the relevance to your course.)
Bugs and oversights:
- Not being able to bulldoze a factory is a bug. (Although maybe bulldozing a factory should leave a polluted superfund site that can’t be reused immediately.)
- You’re right about the cryptic legends on the charts. I threw those charts in at the last minute and they are obviously half-baked.
Thoughts on individual gameplay elements:
- I thought about having an avatar but I don’t want the player to have to spend time walking back and forth across the island. It might be realistic but doesn’t sound fun. Oasis had an avatar but he could teleport around so it was just decoration; it didn’t actually change the gameplay. I am prototyping a different exploration model which should improve at least the exploration phase.
- I don’t know how much (if any) of a player’s time should be spent worrying about repair. On one end of the spectrum, Oasis didn’t do repair at all. The original Sim City just made you pay for repairs but nothing else. RTS games often have specific units which you can use to repair specific buildings. I don’t think I want the player to spend too much time worrying about repairs, but I might need to make them at least pay for road upkeep to discourage over-building. Draining money also adds the possibility of failure (via bankruptcy), which is good.
- I never did like the random disasters in Sim City. I don’t know why…maybe because they always messed up my “pristine” city? It wouldn’t be too hard to add disasters if enough other people want to see them added, I suppose. However, I do like the idea of cyclical demand for goods, weather affecting crop yields, etc.
Thoughts on overall goals:
- I was planning on calling turns “years,” similar to civilization. I don’t want to just give the player technology like cars and planes at pre-determined times, though. The player should have to research them. This could work well with an achievement system to add special challenges to the game, like “Earn $500,000 from tourism by the year 1950″ (where tourism would require ports or airports). Or perhaps “Build a high-speed rail system before 2010.”
- The achievement system you mention could be good. It could still be competitive if you tracked how long it took different players to reach different achievements. I don’t know how much competition would be appropriate for this game; some players will be encouraged by competition, some players will find it daunting. If nothing else, at least I have a lot of options for goals to give the players.
August 29th, 2009 at 2:07 pm
The game is okay, but if they don’t understand it they won’t play the game.
First, when I played it I didn’t know what I was doing. When I selected a city, I didn’t know which city it was. You should make simpler ways to tell how much they mine/harvest. Like instead of 800 to 1600 food. Make it 2 and 4 (unless you want to do something in the future). Factories built after you build a city, don’t work. The city will not make goods, so thats a bug. You might want to make a counter that shows overall how much we need, I couldn’t tell at all what I needed when I had many cities. I think the population grows to fast also, I couldn’t keep up very soon. A question is that, if there are two cities next to a field do they both harvest it? And if a city is diagonal from resources it also get resources too?
You might want to tie the population to how much cities manage to work later. Like if this city has more people it might harvest more. But, if it has too many, it will have too many people to feed.
October 1st, 2009 at 12:00 am
Yeah, the lack of directions and crappy UI make it pretty hard to figure out right now. Sorry about that, I know it is probably annoying. At the moment, however, I’m much more worried about the fact that I’m not finding the core game mechanics very entertaining. Even if I wrote an awesome introduction and cleaned up the UI right now, the game wouldn’t actually be any fun, which is a problem. I’ve actually been working on some (un-published) prototypes of various parts of the gameplay to try to make it more fun to play. To save time I’ve been cutting a lot of corners on them so they aren’t really releasable (they don’t even run on appengine, so I don’t even have a good way to release them). Hopefully, though, I’ll be able to get them fun enough to justify porting the mechanics over to the existing appengine version.
You mentioned counters showing exactly what is needed. I’m hoping to leave the exact desires/needs of cities somewhat vague and inexact in order to make it more interesting. Basically this kind of economy game presents the player with a limited number of levers and a few gauges. If the gauges are very accurate and respond quickly to inputs from the player, then finding & maintaining balance in the game would be too easy and not fun. However, if the guages are delayed slightly, and don’t give exact feedback, then the player’s balancing act becomes much trickier and more interesting.
This is something SimCity did very well. They gave the player a lot of vague data, like the low-resolution pollution & crime maps, or the sliders showing demand for residential, commercial, or industrial zoning. They also delayed some of the data, like the end of year report.
February 1st, 2010 at 8:51 pm
I will definitly give this game a go and give you a bit of feedback! – Sammy