Month: September 2008

Let’s Play Starflight! 6: Continuing the Android Quest

In this episode of Let’s Play Starflight, we finish up with the Elowan and attempt to rescue some stranded colonists.


You 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 <curses.h>
#define W(c)while(c)
#define F(v,h)for(v=0;v<h;v++)
#define D(i)F(y,S)F(x,T){i;}
#define G d[x][y]
#define M d[x+f][y+g]
#define Z(n)n<0?-1:(n>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)(d[f+(z=(h-f)*c*.01)][g+(z
=(i-g)*c*.01)]-35)||(b=0);b&&mvaddch(y,x,G|COLOR_PAIR(b)))mvprintw(S,0,"HP:%d/
%d L:%d $%d %s",l,p,L,v,L^7?"":"WIN");c=getch();D(G>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.


Spore

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.)


I’M ON NATIONAL TELEVISION!

Um…well, not me. The game I worked on here at Aspyr, futureU, was given a very quick mention this morning on NBC’s Today Show! If you want to see it, go here and fast-forward to about 4:30 into the segment. Squee! Of course, I worked on the PC version, not the DS.

Update: Holy crap!

Okay, now look at that list. Spore doesn’t actually come out until Sunday and both Warhammer Online and Wrath of the Lich King are months away. So futureU is currently the highest-selling game on Amazon that actually exists.


Let’s Play Starflight! 5: Power Up!

In this episode of Let’s Play Starflight, we finally get our ship out of the Suck Zone and even meet an alien!


Name That Game 53!

This one is one I wish I’d had a chance to play. It’s by a very cool company that not too many people know about.

Name and developer, please! Bonus points if you can tell me what famous game the developers could have made if one of them hadn’t shot his mouth off at the pitch meeting.


Interlude

My youngest, Jewel, is cementing her knowledge of “big” and “little” by wandering around and dubbing everything one or the other.

She likes to come up to me and say, “You’re the big daddy!”

At which point I say, “And you’re the little sister!”

“That’s right!” she beams.

I don’t think she gets it.


What I Did During My Three-Day Weekend

Worked on Planitia. I now have two different computers (as opposed to client and server on the same computer) connecting and swapping data. They are playing a multiplayer game! The only problem is that they are not playing the same game. I’ve got synchronization problems, but I knew I was going to, and I’m pretty sure I know how to fix it. Fortunately Planitia is much, much simpler a game than most.

Played Castle Crashers. If you’ve got an Xbox and you don’t have this game, fix that. The game is just a purely fun side-scrolling beat-em-up (remember those?) with RPG elements on, and it’s exponentially more fun the more people you get playing. It also has that one brilliant design decision that makes for superior games…something that other games don’t do but seems completely obvious once a game does it. And that something is that gold, weapons, and pets are shared between the characters on your account. So if you start a new character, you’ll be able to buy all the potions, sandviches, and bombs that you need. You’ll also be able to immediately switch out your starter weapon for something better and pick up a pet, one of which helps you level up faster. My god! It’s like they actually asked themselves, “How can we make it less tedious and more fun for players to level up multiple characters?”

Of course, you can also shine levelling up multiple characters and just put all your time into one…which Megan did, getting to level 45 over the weekend. Of course, even with maxed-out strength and defense, Insane Mode is still kicking her butt.

And finally, played Sly Cooper and the Thievius Raccoonus. I’d heard about these games but I’d never tried them out.

(See, I just don’t get this. Why didn’t I? I was all over the Jak & Daxter and Ratchet & Clank series of games like white on rice…why didn’t I get into Sly before now? I can’t explain it. Sucker Punch should be right up there with Insomniac and Naughty Dog…but they aren’t. I mean, the games were successful enough to merit sequels and the company is still going, but they weren’t the huge breakout successes they deserved to be, in my opinion. It doesn’t help that their first game, Rocket: Robot on Wheels, was one of the best platformers for the Nintendo 64…and nobody ever heard of it.)

Anyway, the game has a great style with some interesting characters. Sly’s a thief, but he only steals from criminals (claiming that it’s too easy to steal from regular folk). When Sly was a kid, his family was attacked by a group of criminals called the Fiendish Five, who stole the Thievius Raccoonus, the book Sly’s family had recorded all their thieving techniques in. The Fiendish Five split the book up into five parts and now Sly, all grown up, wants to get them back.

Which is just an excuse for some very smart platforming and collecting. While I was initially annoyed that Sly is a one-hit wonder (no hitpoints – one hit kills him) I was then gratified to see the game immediately move to mitigate this. Collecting one hundred coins gives Sly a “lucky charm”, which will allow him to get out of one jam – and it will even allow him to recover from falling into water or off the level, something I’ve never seen a game do before. There are also places where you can simply pick up lucky charms, and you can store up to two of them, effectively giving Sly three hitpoints. If you’re having trouble with a certain segment of the game, the game will start spawning Sly with a lucky charm on him – a good idea.

Plus, in the second world (of five) you can find a page of the Thievius Raccooonus that allows Sly to fall into water without losing a lucky charm, making him even more durable. So they do a good job of making Sly appear initially weak so that the player understands that this is a sneaking game, but then almost immediately mitigate his weakness so that things aren’t too hard.

Complaints? Well…the jumping seems a little “floaty”. Sometimes Sly will kind of hover in midair while the game seems to decide his fate. About half the time this actually works in the player’s favor but it doesn’t really make me feel like I’m in control of him. And it’s a bit of a shame since the control is tight otherwise. Also, the camera controls are backwards from what I’m used to and you can’t swap them, you just have to get used to them.

Still, that hasn’t prevented me from enjoying the game. I’m on the third world now, and things are toughening up – and getting kind of creepy, since the boss here is a big fat green voodoo priestess. I’m looking forward to finishing the game and moving on to Sly 2…and I need to find a copy of Sly 3 somewhere.