Jump to content
  • Advertisement
Sign in to follow this  
  • entries
    5
  • comments
    4
  • views
    5514

Entries in this blog

 

DrawGo.com launched!

Ok Ok... so not associated with my current game project, but something else I have been working on for a little while. Check it here: DrawGo.com!


Here is my "official" press release from the site:

4/23/2008 - DrawGo.com Launches!

DrawGo.com, the incredibly easy and fun drawing website, is now available to everyone to enjoy!

Draw The name DrawGo says it all. Quickly draw whats on your mind and then go and share it with anyone you want!

Share with friends Once your drawing is complete, DrawGo.com makes it easy to share your creation with your friends and family. Simply copy the pregenerated link or HTML and paste it into your favorite social networking site or include it in your website.



Email to anyone DrawGo.com also lets you easily email your picture to anyone you want. Just enter your email, their email and a brief message then click 'Send'. Easy as that!

Get a shirt Want to show off your drawing to everyone around? Easy. In one click your can customize and purchase a T-shirt with your drawing on it from Zazzle.

Now Go Draw!

BrianH

BrianH

 

Update on Object Factory implementation

Just throwing in a quick update today.

Last week I integrated the ObjectFactory code from this GameDev article by Robert Geiman. His Listing 3 was the basis for my implementation but I modified it to always use std::string as the id type.

I found one inconvenience while using the code, which was that I had to explicitly register the object types. This removed an aspect of 'plugability' that I desired. I found the solution to this in an article & discussion linked from Robert's, Why Pluggable Factories Rock My Multiplayer World. Specifically this reply by WizHarDx.

So, I developed my own extension to the ObjectFactory code which is as follows:

1. Added a GetCount method to the original ObjectFactory class.

2. Created an ObjectFactoryRegistrar templated class:



template
class ObjectFactoryRegistrar
{

public:

ObjectFactoryRegistrar(const char *lpType) : m_sType(lpType)
{
if(!BaseClassType::ObjFactory)
{
BaseClassType::ObjFactory = new ObjectFactory();
}

BaseClassType::ObjFactory->Register(m_sType);
}

~ObjectFactoryRegistrar()
{
if(BaseClassType::ObjFactory)
{
BaseClassType::ObjFactory->Unregister(m_sType);
}

if(BaseClassType::ObjFactory->GetCount() == 0)
{
delete BaseClassType::ObjFactory;
BaseClassType::ObjFactory = 0;
}
}

protected:

std::string m_sType;
};








3. For each object type I want to register into the factory, a static instance of an ObjectFactoryRegistrar is declared. This registrar handles creating and destroying the related ObjectFactory.

Example Usage:

File: MyBaseObject.h

#include "ObjectFactory.h"

class MyBaseObject
{

public:

MyBaseObject();
virtual ~MyBaseObject();

static ObjectFactory *ObjFactory;
}








File: MyBaseObject.cpp

#include "MyBaseObject.h"

ObjectFactory MyBaseObject::ObjFactory = 0;

// rest of implementation...








File: MyDerivedObject.h

#include "MyBaseObject.h"

class MyDerivedObject : public MyBaseObject
{

public:

MyDerivedObject();
virtual ~MyDerivedObject();

static ObjectFactoryRegistrar ObjRegistrar;
}








File: MyDerivedObject.cpp

#include "MyDerivedObject.h"

ObjectFactoryRegistrar MyDerivedObject::ObjRegistrar("Derived");

// rest of implementation...









File: Main.cpp

#include "MyBaseObject.h"

int main(int argc, char *argv[])
{
MyBaseObject *pObj = MyBaseObject::ObjFactory->Create("Derived")

// rest of implementation...
}









One concern:

That the static pointer, MyBaseClass::ObjFactory, will not be set to 0 before the constructor of the first ObjectFactoryRegistrar is called. If so, bad things will happen. Anyone know if this is undefined behavior or if it will be reliable?

BrianH

BrianH

 

Working under the hood

I spent most of my available time this past week working on not-so-glorious pieces of code. You know the ones that don't immediately pay off, but can save you huge amounts of time down the road. The first of these pieces was a logging class. I wanted something simple, relatively transparent, and able to produce readable output. Here is what I ended up with.

Simple Consists of two classes, one encapsulating a log and another encapsulating an object that wants to use the log Few but meaningful options, including indent, message type, contexts Transparent
Not much to explain here, just wanted to leave as small of a footprint inside my code as possible. Readable HTML output Alternating row background color Context markers
Here is the code:

AppLogger.h
AppLogger.cpp

Here is a screenshot showing some log output



The second piece of under-the-hood code is a generic object factory based on an article I read here at GameDev. I am using it to load objects from my level files and it seems pretty cool thus far.

I also got my hands dirty doing some XML parsing using TinyXml. This turned out to be pretty simple and I would recommend it to anyone wanting fast, basic XML capabilities in their C++ app.

I have also switched gears and plan to use Bullet Physics. Originally I was leaning towards PhysX and I cannot pin down exactly why I changed my mind, but it was just a feeling. Anyway, it will be my first time integrating any type of physics into a game so no mater what I will come away with some knowledge.

Gamewise I have began to hammer out a level file format and am now working on parsing the files and creating appropriate objects.

BrianH

BrianH

 

Slow going, but making some progress

Well unfortunately I don't have much more to show this week. My main PC took a nose dive and I had to transfer and reinstall things onto my other laptop. Everything went smoothly until it came time to install the VS2005 SP 1. My laptop would shut down everytime the installer hit a certain point. Not crash, reset, or BSOD... just turn off completely. After reading a little bit on the web, I found the problem might be overheating. I downloaded a utility to monitor the CPU temp and watched it as the installer progressed. Sure enough, just about the time the core temp. spiked to over 230 deg F the laptop shutdown. I decided to try the easiest thing first so I took it out to my garage (its still pretty cold here in Cincinnati) and set it on my metal table saw stand. After letting it cool to ambient temp. I tried it again. Viola! The core temp. never exceeded 185 and the fan stayed in low gear the whole time.

Anyay, what I did get done was to write some test code to generate geometry for the game world. This is very early prototyping so keep that in mind - not to mention that I have hardly gotten my feet wet with Ogre.



I had some trouble at first with getting the material on the model, but I realized I forget a call to initialize the resource groups for Ogre.

Well, thats it for this week.

BrianH

BrianH

 

Getting back in the groove

After a three year hiatus from 3D graphics and game development I am slowly trying to get back into it. To be honest, I never completely disappeared, but stayed hovering - observing - from about 20,000 feet. Waiting patiently, I have taken time to browse the available tools and technologies and have allowed my game ideas to brew and congeal inside my head.

Where have I been? Well, after jumping ship from a dead-end startup game company three years ago I got into freelancing. As it turns out a couple friends of mine run a pretty successful little consulting company that does a lot of work for a major online auction site (can you guess?). During the last few months at the game company I did some little projects for them. One thing lead to another and pretty soon the work was more than enough to live off of.

Why come back? The reason is simple - I miss it terribly. Games were the entire reason I got into computers and programming way back in 1990 and I feel I have strayed from my roots. I don't have a lot of time on my hands now but I am trying to devote a little bit here and there. My goal at this point is to put together a game and submit it to the Independent Games Festival (year intentionally omitted). Who knows, maybe sometime in the future i will jump ship again - perhaps even into a ship of my own!

Ok, now that the introduction is done, lets get into what I am doing.

The Idea
Without going into too much detail, my idea is for players to compete in various futuristic sports inside of a unique 3D arena setting. Naturally, networked play will allow players to play against each other over LAN or internet.

Technology
The project is being developed with MS Visual Studio 2005. I have chosen Ogre as the rendering engine coupled with OIS for input. No decision has been made yet regarding physics (leaning towards PhysX), sound (leaning toward FMOD), Networking (leaning toward Raknet), or scripting (leaning toward Lua).

Progress
Thus far, I have managed to create a base application class framework (not built off of Ogre's Example framework) that initializes Ogre and OIS and displays an empty scene. Not much to write home about yet, but considering it was less than a day's work and is the first thing i have done that is game-related in over 3 years - I am happy.

For the sake of completeness, here is a screenshot that is sure to impress:



Well, that is all for now. I need to get back to doing the work that pays the bills.

BrianH

BrianH

Sign in to follow this  
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!