(Mis)adventures in roguelike development: Why now?

If you don’t know what’s a roguelike you can start here, or even go straight to play one of the most sleek and recent games in the genre: Brogue.

The definition usually covers a wide range of games but usually a roguelike is associated with the idea of an ASCII RPG where you generate a character and then go exploring randomly generated dungeons. Why should you care, tho? What is that is good and unique in these prehistoric-looking games? Is it just nostalgia?

My interest in this is because I don’t believe that it’s just about nostalgia. This interest was sparked a few months ago, when I spent several weeks going through old and magnificent Amiga games, and then more weeks on roguelikes. It was almost a frantic search. I do believe that something of value is lost and that those games had aplenty, and a roguelike is an opportunity to mess with that stuff directly. Mixing old sensibilities with the new. But nowadays roguelikes are a lot more than that. The lack of graphic let these games focus on very deep and complex mechanics that you simply cannot find in other genres. So roguelikes aren’t just old looking games with unintuitive interfaces, but also offer a kind of gameplay and complex interaction that is extinct in other games. These games are pioneers, not rearguard.

The other side of the medal is that you can mess with this stuff. Some 14 or so years ago I started in C and under ancient MSDOS an attempt to write a RPG from scratch, using the Allegro library (that is still around) and DJGPP (the Gnu compiler for dos). I wanted to build a simple foundation like the first Final Fantasy games, and then roll into that kind of engine a more deep interaction with NPCs and environments. Without the internet to look stuff up it was an incredibly hard task, even setting up the environment with the IDE, compiler and all the rest. After messing with this for a while and creating a rudimentary skeleton of a game that showed a sprite moving on a tile map (and then getting completely stuck when I tried to convert it to interrupt-based timing so that it wouldn’t run at different speeds on different hardware), I figured it would take me more than a year JUST to write the engine, and then I could have started, maybe, actually making the game, design and content, the stuff that I actually considered interesting. I realized that you either dedicate yourself fully to such a project, in a totalizing way, or it’s just impossible to make something even barely worthwhile. That’s where I stopped. I just couldn’t afford to plan things so long term and sink into that all my time. It just couldn’t be realistically done, even if I only wanted to make my own project without any intention of selling it or whatever.

If I’m back attempting a similar project is because I see in roguelikes (and in the different context, because of the internet offering so much material you can look up) the possibility to quickly get to the “meat” of the game. All the standard roguelikes build the whole game by reusing a few output functions, so the “engine” is almost directly covered. It’s like the possibility to quickly write prototypes the way you want, without the baggage of graphic. So a possibility to remove as much as possible the overhead and busywork of engine programming, and do instead game programming, design, content.

Programming is actually one of the most addicting experiences you can have. More than playing a good game, once you are in the groove. But it is also immensely frustrating if you hit a roadblock and have no way to get over it. That’s when projects usually fail. This time I’ve got the illusion that the path is viable. Because there are good libraries that cover most of the stuff I need, specifically for what I need, because the internet overflows with documentation that you can use, because I can purchase good books on programming, and game programming, and because there are plenty of roguelikes out there that are open source, so you can go into them and see how they work. Pilfer hundreds of games of their good ideas, and put them in your game. The accretion of these parts, and the original, odd mix I want to make is what I’m looking for. I will go back playing those Amiga games and classic RPGs, parse their game design, as well as taking stuff from modern, perfectly designed games like Dark Souls, and then cross-breeding all that with pen&paper RPG rule systems and classic modules. I have already a feature list planned that will take me several centuries to implement, but that’s what makes it fun ;)

I can’t say how far I’ll go, or if I’ll be even able to start. I’m essentially learning programming from zero, starting from the very bottom. My mathematical skills are also abysmal, so the perspectives are bleak. But whatever. The intention is to keep some sort of diary to document my (lack of) progress. An anti-tutorial on top of a tutorial. Whatever I make, in the short or long term, will be open source. Though it will likely take me years before my source is of any interest to someone beside me. But again, I’ll write even the diary for myself, so I can see what I’m doing and all the stuff I get wrong. The thing I hate the most is when I bump into a problem I already solved before, but can’t remember how I did it.

Obviously it all depends on how much time I can allocate to this, and with how much continuity. That’s not entirely in my control, but given the chance I’m extremely stubborn and so I’ll keep going at it.

(since you can’t post comments on this blog, use this just in case)

Posted in: Uncategorized | Tagged:

Guild Wars 2 and ass-backwards game design: why we have lived and fought in vain

This is a leftover. I already ranted well before Guild Wars 2’s release anticipating the problems about overflow servers, long queues in PvP and difficulty for social play in general. My point: this was not only obvious to see ahead (which mmorpg doesn’t have launch issues?), but also avoidable for the most part, if they rearranged the game spaces.

The post where I wrote about this at that time is here.

What drew my attention is this:

During this initial surge of high concurrency, and especially while most characters are low-level and thus playing in the same starting areas, it’s common for players to be directed to overflow servers. To play with a friend on a different overflow server, form a party together, then right-click on the friend’s portrait in the party list and click “join”. We expect the use of overflow servers to naturally subside as players spread out more through the world.

The interesting part to me is how bad game design has a naturally tendency to surface on its own. Guild Wars 2 was designed (deliberately AS OPPOSED to Guild Wars 1) as non-instanced PvE.

The game launches and the norm is: instanced PvE. Because overflow servers are the norm, and overflow servers are an instancing mechanic.

When in practice you get (instanced PvE) the opposite of your ideal (non-instanced PvE), then it means your design is quite broken. I say it surfaces on its own because it just won’t take the form you wanted. It misbehaves. Why? Because the patterns you designed are wrong.

Now the line I underlined is also a wrong assumption. Players’ activity will never balance on its own. It doesn’t happen with linear progression games. At the game’s start all players swarm the starting zones and the rest’s empty. Six months down the line there’s no better balance: the end zones are crowded and the rest of the game’s empty. It’s the exact same situation but upside down.

So their assumption (that the use of overflow servers subsides BECAUSE players spread out) is WRONG. What actually happens is that the use of overflow servers subsides, but simply because it’s the high concurrency that also subsides.

This is not nitpicking, because the problem is that you’re designing a PvE that relies on large public events, that will be essentially broken when six months down the line those zones will be almost completely empty (the right answer here is “who cares” since these days mmorpgs are designed to make money fast and become irrelevant in less than a year, as disposable as single-player games. And in GW2’s case players’ retention is actually a THREAT since they don’t have a monthly fee).

The analysis and consequence about GW2 PvE is this:

– RIGHT NOW: lots of problems for people trying to play together. Public events are popular but PvE is instanced.

– SIX MONTHS LATER: PvE is finally non-instanced but there are not enough players to enjoy the public events.

This is what I call “ass-backwards design”. It’s when PvE is finally non-instanced that you want it instanced. Why? Because instancing can be used so that if there are a few players they are put together. And when there are too many, they are split so that gameplay is always optimal.

Guild Wars 2 realized only the first part: that instancing is essential to avoid overcrowding (overflow servers), but they haven’t realized that instancing is also essential later on, to avoid the depopulation of players outside the endgame.

When you realize also that point, you arrive to a simple conclusion: if instanced PvE is a good thing both early (to avoid overcrowding) AND later (to avoid depopulation), then instanced PvE = good.

It’s that simple.

But Guild Wars 2 designers think game design ass-backwards. They try to design PvE non-instanced. And they try to design PvP instanced. Result: queues EVEN on PvP because their PvE server structure doesn’t actually allow to load-balance PvP. They have the WORST in both worlds.

See the post I linked above for a scheme that solves both problems (by putting players into non-instanced PvP server first, and load-balance PvE through instances).

This is the stuff that was being discussed in 2005 and before, try to search the blog for “mudflation” if you want more. Or see Raph Koster, Brad McQuaid and Scott Jennings go at it. Not to say that things at that time were gloriously good, but the fact is that these problems were being at least discussed and today mmorpg game design has seen an enormous decline that is only offset by the technological progress.

Hence, we have lived and fought in vain.

P.S.
I wanted to add some of the reasons why I won’t buy/play Guild Wars 2. Beside all the above:

– I prefer a consistent personal style (like Dark Souls) to the rainbow colored and theme park oddball settings of GW2 or WoW.
– Zone design looks once again as elaborate cardboard cutout scenery instead of focusing on content that you use and usability in general.
– The combat I’ve seen in videos is overblown with effects of all kinds, from particle effects that obscure your screen to heavy highlights. Whereas I prefer a combat system with tactical transparency (where you can see what happens and can strategize appropriately, even when it gets crowded) and UIs designed to be subtle and unobtrusive.
– PvP in Guild Wars 2 sounds more like enhanced Alterac Valley than enhanced DAoC. No thanks. Too late, not enough.

Mentioning Dark Souls, that’s a game with almost perfect game design on shameless display. Western game design has gone the way of ding, bling, DLCs and trivialities, and looks, honestly, pathetic and unrecoverable.