Archive for September, 2007

Develop Conference

Saturday, September 29th, 2007

I just recently found out about Develop Conference. It seems to be a European Game Developer’s Conference. They’ve posted some of the presentations, so it’s worth checking out.  One presentation I found particularly interesting was Deferred Rendering in Killzone 2.

New Tools

Saturday, September 15th, 2007

In developing C2 I wanted to look at libraries and development tools I don’t normally use.

I’ve always hated developing an input system that works on both linux and windows. Looking for a cross platform input library I was surprised to find that there are actually two really good libraries: OpenInput and Object-oriented Input System (OIS). OpenInput is a C library while OIS is (suprise) object oriented. I went with OIS because it has a large community and it fits really well into C2. The library supports keyboards, mice, and joysticks out of the box. The only thing that’s missing is an XInput binding for proper Xbox360 controllers on win32. However, it is pretty easy to add a new input device to the OIS system.

I started C2 under Subversion and everything was good…then I switched to git and everything was great. Git is a decentralized version control system. Instead of having one repository that everyone checks their code into, everyone has their own copy of the repository. Everyone can check into their own repository and then push and pull changes from other repositories. The ‘central’ repository is just the one that everyone decides to push their changes onto. One way to think about it is that everyone works in their own branch and then decides to merge their branch into the main repository. This is a real benefit because you can work on and check in code that may not work without disrupting anyone else. I check it constantly and I really like this feature. Also merging in git is very simple.

The only problem with git is that it has no win32 port. Which wasn’t really a problem for me until I started the win32 version of C2. I was completely unable to check in code I was working on in windows. I found Mercurial which is basically the same as git but is well supported on win32. Mercurial also uses SVN commands and has SVN style output. Mercurial also has this sweet reference card that I enjoy.

Finally, something I haven’t looked into too much yet is a cross platform sound library. In the past I’ve used OpenAL however I’m going to look at Fmod for C2. Fmod looks pretty powerful, I’ll let you know how that goes.

Compiling on win32 for free

Wednesday, September 5th, 2007

I installed Windows XP over the weekend so I could get a win32 version of C2 compiled and running. I couldn’t find my copy of Visual Studio 2005 Professional Enterprise Edition (or whatever the hell it’s called) so I opted to install Microsoft’s free compiler. I discovered that Microsoft offers Express (free) versions of it’s Visual product line complete with IDE. The process to get everything up and ready to compile win32 apps is a little involved but entirely worth it.

1) Install Visual C++ Express
2) Install Visual C++ Express SP1
3) Install the Windows Platform SDK (yes, the Windows Server 2003 one)
4) Configure Visual C++ Express to use the Platform SDK

On linux C2 is built using CMake so I wanted to use CMake, if possible, to build on win32. As it turns out, using CMake on win32 is painless. I installed the CMake windows installer and ran CMake on C2 expecting nothing to work. It quickly found Visual C++ Express and dumped out a few Visual C++ project files. I could edit and compile the project from the Visual C++ IDE. The CMake files were even added as dependencies so project files would be regenerated when a CMake file was modified. After a few hours of fixing up platform specific issues I had a win32 version of C2 running without problems.

I don’t know exactly what is missing from the Express version of Visual C++ but it does everything I need it for.  So far, I’m very pleased.  The best part is it’s completely free.