Author Archives: Nicholas

How to make a malicious random number generator

Nethack players, really experienced Nethack players, know that nothing is more cruel and unusual than the Random Number Generator. It is capricious and can either grant you great powers and wisdom (I remember being astonished at finding Grayswandir on level 4 of the Dungeons) , or can instantly kill you (“An endless stream of snakes flows from the fountain! The water moccasin hits… you die…”)

As part of our ongoing work with beta testing, we discovered that users never really felt compelled or pushed forward to keep moving, or to find some sort of pace. We looked at this, and decided that our best approach would be to implement something similar to the Director system that Valve uses for Left 4 Dead. For those of you who haven’t seen this, L4D measures player “experience intensity”, and then spawns mobs or allows for cooldowns based on this information. It’s crude, but it works. We therefore decided to try lifting it, with reasonable success. If your gameplay experience is not intense enough – i.e. you’re not Having Fun, the game will ratchet up the monster spawns in your area. If you’re having too much Fun, the game will give you a breather. We also track reward in the same manner; we will spawn more rewards if you haven’t been rewarded frequently enough, or we wlil spawn a really big reward. Similarily, if you’ve been getting too many items the item supply may dry up a little.

So, yes. We really *do* have a random number generator that cares. Is this entirely in line with the Roguelike philosophy? Maybe, maybe not. At the heart of the game the spawns are still random. We simply generate the contents of a room only when it first becomes visible and bias how many items/how many monsters are in a given room, as well as the spawning of other things (new monsters spawned post level creation, quests, et cetera.) So far it’s working out well and it will be interesting to see how we proceed from here.

Posted in Uncategorized | Leave a comment

Dredmor Beta 0.8

Dredmor beta 0.8 just hit the internet. Those of you with updaters, should feel free to download it. We’ll probably be releasing the next round of beta invites after 0.9 – or at least this is the current plan. The OS X build is up; the Win32 build will follow later this evening, once I get home from the office.

There are ninety-one issues between 0.8 and 0.9 as a result of our beta testing sessions. Most of these things are trivial, but a few of them are going to be nasty. The sheer number alone is pretty intimidating; however, those of you who want to witness true beta testing horror should go find Peter Molyneux’s talk from Develop 2010: at one point, Fable II hit over 60,000 bugs. If we only have 91, we’re sitting pretty.

Posted in Dungeons of Dredmor, Games | 6 Comments

Braindumps

Some quickies:

– Dredmor 0.8: I have three bugs remaining to get to 0.8, and 17 in total. This is the first time I’ve been *near* the single digits camp in over a month. Exciting.

– We got a lot of web traffic recently due to David’s Goblin Camp article. It looks like it got picked up by Something Awful, a Russian website of some sort, and also the Temple of the Roguelike, who were kind enough to give us a plug on Twitter. They describe Dredmor as follows: “Dungeons of Dredmor is an upcoming graphical Roguelike with impressive style/video trailers. One to watch for!” Thanks for the praise, guys. We’ll send you some exclusive screenshots or something. This reminds me, I need to make another video trailer.

I’m particularily pleased, actually, that some of the SA folks thought we were worth checking out. I can’t say quite how much of Dredmor has been inspired by Boatmurdered, but I think that we can directly blame Boatmurdered for the fact that you can find rooms with names like “The Theatre of Cake”, as well as the ridiculous randomly generated artifact system. At one point we had runic names for artifacts too, but that… seemed to fall by the wayside a little. I’m not sure what happened to that. I might re-enable it. More interestingly, I remember the original Jeff K. nonsense from back in 2000 when I was working for Loki Software. So, yeah. Looking forward to the first Dredmor Let’s Play.

{ read this article }

Posted in Uncategorized | 3 Comments

Three Small Pieces of Verbal Diarrhea

Three quickies:

– We are pleased as punch to announce that Chris Dykstra has joined Gaslamp Games as our Director of Business Development (although that said, since we let you make up your own job titles here at Gaslamp, he could be ANYTHING.) Chris is handling our distribution and publisher liasoning needs, general community building, and media contacts. At some point we may even get him a real Gaslamp e-mail address.

– We just sent a build of Dredmor off to some publisher-distributor type people who wanted a look at it. This is very exciting. Hopefully, more on this later. Let’s not jinx it.

– Have you tried our forums yet? Forums are cool.

There’s some other stuff coming down the pipeline really, really soon now. I’m excited.

Posted in Gaslamp, Website | 1 Comment

Talk, Talk, Talk

I am giving a talk on the material that I wrote about for Game Developer Magazine – plus expanded content! – tomorrow (today, I suppose – Thursday, whatever day that is)  at the Vancouver Erlang Meetup Group meeting. Page here.

Abstract:

Concurrency is a thorn in the backside of modern game programming. Not only do we have to consider the interaction of concurrent processes across multiple CPU cores, but modern game development involves looking at concurrent interactions between the CPU and one or more GPUs, where parallelization and scheduling is not necessarily something that we can control. As a result, the modern game developer not only needs to wrap his brain around concurrency, but he must deal with additional issues such as vectorization and how to deal with a processor that wants to pretend that everything in the entire world is a triangle. Join Nicholas for a riveting, exciting, and horrifying look at the state of the art in concurrent thought, see why everybody might start doing functional programming in the next five years, and understand why game developers across the world are desperately ripping off the good ideas from Erlang and haphazardly reimplementing them in C++.

Hope to see you there!

Posted in Uncategorized | Leave a comment

A Typical Evening in the Dungeons of Dredmor

We are hard at work getting a version of Dredmor (beta 0.4 for those of you keeping track at home) in fighting shape for entry in the Penny Arcade Expo PAX 10 competition. I think it’s looking pretty good. AT the very least, the judges will never have seen anything like it. (Hi, judges!)

In the process of doing this, we went through and did some playtesting this evening. Daniel and I decided to start the game with starting skills, and we’d see who would get the furthest down into the dungeon before we were slaughtered. I will let Daniel discuss his experiences (he beat me), but I had a pretty good early head start owing to the discovery on level 1 (the Crypts) of a sword that shot fireballs and put enemies to sleep. Both at once. That helped me carve my way through the dungeon, leaving a trail of flaming, spurting, asleep monster corpses in my wake, until I encountered a monster zoo on the Moonbase level. Panic and chaos ensued; heck, I thought to myself, my default weapon instantly fireballs anything around me (including myself), how bad can it be? Well, pretty bad.

I made my way to the lower corner of the dungeon (“The Oozing Hole of Lusts” – nobody’s beating that room name any time soon), working my way through a pile of Blobbies, Octos, Diggles, and Djinns. A few Deth monsters – scary looking grim reaper things with scythes – menaced me, and soon I realized that having cleared out much of the room, I was rapidly running out of hit points. Perhaps this was because my weapon tended to hit me as well as the monsters. And now Deths – who cast spells – had started to notice my presence. Trouble! I quickly decided to use some unused skill points and maybe find a skill in my skill tree that could get me out of here so I could regroup. I picked the Frenetic Teleportation spell – an early air spell that I had accumulated enough experience points to learn. I clicked – and ended up landing right next to a Zomby, who one-hit KO’ed me.

RIP Mordred, the Axemaster. His tombstone read, “He Crushed Like a Vomit.”

I am satisfied with this playthrough, in that it represents some of my goals (and the team’s goals, for that matter) with Dredmor. I had a unique experience, I enjoyed myself, and yet I still died because of my own hubris and stupidity. It makes for a quick, nasty little amusing story to tell you so that you can enjoy my experience. Next time I play the game, it will be different. What’s not to like?

Posted in Uncategorized | Leave a comment

Dredmor Beta 0.3 Changelist

Dredmor Beta 0.3 is now live. I have to go poke the Win32 one, since really OS X is now on, uh, beta 0.3.1 (and we’re on 0.3 on Win32; the change is just an updated skill panel which David somehow delivered in between my compiling the two builds.) Most of our changes this round have been balance related, as well as resolving a few crash bugs and making some Fun Stuff work again.

Next update: 0.4, the UI Rewrite of Doom where we take everything we learned from playtesting 0.1 and 0.2 and redo the user interface, again. Wouldn’t it be nice if there were modular libraries that we could use to reconfigure our user interfaces on the fly, and across the codebase, without major code changes?

Posted in Dungeons of Dredmor | 1 Comment

The Joys of OS X Development, Part II

The scene: 1996. Apple has just purchased NeXT, and programmers huddle together, cursing the devil-spawned end user. “Alas,” says one, “our mighty empire has fallen. Know now that our legacy shall live on, as a curse passed to all mankind.”

“What curse shall this be?” asks his brethren. “What artifact of our dark majesty shall we use to smite our enemies and leave them fearing our almighty glories?”

“Why,” replies the first programmer, “it shall be known as… the OS X frameworks mechanism!” All tremble.

{ read this article }

Posted in Uncategorized | Tagged , , ,
Leave a comment