Sandworm! HTML5 Version!

Thought I’d keep my JavaScript skills up, and I’d never made an HTML5 game before.

So behold! Sandworm HTML5!

Sandworm is now web-enabled!

Click the image above to play the game. Arrow keys move, space shoots.

I really enjoyed making this version. It didn’t take long (probably about 5 hours total) and the programming style reminds of of more direct, procedural programming.

Game Archeology – Zarch

As you may know if you’re a long-time reader of this blog, I like Populous. I like Populous 1, I really like Populous 2 and have a love-hate relationship with Populous: The Beginning (though with mods that made it easier to play it’s swinging back towards love).

So I was browsing Wikipedia. You know how it be.

And I ended up at the entry for Populous (again). Only this time I noticed a little sentence I hadn’t earlier.

Peter Molyneux led development, inspired by Bullfrog’s artist Glenn Corpes having drawn isometric blocks after playing David Braben’s Virus.

Virus? What the heck was Virus? I knew a lot about David Braben (co-creator of Elite, creator of Frontier and founder of Frontier Productions, which, among other things, published Roller Coaster Tycoon 3.

But I had not heard of this game.

The game named as “Virus” was actually Zarch, a game for the Acorn Archimedes. (Virus was the name of the Atari ST version). In the game, you…well, just watch the damn video.

This game was released in 1987. Braben expanded on his groundbreaking work with Elite (which was the first game to use 3D polygonal objects with hidden line removal) to move up to a fully 3D, heightfield terrain using shaded squares to represent terrain types, altered the color of squares based on how far they were from the camera to simulate lighting, and had particle effects. As the game progresses, the terrain changes as it gets corrupted by the aliens – the colors go from green to brown and red and the trees become twisted and mutated. The game also had an incredible frame rate due to the fact that the Archimedes was quite a powerful machine for its time.

(It was also very difficult to play because of its mouse-only control scheme but that’s irrelevant to my point.)

Now that I’ve seen Zarch, I think it’s clear that it was an absolute inspiration – not for Peter Molyneux, but for Glenn Corpes.

Glenn was the landscape programmer for every Bullfrog game made, from Populous all the way through Dungeon Keeper. Populous actually got its start after Glenn played Zarch, got fascinated by the landscape generation, and came up with his own isometric version. But Glenn didn’t stop there.

Here’s a screenshot of Zarch:


Now compare it to Powermonger:


It’s obvious that Zarch sparked Glenn’s interest in terrain generation in general. But now I think it’s clear that Powermonger was Glenn’s attempt to both replicate and improve on Zarch in every way he could. Powermonger even used a particle system almost identical to Zarch’s!

And here I thought I knew everything about the development of these games. That’ll learn me.

Greetings, Fargoalians!

(To my loyal readers: I’ve been kind of keeping a low profile recently because I had something in the works and now I can finally talk about it!)

Hi there! I’m Anthony Salter, and I’m the new developer for Sword of Fargoal 2. I’m incredibly excited to be on this project and if you look around the site you’ll be able to see why – Fargoal is just the kind of game I enjoy.

My first encounter with Fargoal was at a friend’s house back in the…I’m going to say late 80’s. See, I didn’t have a Commodore 64 of my own, so every once in a while I’d go spend the night with my friend Dennis and we would stay up all night playing games on his. That’s where I first encountered Sword of Fargoal, and though I didn’t have long to play it, I enjoyed it – especially the sound effects.

But when you’ve only played a game for two hours 25 years ago it might not stick in your memory so much. So I completely forgot about it…until the CRPG Addict started playing it. His writeup of the game was excellent, and that’s where I found out about the Kickstarter for Sword of Fargoal 2. It had already passed at that point so I couldn’t contribute.

And that’s where things stayed until a few weeks ago, when a friend of mine named Ido Yehieli mentioned that Sword of Fargoal 2 needed a programmer. I’d been wanting to get back into game development so he recommended I email Paul Pridham, the current programmer.

So I did, and I had a perfectly pleasant exchange with him. And eventually he recommended a phone conversation with the project leader, Jeff McCord.

Wait. Jeff McCord. Why did that name sound familiar?

That’s when I realized I was going to be on the phone with the creator of the original Sword of Fargoal. He hadn’t sold the license or farmed the game out; this was his show.

So, after an initial phone interview (in which I may have fanboid just a bit) and a series of follow-up email back-and-forths, here I am.

I think Sword of Fargoal 2 is a great game already and I hope that I can improve and polish it and get it into shape for its initial release. And after that…who knows?

So, that’s the current deal! To any new readers: I’m glad you’re here, and I’d be honored if you stick around. I talk about game development, review games sometimes and run a (semi)-weekly gaming trivia contest called NAME THAT GAME!

Deep Space Settlement

And now on to something else. I found another indie developer who also has a long-standing project she is obsessing over, and from what I’ve seen it looks like it could be really good.

The project is Deep Space Settlement. Your job? Turn a colony ship into…well, you get it, and then defend that settlement from anyone or anything that tries to harm it. The kicker is that the game uses RTS mechanics even though it’s more of a build/strategy type game.

The game manages to give off both Homeworld and Sins of a Solar Empire vibes, which resonate deeply with me. And despite the plurals on the home page, the entire game and its underlying engine have been written by one woman, St├ęphanie Rancourt. So she’s working on a labor-of-love project that’s probably way too big for her and writing everything herself from scratch. I’ve found my French-Canadian distaff counterpart!

Planitia Update 51: Slowly but Surely

I’ll be honest, the DirectX version of Planitia has some frame rate problems that I just. Can’t. Resolve. I’ve tried everything, including profilers like Very Sleepy (excellent, by the way) but after a few minutes, the frame rate drops in half and nothing I do seems to be able to change that. This is one reason I’m rewriting the game practically from scratch (the other being conversion to OpenGL and cross-platformy goodness).

Right now the new Planitia is using a nice frame rate counter that I stole shamelessly from Jari Komppa‘s 2D OpenGL basecode. Instead of just displaying the current FPS, it displays the last 50 FPS values in a graph so spikes are very easy to see.

Which came in really handy when I was reimplementing the Earthquake god power. Earthquake deforms the terrain, which means that the vertices of the terrain mesh must be changed. Changing vertices in the video card’s graphics memory is a slow process, and one that most games try to avoid. Unfortunately, Planitia is built around terrain manipulation and thus this is one of the big problems of the project that I’ll have to solve (or, more likely, manage).

My initial naive solution was to update each vertex individually. It worked and didn’t hit the FPS counter too badly for basic terrain manipulation using the Flatten power. But Earthquake constantly changes a bunch of verts every update for as long as it is active, which was putting a lot of stress on that system. Fortunately, this showed up quite clearly on the FPS counter and profiler. I quickly found a way to optimize the vertex update and now both Earthquake and Flatten hardly hit the frame rate at all.

I’m hoping that with these additional tools and everything I’ve learned over the course of the project that I can avoid the fate of DirectX Planitia. I don’t see a big problem reimplementing the god powers or adding new functionality as long as I’m not manipulating a lot of vertices at once. In fact, the only thing about the project that really concerns me right now is multiplayer.

Bundle-In-A-Box results and IT’S BEHIND YOU!

Well, the Bundle-In-A-Box is over and I was really surprised at the nice emails I got and exposure the bundle provided. Many thanks to Kyttaro Games for inviting me to be part of the bundle! And again, thanks to my long-suffering beta testers, whose efforts will not go to waste.

On another topic. did you guys know that I like reading about the history of video game development? What? You did, because I never stop talking about it?

Well then, I guess this won’t come as a surprise to you.

Once upon a time, there was a game for the venerable ZX Spectrum called R-Type. Based directly on the arcade game of the same name by Irem, R-Type is widely considered one of the best ZX Spectrum games ever made. Not only is it fun and incredibly faithful to the original arcade version, it used a clever system to prevent the color clash that plagued color ZX Spectrum games at the time. You’ll rarely find a “Top Spectrum Games List” without it.

And now, twenty-five years on, the developer has written an e-book about the game’s development. It’s Behind You, by Bob Pape, details the trials and tribulations of being a young, naive and brilliant programmer in the mid-80’s. Watch! As he makes every rookie mistake in the book during his first few years as a programmer! Wonder! As he lives like a homeless person during the game’s development! Gaze in awe! As he details the tricks he used to make the Spectrum do things it frankly shouldn’t have been capable of!

It’s Behind You is available for free in various e-book formats from Bob’s website. I highly recommend it.

I’m Just Going To Drop This Here…

Oh…look what I found.

I'm likin' that frame rate.

This has been my Secret Project – a complete reworking of Planitia, the game I Just Can’t Let Go. I learned a lot from the DirectX version but basically that’s the one I’m throwing away (and coming to grips with that was a big part of moving forward with the project).

The first thing I had to do was completely rewrite my framework to use OpenGL and SDL only – I knew I had it right when it cleanly compiled on Linux (that’s right, my framework is now cross-platform).

Notice that with my new graphical skills, your villagers can have shirts of any color! Madness! I’ve also got scaling in on the GUI elements so as you resize the screen they grow and shrink to stay at a certain percentage of the screen. There have also been a ton of other improvements to the framework.

So now it’s time to remake the game. Right now I’ve got the terrain generating (obviously), units walking and drawing (obviously) and one god power – Flatten, which does nothing of the sort, instead it make huge spikes of land shoot into the air, which is amusing.

And last night I fixed what I feel was the last major problem with my framework – it wasn’t running on Intel graphical hardware. This was why people were complaining during the Inaria beta that it wasn’t running properly on their computers, which was the downfall of that beta. Sigh.

My ultimate goal is a cross-platform release (on Steam, maybe?) for PC, Linux and (sigh) Mac, although putting together a Mac version means having to deal with XCode again (shudder). I want all clients to be able to multiplay with each other so that Linux users (for instance) will have plenty of people to play against.

Expect to see regular updates in the future.

The Littlest Game Dev

For the last couple of months my eight-year-old, Jewel, has been asking me questions about how game development actually works. I told her about C++ and coding, and how everything that moves and interacts in the game is considered an object with its own little bit of code.

She also kept pulling down my books on game development and looking at them. I don’t know exactly how much she gets out of leafing through Game Programming Gems 6, but she likes to do it.

And then, over the long weekend, she asked if there was any way she could make a game with me.

Now, I was not going to pass this up, but I wasn’t really prepared for such a request. I’d heard about game making software, though, and thought I might be able to teach her something using one of them.

The most famous of these is, of course, GameMaker, so I downloaded it. I knew it was potentially powerful because Daniel Remar uses it for everything he does. The free version is very limited but I figured it would be enough for our purpose. I’d also heard you could do simple stuff without coding, which is good. I got it installed and running.

And then I made a game with my eight-year-old daughter.

We followed a simple tutorial to make a game called Catch the Clown, where you click on a fast-moving clown that bounces around the screen. She quickly picked up on the concept of creating resources in the resource tree, making game objects, and having multiple instances of the same game object. GameMaker uses an event/action system that is mostly graphical – you click on an event on the left side and then drag actions to associate them with the event on the right side. Most actions only have a few parameters, so they’re easy to understand. Since I was learning along with her, it went a bit slowly, but she was mighty tickled at the result – and she had done a significant bit of the work herself. She was a little disappointed that she couldn’t put the resulting game online (the free version doesn’t support that) but after I left to go do something else she fired it back up and started making changes on her own.

One of which was to go into my shared music folder and select Gangnam Style as the new background music for the game.

She also started pulling in resources from my games Inaria and Planitia and decided that instead of catching the clown by clicking on it, she wanted to move another character around on the game screen using the WASD cluster. I quickly figured out the “key down/key up” events and showed her how to do it for one key and she had the rest of the keys fixed and up and running in no time.

Now, I don’t know how far she’s going to take this. As much as I’d like her to follow in my footsteps, if she doesn’t it’s okay. Because I’ll always have the weekend where my daughter and I made a game together.

And if she does stick with it, in just a few years she’ll be ready for Unity.