new item sneak peek

Thursday, September 25, 2008

introducing the L.U.V. Bot:



The primary function or intended purpose of the L.U.V. Bot is still a little hazy. However it is known to run lustfully at any moving object and latch on in a merciless hug, until it's emotion chip shorts, resulting in a massive L.U.V.-splosion.

quick new map

Wednesday, September 17, 2008

we are having a lot of fun with the tag game mode in our playtests, but we only have one map for it. So I decided to whip up another quick one for fun. This one is called the Punch Bowl:

2020 - The year digital distribution becomes a threat

Friday, September 12, 2008

I saw this story about how GameStop believes digital distribution won't be a threat to their current business model until 2020.

Well, that sure seems like an absurd claim. They must have some data to back up that claim.

McKenzie - "We've done some internal studies, really looking at the bandwidth of the internet in the U.S. as it is now, and, I mean, it's years before you would be able to take a larger game and timely download that within the current configuration of the internet,"

Wait, so they are making a prediction of the trend of technology based on current figures? Surely somebody at GameStop must have heard of accelerating change or even observed the increase in the speed of the internet over the past 10 years, right?

And this doesn't even make sense right now. I regularly download "larger" games and I am usually playing them faster than I can go to GameStop to buy them. So their claim doesn't even hold up right now.

No, they seem to believe that "the current configuration of the internet" will remain as is now for the next 12 years!

GameStop, please do a little reading or even critical thinking before making such a claim.

2 new characters

Thursday, September 11, 2008

Meet Squiddles and the Brain:




Dedicated Server and Code

Monday, September 8, 2008

We are looking to rent a dedicated server pretty soon to host Zero Gear game servers as well as other services. We are hoping to get some suggestions from people for good (and cheap!) servers.

Here is what we are basically looking for:
1. We need full access. We have multiple software servers to run on the machine and need to be able to customize things to our liking.
2. Windows OS is required for the time being.
3. Hopefully around $100 a month but we are able to go a bit over if it is worth it.
4. It needs to have enough bandwidth and speed to host a few game servers. I don't have exact numbers for this yet but think a few TF2 or CS:S servers.
5. We want this first server to be in the L.A. or Bay Area in California.

If you have a suggestion, please leave a comment or better yet, reply to this forum post.

Now, on to the code!
Exposing the privates of a class to other classes explicitly

I have been told that title sounds dirty. I don't understand why.

This post will only be of interest to programmers who use C++ (and maybe programmers in general). No artsy fartsy stuff going on here.

Say I am designing a NetworkManager class. This class has a SendPacket() function that I don't want to expose to the public. However, I do want some classes, like my GameObject class, to have access to SendPacket().

The obvious solution is this:


class NetworkManager
{
    public:
    ...
private:
    friend class GameObject;
    void SendPacket(int packet);
    void ManageConnections(void);
    etc...
};


This works but has a few problems. First of all, we don't want GameObject to have access to ManageConnections(). Also, we later discover that the ChatManager class needs access to SendPacket as well. The lesson: friendship is hard.

The solution I use is to create an accessor class which is friend to NetworkManager and only exposes the SendPacket function. Then any other class can use this accessor to send a packet.

The best part about this is that I can be very explicit about which parts of NetworkManager I expose.

Code is the best explanation:


class NetworkManager
{
private:
    friend class SendPacketAccessor;
    void SendPacket(int packet)
    {
        //Success!
    }
};


class SendPacketAccessor
{
public:
    void SendPacket(NetworkManager & netManager, int packet)
    {
        //We have access to SendPacket()!
        netManager.SendPacket(packet);
    }
};


class GameObject
{
public:
    void Update(NetworkManager & netManager)
    {
        //We have access to SendPacket() though the accessor
        accessor.SendPacket(netManager, 1);
    }

private:
    //Our key to SendPacket()
    SendPacketAccessor accessor;
};


class ChatManager
{
public:
    void Update(NetworkManager & netManager)
    {
        accessor.SendPacket(netManager, 2)
    }

private:
    SendPacketAccessor accessor;
};


void main(void)
{
    NetworkManager netManager;
    GameObject obj1;
    ChatManager chat;

    obj1.Update(netManager);
    chat.Update(netManager);
}


If other parts of NetworkManager needed to be exposed, those parts should have special accessors just like SendPacket() does.

New movin' pictures: Zero Gear race track showcase

Tuesday, September 2, 2008

As I have been promising for some time now we finally have a new video for everyone. This video showcases our initial 3 race maps that we are working hard to outfit with all the gameplay gears and gadgets that Brian is developing as we speak. These will be 3 of the 5 maps that we plan to have for our first beta release.



Looking forward to racing some of you in these soon!

P.S. These beautiful levels would not be possible without the fine rendering engine Ogre3d, as well as the well crafted particle engine, Particle Universe.

Happy 1000th revision Zero Gear!

Monday, September 1, 2008

I am happy to report that Zero Gear has just turned 1000!

Well, we just made our 1000th Subversion revision. Subversion is the version control tool we use to keep in sync. It is really a great tool and I recommend it to anyone who wants project management, even if you are a single developer.

We will have some more exciting posts this week with actual images and maybe even a video! I know everyone is getting bored of reading by now. Boo reading!