Wednesday, March 9, 2011

Version 0.1 feature set

Here is the list of features for version 0.1. I am sure I forgot at least an item. “Stoneage” will be a more polished and rich version 0.1. I have included in the list both existing and future features.

Region map
  • Created based on map size, height, biome and map type. Map type includes slight incline maps, mountain maps (less soil, more rock) and experimental random elevation map.
  • Initial dwarf and equipment customization
  • 3 general map types based mostly on soil, sand or ice based on biome (I have no idea how you will survive on the ice map)
  • Map exploration on a single Z level. To compensate, maps will be larger.
  • New display mode, based on current Z level, decrement and increment. You can swap between rendering Z levels form current minus decrement to current and current minus decrement to current plus increment. This should help a lot when rendering performance is not enough, because you can fine tune the number of Z levels that will be displayed. UI component to track this information.
  • Map can be zoomed with two zoom levels.
  • Wall borders and short wall draw mode that can be toggled
  • Progressive snow fall
  • Action: remove snow. Cosmetic and only temporary
  • Progressive grass grow
  • Action: remove grass. Cosmetic and only temporary.

  • Primary build element for maps.
  • List of stones is near final, and does not include ore.
  • Action: dig wall. This will remove a tile or rock, creating a passage. You will get between 2-5 stones. Stones only have one size, even if it not that realistic. It is not fun to deal with 10 sizes of stone that can only be converted down, not up. Due to the sheer abundance or rock, the resulting stones will not be visible on the map. You will not need a stone stockpile and hauling of stone labor. This is an abstraction, because there is no way you can run out of stone and I would like to keep focus on creating rooms and passageways rather than endlessly hauling stone. Stone related tasks will be a little longer to include time for the invisible hauling operation.
  • Action: dig floor. Sometimes it can result in one usable stone. Low chance. If the floor (or wall) is sand, you will get all the sand.
  • Smooth and engrave for walls and floor. You can choose the pattern, but all patterns will look the same when viewed on the map.

  • Only on the top layer of the world. Fertile. Not present on mountain.

  • Stone can carved into furniture, containers, decorations or crafts.
  • Carved large objects like furniture can be moved
  • Open ended craft list. There are no fixed options except a few necessary items. You enter anything in a text box and the item is created. If you drop a picture in the right location, the item will even look like in the picture. No modding or technical skill required.

  • First batch of trees, either 16 or 32.
  • System designed to handle both realistic and more fantasy oriented plants.
  • Trees can have leaves, fruit or seeds.
  • Action: harvest leaves. You can choose the amount of leaves to harvest. Repeated harvesting of a majority of leaves will kill the tree.
  • Leaves come with little out of the box recipes. Leaves are flexible and ship with normal properties for leaves. Using the modding tools you can design leaves that have seeds.
  • Action: harvest fruit. Fruit is generally edible and has seeds.
  • Using the editor you can design a tree that has seeds without any leaves or fruit.
  • When harvesting an entity that has seeds, you will get units of that respective entity prepared for eating/processing and the seeds. I do not want to over complicate things for the player and have them worry about things that they already extracted seeds from.
  • Action: cut down tree. This will remove the tree and deny you its bearing potential. You will get 5 logs. Branches will be chopped down to firewood, making you not waste wood that is too small to form a log. Firewood can be used for making wood crafts. You will not get fruit, seed or leaves.
  • Action: cut down tree and remove trunk and roots. Very long task that gives extra firewood and fully frees up the tile.

  • Similar to stonecrafting, but you do it at a workshop and have a few extra items.

  • Semi final list of 16 plants
  • Behave like trees, but cutting them down yield plants and not wood. While trees can be harvested year after year and can be considered useful only for their yield if you do not need wood, plant generally are planted and fully removed by harvesting to get a useful yield.
  • With plants and trees the focus is more on surface plants rather than cave plants. I would like you to have to defend and place crops strategically rather than turtle up in a cave.

  • Workshops for the tasks above
  • Building walls from stone blocks or bricks, with or without roof
  • Building roads

Item browser
  • One centralized place where you can see all your stockpiles

Dwarf browser
  • Inspect the skills, gear and tasks for all your dwarves

  • The editor that I use to populate the world and create the rules made public


  1. Sounds nice, there are a few features that are really cool, like the need of above farmland :)

    The whole process of cutting down trees sounds nice too.

    But about the Stones, if i dig away stone i get a few stones but i cant see them?

  2. Yes. This is a small problem for which I haven't found a solution yet. Let's say you dig out a single cell full of stone. There is a given volume of stone. And let us say you ignore the ruble and small pieces of unusable stone. You are left with a smaller volume of stone, which you would have to haul around and deposit in a stockpile.

    Even if I exaggerate and say that the resulting volume of usable stone is only one third of the original volume, you would still be limited by a lot of hauling and you would only be able to dig out a number of tiles at most three times the number of stockpiles you have allocated to stone. So basically you would be moving the mountain from "inside" to "outside", but outside it would take up less space.

    So for now I decided not to bother.

  3. If Dwarfs could carry more than "one" stone like it is in DF and a Stockpiletile could store more than one stone wouldnt that be a solution?

    And to get rid of all those stones, a wall would ne more than one stone to be build. And if Dwarfs can carry more than one stone this woulndt be a big problem.

    What about some sort of minecart? this would be a real cool idea.

  4. No, it is not about the number of stones a dwarf can carry. It is about volume. A cell of natural stone is at lest 1.5 cubic meters. Even if after digging you get only let us say 0.5 cubic meters of usable stone (and the rest magically disappears), you would still fill up any stockpile reasonably fast. Hauling will take a lot of time and a dwarf is not strong enough to carry a boulder alone.

    The same volume concerns make it impossible to build a wall out of a single stone.

    Mine carts are out of the question at this stage. You need a lot more place for them and you need metal to build them.

    I will not sacrifice gameplay for extreme realism, but a bit of realism is required. You can get away with a lot more unrealistic things with ASCII graphics. But with isometric and 3D you need to mind it just a little.

  5. When will this be available for public testing?

  6. According to release schedule, I want to have the first release codenamed "Stoneage" somewhere between July and September. Before that I'll have version 0.1, with "Stoneage" being a more polished and "playable" version of 0.1.

    So you will get the opportunity to try out the game at release or latter, but not sooner.

    But I will make the editor and the service available sooner if possible. I would even like tot do it as soon as possible. But I think I need to launch the site before. What am I going to do? Put it up on RapidShare?

  7. How about a "mining sling" object which can act as a "backpack" and, as a miner mined, is filled with an array of rock, ore, and/or gem objects. When the miner finishes his mining task, he can go to a stockpile zone and deposit his sling/its contents at a specified location (workshop, bench, stockpile, whatever). The concept could be expanded to eventually allow for size/quantity limits, minecarts, various designated deposit points for different materials (ie when you are done with the mining task, deposit ore here, and then deposit rock here, and then deposit gems here).

    I don't know how inventories are kept track of in the game engine, but I'd think if you can keep rocks and ores, at least the smaller ones, in an object array, and then wrap that array into a container object, it would simplify the data structure to a degree. "Depositing" would just tack the object array from the dwarf's sling, or inventory, into the array of the bin, stockpile, or container.

    There could be one arraylist for ore, one array for stone, one array for gems, etc. included in each container object or inventory.

    You could register each inventory object, upon creation, with an observer class to keep track of fortress inventory. Then, when a dwarf needs ore, the dwarf object could query the observer class for a list of all registered stockpiles which contain an arraylist for the appropriate type of material, and the distance to each one. Then, the dwarf could query the closest applicable arraylist to see if it contains the specified ore. If not, he'd query the second closest one, etc.

    IT might even be fun to make the dwarf actually go and look in each stockpile for the object he's looking for... wandering all over the fortress looking for a friggen piece of bituminous coal ;-D