Thursday, 24 July 2014

Nethack, Angband UI and warm days

I've played Nethack as a researcher trying to find out what makes it good. Of course I've played Nethack even before I started Kaduria (a long, long time ago), but I need to try different professions and also try to become a better player.

The biggest problem in Nethack is Elbereth which kind of fixes an inherent design flaw. Also in my opinion D&D has always been "broken", because it relies too much on magic. But even if the game seems to be broken it can actually create a gameplay that many people seem to like. And it's not fair to judge game design that was created mostly in 80's by regular students. In that context Nethack has stand the test of time very nicely.

Angband is another game I need to study more. I never liked it and didn't even want to learn how to play it. It's still difficult, because the user interface is really bad and tries to scare you away. I remember the old Angband was better (one with true 80x25 console). What they have now is way too many tilesets while they should concentrate creating one good set and ascii modes are also poor, with bad fonts. It's sad how the UI can't even scale to selected font size, you have to increase or decrease the tile size manually.

It's been really warm for over a week now. 25+ C which is extremely warm in arctic region. I'm trying to survive days at work and when I get home do nothing. It's hard to concentrate on programming so I have spent this time playing (or researching as I call it).

Wednesday, 9 July 2014

Field of field of vision

Roguelike developers have long struggled to invent good and fast FOV routines. I've had some good results with a regular line of sight (line drawing) and then fixing errors with a special routine. What I've also found out is that clearing the FOV map first is slower than setting visible and blocked tiles using only line drawing (drawing to the end of FOV area) at least in large open areas, because there are then two iterations through the map (even though line drawing visits a number of same tiles).

One day I had an idea about new type of fix routine that takes place first, before line drawing. It also sets each tile of FOV map to a preset value. Then line drawing takes care of the rest. But let's not get excited, because there is not yet a working implementation. In theory with advanced type of routine it would be possible to limit line drawing only to places where it's needed after the initial FOV routine.

I also wondered would it be possible to draw the level with the FOV routine itself (without having to copy the FOV data first to a map) using an update map to prevent multiple drawing of a tile. It could be something to try, because it seems always that you need to iterate the map or visible area several times to get things done before drawing.

Sunday, 6 July 2014

The player of games

As a player I'm not very good. It has somehow become more evident when I've been watching ADOM gameplay videos on Youtube by Gordon Overkill. He also seems to make mistakes which fellow youtubers often point out in comments, but he is still way better than I am.

The main difference is that Gordon knows what to do. He knows where to go, what items to use and what kind of monsters there are in the game. Of course roguelikes require learning that stuff and using tactics to apply all that information. I don't play ADOM, but in Nethack it's the same story. What happens to me in Nethack that I sometimes get far, but then something bad happens and the game is over. Sometimes it's something new, but often it's just the lack of proper tactical response to a bad situation. In other words I don't know what to do.

This is somewhat important, because I'm developing games that should be difficult as roguelikes often are. But how can I do that if I'm not a skilled, tactical type of player? I really don't want to set up a closed game testing before release. Maybe I should forget about creating a super difficult game and create the gameplay easy enough for me to win the game. In case of Kaduria it will probably be something that happens anyway, because the RPG system is not similar to D&D.

Saturday, 21 June 2014

Shops

I'm refactoring Teemu for more random stuff. In the current version some items always appear in some places, but I want to change it that sometimes they don't. But what happens if they never appear?

The mind-boggling realization for me was that if they don't appear you need a shop where you can buy the missing item. So that's why shops exist in roguelikes! I never thought it that way.

So it looks like I need a shop and I have a shop idea fit for Teemu's theme. Creating a shop is some extra work, but I don't think it's going to be too difficult. Earlier someone was wondering why there already are rupees in the game when you can't buy anything. Well, now you know. I just have to sprinkle more rupees than there is now to make sure the player can get the required money to buy items.

Friday, 30 May 2014

Forums

I left Rogue Temple forum, at least for now. The way I feel about cencorship regarding "difficult" subjects is hate. I hate it when you can't say what you think is right and that some subjects are banned.

Second, probably more important reason is that I spend far too much time on forums. It's actually a problem similar to any addiction and in this case it's wasting my time in a way that matters. Why do I spend time on forums? I don't know, maybe it's the connection to people with same interests. Even it always seems to end up me fighting the rest of the world.

I've quit some other forums as well and try to reduce the amount of time on those forums I still visit. I feel a need to get something done and internet (mostly forums) is making it hard. Not just game development, but I also have more important things to do.

Saturday, 3 May 2014

Sandbox vs. linear adventure

I had a plan to make quest item distribution more random, but it somehow went the opposite way... it's totally linear which means you have to fetch items in a certain order. The problem with sandbox approach is that it likely means you don't need quest items in the first place. Well, maybe some, but even they could be located almost anywhere.

It's possible to sandboxize a linear adventure by creating another way to solve a "puzzle" where the quest item is required. Or in some cases there could be more than one item, or the item could be used elsewhere. The old rum bottle could be such an item which can be used in many places without breaking the main use rule (that you definitely need it for a specific puzzle).

I think it's difficult to have both sandbox and linear adventure in one game, but it's possible. Then again I've already decided I'm not going to explore sandbox option in Teemu, but keep it more or less linear. It's way easier then to finally crunch the next version into release form.

Thursday, 1 May 2014

Maze rooms

Sometimes the maze generation runs into a dead end sooner than expected and maze rooms fill the level.

Strangely this one can be navigated, but since doors are placed on a random wall (one per room) it's also generating room areas that are not connected to the level. The way rooms are created in the maze is actually nice, even if they take a lot of space, but they should work as a part of maze or be a maze of rooms itself. How it's done, I don't know yet. You could place doors to each wall, but then it's not very good as maze.

If everything else fails, I should keep rooms attached to maze level and skip rooms that would be created next to another room.