Thursday, January 20, 2011

25 – That’s no stone explosion… that’s a spoon!

This is a stone explosion!
I totally underestimated the complexity of stones and walls. Adding all the stone types in the editor with layering information, preparing the graphics and doing the coding took forever and a day. I also took two days off.

More data added to stones in the editor

The current count is 91. This includes 4 types of soil and 5 types of sand. The number is not going to increase, but maybe it will decrease. There is now detailed layering information available for stones.

Stone layering implemented

There is now a basic stone layering implemented. It is not as smart as the data available for it in the editor, but it is enough for now. Layers are randomly selected and they have pockets of different stones. There is also a top layer of soil, which is also randomly selected. The soil cuts into stone forming a nice pattern. It is hard to find a representative image that gives the same impression as having the game in front of you and scrolling the map, but I’ll try.

Stone cutting added

All new feature. Select a number of stones and select what you want to carve out of them. While masons need a workshop for doing fine stonework, they can still go out and cut out a huge stone where it stands. Hauling such stones would be out of the question anyway. This is a city builder, not a give-hernia-to-all-your-dwarves simulator. You can carve the following things: fortifications, tables, chairs, cabinets, chests, columns and of course, the most difficult but valuable result: statues. Contrast could be improved for some types of stone, but here is a sample:

New options for floors

In the last version I added the tasks of smoothing or engraving walls. Now, the same is available for floors.

Interface tweaks

As you probably saw in the screenshots, the interface is changing. I am going to focus more on task categories which open up additional options. Here are the menus for walls and floor, which also indicate the number of items on which the operation can be performed:

Skills overhaul

I may have touched upon the number of skills in the past and gave my fair assessment of the situation. Quoting myself: “that's a $%^$^$@@@@!!# lot of skills”. But reducing the number of skills is not that easy. To solve this problem, I have taken two steps. The first one is to remove all skills that are not used right now. This is a temporary solution at best, because as new features are added the skills will come back and I’ll end up where I started. On the other hand, this way I can make sure no token skills are added. The second step is to combine a few skills into one where it makes sense, but keeping their associated labors as separate actions. So gem setting is out as a skill and has been merged with engraver. Those guys did not do that much anyway and it makes sense for engravers to sometimes use gems in their field of work. So they will now handle all gen setting related tasks. Gem cutting is still a separate skill. Herbalists now take care of both plant gathering and plant growing, including farming. Farmers are just less adventurous herbalists. Butchers now take care of wish cleaning also, not just land animals. Here is the new skill dialog. As tasks get added, there will be more and more options, but less than 89 skills:

U++/Irlicht bridge changes

My U++/Irrlicht bridge has served me well but I grew tired of maintaining it. Every time I needed a new control from Irrlicht I had to write a new wrapper and make sure it has the same interface as U++. So I removed the heavy wrapper and replaced it with a very simple one. This means that now I’m using Irrlicht API for GUI. The bridge now only adds callback support to Irrlicht controls. I would rather give up completely on Irrlicht than use the painfully outdated and just painful ID system.

And plenty more

There are a lot of extra tweaks that I am not going to describe here. Both small stuff and a huge freaking memory corruption bug that took me 4 hours to fix! I am too lazy to do full statistics each post.
6205 total lines of code

Ready fo ma vid

So now I think I have all the features in place for the video I promised last time after adding some features. So I’ll get on to that.


  1. This comment has been removed by the author.

  2. I am tracking your blog since the beginning of the year and to be honest I thought you were just another among many trying to make a game based on an existing game (I myself am one of them) after the explosion of minecraft, many people believe that it's easy to earn millions by making a simple game, even before knowing minecraft and dwarf fortress, I had several ideas about creating games, given the experience of nearly eighteen years playing video games (if such a thing counts as experience), and after knowing a program called RPG maker, I do not play anymore, I see only switches and conditions, and after learning C++ I only see classes, variables, etc.

    But I do not have much motivation, and haven't learned so much, and making something now, is out of question due to limited knowledge.

    Well, after this book I wrote up there, I look forward that you bring this project to a playable state, because I think it has much potential, and from now on, your site is in my bookmarks and I will check it daily.

  3. Following you on twitter and gonna check your blog weekly. This is looking very interesting indeed.

  4. To Andrew:

    Hi! Glad you found something of interest here. I am truly interested in what people think of this project (that’s why it is public anyway). As for my motivation, I can assure you that I am not trying to get rich quick by creating a simple game. This is not going to be simple. It is very fun for me to try and push the level of the simulation to its limits while still keeping it accessible so it is going to get more and more complex and feature rich.

    As for making something of your own, it is never too late! Even if you are not motivated and fell you are not prepared yet, you can play around and gather valuable knowledge. As long as you are having fun I think it is worth it.

    PS: Why doesn’t Blogger have a reply feature?