Category: Game Programming

About Elemental

Just got this comment in a previous post and thought I’d respond here rather than there.

So.

WHAT were you guys thinking, to go around saying it was ready to ship?

Because, y’know, it wasn’t. As just about every review and forum thread is acknowledging, some more heatedly than others. (PC Gamer: “You should not buy it.” Uh, wow. I’ve NEVER seen them be that blunt before.)

Does Stardock have an actual QA department? Is it organizationally independent of development? Are there good lines of communication between QA and the rest of the company? Do they write test plans? Do they run them? How can they test this game and not encounter the problems that were present?

Or is the only testing done by developers in their spare time?

How does something like this happen?

-Rollory

First off, welcome to the site! I don’t think I’ve seen you around here before. I’ve got some free games you can try, and if you’re here for the Name That Game! feature, I’ll be posting a new entry later today.

Second, allow me to answer your questions and respond to your statements in the order they were presented.

So.

Nice to meet you too!

WHAT were you guys thinking, to go around saying it was ready to ship?

Brad’s now infamous statement (which you can read here) was made in anger and exhaustion. Brad explains the situation (and apologizes) here.

Because, y’know, it wasn’t. As just about every review and forum thread is acknowledging, some more heatedly than others. (PC Gamer: “You should not buy it.” Uh, wow. I’ve NEVER seen them be that blunt before.)

PCGamer’s most recent article about elemental states “I’m glad Stardock are patching Elemental so quickly after its disastrous early launch, and I’m relieved to finally have the game in a playable state.”

Does Stardock have an actual QA department?

Yes.

Is it organizationally independent of development?

Yes.

Are there good lines of communication between QA and the rest of the company?

Yes. We use Skype chat channels to stay in constant touch and they use Jing to quickly post screenshots and movies of problems so that we developers can see what they are seeing.

Do they write test plans? Do they run them?

Yes and yes.

How can they test this game and not encounter the problems that were present?

And now you have raised my ire. As a former tester I can tell you that testers find bugs; they do not fix them. If bugs exist in a final product they are not the fault of the testers; they are the fault of the developers. Of course they saw the issues. They are not idiots, and I resent your suggestion that they are.

Or is the only testing done by developers in their spare time?

No. Although most of us developers do play the Impulse version in our spare time and keep track of any problems we find.

How does something like this happen?

At last, you have asked a truly salient question (although I’m sure you intended it to be rhetorical.)

“This” happened because it was the lesser evil. Stardock simply does not have the clout to release a retail game during Christmas. Our choices were to launch on August 24th or push the game back to February of next year. Pushing back would have had disastrous consequences for Stardock because of the partnerships we had made and the forfeiture of our retail space.

I’m sure you’re thinking, “Well, releasing an incomplete, buggy game is also going to have disastrous consequences!” And thus you’ve hit the crux. We were in a bind, and chose the lesser evil – to release on time and then work like the dickens to get the game to the state we and the players want (instead of, you know, sleeping like most people who have just shipped a game do). Yes, a lot of people have already had a negative initial reaction to the game. There’s nothing we can do about that. But Stardock has a reputation for continually improving their games over the months and years after its release, and we’re continuing that tradition by improving Elemental as quickly as we can and turning it into the game it deserves to be.

-Rollory

Again, welcome to the site, and I’m sure we’ll have lots of spirited debates in the future!


A Few Days Off…

So.

I’m looking at my SVN repository.

I’m supposed to be working on Zeta.

But instead I open the Inaria project. See, back before I started working for Stardock I was making an iPhone version of Inaria. I had greatly expanded the game, with new maps and NPCs and…well, everything. I didn’t get a chance to finish it before I lost access to the Mac Mini I used for Mac development, and I started to think that it was a real shame I never got to publish the new version of Inaria.

So I will 🙂 Zeta’s on hold. Yes, I’ll get back to it, but in the end we game programmers are crazy. We have to work on what draws us.

Plus, I think you guys are going to love the new version of Inaria.


Begin Again

Work on Elemental has slacked off slightly, so it’s time to ramp this blog back up again!

I’d like to talk about Stardock and Elemental; I really would. But…well, if you want information about Elemental, you should be going to the official website, and while Stardock is an excellent place to work, I don’t have lots of goofy stories about working there yet.

Except one.

Once Brad took us out to look at some of his abandoned beehives, which were being scavenged by other bees. Because these bees weren’t defending their hive, they completely ignored us – we were standing right in the middle of a cloud of them and never got stung. Then I reached into the hive and pulled out a handful of just-made honey and ate it, just like Winnie-the-Pooh.

That sure as hell never happened at any previous place I’ve ever worked.


Four Days

Okay. I think he’s crazy, but Brad has just given us all a four-day weekend for the 4th of July.

Which means I can actually work on something OTHER THAN ELEMENTAL!

So, a quick poll. What would you guys most like to see me finish? Or at least make significant progress on?

1. “Planitia. I’ve been waiting almost four years!”

2. “Zeta. A metroidvania sounds cool!”

3. “Let’s Play Starflight. I have to know how it ends!”

4. “Something else. The three above are old news.”

I can’t wait to hear what you pick!
No, really, I can’t wait. I’m actually going to be working on stuff in the meantime 🙂


Linux Hates Me

So I had several people respond to my releasing the source of Planitia by saying, “Nice, but you should have used OpenGL instead of DirectX so it would be cross-platform.” And they are absolutely right, of course. Planitia started out as simply a way for me to learn DirectX (having already become basically familiar with OpenGL) and evolved into the game you see today. A good way for me to continue the learning experience would be for me to re-implement it in OpenGL, since my DirectX knowledge is now way ahead of my OpenGL knowledge.

So the best way to get the project cross-platform is to have another platform to cross to, right? It’s been a long time since I’d last dabbled in Linux and distros have come a long way since then. I’d also heard that booting off a thumb drive was now not only possible, but usually the preferred way to run Linux as a second OS if you don’t want to muck with partitioning your hard drive.

So no problem, right? I find a distro of Linux, install it to my thumb drive, then reboot from the thumb drive.

First I tried PuppyLinux, since it’s pretty much billed as the thumbdrive Linux distro – nice and small, the ISO is all of 130 megs.

But when I went to install it to my thumb drive, it failed to initialize video. I tried several different resolutions and bit depths and they all ended up the same way – with my monitor saying “No signal”. Irritating.

So I went in the exact opposite direction with Ubuntu. Got the netbook version off the official site and it installed just fine. I figured that everything would be hunkey-dorey because the installer is graphical rather than just text. Rebooted the system…when it tried to switch the video mode I got a screen full of purple garbage, then a spontaneous reboot. On subsequent tries to boot, I didn’t get the purple garbage any more but I did get the exact same thing I did with PuppyLinux – when it tries to initialize video, I end up with my monitor saying “No signal” and no choice but to reboot.

The only conclusion I can come to is that my video card is too new and distros don’t include drivers that are compatible with it yet. More than a little annoying. Linux advocates claim that Linux can resuscitate old boxes that are too slow for the most recent version of Windows; they are correct. But it seems like those are the only boxes that can successfully run Linux.

Now, I know what Linux zealots are going to say. They are going to say that it’s not Linux’s fault that it cannot support the latest gewgaws on my video card. But that’s not what I want – I just want it to support the most basic graphics so I can get to the desktop. And the really infuriating thing is that the Ubuntu installer was graphical, so I know it can be done!

So once again, my high hopes for getting familiar with developing in Linux are crushed.


Planitia Update 40: Feel the Source!

Gettin' back to basics.

All right, people, here it is. The current source code to Planitia, along with the cut-down, more retro-styled resources. (The previous animated sprites not only didn’t look that good, but they ballooned the project size to over a hundred megs – what the hell was I thinking?!)

Click here to download the latest playable version of Planitia!

Click here to download the source code and resources necessary to get the project running!

Now, having clicked that link, your work here is not done. You will read to the end of this entry before you start asking questions about how to get this working. Okay?

That zip file is going to extract into two directories – one called “Planitia” and one called “Framework”. That’s right kiddies! As a bonus, you get the framework I use to make all my games nowadays.

Here’s what you’ll need to do to get this project working.

Install Visual C++ Express 2008. Yes, I know, Microsoft just released Visual C++ Express 2010 but I haven’t tested with it yet.

Install FMOD EX.

Install a version of the DirectX 9 SDK.

Alter the include and library paths in both the Framework and Planitia projects to point at the local versions of FMOD and DirectX.

Alter the include paths in Planitia to point to the Framework source.

Check Project Dependencies for Planitia and make sure it’s dependent on Framework.

The working folder for Planitia is “Redist”. You’ll probably have to put your versions of fmod.dll and the directx redistributable in there to get your particular compilation working.

I’m sorry I couldn’t make this any simpler, but it shouldn’t be that hard to get running (under Windows, at least).

If you have any questions (that aren’t covered in the above instructions), please feel free to either leave a comment or email me at anthony.salter@gmail.com.

Good luck with the source! And don’t worry, just because I’m releasing the current source doesn’t mean I’m done with Planitia.

EDIT: I have been asked what license this software is being released under. I am releasing it under the Simplified BSD (or FreeBSD License). The upshot is that I retain copyright, but you are free to do anything you wish with this source code (up to and including developing a commercial project with it) as long as you attribute the original source to me. This source is being provided “as-is” and I take no responsibility for any problems you may have with it.

The complete text of the license follows.

Copyright 2010 Anthony Salter. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY ANTHONY SALTER ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANTHONY SALTER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of Anthony Salter.


Okay, NOW I’m Doing Something Cool…

…But I can’t talk about it! Grah!


Moving to Maccyland

Ryan (he of the inestimable fame) Clark suggested that since my professional and my hobby projects were on the iPhone, that I make the Mac Mini my “home” computer for a while.

So I did it. This is how they get you, you know.

The Mac Mini felt sluggish to me in development, and I knew it probably wasn’t because of the processor – it was probably due to the fact that the poor thing only had one gig of RAM.

I also must must MUST have two monitors when developing. (I’m now spoiled and cannot go back.) The video ports on the back of the mini are tiny and they are both different, requiring not only one adapter to run a monitor but a second, completely different adapter to run a second monitor. I only had one of the magic adapters and so could only run one monitor.

So the job this morning was to run out and get another gig of RAM and another video adapter for the Mac Mini.

This little sojourn began with me taking the thing apart. The Mac Mini is basically the guts of a laptop crammed into a cute little box. But unlike a lot of laptops, the thing is not designed to be user-expandable. You’re supposed to take it to an Apple Store (c) and let a Certified Apple Genius (c) work on your Mac Mini (c).

So the day started with me taking the thing apart. I’d already done it once when David shoved two DVDs into the drive at the same time, causing it to do nothing but attempt to read the discs over and over and over forever. To the device’s credit, after I removed the top of the DVD drive and took the discs out, it worked fine again.

But this was different. I was venturing into the dark heart of the machine, where no end-user is meant to go. The RAM sits on the very bottom level of the machine, underneath the drives and other guts, on the motherboard itself.

The thing about doing this type of disassembly is that there are lots of clips and pins holding the top half of the machine onto the bottom. So when you unhook the Airport antenna and take out the screws holding the top half of the computer to the bottom, it’s easy to unhook something and not realize it. Fortunately, I was looking very closely at what was happening as I opened the computer up and saw that I’d unhooked two pins from their clips.

But the bottom of the computer was finally exposed and I could fish out the single RAM chip. I took it with me to Best Buy to make sure I got absolutely the right memory (I think I’ve already established how with Apple, you play by their rules or you get kicked in the nuts).

So I go up to Best Buy. They don’t have Mac Mini RAM but it’s obvious that the MacBook uses exactly the same RAM, so I buy a two gig stick (all they have). I also get the second display adapter.

Got back and installed both RAM chips back into the computer – so yes, this computer now has three gigs of RAM in it. Got the clips put very carefully back into place, and boy are they finicky little suckers. Got everything reassembled and the machine works fine.

Time to get the second monitor hooked up. What the – the adapter goes right on the end of the VGA cable, which plugs right into the port on the Mac mini and starts working with no problems?! That’s not how things are supposed to work with Macs! I guess I got lucky.

So now I’ve got an upgraded Mac Mini with two monitors, a machine that is probably at least as good as my PC. World of Warcraft runs fine, and WoW is pretty much my benchmark for whether a machine is usable or not.

And hopefully I’ll be posting a progress report on Inaria soon.


Pulling the Trigger

Today I registered my sole proprietorship, which means I can now do business using the name “Viridian Games”. Before this it was just the name of my blog, but now it’s the name of my company – something I rarely thought I’d ever have…

Tomorrow I’ll pay the $100 to become an official Apple developer and fax them the registration form. Then I’ll be ready to submit Inaria when it’s done.

I will tell you what I’ve learned over the last eight months – never have a single revenue stream. I wish I’d learned this when I was twenty.


Brad Wardell

It’s been a while since I’ve done an in-depth story on a developer I admire. So let’s fix that!

Brad Wardell, as you probably know if you read this blog, is the president, founder and CEO of Stardock, a software development company that specializes in two different types of software: operating system customization software and games.

Brad’s entry into software development was almost accidental. His first serious business foray was into hardware – in 1990 he started building computers and selling them pretty much out of his house (a la Michael Dell). He called his company “Stardock Systems”. In 1992 OS/2 was released and Brad felt that he could gain a competitive advantage by preloading OS/2 onto the computers he sold. In doing so he became quite familiar with OS/2.

In 1993 he realized there could be a market for an OS/2 game. He had never programmed before, so he bought two books: Teach Yourself C in 21 Days and OS/2 Presentation Manager Programming, and using the information in just these two books, he wrote Galactic Civilizations.

As you can see, GalCiv was a bit primitive graphically. At the time, Brad only knew how to create windows and icons, so everything you see in GalCiv consists of one of these two features. But it was a critical success (and not just because it was practically the only OS/2 game at the time). It was well-designed and had some excellent AI. Now, I recall being at Origin at the time and watching GalCiv top lots of “Game of the Year” lists for 1994…a lot of us at the time couldn’t understand how Origin games had lost out to an OS/2 game that…well, looked like that.

But as good a game as it was, Brad made almost no money on it. He was ripped off by his publisher and couldn’t afford a lawyer to fight back. He learned a very valuable lesson the hard way – a lesson that almost sank Stardock.

But what the publishers couldn’t take away from him was the name Stardock on the box. While the success of GalCiv didn’t profit Brad, it did raise the profile of his company. Brad was able to profit by writing an expansion to his own game called Shipyards, which sold well enough to keep him going for a bit. IBM came to Brad hat in hand asking if Brad could create a special version of GalCiv for the IBM OS/2 game pack. Brad did, which he titled Star Emperor.

Brad had always been intrigued by the idea of customizing the OS/2 operating system, and in 1994 became convinced that an OS customization tool for OS/2 could be profitable. This lead to him teaming up with fellow OS/2 enthusiast Kurt Westerfield to release OS/2 Essentials, the software that would eventually become Object Desktop.

And Brad was also able to get the rights to the “Galactic Civilizations” name back and republish the game (with improvements) as Galactic Civilizations 2 for OS/2.

And at this point, he figured the game was over and he’d won. By twenty-four he was a millionaire and Stardock was not only selling tons of copies of OS/2 Essentials and GalCiv 2 but publishing other people’s OS/2 software as well.

And then he made his second mistake – he allowed his zealotry for OS/2 to nearly wreck his business.

IBM quietly dropped support for OS/2 in 1995, and Microsoft released Windows NT 4.0 (the one with the much more usable “Windows 95”-style interface) in 1996. Windows NT 4.0 quickly captured OS/2’s core market. There were lots of people (including some of my friends at Origin (Hi, J. Allen!)) who believed that even if IBM’s support of OS/2 was a bit spotty, the superiority of the platform plus user advocacy and support could make the platform a success.

Needless to say, it didn’t work. Soon Brad began to realize that something was wrong, but Stardock continued to release OS/2 software until 1998. This could easily have been the end of Stardock, but two things saved his company.

The first was an employee, Mike Duffy. Mike was the lead developer on Entrepreneur and decided he would write a low-level, cross-platform library that worked on both OS/2 and Windows. This enabled Stardock to finally start making the transition from OS/2 to Windows.

The second was customer loyalty. Stardock at this point had a whole bunch of customers who didn’t just buy their software – they were fans of the company. They wanted to see the company do well. So they actually bought subscriptions to Stardock’s online ObjectDesktop.Net service before it was actually ready. Because of this, while 1998 was the worst year in Stardock’s history they managed to pull through, and by 1999 they had begun to release Windows products.

By 2000 things were looking up again. Brad’s focus on desktop customization software was paying off, with WindowBlinds, ObjectDesktop and DesktopX all selling well. Stardock avoided the dot-com crash of 2001 by actually being profitable and having a business plan, and by 2002 Brad decided that the company was ready to get back into games again. The first had to be a version of the original Galactic Civilizations for Windows.

But development of GalCiv for Windows slowed when the launch of Windows XP approached. Because Windows XP had more customization features “out of the box”, Brad was concerned that people would feel they didn’t need Stardock’s customization software any longer. In fact, the exact opposite happened – Windows users who had never been exposed to desktop customization before saw it in Windows XP, experimented with it, and then turned to Stardock when they ran up against the limitations of what the built-in customization could do. Needless to say, this was a great relief for Stardock.

In 2003, Windows finally got a version of Galactic Civilizations. This edition included everything from the OS/2 versions of Galactic Civilizations, its expansions and its sequel (thus, GalCiv for Windows is equivalent to GalCiv 2 for OS/2). Plus it now looked like this!

At the same time, Stardock had been beefing up their digital content delivery system. Galactic Civilizations for Windows was available at retail and online on the same day. Retail boxes included a code that could be entered into Stardock Central, which registered the user’s copy and allowed them to download the latest version.

Stardock Central quickly expanded to allow digital delivery of any product Stardock published – and Stardock had gotten back into the business of publishing other software.

And in 2006, Stardock released Galactic Civilizations 2, and Brad briefly became the focus of the DRM debate when he stated that GalCiv 2 had no DRM and never would. This caused some criticism from DRM providers (indeed, a Starforce employee actually posted a link on their forums telling people where they could pirate GalCiv 2) but Brad’s decision does not seem to have affected GalCiv 2‘s sales, which have been excellent.

And in 2008 Stardock updated the perfectly functional but kind of hoary old Stardock Central with a flashy new version called Impulse. Impulse is quite comparable to Valve’s Steam in that it’s a system designed to allow people to buy and digitally download software from a host of different companies, but is different in that Impulse doesn’t require an internet connection simply to play games, but only when purchasing a new game or using other online features.

Brad long ago returned to millionaire status and has stayed there since. His strategy of cultivating a loyal fanbase and shipping excellent software while staying out of debt has allowed Stardock to grow into a major online presence and allowed him to overcome his missteps.

Brad has developed a rather…unique online persona. During his stint on the Poweruser.tv podcast, he effectively acted as the “comic” to host Kristin Hatcher’s “straight man”, saying and doing outrageous things simply to get her reaction.

Brad has also been at the core of several flamewars about OS customization, routinely insisting that the customer is not always right – especially when catering to certain customers would hurt his business. At one point he exclaimed in a forum post, “I’m too old and too rich for this shit.”

His political views seem to lean toward the individualist, and he has a particular hatred of taxes, seeing them as good money given to the government who will then give it to people who haven’t earned it and probably won’t deserve it.

Overall, I think Brad is a great guy who had to overcome incredible disadvantages to succeed. If I had the chance to work for Stardock I’d probably jump at it. Despite having to move to Michigan.