I’m not much into computer games, but there are two kinds I like: the console-style japanese computer role playing games, and roguelike games.
The roguelike games usually have character-based graphics, high degree of randomness, turn-based gameplay and lots of dungeon-diving.
They also tend to be pretty complex and rich in monsters and items, but usually have almost no plot or storyline.
Almost half a year ago I started a rewrite of my old project, Z-Day roguelike game. As usual, after working for some time on it I left it to do something else. Today I found it on my disk and picked it up again. Fixed some more obvious bugs and it’s not available in a repository: Dev:zday_deluxe – you can click on the “zip” link at the top to download an archive of the most recent version. It’s still a work in progress, so don’t be surprised when the game hangs or crashes. Also, there is no “game over” screen, so the game just hangs when you die.
I decided to try and make a fully graphical version of the Z-Day game. It already has a pseudo-text mode, using SDL for display, mainly for the Windows computers that lack a python version of ncurses library. This time I will start with tiles, and if my skills and time allow, slowly add animations and effects. Code cleanup is also planned, then I can release it under some normal, open license.
Update: It goes relatively well, no big unexpected show stoppers so far, although I must admit the code is much more hairy than I remembered. Removing globals is especially obnoxious, but I’m slowly refactoring it into a more sane structure. It’s really much easier to improve the code gradually while still keeping it working, than to make a complete rewrite from scratch – even when I will probably have to touch every part of the code anyways in the end. But this way I can test, I can play the half-finished game, and it generally keeps up my ineterest in finishing it.
Computer games are strange beasts – they can be fun in a huge variety of ways. When you’re making your own, you often have some idea of how your game is going to be fun. If not, it’s high time you start thinking about it! It’s not only because it’s easier to actually make it fun if you decide on how you are going to do it – you are going to design an user interface for it and you have know which parts of the game are irrelevant and must be optimized away and hidden, so to not bother the user, and which parts are the “important” and “fun” ones. At least in theory.
There were many “what do you find fun in roguelikes” polls already, but somehow they always degraded into “what I hate about Nethack” threads. This time I want to ask the same question, but I will add some of my guesses, as to focus the discussion better. Please note, that these are written entirely based on my own experiences, and that your mileage may vary. You’ve been warned.
This is a number one fun thing to me. It’s not just about walking around the map – it’s finding secret passages, picking up new items, encountering new kinds of monsters, trying out new spells. I find it very exciting to find a scroll or potion with an effect I didn’t see before – much more than finding a “+20 Four Handed Sword of Slaying Anything but Squid” on the first level, even if there is a squid in the very next room – but I’ll get to humor too. This may seem like a one-time fun, but if the game is well designed for exploration, it has a lot of mutually-interfering features, so that you encounter interesting new combinations for quite long time. And of course, if the game is hard, it’s not so easy to get to the next level to see what new monsters are lurking in there.
I already mentioned the +20 sword. Right, finding powerful equipment, leveling up and generally making your character more powerful can be fun. At least when reasonably hard and limited. Exploiting the system to work around its rules is very satisfying too. Even simple repetitive experience hunting can be addictive – look at all the MMORPG around.
This is somewhat related to munchkinism, but has higher goal. The idea is to use the resources available to build something that is yours. It usually involves a lot of invention and some trial and error. It maybe a spell in a game that allows you to design your own spells. It may be a superb artifact in a game that allows you to enchant your equipment in interesting ways. It maybe be a fortress in a game that allows you to interact with the level itself. In the simplest case, it may even be a certain set of equipment. I think that collecting goes into this category too – there was that Angband player who collected and named slime molds. The fun usually lasts only until you finish what you were doing, but then you can start something else or proceed with regular game.
This is a weak one in roguelikes, in my opinion. Sure, ADOM has some sort of a plot, but it goes more into the Exploration category in my opinion.
This is an interesting problem: how we can, given the items and spells and equipment we have, best use them in the game? Should I spend this gold on healing potions or buying better armor? Should I use the scroll of teleport or will just phase door be enough? What scrolls should I create with my magic marker? Together with managing risk, these decisions make a pretty interesting problem. Personally I don’t enjoy shopping much, but managing risk is always a part of every roguelike game.
Once I mentioned risk management, I can’t eep quiet about pure gambling. It’s what makes our blood rush in our veins: I have 1HP left, but I should kill that monster with my next hit, should I risk that I miss? Some games even have card or dice games and/or gambling machines in them – players are known to be stuck in ADOM casino until corruptions get them, so there is certainly something appealing in this part of game. Even drinking an unidentified potion has a taste of gambling in it.
A little low on the list, but it had to go after the Strategy (aka resource management), and the gambling got in the way. Anyways, it’s about solving the random puzzles formed by the terrain configuration, positions and stats of the monsters, and player character position, stats and equipment. And sometimes also pets. You don’t usually do it all the time – it requires concentration and focus. Of course, you may use various “dances” or switch your equipment to match your opponents, but truly tactically challenging situations happen pretty rarely – they give you a lot of satisfaction, though, if you “solve” them. A monster zoo or vault may be a typical example of a situation, where some tactics can help a lot and win you a lot of... whatever you are after in the game.
Personally I don’t find it especially entertaining during the game itself, but it makes great conversation pieces on geek parties. Actually, it’s not just humor – a dark and moody game could have its own... pieces that are especially characteristic for it. I don’t know how to actually call it. Things like especially cruel events in a gore game, especially heroic deeds in a high fantasy settings, especially stupid and suicidal behavior of goblins. Things that fit (or not). They are not really plot, and they are not really mood or setting itself. They are sort of like resins in a cake of the game. Not necessarily entertaining, but you are always happy when you find one.
Obviously I left out many things. They overlap a little too. What are your favorite ways of having fun in roguelikes? Please, concentrate on what you like, and not that yuo hate the humor in Nethack or optimization in Angband. Be positive!
It’s really much easier to improve the code gradually while still keeping it working, than to make a complete rewrite from scratch (...)
And that’s interesting - I always thought it’s the other way round!
(I guess it’s so only because the initial code was not that hairy.)
– Marcin 2007-07-17 09:42 UTC
No really, I’ve done it many times: complete rewrite where you stop halfway and lose your interest, and soon you don’t even remember what part of code you were supposed to implement next and you don’t feel like touching it all with a ten foot Pole.
A friend of mine has a theory that the “gradual improvement” (aka agile programming) technique works because of some kind of “fixing energy” that every guy has – that makes us enjoy repairing things that don’t look right. There is something to it, 90% of changes are stylistic, I only refactor the actual code when there is no small irrelevant error left to fix. It stills keeps me moving, maybe slower than with total rewrite, maybe less “efficient”, but at least I keep on doing it and don’t leave it halfway done. ANd the code looks nice afterwards.
– TheSheep 2007-07-17 11:29 UTC
Yes, I guess I’m quite convinced. I especially like the idea of that “fixing energy” – yet another factor making us different from women
... I love it!
– Marcin 2007-07-17 11:33 UTC
All generalizations are wrong, of course
– TheSheep 2007-07-17 22:38 UTC
Especially this one
Well, generalizations are ok. Using them in a stupid way is wrong.
– Marcin 2007-07-18 15:14 UTC
No substance is poisonous, it’s the dose that kills.
– TheSheep 2007-07-18 23:19 UTC
Add a comment