Previous Blog Next Blog
Prev/Next Blog
by date

Plan for Roelf "TheRoDent" Diedericks

Plan for Roelf "TheRoDent" Diedericks
Name:Roelf "TheRoDent" Diedericks
Date Posted:Jan 06, 2004
Rating:Not Rated
Public:YES
Comments:YES
RSS Feed:GarageGames Blog feedor Subscribe with .
Profile Page:View profile page for Roelf "TheRoDent" Diedericks

Blog post
Linux to Win32 cross compiling, User Mode Linux hosting services, IRC bots, and changelists. The menial tasks of a buildmaster...
Well, I've gotten a brand new UML host at www.jvds.com and I must say their service is just incredible.

For $35 a month I get my own virtual linux machine, with root access and full control, and unmetered bandwidth. Hosting doesn't get much better than this. (For information about User Mode Linux, visit http://user-mode-linux.sourceforge.net/). It's a way to run a linux kernel as a user-mode process on a Linux machine, which makes it perfect for Virtual servers/hosting such as at jvds.com

I've reworked Legends' build system completely and we are now entirely Unix based. (Yes, even for win32 builds)

We have a bot hovering in our IRC channel, that can initiate builds, setup our rsync directories, remove stale locks from the CVS repository etc, etc.

And, we're cross compiling the win32 version using GCC 2.9.5 on the abovementioned Linux system. It absolutely rocks. A single trigger can now build debug binaries for win32, and linux, gather up all the scripts, and prepare a complete installation subdirectory for the game.

Buildmastering isn't a spectacular job, but it is something that needs doing, and doing it right is worth all the time it takes. It makes new releases, patches, and fixes so much easier.

Our cvs changelists are now also updated in realtime, using a MySQL database, so anyone doing a CVS commit gets their message posted at the top of the changelist immediately, without having to run huge, time-consuming log parsing scripts. If you'd like some more info about how this was setup/done feel free to mail me...

All in all, a good start to this year. Legends is starting to take some serious shape now, and people are actually enjoying playing the game, online.

To all at GarageGames, and the GG Indie community: Hope this year kicks ass for you too!

Recent Blog Posts
List:01/06/04 - Plan for Roelf "TheRoDent" Diedericks
10/30/03 - Plan for Roelf "TheRoDent" Diedericks
09/02/03 - Plan for Roelf "TheRoDent" Diedericks
04/22/03 - Plan for Roelf Diedericks

Submit ResourceSubmit your own resources!

Phil Carlisle   (Jan 06, 2004 at 12:35 GMT)
Hey! I like! why not work up a resource for the build system?

Build systems are probably one of the biggest area's of modern game dev that havent been explored enough (IMHO).

I really need my linux box up and running :)

Jeremy Noetzelman   (Jan 06, 2004 at 18:07 GMT)
Using gcc to cross compile is actually pretty easy to do. Unfortunately it bloats the executable size fairly significantly. There's several good resources out there on how to do it.

J

Ben Garney   (Jan 06, 2004 at 18:12 GMT)
Build systems are typically unique to a project because of the project's needs... that said, a build system in a box would sure be handy. :)

It's mostly just a matter of (on Linux) learning how to do it by hand, then putting it all in a script, then tying the script to a website or cron job... Damned useful, not very exciting, though. Like plumbing ;)

Benoit Touchette   (Jan 06, 2004 at 21:49 GMT)
Ben: Yeah sounds like what i do day in, day out </insert cynical laugh> ...

Phil: i wrote up a resource on cross compiling a while back. very useful i find, though some people think that it creates bigger binaries (they are right LOL), but in the end it doesn't really matter when you get used to having a single build platform to work from.

Roelf "TheRoDent" Diedericks   (Jan 09, 2004 at 10:12 GMT)
I think sometimes people look at the raw output binary and are shocked at the size, but the release binaries still contain symbol information, which is what causes the massive size increase. Symbol information isn't required for a release version.

If you strip the GCC Linux binaries after compilation, they end up being 680kb bigger than the MSVC binaries (for Legends at least).

Yes, this is larger than the resulting MSVC binary, but I'm not too worried by that kind of a size increase, due to the different ways in which the two compilers work.

I find that GCC produces less "sparse" code (ie more gaps between functions), but the resulting assembly per function looks near identical to MSVC's output. In some cases it's better optimized for speed, but naturally larger in actual assembly.

Also, the default -finline-functions CFLAG included with Torque's conf.GCC2.WIN32.mk tends to inline functions much more often than MSVC would, resulting in bigger code, but less function call overhead (Read speed improvement).

With compression, the size difference becomes a moot point, and if you really want you can use an executable compressor to compress the resulting binary.

You must be a member and be logged in to either append comments or rate this resource.