Saturday, September 8, 2012

substituting skill for stats


In some games the difference between an ax and a sword is statistics; a sword hits for 7 damage every time, while the ax varies from 3 to 10 damage.  As the character gains experience they get a +1 bonus to their chosen weapon.

That is boring.

Instead of axes having different stats than swords, we can make them act differently.  If axes hit enemies on all sides of you when you attack, while swords automatically strikes enemies as you pass by, a skilled axman will learn very different tactics from a skilled swordsman.  This both makes the game more interesting, and gives you skill progression without having to program it into the game.

Games are a process of learning, so any stat that increases over time can be instead given to the player as something to learn.

We don't even need to have the character level up explicitly;  if each run through the game is full of idiosyncratic items that we never see again, then the player quite skilled in the tactics of one play-through, can be a beginner in the tactics of another play-through.  Unidentified items are the traditional way of doing this, but we can also add lots of unusual conditions on items: like a wand of fireballs that fires left of where you point, or an amulet of speed that only works when you are standing in water, and so on.

This may be a confusing post but what I'm trying to say is that the player is constantly learning and getting better at the game, so we might as well take advantage of this by taking things that used to be modeled within the game and giving them for the player to learn instead.

Friday, March 2, 2012

Effects

A lot of the fun in a roguelike comes from new abilities adding tactical complexity. One example is a staff of blinking. In Brogue it allows you to jump to another tile in the unobstructed line of sight. But because monsters obstruct this jump it's not an item that you can forget about and then use at the last minute, instead it adds another tactical consideration that you want to keep at least one line of sight free so you can escape if you need to.
Similarly fire is a great tool, it inflicts severe damage to creatures over several turns and you can light things on fire from a fair distance away. But because some of the terrain is flammable, if you use it at the wrong time you can light yourself on fire, it has limitations that make it more tactically interesting.

For my game I have the self imposed limitation that all items must sensibly fit into the ecosystem. Because of that, some interesting effects are going to be provided by berries.
Here are some that I have so far.
  • Fire seeds: when activated start a flame at that tile.
  • Bomb berries: count down 3 turns and then explode, destroying rock walls and damaging creatures. Good for changing the terrain but if you want to damage a creature you have to plan ahead.
  • Mist spores: creates vision blocking mist to protect you from ranged enemies. Based on summon butterflies from Dungeon Crawl.
  • Gourd: when you first use it it copies an adjacent creature. When you next use it, it releases that creature into the wild. It doesn't allow you to defeat an enemy but it does allow you to change the species in the ecosystem.
  • Healing fruit: It takes the natural healing you would have for the next 50 turns and gives you it all now. If you take 2 in a row the second will not do much because the first already gave you the healing from the next 50 turns and so there is not much left for the second one.
  • Frost berries: freezes a tile of terrain. Creatures skate across frozen terrain in one turn without changing direction.
Some abilities that are too useful to depend on, so the play always has the ability to dig and fill holes and also to mine away dirt walls.

Thursday, February 2, 2012

Farming without grinding

I read an excellent thread on the roguelike development newsgroup titled exploitation and evasion. As one poster says "we can model players as attempting to maximize the probability of winning even when it does not maximize fun." therefore I have a duty to make optimal play fun.
Optimal players are only willing to go to the next level if the reward per risk, on that level is greater than the level they are currently on; even if the rewards on this level are tiny, the greater risk of the next level may not be worth it.
Naturally I want each level of the game to be more difficult than the last and at the same time I want the player to explore the whole game rather then staying on the first level forever.

Since my game is centered on farming, the time spent on a level can be spent growing the resources to make the next level less risky. To prevent a player from camping on that level and farming forever, plants will exhaust the soil, making it necessary to venture further and collect nutrient sources or farm in a new area. A cycle of seasons would further encourage exploration by making times when you cannot gain anything by staying still.

But still, I do not enjoy games where I already know the one thing to do, and the only obstacle is frustration with doing the same thing over and over. Growing things should require at least a little improvisation. The simple way to do this is with pests. Say you are growing some bomb plants and some swarms of beetles keep eating off all the flowers. You can fight off a couple of these beetles at a time, but if you want to grow more than one bomb plant you have to try something different. There are poisonous plants deeper in the dungeon that you could plant around the bomb plants to repel these beetles.

So as production increases in both scale and time there will be decreasing marginal gains. The one remaining temptation for grinding is to collect infinite resources. To prevent this I will have only 26 slots in their inventory, the remaining items will have to be left in stashes. Items not in someone's inventory will be slowly decomposed by microscopic creatures therefore a player cannot spend all their time gaining resources and have to progress in the game at some point.

Saturday, January 28, 2012

Ecologies

Species naturally organize into associations that somewhat resist invasion. This is obviously because species that do not resist invasion do not stick around. An interesting system of ecologys for the game would be ones that are relatively stable until the player disturbs them.

An example of this is this fire based grassland.
The &s are highly flammable bushes
the ;s are dry grass and the ,s are young grass
Gs are grazers that survive on the grass. Not seen are predators that survive on the grazers
Ts are trees slowly invading the grassland.
Because of the presence of the highly flammable bushes, fire keeps the grassland free of trees. But when the bushes are removed grassland turns to forest. Introducing creatures that eat the bushes would create this forest, if not for the high population of predators (due to the grazers) and relative scarcity of bushes. So this system is both naturally stable and disturbable with work by the player.


Slightly different uses of a resource can allow the coexistence of similar organisms.
All four of these species grow inside of walls any only one can live in a wall at a time.
# lichen: spreads by placing seeds onto adjacent walkable tiles which can then spread into walls.
# moss: can only survive in a wall with a face flat to the air. Spreads to adjacent tiles.
$ slime: Wanders orthogonally within the walls until it touches air. When it touches are it spreads into tiles that do not.
# algae: Only spreads in tiles that do not touch air. Doesn't like touching more than two other algae at once.

Moss and algae always win when they fight a different organism for a tile which is how they survive in their more specialized niches. Lichen always loses and compensates by it's ability to spread across air gaps. As I said in my last post, the layout of walls effects the balance between these four organisms which then really changes the resulting ecologies of the species that eat them.

Level generation by creatures

Since I plan to have a working ecosystem, digging out the levels is a continuous process that is done by creatures rather than by a level generation algorythm. Towards that goal I tested out several digging behaviors.

The first I behavior, I call dwarves, is really two sets of behavior. the head dwarf digs long straight tunnels an occasionally changes direction. The secondary dwarves occasionally place doors when they are about to enter a larger space, and also dig away corners that are not next to doors. This builds a room and corridor like map with only local knowledge.


A second set of behaviors I call Ants. It makes sure that certain tiles ahead and to both side of it are occupied by walls. This makes it leave islands of unexcavated material behind.


Finally because it was so easy, I implemented a maze digging creature. It can only dig into tiles that do not create a new connection.

Because different layouts effect hunting effectiveness and what kind of plants can grow, the digging creatures that are on a level really effect the types of species that survive on that level and therefore it's resistance to invasion.

Friday, January 27, 2012

A game I would like to play

I have a rather bad habit that prevents me from enjoying most computer games. When the game gets slightly hard or uninteresting I start to wonder if maybe there is something better to do.
Strangely, I really enjoy hard and sometimes pointless activities like draining puddles, programming, and drawing endless numbers of lofi sprites, but when a computer game gets hard in the wrong way, I feel betrayed, as if the creator is unnecessarily hindering my job. The only games that never make me ask this, are games like manufactoria or tribble breeder, in which I get to build a somewhat open ended thing, possibly because I feel as if I make something real in the game, and am not just stuck in a sisyphean fight.

I would like to play a game where the world interacts with itself and I am so weak I can only try to set off each part against the other to get where I want.
I would like to play a game where I can automate the parts I know how to do freeing me from micromanagement and letting me enjoy watching a well automated game.
So for the seven day roguelike competition I would like to make a game that allows you to farm.
Managing the area to get the most of what you want out of the complex ecological relationships is my idea of fun.
Automating this management where possible seems even more fun, and so a game that allows you to gradually build a system to exploit a dungeon ecosystem is a game I would really enjoy.