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

Adding some basic mod support

People really liked modding Kudos. Maybe it was because that game was (like all of mine) amazingly easy to mod. Adding a new job is just a text file. Adding new books and other purchasable assets is similarly easy. I intend kudos 2 to be just as easy (if not easier) to mod for.
Eventually.
But right no I’m concentrating on finding and squashing any bugs. I’ve just spent some time today getting modded jobs to work (still needs testing), but it won’t be the perfect easy user-friendly experience I intend it to become on it’s initial release.
Hopefully, I’ll eventually have some separate tools to produce new jobs and scripts for the game, but I’d rather worry about that in the week after release, and the weeks after I get back from the hugely needed holiday I have booked for the end of October.
So if you buy the game (expected release date is Wednesday) and you think it doesn’t allow enough modding, don’t worry, that will change almost immediately.

Widescreen support, publisher logo things

Three things got done in the last 24 hours.
Firstly I got wide-screen support in the game, which kicks in automatically if your desktop resolution is 1280×768 or 1280×800. It then runs the game full screen as 1280 x768. In a window, it is always at 1024×768. This was basically a move to support wide-screen laptops, which are very commonly used for the more casual and indie games now. The game looked a bit crap when stretched to fit those resolutions, so I did 5 minutes fiddling and it all works fine. I’m really pleased with how easy it was to get this working, a sign that the underlying code is good :D

The second thing, which I did today was add support for those tedious logos at the start of the game. Don’t worry, that aren’t in the Positech sell-direct version, but some of the casual game portals insist on having their logo present. The main game screen looks so cool I don’t ant to clutter it, so I decided to support the full screen fade in and out thing you normally get. Not an inspiring job…

The best thing was rewriting the background display code so when it changes from normal rendering to super-funky ‘you are drunk’ wobbly buildings, there is no really bad jump (it still skips a bit), and a lack of clever color-fading. Now it’s all one system, which makes everything look a lot nicer. This was just a bit of graphical polish I wanted to get done.

It’s going well, and I’m on track to put the game up for sale on October 1st.

Brits who made the modern world

There was a short 30min documentary on Ch5 in the UK last night, about the guys who made the game ‘Elite‘. They were 2 college kids from Cambridge, UK. One of the best facts from the program was that when they released the game, there were 150,000 BBC computers in the UK. And their game sold 150,000 copies. Now THAT is a hit game. That makes World Of Warcraft look like barbies riding school.

The bits I enjoyed hearing about was how obsessed theyr were with optimising the code and getting the machine to do much more than anyone had before. They had no debugger, and no tools. If the game crashed, they couldn’t step through code line by line as we do now, they had to stare at the code (all 16k of it) until they found the bug. That’s serious hardcore programming. I managed to code 4 games before I worked out how a debugger worked. I never even saw people step through code until I got my first job at Elixir. Sad eh? It’s MUCH easier with breakpoints and a debugger, trust me!

I miss the days of having to optimise code to oblivion. I love reading about tricks like compiled sprites and loop-unrolling, even though many of them are irrelevant now. I’m not the worlds best programmer, but I have managed to code some pretty optimised stuff now and then. I’m very happy with the particle systems I’ve coded, especially how well they run on low spec machines. Given no worries about actually finishing games and shipping them to bring in some rent-money, I think I’d happily spend ages ripping out huge parts of my games are re-optimising the, just for the hell of it. One day maybe…

Algorithmic dilemma

Here is a puzzle:

I have lists of neutral comments, positive comments, and negative comments. Any of the lists could be empty or of any size.

I wish to select roughly 2 comments in total, sometimes 1, sometimes 3. There is a chance that I will only have a total of 1 comment to choose from anyway (in all 3 lists)

I also have a value that is positive or negative. If it’s positive I need to ensure not all my comments I select are negative, given that there are some positive ones. If its negative, I need to do the reverse.

How do you do that?

If the mere thought of it makes your head explode, you will never be a programmer. If you can see immediately how to do it, in explicit steps, efficiently and accurately. Then you may be a very good programmer one day. Hopefully I’ll have sussed it before anyone posts a good reply :D

Skills GUI

I made a decision with Kudos 2 that I was going to get everything working and looking how I wanted, regardless of how much hassle was involved. Partly this just means changing my state of mind when I’m typing out my ‘todo’ list as I test the game. Rather than mentally editing it to take into account technical difficulties, I just jot down how to improve the game and tell myself not to worry about what’s involved. Then when I go to implement them, I just do it, regardless how awkward some things are.

An example of this was the panel that shows the players skills. This panel just sat there and didn’t have the status update balloons which flash up when you change your attributes, but when playing it occurred to me that this would be a good idea, especially on the ‘post mortem’ screen where many of them change. Making them show up at all involved a ton of recoding. Then I hit the issue that you can have a lot of skills, and they looked horridly cluttered on that post-mortem screen.

So eventually I had to write a bunch of extra code for the skills GUI that rebuilds it just for the post-mortem screen, showing just what’s changed. This is great for the player but was a bitch to code. Hopefully, if I can keep developing like this, the game will have a far more polished feel than anything else I’ve done.

BTW server is a bit slashdotted today…