Category Archives: Programming

Lean Startups, Part II: Some Games That Suck (And Why That’s Not a Bad Thing)

(Eric Ries has now started re-tweeting this series, so I will take that as tacit approval from the master. He’s in British Columbia in two months, giving a series of talks on Lean Startupsin Vancouver and somewhere in Kelowna, so there is a slim possibility that this is just a ruse to lull me into security while he takes time out of his busy schedule to hunt me down and shoot me with a blowgun.)

When last we left our hero, he had just discovered that it was possible to make a lot of money by shipping software that sucked. This, of course, was nothing new to our hero; now, however, he was confronted with the fact that this might not be a bad thing after all.

So here’s the skinny.

{ read this article }

Posted in Programming | Tagged , , , , ,
2 Comments

Lean Startup, Part I: “Why does your IM Client Suck?”

I promised that I would write a post about my thoughts on Lean Startups at some point. This is evolving into… well, it’ll be a series. Gaslamp is not a lean startup, at least in the puritanical, traditional sense; that said, there is a certain amount of talk around the old campfire about doing our next game in a Lean fashion. Lean Games have been done before – arguably the best example is Mount and Blade, but I think Overgrowth and Natural Selection 2 both count – but nobody has put a label on the idea yet.

So let’s do this, and while we’re at it let’s talk about Lean Startups. What is a Lean Startup? Well, it’s a complicated subject. I also get to tell an Eric Reis story, which he probably doesn’t even remember, and if he reads this either I’ll get flamed and the company will be sued, or he’ll put it up on his excellent weblog. It’s a win either way, so here goes.

{ read this article }

Posted in Programming | Tagged , , , ,
3 Comments

Game Development Snake Oil

I am actually sick with lung flu, which means I have some time to write angry rants, inspired by things on my Twitter feed, and then post them to the company blog.
(Actually, this is just shameless bait for sites like Y Combinator, who love to hear Angry Young People railing about the world at large. I… I should give up now.)

That said, we have been falling short on technical commentary here, and I did get linked to two Twitter posts this morning that are worth discussing in some detail. So let’s have at ’em.

The first item is from id Software’s John Carmack, who does things like writing an entire photon mapper in a day and then tells people that he did it – and, it’s not a big deal, you know? His contribution to the discussion:

“Floating point trick: If ( a != a ) a is a NaN”

I took a few minutes to puzzle out how this could possibly work. It turns out that in C++ – and in fact, according to IEEE floating point standards – NaNs (or not-a-numbers) will cause ANY expression to return true if they are used in an inequality comparison. Clever!

The second item that caught my attention was an advertisement for a course with a “Certified ScrumMaster for Agile Game Development”, to be held two days before GDC. This course promises that we will, with the ScrumMaster’s help and guidance, learn such things as:

“The essentials of getting a project off on the right foot”,
“How to successfully scale Scrum methods to hundreds of participants”,
“How to help both new, and experienced teams, be more successful,”

and so on and so forth. In just two days, you too can sip at the mystical elixir of Scrum, which is guaranteed to make your game ship on time, your Metacritic scores improve, and as an added bonus it’ll make all your hair grow back and your girlfriend will stop complaining about all the overtime you put in at the office. The cost of this affair? $1500 for a two day seminar, although you get $250 off if you register early. As a bonus, after you take this course (and fill in some kind of online quiz), you too can call yourself a Certified Scrum Master!

*sigh*

{ read this article }

Posted in Games, Programming | Tagged , , , , , ,
8 Comments

Dear Linux Community: We Need To Talk.

I glanced at Slashdot yesterday while bored and found an interesting article on the CDE packaging tool. An impressive piece of work, CDE automatically packages up all of your dependencies into a self-contained directory structure. If I wanted to package up Dungeons of Dredmor and to be able to guarantee that it would work on your computer, all I would have to do is to run CDE on my computer, where I know Dredmor works, and sha-zam! Instant package.

This is something I have been fretting about: how do we distribute Dredmor for Linux?

{ read this article }

Posted in Dungeons of Dredmor, Gaslamp, Other Games, Programming | 12 Comments

On Engine Licensing and the Fall of GarageGames

First off, let me preface this with the following announcement: we have two middleware solutions targeting independent game developers coming down the pipeline. One of them is a user interface toolkit, similar to wxWidgets or Qt, but fully hardware accelerated and oriented towards video game UI and level editors. The other piece of middleware is a complete “game engine” on the level of, say, Unity or C4. It features all the stuff that you would want, including interactive level editing, terrain creation, and a full dynamic lighting and shadowing solution using deferred rendering. It also includes some stuff that you didn’t know you wanted, such as an easy-to-use level sketching tool, an asset store built into the level editor, and our new and improved version of so-called “Megatexturing” which lets you paint on every surface on the world, dynamically, and without compilation times or messy texture packing.

Neither one of these two pieces of technology is used by Dungeons of Dredmor; when Gaslamp Games was founded, we originally started working on a 3D isometric strategy game, but we soon decided that it was unrealistic to try to ship a fully 3D title for our first effort – especially without a dedicated 3D content creator on staff! – and so we decided to finish Dredmor instead as a way of bootstrapping the company. That said, we have been working on our next game’s technology base in parallel with Dredmor’s development, it is *very* indie-friendly, and it will be available to interested parties at a very reasonable rate in the near future. If you want to be notified about when we get set to release, send an e-mail to technology-announcements-subscribe@list.gaslampgames.com and we will shower you with love.

That said:

I woke up this morning to see that GarageGames (renamed recently to “InstantAction” as part of a buyout) has gone under. InstantAction is dead, and the Torque Game Engine is looking for a buyer. Deep in the heart of the Gaslamp command center, we’re still trying to figure out exactly what triggered the collapse of the company. I’ve worked for companies that have collapsed before – Loki Software, anyone? – and the root causes of the company’s destruction are not always visible to outsiders. What caused the collapse, and what does this mean for independent developers?

{ read this article }

Posted in Gaslamp, Programming | Tagged ,
1 Comment

One More Thing

Okay, I should save some posts for later, but this is too cool not too blog about.

I’ve recently been sweating over one of my bad legacy decisions on Dredmor: namely, the fact that the game is resolution locked at 800×600. If you run in a window, the game runs at 800×600. If you run fullscreen, the game runs at 800×600 on your fullscreen monitor. Well, I decided that this was unprofessional, and started looking at what I could do to fix it… but I kept resisting, because I didn’t *really* want to break everything. Dredmor has… a lot of hard-coded positions. It’s very bad. Very, VERY bad; in fact, one of the things I really regret not doing for Dredmor is Long story short: the main menu screens still don’t work in any resolution, but the rest of the game… pretty much does. I think there are a few bugs still to be kicked out, but I’ve been playing the game very happily at 1680 x 1050 in glorious fullscreen and it’s… a much, much better experience. Clearly, the right decision. A brief word on the technical scaling elements follows below:

{ read this article }

Posted in Dungeons of Dredmor, Programming | 1 Comment

We’re Back!

We have now all safely returned from Penny Arcade Expo. I’m going to write up a brief description of my adventures, but in general I think we all had a good time. I’m not sure if it was particularly good as a networking event, but I did more networking than Daniel said would happen, and I also got to just spend some quality time with people who I haven’t seen in a long time, including my friends from Vancouver. What may be more valuable about PAX is that it reaffirmed my belief that Dredmor is something that people will understand, and will appreciate; furthermore, it reaffirms my belief that independent game developers like Gaslamp Games do actually matter, and that people do actually care about what we produce and what we create. Sixty thousand nerds like gaming enough, in all of its forms, to show up in Seattle for an entire weekend; what other conclusion can we draw but that video games matter to people, and somehow manage to touch their lives?

{ read this article }

Posted in Dungeons of Dredmor, Gaslamp, Programming | 3 Comments

Follow the White Rabbit

One of the things that constantly, and consistently, breaks in Dredmor is our save game system. I’m looking into new ways of fixing this for future projects while I keep the old one up and running. If I get a winner, well, I may retrofit Dredmor with it. If I don’t, well, who knows.

As part of this research, I stumbled across a C++ feature recently — I use the term “feature” loosely, as with all C++ features — that seems like it might be useful. At the very least, it’s not something that I knew you could do in C++ before, and after working with C++ for the better part of 15 years, very little about the language surprises me. So, follow the white rabbit:

{ read this article }

Posted in Programming | 2 Comments