Category: Planitia

Planitia Update 40: Feel the Source!

Gettin' back to basics.

All right, people, here it is. The current source code to Planitia, along with the cut-down, more retro-styled resources. (The previous animated sprites not only didn’t look that good, but they ballooned the project size to over a hundred megs – what the hell was I thinking?!)

Click here to download the latest playable version of Planitia!

Click here to download the source code and resources necessary to get the project running!

Now, having clicked that link, your work here is not done. You will read to the end of this entry before you start asking questions about how to get this working. Okay?

That zip file is going to extract into two directories – one called “Planitia” and one called “Framework”. That’s right kiddies! As a bonus, you get the framework I use to make all my games nowadays.

Here’s what you’ll need to do to get this project working.

Install Visual C++ Express 2008. Yes, I know, Microsoft just released Visual C++ Express 2010 but I haven’t tested with it yet.

Install FMOD EX.

Install a version of the DirectX 9 SDK.

Alter the include and library paths in both the Framework and Planitia projects to point at the local versions of FMOD and DirectX.

Alter the include paths in Planitia to point to the Framework source.

Check Project Dependencies for Planitia and make sure it’s dependent on Framework.

The working folder for Planitia is “Redist”. You’ll probably have to put your versions of fmod.dll and the directx redistributable in there to get your particular compilation working.

I’m sorry I couldn’t make this any simpler, but it shouldn’t be that hard to get running (under Windows, at least).

If you have any questions (that aren’t covered in the above instructions), please feel free to either leave a comment or email me at anthony.salter@gmail.com.

Good luck with the source! And don’t worry, just because I’m releasing the current source doesn’t mean I’m done with Planitia.

EDIT: I have been asked what license this software is being released under. I am releasing it under the Simplified BSD (or FreeBSD License). The upshot is that I retain copyright, but you are free to do anything you wish with this source code (up to and including developing a commercial project with it) as long as you attribute the original source to me. This source is being provided “as-is” and I take no responsibility for any problems you may have with it.

The complete text of the license follows.

Copyright 2010 Anthony Salter. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY ANTHONY SALTER ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANTHONY SALTER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of Anthony Salter.


Planitia Update 39: Begin Again

Planitia? Really?!

Yes, really.

Back when it was current, I routinely checked out the Image of the Day from Flipcode.com. Most of the efforts were amateurish, until I got to this one.

The screenshot doesn’t do it justice. TopcaT (whoever he was) had created a basic RTS game engine with a ton of functionality, including texture blending based on terrain slope, importing of 3D models and procedurally animating them, a particle system for doing combat effects, A* pathfinding for the units, and an impressive LOD system using octrees.

And he was giving the source away. Honestly I couldn’t understand it – that demo could easily have gotten a job in game development; why did he give up on it?

Not only did he give up on it but he soon fell off the internet entirely (seriously, I’ve been looking for him for years). I’m very, very glad that I kept the source to his engine; it would have been horribly wrong for something with such potential to just disappear.

(I still have it, of course, you can download it here.)

But as I untangled the source code in an effort to figure out his tricks and replicate them I finally figured out why he’d given up. Basically the source was so chaotic that he just couldn’t add anything to it any more. He had fought code entropy and lost.

Just like I did with Planitia. To my credit, I got much closer to “game” than he did (even if it didn’t look nearly as technically proficient as his did). But in the end, it got to the point where the code was so awful I didn’t even want to look at it.

But why? Why had this happened? In the end, the terrain is a heightfield and the units are billboards…it’s an inherently simple concept. How had I stuffed it up?

Graphics, of course. For someone in my position, doing the whole game myself, graphics are evil.

Daniel succeeded with Hero Core because he kept the graphics within the realm of what he was capable of; I failed because I did not.

The truth is that I should never have gone down that path. Trying to make Planitia look like a commercial product (which, let’s face it, is what I was doing) was simply outside my capabilities as a programmer and an artist. Using the better-looking terrain tiles drew me into six months of terrain rendering, and while I learned a lot none of it contributed to getting the game done.

Then I didn’t like how the non-animating sprites looked on th nice-looking terrain and so I added the animated sprites I got from Reiner. This was was just a terrible move – animations on the same character had different dimensions for each frame and the “easiest” way to handle the entire procedure was to cut out and load each animation frame individually. The results were pretty impressive…but just not impressive enough, and the amount of work was just stupid for the result. And none of it got the game closer to being finished!

Then I had yet another request for the Planitia source code. I’ve been loathe to give it up, not just because I feel it’s substandard but also because of the hundreds of megs of associated resources currently necessary to get the project to run.

And then I thought about the article I just wrote about Hero Core, and how I praised Daniel Remar for designing the game around the art he could do.

Epiphany.

While I know a lot of people may not like the direction I’m taking Planitia, I feel it’s necessary to actually complete the project. Planitia’s native resolution will drop from 800×600 to 512×384. The pretty tiles will go away, replaced by more retro-styled and functional terrain. Lighting will stay, but alpha-blending and smooth shading will not.

Units will become based on the units from Powermonger. They’re simple, they were made specifically for this kind of game, and they work. But they wouldn’t look right placed on top of a more modern style of terrain, which is why I’m knocking it back (that and it’ll make the terrain so much easier to maintain).

Basically, Planitia is about to start looking a lot more like the games that inspired it, specifically so that I can focus on the gameplay and AI and get the darn game finished.

But I won’t wait until its “done” to start source releases. The first source release should be by the end of this week, as soon as the changes to the units and terrain are finished.


Planitia Update 38: Injury, But No Insult

So I’ve updated Planitia. I haven’t added any real gameplay improvements, so the overall experience should still be disappointing – but at least the download is now a third of its previous size and loads much, much faster. I also added left-handed controls! Yay!

You can get it from the usual place.


Planitia Update 37: A Writer Writes, A Painter Paints…

…A game programmer programs games, even if he’s not being paid to do it.

If you recall, I promised to put Planitia on the shelf a while back and post it and the source. “So where is it?” you may ask. “Why are you breaking your promises to us yet again?”

Well…because I just can’t let it go. I feel that I’m about halfway through the second 90%…and the game has so much potential that I can’t release it in its current state without wasting all that potential. I feel I have an obligation to potential players to make the software worth starting up.

But I’m not going to hold it back until I think it’s “done”, so here’s a new version!

What’s new in this version:

  • A tutorial! Everybody complains about the speed of the text; half say it’s too fast and the other half say it’s too slow. I’ll be putting in a “Next” prompt, but at least it exists now and should help people understand what the game is about.
  • The Flamestrike god power is now implemented and has an animation.
  • Changed the in-world hit marker. It’s still programmer art, but it’s much nicer programmer art.
  • Fixed the AI so that it can at least improve its own land again (for some reason, the AI got horribly broken when I put in the multiplayer).
  • Optimized my loading code so that the game now loads in about half the time.

What’s left:

  • Finish the AI so that there is actually a single-player aspect to the game.
  • Do some tweaks to the tutorial.
  • Add LOTS more sounds.
  • Add a bunch of UI stuff (for instance, right now, if you accidentally click Multiplayer when you didn’t want it, you have to exit the game).
  • Allow the player to switch to fullscreen.

I’m hoping to have it all done…soon.


Planitia’s Final Fate

Recent events have hammered home one thing to me…that I should be getting paid for most of the code I write.

I’ve mentioned this before, but it’s starting to rankle that I’ve spent two+ years on Planitia and I won’t see any income from it. I will not reneg on my promise to make Planitia free and release the source, but frankly I just don’t have much more time to spend on it.

So here’s what’s going to happen with Planitia:

I’ll be adding a tutorial mode to explain the basic concepts of the game to new players.

I’ll be implementing the last two god powers that don’t work at all (which are currently Flamestrike and Armageddon) and tweaking a couple others (Golem should not allow you to place the golem, it should appear automatically at one of your cities and randomly seek out an enemy city).

I’ll be implementing “idle” animations for the military units so that they don’t just stop dead in mid-stride…that looks weird.

And that’s it. Planitia will be done.

And it’ll be done by the end of next week.

Now, that’s not to say that I won’t fix bugs or make improvements if people suggest them; just that it won’t be high-priority.

I need to move on to a project that can actually make me money, because lord knows I need some.

By the same token…dear lord, I don’t want to do this…but you’ll be seeing ads on this website soon. I’m going to make them as unobtrusive as possible, but if this site can at least pay for itself I’d be much happier.

And I’ll also be putting up a Paypal link for donations. If you’ve played Inaria or Planitia and enjoyed them, or if my articles have helped you in any way, you may now slip me money!

Frankly, I hate doing this…but I don’t feel I have a choice. I also feel it’s the next natural step in my development as a game programmer.


Planitia Update 35: A Little Somethin’-Somethin’

Okay, a minor update to Planitia. Click here to download.

* The game should no longer crash when you try to create a golem.

* “Skirmish Mode” has been renamed “Single Player”

* The second mouse pointer has been eliminated.

* Single player mode now pits you against one enemy AI instead of three. This should make it easier to play as well as help with performance until I can get some optimizations in.

* More logging to help find other crashers.

Again, please feel free to try it out. I’m trying to get the game looking as professional as I can with the resources I’ve got; if you want to make suggestions feel free, either in the comments or by emailing me at anthony.salter@gmail.com.


Planitia Update 34: Spit and Polish and Bailing Wire

All right, a new version of Planitia is now available. This version features:

* Images are now front-loaded, eliminating the pause when creating new units.

* Loading screen lets you know that the game has not locked up on startup!

* Icons are now the correct color, have the correct icons, and even have tooltips!

* Walkers now have a “farming” animation.

* The bug where units would occasionally walk backwards has been fixed.

* General and Golem units now have footstep sounds.

* Music! The music is “Overture” by Julia Ecklar, and I got it from Podsafe Audio.

Even if you don’t feel like playing it, if you could just download it and tell me what your initial impression of the game is – especially if you’ve not tried it before – I’d be very grateful.


Planitia Demo version .85, Multiplayer Version!

All right, here it is! The first LAN multiplayer version of Planitia!

Of course, cleaning up the multiplayer wasn’t the only thing I did to it. You may be asking, “What took so long?”

Um…well, this.

That’s right – new units that actually animate! Many, many thanks to my friend Ryan Clark for doing the Photoshop work on these so I could focus on the programming angle and get them in quickly. Right now only movement animations work; I’ll get idle and attack animations in very soon.

Of course, you’re probably wondering where you can get this masterpiece! Well…

Click here to download the most recent version of Planitia! Please read the readme file if you have trouble starting a multiplayer game.

And please either comment on this post or send me email at anthony.salter@gmail.com if you have any suggestions or criticism!


Planitia Update

I’m sorry, but I’m not going to have that multiplayer demo for you guys today…you can probably figure out what I’m doing instead. The demo will be ready on Monday, and it’ll be much better than it would have been.


Neglected Blog

I must apologize to my regular readers…you guys haven’t had much reason to tune in lately, and I’m sorry. It turns out that I had a couple other minor health issues that I had to deal with, but it appears that it has all worked out now.

So today is going to be kind of a grab bag of what I’ve been doing/thinking about.

First off, being in the hospital convinced me that I need a laptop, but full-featured laptops are quite expensive. I’ve been drawn to the idea of the netbook – that is, a small laptop with no CD or DVD drive but built-in wireless and wired internet so that it can do everything over the network. Since I already do almost everything over the network, the idea of a netbook really appeals to me. Especially since prices can be as low as $250.

Of course, the one I really want isn’t that cheap; I’ve got my sights set on the Asus EEE PC 1000HA. I’ve chosen that one because of its large hard drive, its zippy Intel Atom processor, and its larger keyboard and screen. About the only bad thing anybody has to say about it is that the right shift key is in kind of a weird place, and I’m pretty sure I can work around that. The MSI Wind was also a contender but it has the disadvantage of coming in lots of slightly different versions, most of which are cheaper either because they have smaller 3-cell batteries (which greatly reduce the life of the unit) and/or use solid-state drives instead of hard drives. I don’t like solid-state drives for a machine I’ll be doing development on because a) they’re too small and b) they are read fast/write slow, so compiling takes longer. It really feels like with the Asus 1000HA I’m going to be getting the most bang for my buck.

On a completely different topic, my favorite movie is now Kung-Fu Panda. I was amazed at how good it was; it was well written, well voice-acted and superbly animated. If you haven’t watched it because you don’t like Jack Black, you should probably reconsider. There’s a bit of his shtick at the beginning of the movie, but it’s actually funny and then he disappears into the sweet, lovable Po. And the movie has a great villain in Tai Lung; while I was listening to the commentary the writers noted that the key to creating a great villain was to remember that the villain always considers himself the hero of his own story and Tai Lung certainly fits that bill.

And finally, I have actually been working on Planitia! Can you believe it?! No, I can’t either. I seem to recall stating that I would stop work on Planitia at Midnight on December 31, 2008 and move on to something else…but that was before I lost two months in the hospital. However, I will have a LAN multiplayer demo available this Friday, December 19, 2008. Response to this version may influence how much effort I continue to put into Planitia; I’ve got several other projects I want to get started on. I know that Planitia is nowhere near done, but I’ve now spent two years worth of evenings on a project that isn’t going to make me a cent…and I’m starting to feel the whole “opportunity cost” thing. If Planitia turns out to be a quick, fun multiplayer-only game…well, I guess I can live with that.