Category: Planitia

Planitia Update 11 – God Power Design

EDIT: I have put my “Planitia Tasks” document online and it can now be viewed by anyone at this link. So you guys can actually check on my progress yourselves now!

First off, I’ve done a comparison of the god powers of various games which you can look at here.

Now I’m going to subject you to a bit of stream-of-consciousness about god powers.

God powers fall into two broad groups: those that help your followers and those that hurt the enemy followers.

Another reason I don’t like Black & White – the god powers are anemic. This is because your goal isn’t to destroy the enemy god’s followers, but to convert them to your side. You must convert, because doing so increases the range in which you can use your god powers. I’m not going this route with Planitia…on levels when you are opposed by another god, your job will be to wipe out his followers, not convert them.

Making it so that you can only operate in your own sphere of influence is terrible. It makes the game almost completely defensive. Another thing I hate about Black & White. On the other hand, by default you could only raise/lower land in Populous 1 and 2 near your own settlements, but you could use any other god power anywhere. This is good, I like it.

One thing a lot of people don’t know is that some of the god powers in Populous 2 that “grew” effects across the land did so according to the rules of Conway’s Game of Life, so if you understood how the Game of Life worked (and you should), you could actually set up glider guns that would “shoot” carnivorous fungus into your enemy’s base. That is just too freakin’ awesome.

So here’s what I’m thinking. These are effects, not spells. They will be combined to create spells.

Help:
Land flattener/raiser/lowerer
Land restorer
Temporary unit growth
Create Hero
Don’t want walls; makes games too defensive (walls don’t protect against god powers anyway)
Roads?
Shield?
Inspiration (advances village tech level)

Harm:
Direct damage
AOE direct damage,
Damage over time
Land ruiner
Walker flinger

I’m thinking that I want a fairly low mana cap, but a healthy civilization will give you a fairly fast recharge rate. The big effects will take practically all your mana, thus you won’t be able to cast them more than once every few minutes or so, no matter how much mana you have.

I’m also sort of leaning towards the idea of different types or schools of magic, kind of like Populous 2 with its six different types. I think six is too many, though. Five would be interesting but it would feel too much like Magic: The Gathering. Three, maybe?


Planitia Update 10

Okay. For your edification, I am going to post my current “Things To Do On Planitia” list. I’ve been maintaining this list since I started the project. According to SVN, I created this file on Monday, December 11, 2006, so I guess I can say that’s when I started working on Planitia.

Everything starred is done. Everything not starred is not done.

Tasks to be done on Planitia

*  Create a heightfield.  Texture it with our grass texture.

*  Create a camera object and implement our moving, rotating, zooming camera. Do
*  nothing else until this works.

*  We'll start with billboarded sprites as our objects.  Rip graphics from
*  another game.

*  Make it so units move smoothly across the landscape at any angle.

*  Create the walker unit.

*  Create the archer unit.

*  Create the fighter unit.

*  Create the barbarian (for now) unit.

*  Add combat stats to all units.

*  Fix the weird mipmapping on the units.

*  Add code to ensure that two units can never stop in the same grid square.

*  Fix problems with the picking input and box drawing.

*  Create the arrow unit.

*  Change the unit selection and orders to match a more traditional UI style.  In
*  other words, make it so that right-click gives orders.  Also change it so that
*  left clicking on a new unit dumps the current unit selection.

*  When you don't have a selection, left-clicking on the ground does nothing.
*  Left-clicking on a unit selects it.  Drawing a box with the left mouse button
*  selects all units in that box.

*  When you have a selection, left-clicking on the ground removes your selection.
*  Left-clicking on a unit removes your current selection and selects the unit.
*  Drawing a box with the left mouse button removes your current selection and selects
*  all units in that box.

*  When you don't have a selection, right-clicking on the ground does nothing.
*  Right-clicking on a unit does nothing.  Drawing a box with the right mouse
*  button does nothing.  (Boy, that was easy.)

*  When you have a selection, right-clicking on the ground moves all selected units
*  to that spot on the ground.

*  Right-clicking units not on the current team tells all selected units to attack
*  that unit.

*  Make sure that every time you delete a unit off the stack, you check the entire
*  list to see if anyone has a target to that unit and set them all to NULL.

*  Drawing a box with the right mouse button does nothing.

*  Jigger the numbers on unit creation so that attacks are staggered.

*  Add simple "find Quinn's ass and beat it" AI.

*  Create three teams of units and see what happens when the AI has them fight each other.

*  Moving the mouse to an edge of the screen should scroll the screen in that direction.

*  Get the hit point bars off the arrows.

*  Moving the mousewheel should zoom in/out.

*  Double-left-clicking a unit should dump any current selection and select all units
*  of that type.

*  Unit movement is time-dependent, which is correct, but camera movement is frame
*  dependent, which is wrong.  Fix it.

*  Have the zoom and the pan move faster the farther out you are.

*  Fix the box so that it works in any direction.

*  Add line to the help screen that tells people to exit the game by pressing ESC.

*  Make it so that you can pan, zoom and rotate all at the same time.

*  Add braking to all camera movement so that it doesn't feel so "hard".

Need pop states

NEED STORY STUFF NOW or we run the risk of Planitia having no story elements.

Need a dirt-simple text-based scripting system for story scenes.

*  MOVECAMERATO (location)  (time the move should take in MS)
*  ROTATECAMERATO (angle) (time the rotate should take in MS)
WAIT (time to wait in MS)
*  BARK (location) (text) (time to display in MS)
DROPUNIT (type) (unit) (position)
MOVEUNIT (unit) (position) (time the move should take in MS)
*  BOUNCEUNIT (unit) - Causes unit to "bounce" as if it jumped
TURNUNIT (unit) - Causes the unit to rotate 180 degrees

*  Need parts of a talk bubble that can be put together to form any size talk
*  bubble so that we can print text on it.  Based on script input.

NEED LEVEL INI FILE FORMAT NOW

It should include:

Targa file to use as heightfield data
Location of trees
Location of rocks
Initial location of buildings
Initial location of units
Initial location/rotation of camera
Level goal requirements
Script to run for intro
Script to run for outro

Need god powers.  Start with lightning/meteor as a test.
Need to flesh out design so we can figure out which ones we
want.  Reference Populous 1/2, Powermonger, Age of Mythology,
Black & White.

Need ten playable levels, plus intro outro scripts for each level.

Need skirmish against computer.

Need multiplayer, up to four people (can come after initial release).

Need 3D buildings, trees and rocks.

Want 3D units (may not be necessary but it would be very nice).

Fix terrain picking to use a real ray-plane test (sphere doesn't work that well).

Sort units back to front before rendering.

Do a cleanup pass; the code is getting kind of murky.

At this point it’s really feeling like every single thing I finish adds two more things to the list. But I’m hoping to have the game feature-complete by the end of March so that I can spend all of April creating content for it.


Planitia Update 9 – WITH DEMO!

My time of copping out is over.

Of course, that doesn’t mean that my time of writing good code has started yet.

In any event, I managed to get the demo together. Odd how it always seems to take one more week than I expect for me to get stuff done.

Screenshot:

Huh.  It looks slightly different.

And here’s the download link. It’s just over a meg.

Planitia Combat Demo One

Please play it! Please comment! Basically I’m looking get the feel of the camera control and the combat very natural – that’s all this is about. If you feel that anything works kind of clunky, please tell me. If something you thought should work didn’t, please tell me. If your machine crashes, please tell me so I can have you send me your log file.

The next update should have some god powers!

Edit: Thanks to whoever voted this entry up on Qatfish.com – this is my highest-ranking entry ever.

Note: If you get a message saying that you are missing “d3dx9_31.dll”, update your DirectX. Yes, even if you have 9.0c. See, there are different versions of 9.0c.

Note: I am aware that moving units off the map crashes the game, but the map is so big that this shouldn’t happen accidentally.

Version .11:

Removed two large unnecessary files from the download package, thus shrinking it from five megs to one meg.


Dinner Unconquerable

I’ve been watching a new show on Food Network called Dinner: Impossible. Every week, a top-tier professional chef (Robert Irvine) is given a nigh-impossible challenge to complete. In the first episode it was merely to create a five-course dinner for a wedding reception of 200 in ten hours, but things have gotten much harder and more bizarre since then.

I’ve thoroughly enjoyed the show. Robert is a pro from Dover (possibly literally, since he’s English) and has never failed a challenge yet.

Now that I’ve watched about five episodes, I’ve noticed that once Robert gets on site and manages to map his current challenge to his formidable previous culinary experience he’s unstoppable. He’ll get into his groove and start barking orders and delicious meals will pretty much appear out of nowhere.

So the producers have ramped up the challenge by throwing him more and more curves on every episode. The most recent challenge had him cooking in a tiny train car with only one of his sous-chefs and the conductor of the train was constantly interrupting him with change orders. Once his food was nearly done, he had to transport it to the dining cars, reheat it and then serve it.

Now, as I was watching the most recent episode, I oddly enough saw a parallel to game AI. Specifically, the episode reminded me of the original Command & Conquer.

The AI for Command & Conquer was pretty weak. It didn’t respond well to feints and was highly predictable; thus it was pretty easy to beat. Of course, in order to beat it you had to get your economy going. You had to build your base, get your Tiberium stream flowing and start cranking out units. So later missions of Command & Conquer rasied the difficulty not by making the AI smarter (the AI is the same in all missions) but by making it more and more difficult to get your base built and get into your groove. One late mission had you landing on a beach with just your mobile construction vehicle. The beach already has emplaced NOD guns so your MCV starts taking damage right away. If you’re quick you can run right and just barely get away from the guns with a sliver of health left on your MCV, which you can then deploy near a Tiberium field. But a damaged MCV deploys into a damaged Construction Yard, so a lucky hit from a passing NOD bike is all that’s necessary to hear EVA say “Your mission is a failure”.

When the Ensemble guys got together to make Age of Empires one of their goals was to create a non-cheating AI that played at several levels of difficulty. For a long time I thought it was kind of foolish to spend so much time on a non-cheating AI when for the most part we players wouldn’t be able to tell the difference. But now I’m convinced they made the right decision.

As for Planitia…well, I think Planitia will be lucky to have any kind of AI.


Planitia Update 8

In which I admit to completely copping out.

I need to get the discrete event simulation working. I feel I understand the concept but it’s not something I’ve ever done before so I am having some trouble figuring out how to approach it.

So I did graphical stuff instead!

Huh.  It looks slightly different.

Made the hitpoint bars smaller and made them green instead of red. Changed the selection marker to a blue circle underneath the units. Went ahead and raised the resolution to 800×600, since that’s what the final game will run at.

Now, one thing that is kind of stopping me is that I need to figure out exactly how units act both when they have explicit orders from the player and when they don’t.

Here’s what I’m thinking. Comments welcome.

The current problem is that you can grab a group of units and give them an attack order and they will dutifully go and kill the unit you clicked on, but then they’ll just stand around even if his buddies are right there. And his buddies will stand around too. Obviously, units need to take the initiative and engage if they have no other orders. But units without explicit orders shouldn’t stray too far from where the player put them.

Thus, when you give units move orders, you are not only moving them, you are setting their anchor point. If units do not have orders, there should be a range within which they will move and engage enemies. Archers should never move, they should simply snipe at anything that comes into range, but warriors and barbarians should probably have a range of about three tiles…if an enemy moves into that range, the warrior or barbarian moves to intercept and attack. If the enemy moves out of that range, the warrior or barbarian breaks off contact and returns to their anchor point.

Now, three tiles is less than the range of archers (eight tiles). Thus, if a unit is attacked by the enemy (rather than simply has an enemy come into its range), it can go as far as it needs to in order to engage that enemy, but once that enemy is dead it returns to its anchor point.

These autonomous attacks happen only if the unit has no standing orders from the player. Thus, if you grab a group of units and tell them to move through a group of enemy units, they will not engage as they are attacked because your move order overrides that.

I think that should be close enough to how a “real” RTS feels. Please feel free to tell me how you think it should work.


Planitia Update…Uh…7? Yeah, 7.

The armies are arrayed – and even have hit point bars!

Something's about to go down...

And the warriors and barbarians can even fight each other!

Huh.  Did you just hit me?  I can't tell, we don't have attack animations yet.

So why no demo? Well, technically I could release one but you guys probably wouldn’t be that happy with it. First off, the archers don’t work. None of the units control the way you would expect them to control if you’ve played an RTS before. I need to do some more work on how they move and attack and what they do when they don’t have any direct orders. Hopefully I will get that done this week.


Planitia Semi-Update

I swore to myself that I would work on Planitia for at least an hour a night every night this week, and so far I have kept that promise. A lot of stuff has been added, but I still feel the game needs more work before I can update again. It is possible that I’ll get that work done tonight and have the update up tomorrow, but if not it certainly should get done this weekend.

And the reason I’m holding off is because once I get in everything I want to get in, I’m actually going to let you play it! So be patient!


Planita Update 6! For Real!

Okay, it’s Two For Thursday so that means two – count them, two – new Planitia screenshots!

First off, multiple unit types:

Run for your lives!

And secondly, the highly coveted band selection! With bonus white box!

Run for your lives!

Which means that the first battle in the War of the Pixelated but Iconic Sprites can now begin!

Seriously, I’m hoping to have some decent-looking combat footage by the end of this weekend. Things are finally shaping up!


Planitia Non-Update #2

The box still will not draw. I have now spent more time drawing a variable-sized box on the screen than I did implementing and debugging the band selection itself.

I hate 3D. I really do. And I don’t hate it because it’s hard or math-intensive. I hate it because it’s undebuggable. Nothing shows up on the screen. Why? You’ve no idea. All you can do is fiddle, fiddle, fiddle with your numbers until something shows up, which hopefully will allow you to figure out what you were doing wrong and where to go from there. But if nothing ever decides to show up? You’re screwed, and that’s where I am right now.

I should have epic armies clashing right now. Instead I’m hung up on drawing a box on the screen. Gah!


Planitia Non-Update

Well, I got band-selection working in Planitia last night. For the record, that’s where you select multiple units by dragging the mouse to form a box around them. So I really should be posting an update.

But I’m not.

Because I have yet to figure out how to actually draw the box using D3D. I figured out how to do billboarded, “fake 2D with 3D” stuff in OpenGL, but haven’t figured out how to do it in D3D yet. I spent as much time trying and failing to draw the box as I did debugging my band selection code. It’s quite frustrating.

Hopefully I’ll fix it and be able to upload an example video tonight.

Next: Now that all the controls are in, I can finally implement some combat!