Friday, 28 March 2014


When I went through Monster class I suddenly realized it's a mess. Somehow you look at the source code and it's just not good. It's slightly depressing and also quite odd, because how didn't I see that earlier?

I'm going to re-order class functions and try to create a better arrangement from small functions to the high level functions for AI and actions. I guess it's not a surprise that Monster class is difficult, because it's a part of the player class, too. The way how inheritance (from Monster to Player) is done in this case is not the best, but when I was programming it I couldn't think of any better solution either and I still can't. I guess you should isolate the basic functions for both creatures and the player, without any reference or difference to the player.

I seem to run out of hours per day which is annoying. There is so much more to do each day. They say that when you get older it feels like time is running faster. I think they are right.

Thursday, 27 March 2014

Keyboard commands

I started to look at how keyboard command help is displayed. In most roguelikes you get a long list of commands in black and white ascii display. I decided to try something different. Rather than having one continuous list of commands I placed them on categories and this is a part of the command window:

I think it's much easier to find commands now, compared to the plain list. I guess 'fire projectile' could be an action command, but those can be changed later.

Wednesday, 26 March 2014

Farm Simulator 2016

Simulating plant life is interesting, but sadly quite complex subject to handle. I'm currently revisiting plant game object class and trying to improve it in moderate steps, not trying too hard to create a complete system, but build firm roots for it.

Sometimes I have jokingly called Kaduria a farm simulator which it's of course going to be. What could be more interesting that watch grass and other plants grow?

Even I have now Mac Mini as my music studio computer I think it's somewhat unstable and unpredictable kind of computer. No matter how much people complain about Win7 it's actually super stable once you get it to run steadily. I think only problem with PC/Windows is the way Windows penetrates hard drive all the time, making HD the part of PC most likely to break in a long run.

Mavericks (I think it's the name of latest MacOSX or whatever) has crashed already twice, something that almost never happens to Win7 itself. I think OSX's unix background gives it some kind of ancient feel if you know what I mean.

Saturday, 8 March 2014

Level themes - static or random?

One of the huge tasks in Kaduria are various level themes. As I mentioned earlier I gave up on trying to create a single engine to produce all level themes. I couldn't do it, it was out of my reach and also quite difficult to admit, since I'm such a genius.

But problems don't stop there. You still have to create themes that have the distinctive look, yet try to be as random as possible to increase replay value. It's a difficut task and I'm having problems even trying to create all themes in somewhat static form (always including some key elements).

This is a problem that gets harder if you want it. I could just let it go and create static themes and possibly even remove permadeath from the game. That way the player could complete each game and never have to run the first levels again and again. But removing permadeath would change the gameplay to more traditional RPG rather than roguelike, where permadeath is an essential feature, possibly even the most important of the key features.

Another possibility is create only few static themes and much more random type themes, or maybe select from couple of themes to get more variation in static themes as well.

Friday, 7 March 2014

Mask map class

I'm back to Kaduria. It's useful to switch projects when something gets boring and you feel stuff is not going to proceed. Returning to project after a break often works, because it's then easier to get new ideas and solutions to problems.

Currently I'm working on the mask map problem and as terrain map it really needs a derived map class with a set of routines to return abstracted (the verbose public interface I have mentioned often) information rather than using enum mask values everywhere.

I have also developed a slightly different kind of way to look at todo list items and evaluate their importance and also the ways how to solve them. I think I'm now much less concerned about good (or even perfect) solutions. I've started to use a kind of sketch solution just to make something work. I believe it's much better than just staring at some item in the list and getting nowhere with it.