Aug 05 2010

Creepy Tree

Tag: Full Games,MMORPG Tycoontrevor @ 1:04 am

Here’s a screenshot of the very first tree generated by my new tree generation code.  Clearly, there are a bunch of issues to solve.

For one thing, many of the branches are being rendered inside-out.  For another, all the branches are being spawned on one side of the tree, even though I intended for them to grow evenly on all sides (if you look down from above, the branches are all growing within a 45 degree arc on one side of the tree).  For yet another thing, the branches aren’t starting from quite the right places — they seem to be just floating in midair, vaguely near the parent branch that they’re connected to.

And of course, I’ve also not yet put in foliage.

But it’s so creepy-looking that I just had to post a screenshot.  The final tree generation code needs to be able to generate trees in this sort of style.  It just should be able to produce more normal trees, too.  :)

EDIT: Here’s a version where I’ve now corrected the inside-out branches, but am still using the same basic tree shape:


Aug 02 2010

More on StarCraft II

Tag: Game Designtrevor @ 1:37 am

So I mentioned last time that my usual thing with RTS games is to get annoyed with them and stop playing after level 5 or 6.  Well I’m here to tell you that I’ve gotten annoyed with it.  Sadly, StarCraft doesn’t number its missions, but I think I’ve done about five or six of them from its single player campaign.  I think it’s mostly the length of the missions;  each one now takes me about 60 minutes to slog through, and I’m just really bored of it by the end.

However, I’m still somewhat intrigued by the game design, and by the multiplayer.  Now, I’m not very good at the game (though I’ve somehow managed to win three of my six multiplayer practice matches), but I’ve played enough of the game to start to see the fabric underlying it.

The first thing that I find interesting is that structurally, StarCraft is actually a lot like World of WarCraft — both games are built around numeric optimisation problems.  WoW tries to hide it from the casual players, but its whole end-game content is built around this optimisation.

WoW uses the numeric optimisation to drive its addictive play (play as long as you want, and the longer you play, the better the gear you can get).  By contrast, StarCraft applies time pressure;  your time is extremely finite, but you can get whatever units and gear you want within the time that you have.  It had just better be at least as good as the ones that your opponents are getting.  If you look on the forums (which I don’t recommend you do, incidentally), you can see that a lot of people really get into the number-crunching.  It’s interesting that both WoW and StarCraft fully expose their numbers, to enable those players who like optimisation problems to work on them.  Most games hide their numbers as much as possible, but these two don’t.

I also find it really fascinating that StarCraft II basically has two different game layers running at the same time, with the results of each feeding into the other.  It’s extremely rare, these days, for games to have such separate layers both playable at once.

If you read about StarCraft strategy, you’ll see people referring to these two different game layers as “macro” and “micro”.  The common wisdom is that if you’re not very good at one of them, you can make up for it by being good at the other.

For the uninitiated, “micro” is short for “micromanagement”, and is about micromanaging your units to get an advantage in combat, either from formation, placement, using special abilities, or engaging in other tactics.  ”Macro”, on the other hand (and they’ll never tell you this) is also short for “micromanagement”.  ”Macro” is about micromanaging the production going on in your base;  building things at exactly the right moment, making sure your workers aren’t harvesting a resource you don’t need, choosing when to build new tech and when to expand, etc.

Your “macro” determines how many combat units you have available for your “micro”, and one of the major goals of your “micro” is to gather information which can inform the goals you should be aiming for with your “macro” game  (“Gosh, my opponent is making lots of tanks.  Which of my units would be good at destroying tanks?”).

Both the “micro” and the “macro” games are effectively “Diner Dash”;  time-management games, as I mentioned in a previous article.  But “micro” (moving units during a fast combat) is a Diner Dash that’s focused on clicking rapidly and accurately, while “macro” (managing your production) is a Diner Dash that’s focused on judgement and precise timing, often with lengthy delays between clicks.  So if you’re experienced, you can do a click in the “macro” side of the game, then run off to do some micro for a little while, as long as you remember to come back in time for the next click you need to make on the macro side.

Since both sides of the game are about speed and optimising, players are often compared in terms of “APM”, which stands for “Actions Per Minute”.  My average APM is usually between 45 and 50.  This is a fair deal higher than most of the folks I’ve played against so far, who seem to usually be nearer to 30 APM.  But despite my 50% more APM, they still regularly steamroll over me.  Proof that how fast you can click doesn’t really matter, when you don’t know what you’re doing.  If only I had a clue (ie: was able to recognise the units and buildings my opponents have been building), I’d be a real force to be reckoned with.  ;)

Anyhow.  I can’t imagine ever making a game like StarCraft, myself (or even wanting to).  But the “two-layers-simultaneously” design is a really interesting one, which it’s totally worth thinking about some more.  And exposing the numbers is also interesting, since it lets number-crunching players get involved with the game at a deeper level.

Mm.  Plenty of stuff to think about.

Last comment:  Just wanted to mention how refreshing it is to play a mainstream multiplayer game where everyone thinks that manners are important, where everyone wishes people good luck before the matches, and says “good game” at the end.  Is the eternal september finally ending, almost two decades later?  :)


Aug 01 2010

A technical post

Tag: Engine Design,Full Games,MMORPG Tycoontrevor @ 4:33 pm

Here’s a screenshot that won’t excite anybody but me.

Can you spot the exciting thing?  It’s not the cylinders (which should hopefully be proper trees by the end of the day, but are as of yet still just cylinders waiting to be shaped) — it’s actually the little green horizontal line at the bottom left corner of the screen.

You’ve seen screenshots with that little green (and sometimes red or blue) line before.  It only shows up in my debugging builds, not on the builds that I release, and it helps me gauge how quickly the game is currently running.

The two vertical blue bars are markers.  If the horizontal line doesn’t reach the first blue marker, then we’re running at 60fps.  If the horizontal line passes the first marker but doesn’t reach the second blue marker, then we’re running at 30fps.  Beyond that, the frame rate is really low.

The exciting thing is that if I had taken this screenshot on this computer yesterday, that horizontal green line would have stretched all the way over to the first blue marker — we’re drawing in half the time that it took before, in this same situation.

See, the VectorStorm library has always been phenomenally slow at drawing bitmapped text.  And when the context matrix (the box in the top right corner) is open, it really would slow things down to an extreme degree.  And unfortunately, this was difficult to solve because the real problem was caused by the VectorStorm library’s fundamental approach to drawing.

Continue reading “A technical post”


Jul 28 2010

StarCraft II: The Heart of the Tiger

Tag: General lifetrevor @ 12:06 am

Is it just me, or is there a whiff of the Wing Commander 3 around StarCraft 2′s single player campaign mode?   I mean, Mission -> Cutscene -> Awkwardly composed interactive GUI with actors uncomfortably standing in front of a low-resolution static CG backdrop, where you click on the actors to talk to them until you get bored, then click on a computer to get your next mission -> Cutscene -> Mission, repeat.  (Side note:  it must take an awful lot of effort from the artists to make realtime CG look so much like poorly composited green-screen FMV from sixteen years ago.)

Anyhow.  Folks who know me will not be surprised to hear that I’ve purchased StarCraft II.   I’ve only spent about an hour with it thus far, which basically equates to running a couple of tutorials (before deciding that I didn’t really need to run those tutorials), and then doing the first three single-player missions.  This means that I’m not yet ready to pass judgement.

I have a thing about RTS games.  They are games that I really, desperately want to like and be good at.  They have that “strategy” word in the genre name, which in my head translates into “games for people who are good at thinking”.  Yes, I know in my head that the RTS genre really has far more in common with Diner Dash than with any true “thinking man’s game” (apologies to anybody who hadn’t already noticed that, and for whom I’ve now ruined RTS games forever).  But that knowledge doesn’t sway my heart.  In my heart of hearts, I yearn to be awesome at RTS games, to prove that I’m a smart person (despite all evidence to the contrary).

So I always fall into this insidious little trap when a new RTS game comes out.  I hear about the game and think “gosh, that RTS game sounds really interesting, I should play that.  I bet it’ll be really interesting and lots of fun, and I’d be good at it!  I could impress my friends/workmates/random strangers on the Internet!”  I purchase the game, play the first five or six single-player levels, and then remember that I don’t enjoy playing RTS games, and immediately uninstall it.  You don’t want to know how many RTS games I own for which I’ve played through the first five missions and then no further.  But if you were to count up every single RTS game which has come out since the original StarCraft, you’d probably be pretty close.

As I mentioned before, I’ve only played the first three missions of StarCraft 2, so I haven’t yet hit that magical fifth or sixth mission yet, where the increasing micromanagement and complexity might cause me to suddenly remember that I don’t like this type of game and ragequit.  But to be fair, the original StarCraft is the only RTS which I’ve ever played right through to the end — I even played through to the end of its Brood War expansion, although that one felt like a slog (I just wanted to know how the plot ended).  So I’m interested to see whether I stick with this sequel, which is very much the same game, only prettier.

I do keep expecting to see Mark Hamill wander into those interactive screens between missions, though.  Or maybe somebody in a silly lion suit.


Jul 22 2010

Very quick update

Tag: Full Games,MMORPG Tycoontrevor @ 11:39 pm

Just a quick note that the bare bones animation system I mentioned before is now working.  ”Actors” are shared, so you only have one copy of each animated model in memory (although that detail is hidden from game code).  Each animated model can have any number of animations.  Each instance of each actor can have a different animation playing at any given time, or can be at a different position within each animation.

Stuff that’s still left to do on the animation system:

  • Flagging animations as “loop”, “ping-pong”, or “play once then stop” (currently, they all loop).
  • Consider spline-based interpolations between keyframes (currently, linear).
  • Consider supporting material animations.

Sorry for lack of updates this week;  most of my time and attention has been going to the day job.  Haven’t had a lot of free time this week, so I’ve been spending that free time pretty much exclusively on coding MT2, rather than on updating this web site.  Hopefully back to more frequent progress updates this weekend/next week!


« Previous PageNext Page »