Archive for September, 2008
Planitia Update 31: More Multiplayer
I’ve been working on Planitia’s multiplayer for about six weeks now. It has required a pretty major rewrite to the underlying engine as well as near-continual rewrites to how I’m transmitting my data.
But…
The game is now inherently stable. In other words, two computers can connect and run the underlying world simulation and it’ll be exactly the same on both computers – they’ll never get out of sync. Which means that when the game does get out of sync, it’s due to player interaction, which can easily be logged and debugged. Most of the out-of-syncs are being caused by code I wrote months or even years ago that access the system timer manually – you just cannot do that in a multiplayer engine; you must use update timers (in other words, instead of a villager farming for 500 milliseconds, it farms for 15 33-millisecond updates).
I need to scour all the code that performs player actions as well as all my units and make sure nothing is using direct timing calls, but after that…well, the game should stay in sync, at least on a LAN. I’ll also need to clean up the multiplayer startup code so that it’s easier to start a game (right now you have to put the IP of the server into your engine.cfg file) as well as implement the last couple of god powers and then…
And then I’ll be releasing the multiplayer demo. ‘Sright! Of course, this demo will be LAN only – I cannot emphasize this enough. If you play it over the internet and it lags horribly, I hereby revoke your authorization to come crying to me. That’s not to say I won’t fix that eventually – I certainly plan to.
Sigh…once again I can’t post a new screenshot with pretties because that’s not what I’m working on. Indeed, after doing multiplayer coding going back to graphics would seem like a holiday.
Edit: Sol suggested I present a screenshot of two instances of the game running in sync. Great idea!
3 commentsThe End of Ensemble
Ensemble Studios is one of the few companies that if they called me up, I’d go work for them sight unseen, just based on the games they’ve made so far.
And they aren’t closing because they aren’t successful. The Age series of real-time strategy games has sold over twenty million copies so far. They are currently working on Halo Wars and it looks like it’ll be a damn fine RTS.
They’re closing because they inhabit a space Microsoft doesn’t care about any more: the PC. Even though Halo Wars will ship on the 360, Microsoft doesn’t consider Ensemble a console developer, like Lionhead or Rare. Another problems is that Ensemble is huge now – over three hundred employees. Microsoft just doesn’t want to pay upkeep on such a large PC studio no matter how many copies future Ensemble games sell; it’s just not part of Microsoft’s strategy.
The result is that Tony Goodman, who was one of the founders of Ensemble, has already founded a new company and sent out invites to some of the current Ensemble employees to join it as soon as Halo Wars ships. We don’t know the new company’s name yet; right now it’s just being called “Newco”. Other people not invited to join Newco may be able to get jobs at other studios in the Microsoft Games family, but I’m sure there will be some people to whom neither are these offers are extended and, well, it sucks to be them.
Now, Newco’s first game will almost certainly be for the PC, and it’ll almost certainly be published by Microsoft. But Microsoft won’t be paying the light bill or the gravity bill at Newco and thus will be insulated from its possible failure. But this is the type of thing you do to a studio that has lost you money, not made you money. Unless there’s something in Ensemble’s financials that I don’t know about, it seems that Microsoft is throwing away money just so they can “consolidate their business plan”. I can’t help but wonder if they would do the same thing if the company involved were Blizzard.
Well, rest in peace, Ensemble. Once I purchase Halo Wars I’ll have bought every single game you ever produced.
1 commentName That Game 55!
Whoa…this game looks like a cross between Jagged Alliance and X-Com…probably because that’s exactly what it is.
Name and developer, please! For bonus points, please tell me what other game I’ve featured on Name That Game that this one can interlock with!
4 commentsName That Game 54!
A lot of people think that Total Annihilation was the first game to use real 3D terrain in an RTS. They are mistaken; this game beat TA to market by a few months. This is perfectly analogous to the fact that Wing Commander was technically the first movie to use bullet time, not The Matrix.
I never cared for this game much, and it wasn’t because it was bad (it was actually pretty average). I didn’t like it because it was…kind of mean-spirited. Case in point: one side in this game has a vehicle called the Hostage Taker which scoops up enemy infantry, lobotomizes them, straps explosives onto them and lets them go, at which point they wander around mindlessly until they hit something and blow up.
Name and developer, please!
5 commentsI AM THE MASTER OF UNLOCKING!
Okay, settle in for a long, non-game-development-related story.
So I’ve got this car, see. It’s a 1996 Toyota Camry. And the Toyota Camry has a common flaw – the door handles break off. The handles themselves are made of plastic (yes, even the outside handles) and if the car sits out in the sun for a few years the handles get very brittle.
So about four years ago (when I was working for Gizmondo, in fact) I came outside ready to head home after a hard day’s Battlefield and lo and behold, the handle came right off in my hand. I could still open the door because there was a small tab of plastic connected to the latch, but eventually that broke off too. I was reduced to prying up the latch with my key every time I got into the car.
Then, not long after that, I pulled a little too hard on the inside door handle and…it broke off too.
(Yes, I am secretly The Hulk. Don’t make me angry, you wouldn’t like me yadda yadda.)
So now to get out of the car on the driver’s side, I had to roll down the window and pry up the outside door latch from the inside.
And then…the inside latch on the passenger’s side broke off too (it made me angry). So now I couldn’t really have any passengers because I’d have to get out to let them out.
And this was the status quo of my car for a long time. The door latches were annoying, but not so annoying that I was willing to pay $400 a door to get them fixed.
So I just put up with it.
Until my car got broken into.
The thief was attracted by the wire running from my in-dash cassette player to the small storage space between the driver’s and passenger’s seats. He smashed out the small triangular rear window and opened the back passenger door, then opened the front passenger door, got inside and closed the door.
He opened the storage compartment to find a cheap $25 CD Walkman instead of the expensive iPod Touch I’m sure he was expecting. So he ransacked through my glove compartment looking for anything of value and came up empty.
That’s when he realized that he couldn’t get out of the car.
Now, if I could have just seen the look of panic on his face when he realized that he was effectively trapped in the car it would all have been worth it. I know he panicked because he tore the entire passenger’s side door handle out of its housing trying to get out.
(It would also have been worth it because I would have been close enough to administer a sorely-needed asskicking.)
He finally wormed his way into the back seat and exited through the back passenger door. Then, just to add injury to injury, he didn’t fully close the door which caused my interior light to drain my battery.
Needless to say, I was pissed the next morning. The door handles had been destroyed to the point where I couldn’t easily get out of the car either.
So again I was looking at $400 a door. Which I didn’t have.
So I did some research. This was the point at which I discovered that this is a very common problem with Camrys from the 1990’s. One website even had detailed instructions on how to replace the exterior door handle yourself.
So I ordered the parts and decided to try to fix the door myself. Hey, it’s not like I could make it any worse.
So today I went out to give it a shot. After four hours and five trips to the hardware store (“Oh, I’m going to need a torque wrench set, better pick one up. Oh, this set doesn’t have the right size hex, I need a 10 mm. Oh, this 10 mm hex driver I bought isn’t long enough to reach the hex bolts inside the door. Oh, this extender for my torque wrench is perfect, but somehow I managed to buy the 11 mm hex for it instead of the 10. Oh, there we go – finally got it right.”) I managed to replace both the exterior and the interior door handles.
And they work. They aren’t pretty (especially the interior, since I couldn’t pop the frame of it through the door panel) but they work. Pull latch, door opens! Pull latch, door opens! No more reaching through the damn window!
I’m so happy!
Now to do the other door. And get the window fixed. And buy a new CD player. Grumble, grumble…
8 commentsBadonkadonk.
I must travel to Sweden and drink of the water there, because there is obviously something in it. After finishing up HouseGlobe the OxEye guys had a couple days left, so they whipped out a demake of Fallout called Fillauth.

Here’s a video of their map editor in action:
At this point, I’m betting on demonic powers. It’s demonic powers, right guys? Come on, spill it, your secret is safe with me.
On a similar topic, I’d like to thank Jeb from the OxEye Games Forums for taking the time to answer some of my multiplayer programming questions.
And, you know, now that I think about it, it might be a good idea to link to all the submissions for the Demake Competition, since I’ve talked so much about it. Jeez, you’d think I didn’t know how to run a website.
No commentsAtanua Goes Pro
Jari Komppa has a new version of his excellent logic simulator Atanua out.

Plus, if you want to purchase a copy for commercial purposes, you may now do so!
No commentsI Hate the Internet
Why? Because it keeps showing me stuff like this…
If that game looks oddly familiar, it should. It was made for the TIGSource Demake Competition, which is all about taking a game and “demaking” it for an earlier platform. Thus, Silent Hill 2 for the PS2 becomes Soundless Mountain II for the NES…

Portal for the PC becomes SUPER 3D PORTALS 6 for the Atari 2600…

And Homeworld for the PC becomes HouseGlobe, for 256 color VGA…
HouseGlobe in particular is very impressive. It’s got silk-smooth two-player multiplayer over the internet or a LAN, and despite a small tech tree and number of units supports several different strategies of play. It’s a great little 2D RTS, and the guys who made it pumped it out…in ten days.
That’s why I hate the internet. It keeps showing me how much I suck. At some point, you know, I thought I’d become a developer who could make pretty cool stuff pretty quickly. But that somehow has never happened. Frankly I wonder why I’m still employed.
(EDIT: The Demake competition was hosted at TIGSource, not Retro Remakes. Oops.)
5 commentsYou Should Call Me Mario
Because I just got one-upped. I thought writing a game in one page of source was good, but the last time I tried to write an RPG in one page of source, I concluded that it probably wasn’t possible.
But now the Temple of the Roguelike is having an ongoing competition for people to write Roguelikes in one kilobyte of source; that’s less than one-fourth the size of a one-page game. Most of the entries so far have been pretty simplistic, but now a true challenger has emerged, called A Journey to Hell.
Here’s the complete source code (compiled on Linux using GCC and curses):
#include#define W(c)while(c) #define F(v,h)for(v=0;v 0?1:0) #define r rand() int x,y,S=24,T=60,c,d[90][90],L=1,b,k[]=L"$`*$.@?$?>",f,g,z,h,i,l=9,p=20,e=46, v,u=96;m(f,g){G-64?M-64||(l-=G-u)>0||(M=e):(M^62||L++&&(L^7?N():(G=e)),M^u||(p +=L,M=e),M^42||(l=p,M=e),M^36||(v+=x%9*L+L,M=e),M^63||(M=r%6?k[r&1]:97+L),M>u& &--M);M-e?M-35||(g&&m(f,0),f&&m(0,g)):(M=G|256,G=e);}E(t){W(d[x=r%T][y=r%S]-e) ;G=t;}N(){D(G=35)x=y=9;F(b,S){f=r%58+1;g=r%22+1;W(f^x||g^y){G=e,r&1?(x+=Z(f-x) ):(y+=Z(g-y));}}F(b,10)E(k[b]);F(b,L*2)E(98+r%L);}main(){srand(initscr()); raw();start_color();F(c,8)init_pair(c,c,0);N();W(c-81){D(G-64||(f=x,g=y)) clear();D(b=1;W(G^k[b]&&b<7)b++;h=x;i=y;c=0;W(c++u&&G<123&&m(Z(f-x),Z(g-y)) )D(c<49||c>57||G-64||m((c-1)%3-1,1-(c-49)/3))D(G&=255)}endwin();}
Here’s a screenshot.

In this screenshot, the purple ‘@’ is the player (of course). The yellow ‘$’ represents money on the ground. The blue-green ‘?’ represents a chest. The white ‘b’ is a monster; the letter of the monster represents how hard it is to kill, from a (weakest) to z (flee in terror). The red quote mark represents a soul left behind by a monster I just killed; picking this up raises my maximum hit points.
Here’s what that 1K of source gets you:
* Guaranteed traversable levels
* Line-of-sight on the player
* Colored graphics
* Combat with monsters
* Ability to pick up gold and souls (dropped by defeated monsters; powers player up)
* Chests (which can contain gold, a monster or a soul)
* Ability to go down the stairs (generates a new level with tougher monsters)
* Win condition (beat the seventh level to win the game)
Of course his platform gives him a couple of advantages. My library to write colored graphics to the screen and poll the keyboard and mouse under Windows takes up almost 1K of code by itself; the curses library is much more space efficient. Also, GCC supports “default int” on both functions and parameters, meaning that Jakub can declare a function as “m(f,g)” and GCC will assume that ‘m’ is a function that takes two integer parameters, f and g, and returns an int itself. Visual C++ 2005 will not allow such shenanigans (though 2003 was not as strict).
Still, it’s an incredible amount of stuff for less code than it takes to initialize DirectX. I can only imagine what the author, Jakub Wasilewski, could do with the unending expanse a full page of source would provide him.
3 commentsSpore
So the eternal war between “casual” and “hardcore” rages on, with Spore as its current battleground. Actually, I should amend that statement: the hardcore continues its war against the casuals, while most of the casuals don’t even know the hardcore exists.
I was really surprised at the low scores I was seeing for Spore before release. They made me kind of nervous…had Will finally dropped the ball?
But of course I did not allow them to deter me from purchasing the game myself (Galactic Edition, of course).
In the end, reviewers are hardcore. Most of the reviewers who played the game dinged it for its ease and lack of depth. I guess they were expecting the Tribe stage to be as deep as Rise of Nations and the World stage to be as deep as Civ IV and the Space stage to be as deep as Galactic Civilizations II. The problem is that Will wants people to be able to progress through each stage to the next one without too much trouble. He doesn’t want people to get to a stage and realize that they either just don’t like it or can’t do it. Because he knows that’s a shelf-level event. Thus each stage (up to Space) is designed to be an interesting experience, but not a particularly challenging game. This is very, very “casual” thinking.
And then, as if to clear up any doubt as to what kind of game Spore is, Will gave an interview to MTV’s Multiplayer Blog, where he said, “We were very focused, if anything, on making a game for more casual players. ‘Spore’ has more depth than, let’s say, ‘The Sims’ did. But we looked at the Metacritic scores for ‘Sims 2′, which was around 90, and something like ‘Half-Life’, which was 97, and we decided — quite a while back — that we would rather have the Metacritic and sales of ‘Sims 2′ than the Metacritic and sales of ‘Half-Life.’”
A lot of people have taken this as a ding against Valve, but it’s not really. Half-Life 2 was a very successful game. Very successful. And it sold about one-tenth as many copies as The Sims 2 and its expansion packs.
Wright has figured out that he can both make great games and make a metric asston of money simply by appealing to a wider audience. This was obvious with The Sims, but was far less so during the development of Spore. The high-pitched whine you are hearing is the “hardcore” faction realizing that a game they assumed would be “for them” isn’t.
Will Wright has created the ultimate casual game.
That costs $50 and requires a pretty hot computer to play.
It’s this schizophrenia that is driving everybody crazy.
(So how do I like it? Well, being firmly mid-core, I am thoroughly enjoying it. I’m currently at the Tribal stage. I can’t wait to get to World stage and see how Will has simplified Civilization. Of course, the game still has plenty of time to kick me in the Mean Bean Machine, but I kind of doubt that it will.)
1 comment


