Category: Game Programming

Inaria Super HD High-Rez Total Remake Revamp HD Edition in HD

So I’ve been thinking about my projects lately.

As much as I love the concept of Planitia, it seems like nobody is going to want to play it. It wasn’t going to have a huge single-player component and the odds that it’ll become a breakout multiplayer hit are…slim.

So I’ve been focusing on Inaria. My initial goal was to simply get it on Steam, and to that end I did things like revamp the layout so that it works better on 16:9 monitors. I also upgraded the font to an excellent one from Chevy Ray’s Pixel Font pack:

The Slorn still aren’t nice.

I think that looks rather spiffing. But the more I work with the game, the less I want to put it on Steam. It’s so primitive, even with the upgraded graphics. The mechanics are uninspired and there’s only one character. I tried to make Ultima III and ended up making Dragon Quest 1. Just about every element of the game needs work; the maps especially look (to me) terrible, since I Cannot Art.

One of the big things I wanted to do was expand the party to at least four members and add party-based combat. Again, my original goal was to make the game more like Ultima III (or maybe IV. Or V. One of those.)

But the thought of working out the mechanics didn’t appeal to me, so I wasn’t really motivated to do it. And now I think I’ve figured out why.

And now it’s time to go off on a HUGE tangent. Sorry!

I’ve done extensive research into tactical turn-based combat systems over the years and I feel that they fall into three general categories, which I’m going to name based on the original games that created them (to my knowledge).

The first is the Dungeons & Dragons system. As any schoolkid knows, D&D was adapted from a miniatures game called Chainmail, which itself was adapted from older board wargames. In the original board wargames, a single unit actually represented a large number of people – a column of tanks or a detachment of soldiers, for example. The scale of the maps was much larger as well. In general, the number of options allowed was limited – you moved and/or attacked and that was it. This limitation propagated through to Dungeons & Dragons, where every turn you could move one space OR make take one action (like attack, use an item or cast a spell) – and that was it. This makes combat feel very choppy and if the two parties are far away from each other, it can take several turns before they even come into combat range. Still, this combat system was highly influential, used in dozens of early computer RPGs, including the Ultima series, the Bard’s Tale series, the Wizardy series, etc.

The second is the Snapshot system, designed by Marc Miller. This uses an Action Point system, where characters have a number of points based on their stats, and can perform actions on their turn by spending those points. This system allows great flexibility while having somewhat unrealistic outcomes; a character with a high number of action points can step around a corner, make multiple attacks, and then step back around the corner so that enemies can’t retaliate. This system was later adapted into many tactical combat games on computers, including X-COM and Jagged Alliance.

The third is the Fantasy Trip system, designed by Steve Jackson. This system gives characters a Move score, denoting the number of spaces the character can move in a turn. However, a character can’t make an attack if they move more than half of their Move score in a single turn. A character can only make one attack per turn and if they make that attack, they can’t move afterwards. This is much more realistic but also much more limiting, and requires more rules to cover some edge cases (what’s half my Move if my Move is 7? Is it 3 or 4?). A lot of tactical games use a revised version of this system where you can move up to your full Move, then do one action. Final Fantasy Tactics uses this system.

Now, you may know that I read the CRPG Addict’s Blog extensively. (I’m getting to my point, I swear.) He’s played a bunch of games I’d heard of and read the manuals for, but didn’t get a chance to play myself since I didn’t have an Apple II or Commodore 64 growing up. In particular, SSI‘s RPGs intrigued me, especially the tactical ones. Over the course of three years, SSI published four RPGs with tactical combat created by two different teams of programmer/designers: Wizard’s Crown and its sequel The Eternal Dagger, and Shard of Spring and its sequel, Demon’s Winter.

Now here’s the amazing thing: the two different lines of games use the two different combat systems! Wizard’s Crown and Eternal Dagger use the modified Fantasy Trip system, where characters can move up to six spaces and then take an action. Shard of Spring and Demon’s Winter use an AP system, allowing characters to move freely and attack multiple times per turn, realism be damned.

And you know what? I don’t like the Dungeons & Dragons or Fantasy Trip systems. While I love Ultima, it’s combat has always been its weakest element and I believe this is why. It doesn’t help that most combats take place on a single screen, in a cramped 11×11 arena.

I like the Snapshot system. Actually, I LOVE the Snapshot system in just about every incarnation I’ve discovered it. I love X-COM (and XCOM even though the system isn’t quite the same) and I love Jagged Alliance 2. (I actually started playing the game again recently after seeing a surprisingly hopeful trailer for Jagged Alliance 3).

Which leads me back to Demon’s Winter. After making this discovery and reading the CPRG Addict’s blog posts about the game I decided I wanted to play it myself. While the game is no longer downloadable, it can still be played on Archive.org’s web DOS emulator. I was amazed how easily I was able to get into the game even without reading the manual. You use the arrow keys to move your characters around and press the key for the action you wish to take, with a complete list on the right side of the screen. Arenas are also much larger than the screen, allowing for truly huge combats on extremely varied terrain. Compared to other early RPGs, it’s a model of playability and clarity, although it’s not very pretty.

Horrible tiles and black text on a red background. The things we gamers put up with in the 80’s.

“So what does this have to do with Inaria?!” I hear you shriek. Well, it should be obvious. I’m going to add tactical, party-based combat to it and I’m going to use the Snapshot system to do it. I don’t know of any other indie games that are using a system like this so hopefully not only will I be using the system I want, I’ll be making the game more distinctive as well.

Of course, it’s not all peaches and gravy. AP combat systems can have serious flaws, which I’ll get into in my next blog post.


Ludum Dare 38 starts today!

In about 16 hours from this posting! And they’ve got a spiffing new website!

I may enter. It’s not like I have anything better to do!


A Specialized Desire

If you’ve ever wanted to see the quicksort algorithm expressed through Hungarian dance, today is your lucky day.

And if you poke around, you’ll probably find some other sorting algorithms as well.


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:

Zarch_screen

Now compare it to Powermonger:

maxresdefault

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.