The BuildBot

October 8th, 2007 by colsen

Our build servers were turned back on over the weekend. They weren’t being used because we have drastically changed how our projects are built. Perforce and Visual Studio files have been replaced with Mercurial and CMake. So, I spent the weekend reconfiguring the buildbot setup Tony had on the servers. I had never configured buildbot before and I was surprised to find it was so easy. I only had to change the repository location and build commands on the buildmaster server. I didn’t have to touch any of the build slaves.

This time around we’ve got both linux and win32 versions of C2 building any time we want. It used to be very difficult to manage both versions of the engine. On win32 we used Visual Studio projects and on linux it was scons or make files. Any change on win32 had to be manually added to the linux project files and vice-versa. Even worse, making a change on a different platform usually meant rebooting into another operating system. With CMake there is now one build file for all platforms and it’s easily edited in a text editor.

The buildbot setup has been extremely beneficial for my linux oriented workflow. I can work on the engine on linux and have buildbot compile it for win32 without the incovenience of booting into windows myself. Judicious unittests catch many issues that can be rectified without having to run the engine proper. In the worst case I rdesktop into our win32 build server from linux and run Visual Studio to fix any build problems. Unfortunately the build server doesn’t have the graphics hardware required to run the engine outright so I still have to boot into windows to test the actual game.

Posted in Uncategorized | No Comments »

Develop Conference

September 29th, 2007 by colsen

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.

Posted in Uncategorized | No Comments »

New Tools

September 15th, 2007 by colsen

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.

Posted in Uncategorized | No Comments »

Compiling on win32 for free

September 5th, 2007 by colsen

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.

Posted in Uncategorized | No Comments »

I’ve been busy

August 30th, 2007 by colsen

I moved into a house with Gavin, Tony, and Nate in Fitchburg. I’m free of the drudgeries of the crumbling UW-Madison campus, it’s boisterous inhabitants and parking tickets. The rent is the same as I was paying on campus except I now enjoy a huge house, yard and there’s a park across the street.

The partially finished basement has become an amazing rec-room. A new 7.1 Surround Sound system, courtesy of Tony, compliments my 1080p TV nicely. BluRay movies on the PS3 are awesome, and games are even better. We’re thinking of replacing our aging media system with LinuxMCE. There are some cool videos that show off it’s amazing features.

Which brings me to Linux.

My installation of Windows exploded quite a while back and I took the opportunity to get back to Linux. In the past I’ve always found myself crawling back to windows for some reason. This time, however, I’ve been very satisfied.

Tony turned me on to the wmii window manager. It’s got all the features of my old fvwm config with all the features I never wanted to even attempt configure in fvwm. Tiling window management and the dmenu have greatly increased my efficiency while working on my various programming projects.

Which brings me to my new game engine.

Catharsis was growing out of control. Trying to allow for every possible use of the engine caused the source code expand to over 60,000 lines of C++. The entire engine had become much too bloated and difficult to work with. There were also features I had never gotten to adding and would be difficult to integrate into the engine in it’s existing state.

When I switched to linux I decided to write a streamlined and economical version of Catharsis named c2. I wanted to make the engine usable and small. C2 is about 2,000 lines of code, 5,000 when you count utility libraries. Those 5,000 lines of code amount to an engine of about the same capability as Catharsis plus a few extras. I’ll leave the details of c2 for another post.

Which brings me to BioShock: Go play it!

Posted in Uncategorized | No Comments »

« Previous Entries Next Entries »