SuperProfiler to the rescue!

Thursday, February 5, 2009

SuperProfiler is a library I wrote to help us track down performance issues in Zero Gear. It is open source so anyone can use it (and hopefully help make it better!).

You simply place a piece of code at the start of any function you want to profile and SuperProfiler takes care of the rest.

An example...


void SomeFunction2(int var1)
{
    SUPER_PROFILE("void SomeFunction2(int var1)");
    var1++;
}

void SomeFunction1(void)
{
    SUPER_PROFILE("void SomeFunction1(void)");
    int lala = 2;
    SomeFunction2(1);
}

void main(void)
{
    SomeFunction1();
    SuperProfiler::TextOutput textOutput("SuperProfilerResults.txt");
    SuperProfiler::Root::OutputResults(textOutput));
}


and in SuperProfilerResults.txt is...


Function List | Total Run Time=0 | Total Profiled Function Calls=2
-----------------------------------------
void SomeFunction1(void) | Total Time=0.00 | 50.00% of time | Total Calls=1 | 50.00% of calls
void SomeFunction2(int var1) | Total Time=0.00 | 50.00% of time | Total Calls=1 | 50.00% of calls

Call Tree
-----------------------------------------
ROOT
    void SomeFunction1(void) | Avg Time=0.0000 | Times called=1
        void SomeFunction2(int var1) | Avg Time=0.0000 | Times called=1


Simple and easy. Check out the Google code site for all the juicy details.

Let me know if you find it useful!

Progress on Space Jump

Wednesday, February 4, 2009

Did a little more work on the obstacle-type course in between other things. Here is a little stitched together panorama of it (click for big)

Global Game Jam result: Coopetiton

Sunday, February 1, 2009

This weekend I (Brian) participated in the Global Game Jam in San Francisco.


It was 35 people spending 48 hours (most of them awake) creating games. It was an amazing event and we all had a blast. All of the games were very impressive.

I plan to write more about the actual event but first I wanted to post the game that my team finished.


The goal of the game is to work with/against another player to collect the most coins. The 2 players are connected by a sort of electric spring. This means that each player has some influence over the movement of the other player.

Collect as many coins in your "wallet" without hitting an obstacle. If you do hit an obstacle, you lose the coins in your wallet. To deposit the coins from your wallet to your bank (the coins are safe in the bank and cannot be lost), go through a hoop that is the same color as your character. Going through the other player's hoop will cause your wallet money to be deposited in their bank. Each coin you pick up actually doubles the amount of money in your wallet. So play it safe and deposit as often as possible or walk on the wild side and try to save up for massive profits!

It is best played with 2 people (1 keyboard or 2 controllers) but can be played alone as well.

Our team had a great time making this game and would love to hear any feedback so please comment after playing!

Some screens:



Space Jump WIP video

Thursday, January 22, 2009



This is a 4x speed run through of a map I am working on to test out a "gauntlet" type game mode where the goal is to be the first to get to the finish against the clock. We are planning on having checkpoints throughout the map so that if you fall off you can respawn. Brian is also anxious to add physical obstacles along the blank straight lengths that will move around which you will have to dodge.

In other news, I have found a new place to work on Zero Gear - a real actual office space shared with my brother, exciting!

Zero Gear now on ModDB.com

Wednesday, January 14, 2009

now you can keep track of Zero Gear's progress if you are part of the growing ModDB community.

You can check out Zero Gear's ModDB game profile here.

Zero Gear on the webs

Tuesday, January 13, 2009

I have been on a little mini PR blitz lately, trying to increase awareness of our game. So far it has netted these little Zero Gear outposts on the tubes:

Zero Gear page on Gametrailers.com

A news story on N4G

A shoutout from Steve Streeting

A floundering Digg submission (DIGG IT!)

A post on independently-speaking.com

A link on The Awesomer

I <3 fake players

Sunday, January 11, 2009

Maybe there is a better term. A fake player is just like a real player as far as the server and other players can tell. It has no AI. It is just for testing. It exists only on the server. A lot of games have this feature (not claiming to have invented it or anything!).

I want to express my love for fake players. I just recently (yesterday) got this feature working in Zero Gear.

Here are some of the advantages to adding fake players to your multiplayer game:

  • Makes testing bandwidth and other networking issues much easier. Even some gameplay code might only have a bug when there are X number of players on the server.
  • Obviously a MMO would benefit from having fake players to test server load and whatever else those crazy MMO devs need to test.
  • Profiling. Your game might work great with 6 people playing. What happens when there is a full server with 16? Physics might slow down, clients may not be able to render all those models, maybe too much data is being sent over the net. It is better to find these sort of issues before getting 16 real people together to test.
  • Possible to translate the fake players into bots later. No promise of this for ZG! Since the fake player acts just like a real player, all it needs to do is send input to the server and the fake player is moving around.

The implementation was pretty easy after some code restructuring. I simply moved the client networking code (networking only, no graphics, input, sound, etc) into the server. Each fake player executes the same client networking code a real client executes and just like magic (Illusion, Michael), it works! This is because the server only really interacts with the real players through the network.

Overall I wish I would have gotten this feature in ZG a lot sooner! If you are developing a networked game, do it now!!!

New Character: Cacti

Saturday, January 3, 2009

From the barren and windswept mesas of the desert comes our newest character Cacti. Say hello, but I wouldn't touch!