I knew that introducing the configurable keyboard feature will take very long, but with so many keyboard commands it's not possible to have a perfect layout (especially if we assume that the definition of "perfect" varies from player to player). So that now you can change every key binding if you wish, or select a predefined keyboard scheme from popular games (at this moment only ADOM scheme is available). "Extended commands", i.e. consisting of two keystrokes, are supported, as well as any combination of Alt, Ctrl and Shift with any of the standard keys. It is possible to have any number of key bindings for one command (this helps to retain compatibility with other games from the genre despite design differences). Oh, and I fixed the numpad bug on Linux!... read more
The best thing in releasing every month (instead of every year, as it used to be with Fame/Untitled) is that you have more time for completing new features, testing and bugfixing, and at the same time you feel less pressure. A paradox? Maybe. If you want to know how it is possible, ask a philosopher. A programmer like me can only conclude that it works. And I hope it will stay like this.
Now, what is new in the new Fame?... read more
As the game becomes more and more complex, its bugs become really funny.
Recently, an anonymous player has found a bug: if you pick up an item when standing on the same tile as a door in 0.8.3, the game will crash. Believe it or not, but this bug has more in common with plants and torches than with doors.
When an item is picked up, a method with an uber-smart name, CHero::PickUp, is called. This method handles both items and plants (plants are not items until you pick them up). Inside the method some setup is thus done for a plant-item and an object of class CItem is created (it would be ignored for non-plant items). Everything had been fine (probably) until version 0.8.2, which introduced torches. All items that can be a source of light do an extra step during their construction - they initialize an amount of fuel. And once again, that wouldn't be a problem, but unfortunately if you take it all together - plants, doors, torches...... read more
Another release!
The major change in this version is AI. It has been completely redesigned and rewritten. The old AI was just terrible. Monsters used to stuck even if they were only a couple of cells away from the hero. The AI improvements are not finished yet, but monsters are much smarter now. You'll be able to observe that they chase the hero in a much more reasonable manner, they also don't get stuck when fleeing and some of them are even able to open doors.... read more
Another month has passed and another version of Fame is here!
First of all, there will be no more daylight in the dungeons. You will have to carry a torch to see anything more than your own nose. The same applies to the outside world. It's dark from 20:00 (8 p.m. in some countries - I will probably never understand the advantages of the 12-hour system, it's just stupid) until 6:00 in the morning. You will also observe some kind of "fog of war" - that is, monsters that are outside of your Field of View will be, well, invisible to you. You will not be able to see items out of your FOV, either, but you will remember some items' placement unless you wander to another location.... read more
The full screen feature still doesn't work on Linux, but at least now the game will not crash when entering another location through stairway (this is the bug that prevented the release of the Linux version). I had a hard time trying to install GDB in my Linux distribution, but as soon as it was working, the bug was gone in few hours. Hopefully I'll fix the remaining Linux problems in the next release. Those aren't simple ones and I will need to dig some XLib and/or OpenGL stuff, which isn't something I like the most... Anyway, now I'm going back to work on some new features :-).... read more
Most programmers probably love adding new features and hate testing and debugging old features. I was delighted to discover that Fame is not the case anymore. It was fun to test the final revision of Fame 0.8.1. (It was a huge headache to get to that point over some exceptionally nasty bugs, but that's another story).
The player character now can be controlled by mouse. You can also use auto-movement by holding Ctrl while pressing arrow keys. These two features (actually one feature with two different interfaces that trigger it) are still under development and will improve in future versions.... read more
Right now I'm struggling with an extremely annoying bug that has cost me more than a week of work and numerous headaches. When dealing with problems like this one it is good to at least have a good IDE. As for debugging, Visual Studio does pretty good job, although it has its weaknesses, too. Of course it does.
I blame it all to the C++ language. It seems that C++ is just too complex for any tools. While compilers rarely got confused by creepy features of C++ like macros, nested templates, name spaces, polymorphism or multiple inheritance, auxiliary tools are often completely lost when they encounter certain geeky constructs on their way.... read more
Everyone knows that the world of C++ is full of pitfalls. Whenever you move, you encounter one of them and if you don't move, they will come to you.
It's hard to see a piece of code without a comma, so nobody on Earth would suspect that innocent-looking character of being one of the most deadly pitfalls of C++. It separates function arguments, macro parameters (macros are evil!), variable declarations, member initializations, enumeration type elements, base classes (multiple inheritance is evil!), template parameters and probably few other things I've forgotten here.... read more
As you can see, I have been finally convinced to change the name of the project.
Another important change is that the game can be now completed with the main objective (a temporary one, until a complete story is introduced in one of the future versions) of retrieving the artifact called Obsidian Skull.
All of other changes are primarily bugfixes (the previous version was very unstable) and minor improvements, a full list of them can be found below:... read more
The new feature: Alchemy. Using this skill you can make potions. All you need is some plants (which grow only in selected locations), a recipe (you can discover it through experiments) and an Alchemy Toolkit (very rare item, but...).
There are several new monsters. They are not just the old monsters with better parameters, but also their behavior differs, notably Mountain Orcs and Goblin Warriors can use ranged weapons, forcing the player to develop new tactics.... read more
This time there are no new major gameplay-related features. The biggest changes are: the Quest Log and the "immersion" mode (full-screen). I believe that both of these features are essential for a modern roguelike. I had some doubts about the Quest Log and have been resisting that idea for years, but eventually gave up. The original idea was to add a built-in text editor so that players can make notes about things to do, but now I think that would be too hardcore.... read more
From now on, some of the game data files will be put inside of one big file and thus made available for developers (that is, me) only. I strongly believe that it is essential for a roguelike game to keep some of game's internals in secret. Now I will be able, for instance, to create quests that would become a lot easier of one could take a look at the script files.
That change has at least one undesired side effect. The game is not customizable anymore, not to the level it used to be. However, I don't think it's that important for a roguelike. All in all, most of the few really successful games of that genre were not customizable and none of them were mods (as far as I know). Apart from that, I will provide a new mechanism of customization in the future.... read more
I was very lazy this time. Out of 5 weeks since the previous release, more than 2 weeks were wasted (at least for Untitled's point of view, I was working on Fuge). Many features have been just shifted to the next version when I realized I am completely out of the schedule (well, I don't have any schedule, actually). The decision was to release immediately. The change log looked long enough:
Untitled is finally available for Linux.
It was planned since 2006 or so, I was gradually replacing old, rusty pieces with more portable code and eventually it started to work. Untitled owes this mainly to the Irrlicht Engine, but it's quite surprising how many thing besides the engine need to be tweaked up if you want a portable game.
This time it took me 3 weeks, but the next version is ready and all the planned features have been implemented.
This version (0.7.5) also fixes a number of nasty bugs. As you probably had already noticed, saving game did not work in 0.7.4. I wonder how could I miss that problem before. Anyway, it took me half day to track down this bug and two seconds to fix it.
The change log:
I decided to release the 0.7.4 version a bit earlier than planned because of bugs found in script files.
The bugs were tiny and stupid. I've just put semicolons at end of several lines and that's a syntax error in U. It was impossible to enter the location 'Bandits' Camp' because of that corrupted scripts. Damned semicolons. I always forget them when writing in C++ and, in turn, put too much of them in script files.... read more
This is just a bunch of random thoughts on C++ programming, so you might wish to skip this post ;-).
One of my greatest programming challenges ever was the moment when the player's character dies. I used to solve this problem by having a lot of returns. That made my code looking like this:
Hero->LoseHP (10);
if (Hero->HP == 0) return;
It hardly worked, but I've never had a better idea. And it only sometimes crashed. But I knew how much it sucked. In roguelike games you have plenty of different situations when your character can die, which means that you always get a lot of junk on the call stack. For example:... read more
I'm happy to announce the release of the 0.7.3 version!
Here are the recent changes: