Category: Planitia

Planitia Update 44: A New Beginning

So! The Steam Greenlight Concepts site is up…right here!

Sorry this took so long; I decided I didn’t want to just do a video; I wanted to make a new demo version of the game…which you can get right here!

I am seriously thinking about trying to kickstart this game and the feedback I get from the various places I’m going to post this will probably determine whether or not I do.

If you have any problems or anything else to say about the game, you can leave a comment here or email me at anthony.salter@gmail.com.

Have fun!

EDIT: What the heck, I’ll inline the new video:


Planitia People (Planitiople?)

“My deadline for this is end-of-day Monday. By then I want this game up on Concepts. I’ll be blogging the process. Wish me luck.”
~cough~ It’s beginning of day Monday. Where’s the blogging? How’s your progress?

I’ve had the nose to the grindstone, pretty much. I’ve fixed several performance problems with the game and spent about a day trying to get animated 3D models into the game. That’s going to take longer than I’ve got so as a stopgap measure I had Mrs. Bogue render out frames of animation for each direction (thus making classic eight-way sprites) and I’ll be using those.

End-of-day today may be a bit premature; there are a couple things (like trees and rocks) I want to get in to make the terrain look better. But it should be very soon and I’ll be updating at least once a day.


Pushing Planitia

So Steam has this new thing on Greenlight called Concepts. It allows you to get your game in front of the Steam community. It doesn’t help you get your game greenlit, but it’s also free, and free is about all I can afford now.

I want Planitia up there. The majority of people I’ve told about the game have been very encouraging; I want to gauge that reaction on a wider scale. With the hope that I might be able to roll into a Kickstarter or something similar if there’s enough interest.

Well, according to Steam, to put up my game I should have:

  • A square branding image (similar to a box cover) to represent the game in lists and search
  • At least 1 video showing off the game or presenting your concept
  • At least 4 screenshots or images
  • A written description of the game along with the tentative system requirements.

That seems simple enough. Of course, I can’t do anything to promote the game (really) until I get the temp art I’ve been using out. (Icons from Populous II are a leetle too easy to spot, you know?)

So, in addition, here’s what I feel I need to get Planitia in visible shape:

  • Get animated villagers in.
  • Swap out in-game icons for the god powers and soldiers for ones either I’ve created or (better) are free.
  • Get rocks and trees in (fortunately I already have these models).

My deadline for this is end-of-day Monday. By then I want this game up on Concepts. I’ll be blogging the process. Wish me luck.


So, Figured I Should Do Something

So here’s my first pass at Planitia in Unity! Note: this version is non-interactive.


Using SVN Or Other Version Control With Unity

Okay, finally figured out how to get Unity 3D (non-Pro) to work with source control. Here’s the steps.

First, in your project, you need to switch to metadata mode. This creates external text files that allows your in-scene objects to stay linked to their prefabs. So unless you like seeing a bunch of red objects in your project hierarchy after committing, go to Edit->Project Settings->Editor. In the inspector pane, change the Version Control Mode to “Meta Files”. You will have to do this for each project you create, unfortunately.

Save your project so Unity can create the metadata files.

Now, commit your project folder to your version control repository except the Library sub-folder. Indeed, if your version control supports marking folders as “Ignored”, do that for the Library folder. There are no assets in this folder and If it gets deleted Unity just recreates it on next project load anyway.

Now, you should be able to delete your local folder entirely, pull down the version from source control and open it in Unity, where it should look just like you left it. Needless to say, I would recommend doing this with a test project first.

Finally, you must remember to add all assets you import or create to the repository on subsequent check-ins.

This should allow you to keep a working copy of your Unity project in a safe place and under source control.


Planitia’s Progress

Once again, I find that I am the least talented person on my own team.

Here’s the new villager for Planitia, modelled, textured and animated by Alexis Bogue. Look at him! Isn’t he adorable? Don’t you want to just pick him up and cuddle him and keep him safe and SMITE WHOEVER WANTS TO HURT HIM WITH LIGHTNING BOLTS?!

I can already see the plushie!




Okay, back to work.

(Not to work-work; I can’t go back to that until I’m cleared by my doctor and I’ve no idea when that might happen. I mean Planitia-work.)

One of the things I want to get done (and get done quickly) is to create a playable alpha version of Planitia, as well as create a trailer. That will make my funding and marketing push more effective.

“But Anthony!” I hear you say. “You already have a playable alpha! I remember you posting it on your blog! With source code, even! Here, even!

This is true. But that version has a terrible bug in it that I just cannot seem to track down – after about ninety seconds of play, the frame rate instantly drops from 60 to 30 and then descends from there. All my attempts at profiling have met with failure.

Basically, I fought code entropy and code entropy won. I’m pretty sure that my framework, which I’ve been using for years, has some rather terrible bug in it and the code is just too overgrown to track it down. Of course, that was the first game framework I ever wrote, so of course it was krep. Before you say anything, It’s not just Planitia that is making me think this, there are parts of Inaria that bog down as well. Both of these games are so damn simple that they should run at about a thousand frames a second on a TI-99/4A, for crying out loud.

I talked to my friend Jari Komppa about this (who was recently called a god of the indie demo scene, by the way) and he had this advice:

“Code like it’s 1999.”

I also stole his base code, which you can find on his site here.

So how were we coding in 1999? Well, procedurally, for one thing. OOP hadn’t really penetrated game development yet. Game engines were usually just collections of functions rather than interlocking game objects. Classes were rare, and inheritance non-existent. Very much KISS territory (the design/programming philosophy, not the metal band that saved Santa).

Jari’s code is just like that. There are no classes. There is no inheritance. There’s just a bunch of functions – all in one source file, even – that do practically anything you might want to do in a 2D game, and lot of the stuff you’d want to do in a 3D one.

So I started over. While I do sort my functions into different source files, they’re now standalone functions rather than class methods. I added code I needed from my own framework (configuration file reading, logging, industrial-grade RNG, etc) but I only made objects out of things that there can be multiple instances of, like fonts and game objects.

This took me about eight hours worth of work. I now have a framework that’s just as functional as my current one but with (let me count) about 1/4 the lines of code.

I’m actually kind of eager to see how quickly I can recreate the gameplay of Planitia using the new engine. It could turn out to be a mere 40-hour project.

Updates to follow.


What I Learned Watching Notch Code

I’ve read a couple articles about Notch’s entry into the most recent Ludum Dares. Both of those articles are worthwhile and I suggest you read them both.

Apparently Notch is just incredibly prolific – in a 48-hour period (while making Prelude of the Chambered) he coded for about forty hours and slept for about eight.

If you watch this timelapse, at no point will you see him goofing off on web pages. At no point will you see him checking on his World of Warcraft auctions. He watches a little YouTube and plays one game – Quake – for about an hour while he’s eating his lunch.

And if you don’t trust that, you can watch almost the entire 48-hour period in real-time over on Twitch.Tv. The man has the most amazing work ethic.

Some of the tricks he uses during the making of Prelude of the Chambered:

* He draws all the graphics in the game in greyscale, then uses vertex colors to actually color them in game.

* All of his graphics are 16×16 PNGs, even the wall textures.

* All of his levels are PNGs created in Paint.NET. The PNG contains every bit of information about the level, including which block to use where and what color to make it. The alpha channel information is used to place objects and triggers. His Paint.NET is set up to never ask him what format he wants the image in; it just always saves as 32-bit PNG. You may think, “What’s one more click?” but it adds up.

* He uses SFXR to create his sound effects.

But that’s only part of it. He’s also chosen a platform that makes projects easy to set up, allows altering of code while the program is running (thus reducing the amount of time it takes to debug), and allows people to play his game almost instantly – no installing, no configuring, just give them a URL.

Notch uses Java for pretty much everything he does. I’ve been resistant to change for its own sake, but this isn’t for its own sake. Making my games browser-playable means more exposure and better feedback. So I’m going to be learning Java and Java3D, and I’ll be writing a new prototype of Planitia using it.

Oh, and if you want a nice history of how Minecraft progressed, here’s the thread where Notch announced it for the first time. It’s fascinating reading.


The Man Who Chases Two Rabbits Will End Up With None

Okay, so the reason I haven’t been posting (other than general laziness) is because I’ve become terribly conflicted over what to do next. I know, we already had this conversation, but there’s some other factors in play here.

First, I have a game. It’s called Inaria. It’s almost good, and some people know about it. If I spend the time necessary to improve it, I can effectively re-launch it with another round of press releases (which will hopefully get some traction this time) and possibly turn what was a mediocre game into a good one.

Plus, Inaria is content-driven. While there’s lots of fun and funny stuff in Dungeons of Dredmor, it’s not as story-driven as I want Inaria to be.

Plus…remember when I said that one of the failings of Inaria was not enough middleware? Well, I’m fixing that for good and all. I am currently learning Unity 3D, and I believe that it will help me make the 3D RPG that I’ve been wanting to make for so long. It could also help me finish Star Kittens and revive Planitia; that would give me three very different games (an RPG, a sim-game and a networked multiplayer RTS). For the record, you can sell games made with the free version of Unity without having to pay any royalties (a crazy, crazy bit of craziness on their part that I intend to take full advantage of) and the games you make can play on the web (with the Unity web plugin) or standalone on PC or Mac. Which means that I can make web-based demos of my games and then sell the full versions as standalone products.

But of course, first I must learn it. I’m going to devote the next month to doing very little but learning Unity. I’ll chase that one rabbit and then use it to finally get the others I’ve been wanting for so long.


Planitia Update 41: Meet the Gods

My original plan for Planitia was for it to have a campaign, maybe seven to ten chapters long, detailing how you come to the world as a god and how you defeat the (one) other, evil god to become the one true god. If any of you remember, one of my first trailers for Planitia followed this deadly serious path with rather dreadful results.

In the end, it doesn’t fit. Both Populous and Populous II had great senses of humor and a serious plotline sounds dull to work on. And indeed, having any kind of plot at all may be beyond my grasp at this point. So I’m going with something a little different.

Since there are four player colors, I’m creating four “god characters”, one for each. A campaign would still be nice, but if I can’t get that to work, just having these four personalities and having them interact with each other and the player (responding to what another does, etc), might make for a sufficiently interesting single-player experience.

I haven’t named them yet, and indeed I might not name them. But here’s what I’m thinking right now:

GREEN: Green is a hippie. Green is laid-back and tranquil. Green adores his followers and wants nothing more than a peaceful life for them. He will never initiate combat, he will only retaliate if provoked. On the other hand, he tends to stock up on mana and soldiers for that (inevitable) day when someone will try to do harm to his people. Prefers (duh) green powers, since they are mostly defensive. His speech colors are green-on-gold.

RED: Red’s just this normal guy, you know? His speech colors are red-on-black, so the other gods tend to view him as evil, but he’s not (no, really, he’s not). While not as laid-back as Green, he’s also not a warmonger. It’s just that…well, fire is pretty. I mean come on, isn’t fire pretty? Sure it is! Who here can say that fire isn’t pretty? And is it his fault that the things that seem to burn best are the other god’s villagers? Still, not a warmonger, so he only attacks unprovoked occasionally. Needless to say, prefers red fire-based powers.

BLUE: Blue lies. It’s what he does. Blue is all about gaining the upper hand through the use of dirty tricks; his favorite being to lie to the other gods to get them into a “let’s you and him fight” situation. Blue’s the worst kind of liar – he mixes his lies with enough truth to be credible, and sometimes he will actually tell the truth – but it’s always in an effort to manipulate. This is usually enough to convince most of the other gods, even though they know he’s not trustworthy. He uses all kinds of magic fairly equally in an effort to confuse the other gods about who did what. His speech colors are blue-on-white. He attacks unprovoked often, but only when he thinks he’s in an advantageous position.

YELLOW: Yellow is the crusader. Yellow doesn’t really understand the concept of “other gods”, and the concept of “other followers” infuriates him. He is single-minded in his goal and very shallow in his character. If you’re on a map with him, expect no hold to be barred and no quarter given. And the worst part is, the guy just won’t shut up. Will always attack, no matter what the situation. Prefers yellow and red powers, and is the only god that will routinely cast Armageddon (making the other gods despise him even more). His speech colors are yellow-on-purple.

So what do you think? I know yellow is kind of dull; I’m hoping some other character aspect will present itself as I go along.