Look out! He’s armed!

28 11 2008

It’s been a busy few weeks, but I’ve managed to make some small progress since last time.

I intend the game to be primarily a straight platform shoot-em-up with minimal plot or back story, so the first thing I added after player movement was some basic bullet handling. There’s currently only one type of gun and one type of bullet, but there’s potential for more.

After that I worked a little on sound playback. The sounds are (like everything else!) just place holders, but I’m sure a few will make it into the final game. The effects are generated by DrPetter’s wonderful sfxr. It’s a great little program. I could play with the parameters for hours, or just keep pressing “Randomize” to see what happens!

I’ve been nagging at myself for a while to try and brainstorm some ideas for player graphics. After several failed drawings of spacemen, aliens and that sort of thing, Hazel suggested a hamster.

So there he is! I’m not 100% happy with the walk cycle yet — there’s something going on with his feet that’s not quite right — but overall he’s not so bad. His idle, jump and fall animations aren’t done yet, but they won’t be too hard to do compared to the walk cycle.

hamsterstandbig

Probably next on the agenda is some work on level graphics and maps. I’m a bit sick of the little room that’s there at the moment, so it will be nice to enlarge it and get some more platforms in there. The gaudy colours look terrible when encoded as a low quality movie, so I really should work on some decent tiles. Then it may even look like a real game!





I ported to XNA and lived to tell the tale

8 11 2008

The game is still small, but there’s enough code there that adding anything certainly feels more like work than fun, which I suppose a hobby project should be.

I was briefly chatting to Alex May (of Dyson fame) and asked him his opinion. It didn’t take much, but he convinced me to port it from C++ to C#.

So it’s taken a little while, but the code is now functionally at the stage it was before (and then some) but written in C# and using the XNA Framework instead of a home-cobbled mix of SDL and OpenGL. Alex reassures me that it’s quite an achievement, but I can’t help but feel disappointed that the game looks identical.

Maybe that’s the real achievement. I ported to XNA and not only lived to tell the tale, but my game managed to stay retro. It’s not that I have artistic integrity, but if I did, it would have been left intact!

About C#, overall I’m finding the language very nice (although I miss Java’s checked exceptions, even if they do have their flaws), and putting things together is rather quick. It almost feels wrong. This isn’t coding… is it? Can it be so easy?

Maybe, but I had to swallow the pill of vendor lock-in. That said, I would like to get the game up on their “Community Games” service.

I put in some effort to ensure that the game looks right on Xbox 360 as well as PC, and in whatever display mode the console is currently in. The last thing I want is for people to play my 4:3 game on their 4:3 TV set and find that it’s rendered at 1280×720 letter-boxed.

Today I did some work on loading rooms from text files instead of just setting them up in code. A “room descriptor” file currently only contains a few lines of information: The name of the tile set to load, the name of the tile layer to load and the position to spawn the player at.

Because I was code-weary and searching for cheap laughs to bolster my spirits, I checked out what would happen if I were to spawn 3 players at different positions. It didn’t turn out to be as entertaining as I’d have liked.

I started to lay the groundwork for creating and moving bullets, so hopefully that’ll appear in an update fairly soon.





Slopes and jumping

3 10 2008

I did a little work on slope collision a couple of days ago:

Then I worked on walking and jumping:

It’s a little hard to tell from the video, but holding the jump button for longer results in a higher jump. This is done by applying a lower amount of gravity for first part of the jump, or until the player releases the jump button.





Cave Story is coming to WiiWare

3 10 2008

Looks like there’s now an official announcement, so I guess I can talk a little. It was said at the Nintendo Media Summit today that Nicalis is working on the port of Cave Story to WiiWare.

What’s interesting for indie gamers is that Nifflas (of Knytt fame) works at Nicalis, so it’s cool to hear of indie developers getting together.





Early days

2 10 2008

One of the projects I’m working on is a platform game. I thought I might record movies of the game’s progress, so here’s the first one:

This video shows basic air motion and square tile collision.

The game is written using SDL and OpenGL, but this may change in the future if I want to port it to other platforms. I find SDL and OpenGL to be a nice combination for getting things up and running relatively quickly.





Periodic lag spikes and a Wireless FiXP replacement

1 09 2008

Ever since we moved into the flat we’re in now, my wireless connection has suffered periodic lag spikes during online games. They were happening about every minute, and lasting around 5 seconds each. There’s nothing like a recurring lag spike during a hectic game to rain on your parade, so it had really been getting me down.

I’d searched the web about the problem, and it seemed to be caused by Windows’ “Wireless Zero Configuration” service doing something periodically. Every time it did it, I got a lag spike. So what was the solution?

The solution was to disable the service. But of course when I did that, my wireless LAN connection wouldn’t connect to any networks. So what was the solution to that?

Simple!

  • Start the service.
  • Wait for an internet connection.
  • Stop the service again.

That’s not too bad, but a pain to do manually every time you switch on your PC. Apparently there was a script or program called “Wireless FiXP” which did it automatically, but I couldn’t find it anywhere. There are numerous links back to the original author’s page, but the original page is now a 404.

So after I knew what the problem was, it didn’t take too long to put together a replacement batch file. I present it here for anyone else searching in vain for Wireless FiXP.

@echo off

net start "Wireless Zero Configuration"

:retry
ping -n 1 www.google.com
if errorlevel 1 goto retry

net stop "Wireless Zero Configuration"

Drop that in your Startup folder so it gets run on each boot and you should be good to go.

So hopefully that’ll help someone else out. If so, enjoy your lag free gaming!





Flex and Java

29 07 2008

The other night I was messing around with ActionScript 3 and Flex. Flash and related technologies aren’t things I’ve used before, so I was really impressed by how quickly a polished app could be put together.

I’ve got an idea to make a kind of networked Flash game, so I spent an hour or so writing a simple “echo” client and server, using Flex/AS3 on the client side and Java for the server. Despite my complete ineptitude with Flex and ActionScript, the two apps were talking to each other in no time, so I guess that means the idea’s a goer.

I’m quite busy with work and wedding preparations, but hopefully I’ll have some time in the next few weeks to work on it some more (and blog about it).





Cave Story for PS3 Linux is cancelled

13 07 2008

Oh boy.

I think this will be the last port I bother with, as after having several platforms get pulled out from under me I’m not terribly motivated to do it again. Time to work on my own stuff again I think.





Cave Story for PS3 Linux is nearly done

8 07 2008

Oh well, that’s graduation all done and I’m now back at work full time. Surprisingly though, because I’m not both studying and working, I’ve got a little more free time in the evenings!

After working so much with Quake, I felt quite fed up of looking at its code. I needed to work on something else.

So I’ve been beavering away on a PS3 Linux version of Cave Story and I’m happy to say it’s nearly done. This is a fresh port based on Pixel’s source code, instead of the earlier SDL/GP2X/x86 Linux port by Simon Parzer and I. There were a few things which I wanted to do a little differently in the code to make it more portable to systems which didn’t have SDL, such as the iPhone or WiiWare.

Those ports sadly fell through, but because Pixel gave Simon and I permission to port to Linux, I thought it would be a nice idea to port to this particular flavour of Linux that a few folks may have in their living rooms.

But anyway, I still need to do a few things before I can release it:

  • Get my wireless controller working in Linux.
  • Make a configuration file which maps the controls suitably.
  • Some memory usage optimisation.
  • Write up some documentation.
  • Work out how to make an .RPM.

Cave Story looks great on the big screen, so I’m quite excited that it’s nearly finished. I just hope I’ve found all the byte order bugs!





Are we there yet?

2 06 2008

Last week the Informatics Teaching Organisation (”ITO”), which handles the admin side of the University’s Informatics courses, sent out an email to final year students saying that our degree classifications have been posted on the notice board outside their office if we wanted to go and see how we did.

I went along there on Friday and was met by a surprise:

I got a first!

I’ve no idea how I managed a first (I took the picture so I could check it again later), as I’m sure I messed up a couple of assignments. The exams correspond to a much larger percentage of the final grade, so I must have done much better in those than in the assignments. I’ll get a proper marks breakdown some time in the next week or two, which will be interesting to see and I’m looking forward to that.

Part of me thinks there’s been some dreadful mix-up and the uni will soon remark my exams and dump me down a grade or two. Which would be very embarrassing indeed, as my fiancĂ©e Hazel and my mother have probably told half of Scotland by now.

To celebrate, Hazel and I went out to Brown’s in Edinburgh for a nice meal. It’s a chain, but the food and service are both really good. The restaurant is nice and open, which we like.

So anyway, hopefully just the graduation to go to now, and then I can finally close the book on the whole “going back to get my degree” thing. It’s been a long haul and I’m so very glad it’s nearly over.

Maybe I should press my boss Chris for a pay rise, now that I’m a qualified Software Engineer!