Thursday 25 December 2008

Bug found

I found a bug from Teemu. You can play the game without entering a name, just press enter when name is asked. Funny thing is that it seems to work fine, it doesn't crash the game. I don't even know if it's a bug, but I'm fixing it in v1.1.

With limited inventory of Teemu I created a tool inventory with items you can only (u)se. This new invention will also prevent extra checks with tool items and makes more room in the inventory for new items.

Monday 15 December 2008

LambdaRogue 1.3

Still don't like the 5 tile height gameview in large tile mode. It's ridiculous. I think Mario should just dump all other modes and make one good graphical view to the game with enough visible tiles both in vertical and horizontal direction.

I don't like the dungeon algorithm either. It's maze-like and boring to explore. When I think of mazes and particulary corridors I think they shouldn't just run here and there. The dungeon should have a clear idea, whether it's just for storage room or place that someone actually lives. No one lives in a maze but minotaurs.

There are more dungeon features like barrels to kick open. It's nice, but if they are all just scattered randomly in a maze it gets boring quite fast. I think that distinct level themes are the proper way to create nice gameplay, which then form the game world with different locations to visit.

Sunday 14 December 2008

Ideas of Teemu

This entry contains some spoilers from Teemu so win it first and read this next. Before the release I was talking about some new (for me) ideas I had while developing Teemu:

1. The strategic situation in spider cave. Spiders don't want to go in water, but there are lots of them and you need to wipe out them in some way or quickly get to the chest and get the item. This kind of strategic situation could be set up in many different ways.

2. Moving platform (the ship). In Teemu it's only a part of the end scene, but could really be used to travel on water. Ships or smaller vehicles are less used in roguelike games.

3. Grab command, something that could be more complex, giving new kind of interactions with the game world.

I think all these will find their way to Kaduria.

Sunday 7 December 2008

Teemu v1.0 released

Here it is. Fixed the "last" bug and it was uninitialized member variable, a counter that determined how long monster is searching with the pathfinding. That uninitialized value was random so monsters sometimes got stuck on walls and didn't respond to anything. I hope it's fixed now. The game is Windows only and should work without M$.NET.

Release version bugs

The problem is not in gcc, because VC++ release compile also has the same bug: monsters just go somewhere and get stuck in walls. It could be uninitialized variable, because debug and release versions might have different values for them. I think I have to double check the routines that take direction as parameter, because some functions assume that it's a valid direction and nothing else.

Then there was a bug with endianess of wst file (my tile editor's native format). For some weird reason it's reversed in release version vs. debug version of VC++. I have no idea why. Anyway, I don't want to do anything more today. I wanted to release the game today, but this difference with release version was an unpleasant surprise.

Test stories

I have tweaked items and monsters in Teemu and haven't yet won the game. I have included messages warning about hunger, but still I died two times in starvation. Maybe the food meter is too fast. I could slow down it a bit and make food items less powerful. What I like in this game is the way you can get in trouble fast if you make a mistake and I do mistakes a lot. This game is practically ready, but I still have to win it to release it.

Then there is one little thing to do.. I have to compile the project with DevC++ to get rid of Visual C++ dependency of .NET. GCC also has good optimization options. There are some VC-specific stuff I have to give an option for GCC, but I think it's going to be just couple of small things.

Actually it was just two warnings with -Wall. One was returning -1 from unsigned char return value and other was unused variable. That's all. I can't believe there were no other problems. It took about five minutes to set up the DevC++ project and compile it.

Friday 5 December 2008

Teemu ready for testing

Teemu is ready, only some minor details missing like level descriptions and maybe some game world interactions with new terrain tiles. I have an odd feeling now, because this will be my first game released in a long time and for a moment I was worrying how people will react to it when they may have certain expectations. Well, I can only blame myself for being such an ass with all that stuff about Kaduria and how it will become the next gen roguelike surpassing every major roguelike.

Thursday 4 December 2008

Serialization part 4

There were two bugs in load game. First one was easy, I copy-pasted npc restoring code and there was old value from item restore loop so it tried to restore too many monsters. The second bug was a bit harder, but found when inspecting the load buffer size. I forgot to clear the std::string where data was stored before loading next piece of data, so the new data was added to the old string.

Load game seems to work now and I can concentrate on pathfinding routine.

Wednesday 3 December 2008

Serialization part 3

I'm testing the save and load game routines. Loading doesn't work, which wasn't that much of a surprise. It's giving me out of bounds error with std::string. It seems that I have to use a debugger for this one, which I rarely have to do, because usually I'm writing bug free code. I'd like to know more about Visual C++'s debugger, because I'm not that familiar with it. It seems to stop when player's data is loaded, but the traceback information shows that it's breaking in Level's load routine. Go figure, but stepping through the code should clear the confusion when it's actually crashing.

I already programmed today more than two hours so I think I'm going to do something else like home page for the game, so it's already there when the game is ready.

Tuesday 2 December 2008

Serialization part 2

Save game routines are now ready. I'm taking this carefully, because I want to have bug free save and load routines. I'm constantly checking with hex editor that the save file contains proper data. I also wrote new packer routine for maps that are saved to reduce the amount of space they take in the save file. Loading is going to be more difficult, but I'm sure it will work fine without big problems.

The pathfinding problem is annoying, because I know from experience that I'm going to spend a lot of time to create it. There are also some bugs in throw routine, which has been difficult in Kaduria as well.