Game Design, Programming and running a one-man games business…

Why use Directx7 (and dead links)

My games use directx 7. Not 8, 9 or 10. SEVEN. That is OLD. If you have windows XP and never installed anything, you already have Directx7 (or later, which is fine).

Why do I do this?

Several reasons. Firstly, DX7 is the version I learned when I first wrote a reusable graphics engine for use in multiple games. Re-writing an entire engine can be a slow process. Don’t get me wrong, getting it to WORK, is not a big deal, but getting it stable, bug free and (essential for an engine) FAST is very slow work. I know DX7 very well, I have optimized it to death, and know my way around the API really well.

Secondly, DX7 is all I need. I don’t even do 3D games, let alone ones using bump mapping and pixel and vertex shaders. I don’t stream geometry or use mip maps, or do multithreaded vertex processing or anything clever like that. DX8 and 9 *do* achieve some simplification of code, but don’t add anything I need.

Thirdly, DX7 means everyone who buys the game will have drivers that support the game. I don’t need to package the game with the directx installer or worry about such things. Some people playing indie games on laptops have very low spec cards, and you are best off sticking with DX7 if you can. A LOT of casual games use DX7.

The thing is, Microsoft REALLY don’t like this. Obviously they try and push you to use the newer versions, that’s natural, but it’s almost like they are insulted and annoyed if you want to stick with DX7. It is *impossible* to find a download of the directx7 SDK. Microsoft removed it from their website, including all earlier versions. They want to FORCE you to use the new stuff, even if its just pure hassle with no gain. After all, why would anyone make a game without bump mapping right?¬† I am rewriting part of my engine in an attempt to speed it up yet again, and I was forced to dig out the CD that came with an old book to find some source code, written by Microsoft that they refuse to let you have any more. It’s mad. I have released a lot better games that ‘Asteroid Miner’, but if you follow a link from a website not updated since 1997 to my homepage (which has moved servers 4 times since then), to an outdated zip file containing the game in the root of my site (before I knew not to do this) that zip file is STILL there. I just think it’s rude to move files people have linked to, for no good reason. Every time I follow a link to a companies website that’s dead, I just think they are LAZY. Web links last a very long time, why encourage inward pointing links to die?

Email day

I made some silly config mistakes today and sent an email to some people who I wasn’t intending to email. There is no ‘harm’ done, but some people who bought Democracy and Democracy 2 got an email from me on the basis of them *not* having bought the sequel.

I screwed up.

Nobody has really complained, which is great, because the minute I realized what had happened, I worried I had committed email sin by effectively spamming. I guess I just have to put it down to experience.

Like a lot of developers, I don’t handle the sending of emails myself. You might wonder why not, and ironically the answer is spam. If you try and send more than 100 or so emails, many ISP’s will block your ability to send emails for a few hours or more. This is a GOOD idea, because it prevents you unknowingly being part of a spammers botnet. It’s also good, because there is no chance of any paranoid, badly configured ISP’s anywhere assuming you are a spammer and blacklisting you (nightmare!).

I use this company:

YMLP

To send my emails. It’s not free, but it’s a worthy investment. I don’t mind paying to send an email to a bunch of people, because it makes you think about the content. I read some wise words from a respected marketing guru, saying that you should only email someone from your business if you would still have sent the email if it had cost you $0.42 (per recipient). Despite my balls up today, this still holds. The number of companies that send me pie-in-the-sky bullshit every week on the sad misunderstanding that I am interested in their megabucks 3D engines, are recruiting Animators, want a job in IT support etc etc, is sad proof that *most* businesses who send email (not spam, but ‘targeted’ emails) wouldn’t send most of it even if it cost $0.01.

Have a gift

I started redoing the code for gifts in Kudos 2 today. The original game had a simple¬† single ‘gift’ which you could only buy if you had a ‘romantic partner‘, and went straight to them. There was some pretty cool code regarding ‘gift cynicism’ in there, but to be honest it was put into a post-release patch and not properly thought through. I’ve set aside tommorow to code a better, slightly deeper system for Kudos 2. A day doesn’t sound long, but remember I do everything, and there are a lot of areas to polish and get finished.

My first thought is whether gifts should still be just romantic. Shouldn’t I be able to buy a gift for a friend? Maybe… but perhaps code is needed to handle how this is a different matter to romance. Would it be fair to suggest that friends feel more uncomfortable getting gifts, than romantic partners would? If You are my “significant other “and I buy you a box of chocs, thats cool, but if you are my pal and I buy you an ipod, would you not think it a bit weird? maybe feel like I’m showing off, or that I must want something. I think there is a lot of complex contextual stuff needed to handle how friends react to being given gifts. Some of this is already in Kudos (friends track how in debt they are to you in terms of offers to pay for entertainment), but it would still require a lot of extra complexity. Gifts also bring up the possibility of tracking friends and partners birthdays, and thus birthday social invites etc etc.

At the very least, the new system will have multiple gifts, at different price points, and let you buy them in advance and hand them to people later, maybe just after you turned down their invite to a romantic candlelit dinner so you could spend the night reading a book on software engineering. This sounds like it’s autobiographical now doesn’t it?

In unrelated news, I’m reading a book on ‘supercrunching‘ and andrew marrs ‘history of britain’. both are good reads. My knowledge of the Korean war, or the Attlee government was minimal. I didn’t even realize Churchill was voted out, then in again. I guess I was good at maths and crap at history as a kid…

Lack of Interaction

The internet happened, and in some ways, nobody noticed. We get very excited about things like YouTube and Facebook, but 99% of the time 99% of the opportunity for interaction afforded by this new medium is wasted.

I just watched an episode of Doctor Who on the BBC. My interaction with the content producers is amazingly limited. Did I like the show? Did I find it boring? was the music annoying? did the doctor overact? did it drag a bit? I have my personal answers to all of this, and yet I can’t get them to the BBC with a few mouse clicks. Why not?

Why don’t TV shows like doctor who allow you to REALLY make a total mashup or re-edit of the entire series? Why not ship DVDs of the series containing every single shot that was filmed. Not just what got past the editors, but the deleted scenes, extra takes, the raw studio footage without the CGI… Ship those CGI models too. If a bunch of fanboy geeks want to take the model of a sontaran spaceship and extend that scene, adding their own extra SFX, why not let them? Ditto the music, the sound effects…

Dalek

Why doesn’t my fave band (Dream Theater) release their next album with every single track split apart into wavs for me to recombine and mix myself? Maybe I want the guitar louder, maybe I hate that intro and want to cut out the drum solo. Why not let me?

Games allow modding a lot more than these other media, but in terms of interaction with the content creators, they are still limited. How many games actually ask you what you thought of each level? outside of beta testing. Games are especially well placed to solicit user feedback and improvements, because we can change our product instantly. If 74.2% of the first 500 people to play Kudos 2 think that commuting is too expensive, I can patch it immediately, and the next person to buy it is already getting a superior product.

You have to be careful here, relying on the people who are most vocal about a product to help you tweak it’s design can result in pandering to that self-selecting niche with strong views. The aim should be to massively lower the barrier to entry for giving content feedback to the creators. Bands trying out new songs live can tell instantly what the crowd thought. Game developers trying out new mechanics are still relying on very crude methods (reading forums and counting sales) to get feedback on their new ideas. We can do better than that. How would you feel if a game popped up a question at he end of playing asking you to rate that play session (and insist on pinging that data anonymously to the web)?

Sequelitis

I’m currently working on Kudos 2. It’s a sequel to my earlier game, not amazingly called Kudos. Before this, I did Democracy 2, the same applies. One the one hand, I’m a bit worried that people might think I keep churning out the same games (hopefully not, as the sequels add considerably to the originals), and I’m also very slightly worried that maybe these 2 games are my ‘big ideas’ which I won’t beat. (I have a ton of other ideas, but ideas are not completed, working fun games).

On the other hand, Kudos was a great idea that could have been done a LOT better, just as Democracy was. The really scary thing, is that reading several books recently has got me thinking about a potential Democracy 3, and how THIS time, I could really do the concept justice and kick major ass with it.

I don’t know what I will do next, and I’d like to think I would try something new, but it’s far too early to tell. When I finished D2, I started doing a totally new game, two of them in fact, but neither game idea really seemed to ‘gel’ in the way a sequel to kudos did, so they remain very empty basic frameworks for now.

There are worse things to do with your life than constantly work on a series of games that are popular, sell, and people enjoy. Civilization has made it to 4 games. There are 3 age of empires (and 3 expansions), and Sim City has already made it to SC4.

I’d just like to make as many different games as I can.

I’ve been away on holiday, only got back today.