Friday, September 3, 2010

01 - DwarvesH: That's a $%^$^$@@@@!!# lot of skills

89!!!!!!!!!!!!!!!!!!!!!!!!!! ZOMG LOL $$&&%*&*!!!!

Dwarf Fortress has 89 skills! I knew that these games tend to be quite complex (and difficult), but oh boy! Not only does every single dwarf have 89 skills, they also have a series of extra jobs that they can perform. There is no skill linked to taking out the garbage or delivering goods to their respective stockpile.

When starting up Dwarf Fortress, you generate a persistent world. It is this world in which you will try to create a series of doomed thriving fortresses. But all journeys start the same way. You get an expedition of seven dwarves with different skills and equipment. You can choose to manually customize your expedition, and if you do you are greeted with the following screen:



This may seem daunting to a new players, but it is actually easy to use once you learn it. You press "F" to customize the name of your fortress. Press "G" to customize the name of your group. The rest of the screen is divided as following: the left part is the list of your seven dwarves and on the right you can see the list of skills for your currently selected dwarf. And then some other useful options. With this current screen size, I can only see 19 of the 89 skills.

Now let us see how my early prototype looks:


Wonderful. Spreadsheet: The Game! Now in 2D!

We got two input fields for fortress name and group name. Next to the input fields we can find two buttons with a "new file" icon. These buttons will randomize the names. I'll change that icon to something nice: dice rolls. Under you will find the list with your dwarves. As you can see, the names are both random and gibberish. I'll change the random name generator to something more dwarf like somewhere in the (near) future, but for now they are fully random.

On the right we have the skill sets for the current dwarf. All 89 of them. The game seems a lot more daunting when you can see all the skills at once. A new player will probably have no idea what to choose. I created small panels where I group similar skills together. There are also a few panels that I consolidate skills even if they are not directly related, like putting Alchemist together with metallurgy skills. It was really hard to compress the whole skill set in such a limited space.

The great part is that you can easily see and compare the skill of different dwarves. I'll be using the same dialog layout for inspecting the skills and job assignments for your dwarves during the game. Then it will hopefully be useful to see everything. When you have more than seven dwarves. 300.

Now let us assign a few points:


My first dwarf (I am not typing his name here) will be Proficient Miner, an Adequate Mason and a Competent Carpenter.


My second dwarf will be a Proficient Grower. Now I can switch on the fly between them and see what roles they each have. The point system that governs both your skill assignments and starting inventory is no where to be seen in this build, so you can bet that my third dwarf will be the life of every party (and work session):


There is a still a lot to be done. The life saving ability of giving nicknames to you dwarves is missing. The whole inventory and skill cap system is missing. But these are tasks for another day.

As for what direction am I going to take that is different from Dwarf Fortress, I will probably consolidate some skills to reduce their number. 69 seems better than 89. If I find that the depth of the game and the simulation has been harmed by this removal, I'll add a perk system. E.G. you are a sculptor. During character creation you assign level 10 to your general skill, and you can choose a single specialization. Like "Wood Sculptor". You can sculpt stone and bone, but you won't be that skilled. As you keep sculpting different materials, you will eventually get a second and maybe a third perk and you can sculpt everything with the same skill. I'm thinking that 12-20 perks would be enough.

And now for the statistics: I have 491 lines of code in 10 files totaling 12.8 KiB of code. This also includes image data, but said data is zero for now and graphical GUI data.

No comments:

Post a Comment