Introducing the “Welcome to Xojo” Bundle!

New to Xojo and looking for guidance? We've put together a terrific bundle to welcome you! Xojo Bundle

This bundle includes six back issues of the magazine -- all of year 20 in printed book and digital formats -- plus a one-year subscription (beginning with 21.1) so you'll be learning all about Xojo for the next year. It's the perfect way to get started programming with Xojo. And you save as much as $35 over the non-bundle price!

This offer is only available for a limited time as supplies are limited, so hurry today and order this special bundle before the offer goes away!

Article Preview

Buy Now

Issue 4.2


Wolfenstein: Enemy Territory

Issue: 4.2 (November/December 2005)
Author: Brian Rathbone
Article Description: No description available.
Article Length (in bytes): 4,265
Starting Page Number: 10
Article Number: 4207
Related Web Link(s):


Full text of article...

So you want to create an online, multi-player, first person shooter, eh? There are a few open source REALbasic projects that can get you started, but they may fall short of large-scale commercial products.

Have you ever wished you could see how a dedicated team of professionals would handle the challenges involved with such a massive endeavor? Well, now is your chance. The folks at Splash Damage, id Software, and Activision have released the source code for Wolfenstein: Enemy Territory.

Powered by the Quake III engine, Wolfenstein: Enemy Territory provides smooth visuals and excellent multiplayer support. The game-play goes beyond the usual death match by incorporating objective based missions, where players must work together to achieve common goals.

Wolfenstein: Enemy Territory was originally intended to be a commercial project, but when the retail product was cancelled, they decided to give it away -- literally. The game is freely downloadable, and the Visual C++ project files are also available. Visual C++ 6 is recommended for greatest compatibility, but the project is said to work with the .NET version of C++ as well. There are restrictions on the creation of derivative works, but the code can serve very well as a learning tool.

Since Wolfenstein: Enemy Territory is free and open-source, there is no central bank of game servers provided by the developers, instead, players can host their own servers. This, in itself, is a technical challenge: how do players find all the available game servers? This is handled quite nicely by a master server, which collects heartbeats from running servers and provides list data to the in-game server browser. There are already a few third-party master servers, as well as third-party server list viewers. Of course, if you know the IP address of a particular server, then you can connect directly. Servers can be created as dedicated servers, or they can be "listen servers" which allow the user to host the game and play on the same machine.

There are many great features that can be examined, and it's great to learn from the pros. See how anti-lag measures have been implemented to allow improved game-play for those on slow connections, or check out the way the PunkBuster Anti-Cheat system from Even Balance, Inc. has been implemented. For game developers, this is simply a treasure-trove of inspiration. Armed with source and compiled code, you can easily identify the strengths and weaknesses of the game's implementation, and then you can reference the actual code behind it.

While the game is available for Windows, Mac, and Linux, I found the performance on my PowerBook G4 to be sub-par and barely playable. On Windows, the performance is stellar, and I have heard that Linux performance is excellent, though I was unable to test it for myself due to my lack of supported hardware.

Whether you are looking for techniques used by the pros, or you just need to do a little fragging after a long session of bug hunting, Wolfenstein: Enemy Territory is sure to please.

End of article.