news forum discuss wiki


Welcome Wolfenstein: Enemy Territory and Return to Castle Wolfenstein!

Posted on August 12th, 2010 by TimeDoctor

A wonderful thing happened today at QuakeCon. John Carmack announced the release of GPL source code for the Wolfenstein: Enemy Territory and Return to Castle Wolfenstein engines!

Work has already begun on iowolfet and iortcw!

This post will be updated as infrastructure is prepared.

Stop by the irc channels #ioquake3 #iortcw and #iowolfet on for more collaboration.

Bugzilla is configured at to allow entries for both iowolfet and iortcw.

You can now clone the Mercurial source repositories (Thanks to!):

If you’re new to Mercurial please check out this excellent guide.

Thank you id software!

40 Responses to “Welcome Wolfenstein: Enemy Territory and Return to Castle Wolfenstein!”

  1. Jordi V Says:

    Amazing news :D

    Do you know which approach will those projects take? Is the aim to convert rtwc and wolfet into ioquake3 “mods” so they can take advantage of the new features added to ioquake3? Or will they evolve on their own?


  2. SlickMcRunFast Says:

    Does this mean sound for ET on Linux? With no special tricks?

  3. Joshua Hublar Says:


  4. Bill Pickett Says:

    If this means I will be able to use my RTCW windows cd media with a future Linux client then hooray! Another game to join the few that are already there! :( I think I own every id game simply because they run on Linux!

  5. Josh Says:

    On behalf of the main competitive Wolf ET community…. how can I/we get involved in ioET

    we want to see ET updated but without any change to game play and preferably to still work with existing mods such at ETPro and other public mods

  6. Return to Castle Wolfenstein ed Enemy Territory open source - Forum GamesNation Says:

    [...] [...]

  7. morgan Says:


    Try starting the game then changing the sound bitrate to 48000, close the game then restart – you may now have sound.

    This is really good news et is one of the best games ever,

  8. Enemy Territory e Return To Castle Wolfenstein open source | Giovanni Raco Says:

    [...] sviluppatori dietro al motore ioquake3 (derivato dai sorgenti di Quake3) stanno già lavorando ai nuovi progetti iowolfet e [...]

  9. Olav Says:

    Thank you id, thank you Carmack, thank you ioquake community! This will be awesome, no… double awesome! :D

  10. swiftgeek Says:

    I have a little request: HD Ready / Full HD resolutions ;)

  11. mcx Says:

    Great ! Enemy Territory is broken on my MacBook (Late 2007) with Intel X3100 graphics card. This can help solve Mac problems :)

  12. rtcw ed et open source Says:

    [...]…e-wolfenstein/ [...]

  13. merethan Says:

    Wonderful. I were waiting for this for some time. This means proper 64bit & ALSA support (finally!). And of course the slew of improvements already in ioquake3, such as IPv6 and cmdline code completion. And, last but not least: Security fixes.

    Perhaps it is even legally possible to distribute the whole game, due to WolfET game files being free, as in free beer.

  14. Ontwikkelaar id Software maakt broncode Wolfenstein-games openbaar » Says:

    [...] dient uiteraard wel de gpl-licentie gerespecteerd te worden. Het team achter ioquake3 is inmiddels begonnen met het onderhoud aan de code. Het XreaL-project wil zijn geavanceerdere renderer samenvoegen met [...]

  15. Wolfenstein sous licence libre ! « Says:

    [...] id Software à Dallas (Texas), le directeur technique de l’entreprise a annoncé que Return to Castle Wolfenstein et Wolfenstein: Enemy Territory étaient désormais sous licence open source GNU General Public [...]

  16. texmex Says:

    @mcx Ever tried this?
    Worked for me! (same computer)

  17. RabidWeezle Says:

    Main thing I’m looking for is the ability to set the resolution to the widescreen and HD formats so I can play on my laptop and hdtv without being stuck at 1024×768. Also would be nice to get HDR and a built in media player but I’d sacrifice all that for modern sound system support for Linux and 64 bit support. Thanks ID for keeping the Open Source community active with your offerings. We can always count on you :) Also thanks to Zakk and Icculus for being Johnny on the Spot with setting up this page.

    Also looking forward to some crazy porting it to psp or something. Though that would be one big challenge.

  18. mcx Says:

    @texmex: I can’t download attachment :-( The selected attachment does not exist anymore.

  19. Tuxist Says:

    will rctw and rtcw merged i think is usefull

  20. jjormaa Says:


    Set “rmode -1″ and then the resolution you want with “r_customheght” “r_customwidth” and vid_restart after.

    My lines for 24 inch are
    r_mode -1
    r_customwidth 1920
    r_customheght 1200

  21. ponce Says:

    I just built a 64 bit version on slackware-current with the Makefile patches in bugzilla (have to add a -O2 -fPIC to the CFLAGS)

    it runs fine but obviously we can’t use any 64 bit punkbuster, nor 64 bit mods as neither exists yet :(

  22. Actium Says:

    Might be worth a shot, including these bugfixes into the etmain sources:

  23. bojo42 Says:

    Ralph Eastwood is also very active regarding SDL sound backend:

  24. Series Says:

    Better compatibility with Windows 7 would be fine. It has low fps in some maps due to the bad CPU cores utilization. A better netcode is a good idea too, less dependant of the latency.

  25. Ant Says:

    Has anybody gotten ET Pro to work with the open sourced engine? I tried and got ‘wrong version of ET.exe’, trying to open the ‘Host Game’ tab (all on Windows). I also tried to replace the version strings by the original ones, but no success, already put up a thread on the ET Pro forums, because this could be a big problem for those new engines (plurar as in there are more than this one, look for example at: ET-XreaL this could be a huge thing, together with ioWolf:ET).

  26. Dingo_aus Says:

    Is there a wiki for iortcw? I want to contribute some info, links etc but don’t want to muck up the ioquake3 wiki people want to keep them separate.

  27. Uncle Squid Says:

    Here are some instructions I wrote to compile and run iortcw on 64-bit Ubuntu Linux. These instructions assume that you’re using a 64-bit version of Ubuntu 10.04 (Lucid Lynx), which is no longer the most recent version of Ubuntu. I’m sure that you can compile iortcw on newer versions of Ubuntu with few modifications, but I haven’t tried it. Using these instructions, the game runs great for me on Ubuntu Lucid.

    The contents of this post are hereby placed into the public domain. I can’t provide support, so good luck!

    How to install iortcw on 64-bit Linux (Ubuntu Lucid)

    (1) Install build-time dependencies.

    # for 64-bit systems:
    sudo apt-get install nasm g++-multilib libstdc++6-4.1-dev libc6-dev-i386 g++ lib32stdc++6 libstdc++6 libxxf86dga-dev libxxf86dga1 libxxf86vm-dev mesa-common-dev libxext-dev

    # 32-bit alternate: install the following packages:
    # sudo apt-get install nasm g++-multilib g++ libstdc++6 libxxf86dga-dev libxxf86dga1 libxxf86vm-dev mesa-common-dev libxext-dev

    (2) Define some build-path variables.

    # the location in which you want to keep your installed copy of iortcw
    export INSTALLDIR=~/local/iortcw

    # a folder in which you will temporarily build iortcw
    export STAGING=~/temp/iortcw-staging

    mkdir -p ${STAGING}
    cd ${STAGING}

    (3) Grab the 32-bit versions of certain libraries and extract key files.

    # use a command like the following
    # in order to find out from where to download the packages:
    # apt-get -d -y –reinstall –print-uris install libxxf86dga-dev libxxf86dga1 | sed -e ‘s/_amd64.deb/_i386.deb/g’
    # alternately, you can download these 32-bit libraries using links
    # similar to the below:
    # the remainder of this HOWTO assumes that you have saved copies
    # of these 32-bit .deb files from the above URLs to $DOWNLOAD

    mkdir -p ${STAGING}/libs32
    cd ${STAGING}/libs32
    dpkg-deb -x ${DOWNLOAD}/libxxf86dga-dev_1.1.1-2_i386.deb .
    dpkg-deb -x ${DOWNLOAD}/libxxf86dga1_1.1.1-2_i386.deb .

    (4) Grab a copy of the iortcw source.

    cd ${STAGING}
    hg clone

    (5) Patch the source to search the 32-bit version of key libraries.

    (a) Edit the file Conscript-client:

    vi ${STAGING}/rtcw-sp/src/unix/Conscript-client +154

    (b) Manually apply the below patch. This changes the library search
    path such that we use the special 32-bit libraries that we downloaded
    and extracted in a previous step. Note that we’re adding a path
    for ${STAGING}/libs32/usr/lib .

    In this example, the path to $STAGING is
    /home/username/temp/iortcw-staging , but you’ll need to change this.

    — Conscript-client.original 2010-11-27 21:17:20.000000000 -0500
    +++ Conscript-client 2010-11-27 21:14:32.000000000 -0500
    @@ -151,7 +151,7 @@
    . $BUILD_DIR . ‘/unix/jpeglib.a ‘
    . $BUILD_DIR . ‘/unix/asmlib.a ‘
    . $BUILD_DIR . ‘/unix/inlinelib.a ‘
    – . ‘-L/usr/X11R6/lib -lX11 -lXext -lXxf86dga -lXxf86vm -ldl -lm’
    + . ‘-L/usr/X11R6/lib -L/home/username/temp/iortcw-staging/libs32/usr/lib -lX11 -lXext -lXxf86dga -lXxf86vm -ldl -lm’


    (6) Patch the source to work around a fatal string buffer overflow.
    The quake3/rtcw source did not anticipate the number/size of the
    GL_EXTENSIONS that would be advertised in 2010. In its unpatched state,
    rtcw will overflow a buffer while filling a string with the list of
    supported GL_EXTENSIONS, causing the game to crash. For our purposes,
    we can suppress the list of GL_EXTENSIONS from the string and
    avoid the overflow.

    (a) Edit the file renderer/tr_init.c:

    vi ${STAGING}/rtcw-sp/src/renderer/tr_init.c +847

    (b) Manually apply the below patch:

    — tr_init.c.original 2010-11-27 16:40:47.000000000 -0500
    +++ tr_init.c 2010-11-27 22:44:15.000000000 -0500
    @@ -844,7 +844,7 @@
    ri.Printf( PRINT_ALL, “\nGL_VENDOR: %s\n”, glConfig.vendor_string );
    ri.Printf( PRINT_ALL, “GL_RENDERER: %s\n”, glConfig.renderer_string );
    ri.Printf( PRINT_ALL, “GL_VERSION: %s\n”, glConfig.version_string );
    - ri.Printf( PRINT_ALL, “GL_EXTENSIONS: %s\n”, glConfig.extensions_string );
    + ri.Printf( PRINT_ALL, “GL_EXTENSIONS: (redacted)\n”, glConfig.extensions_string );
    ri.Printf( PRINT_ALL, “GL_MAX_TEXTURE_SIZE: %d\n”, glConfig.maxTextureSize );
    ri.Printf( PRINT_ALL, “GL_MAX_ACTIVE_TEXTURES_ARB: %d\n”, glConfig.maxActiveTextures );
    ri.Printf( PRINT_ALL, “\nPIXELFORMAT: color(%d-bits) Z(%d-bit) stencil(%d-bits)\n”, glConfig.colorBits, glConfig.depthBits, glConfig.stencilBits );

    (7) Build the iortcw source.

    cd ${STAGING}/rtcw-sp/src/unix/
    ./cons — release

    (8) Copy critical libraries into the build directory.

    cd ${STAGING}/rtcw-sp/src/unix/release-x86-Linux-2.1/out
    cp ${STAGING}/libs32/usr/lib/* .
    chmod a+x lib*.*

    (9) Create a 32-bit-library-friendly launcher script.

    cd ${STAGING}/rtcw-sp/src/unix/release-x86-Linux-2.1/out
    chmod u+x
    cat >< iortcw << EOF

    pushd ${INSTALLDIR}/
    ./ \$@

  28. fretn Says:

    I created to projects where I ported the ioquake system code to rtcw multiplayer and rtcw singleplayer, the makefile compiles on ubuntu linux 9.10, it also cross compiles windows binaries on the same system. and it compiles on mac os x 10.6.6

  29. TAXI Says:

    Is this still alive?
    I can’t see any status change in the bug tracker. -.-

  30. fretn Says:

    I’m a bit stuck with the player animations .. :)

  31. beza1e1 Says:

    So raedwulf-et seems to be the most promising version? Last change 2011-04-14:

  32. massimo soricetti Says:

    I would like to contribute and already downloaded all the hg repository and started peering through sources… but how do I commit my work? Is there a man in charge? A code reviewer or anyone that say what is good and what is bad? A developer team with guidelines and a roadmap?

    I saw ioquake3 makes many separate exe for separate tasks, maybe this should be the case here too?
    For now I’m focusing on Win7 64 bit port, since this is is MY system :-D Anyone can tell me how this community is organized?

  33. davn Says:

    I have the same question: how the new community of enemy-territory is organized ? That would be great to have a dedicated website, we would be able to share our ideas about new features.

    Firstly, that would be awesome to have an executable already patched, ready to install and play or even a .deb/.rpm. with sound already fixed. And an extra package for each mod.

    Thanks :)

  34. Jim Says:

    iortcw and iowolfet are dead. They were doomed to be forgotten right from the start. Too bad, would also have liked to contribute…

  35. R.L.133 Says:

    thanks to Uncle Squid. I had compiled the sources as the method what you had said and I got a work-fine compiled version of RTCW-SP without crash when facing flame zombie.

  36. Jason Says:

    Will someone by any chance make a modified version of the rtcw sp source code to be able to compile on vs2010 without any incompatiability issues?

  37. fretn Says:

    My tree compiles on vs2010:

    single player should work as before, if not contact me :)

  38. Wolfenstein Enemy Territory: Legacy Says:

    ET:L is based on ioquake3 and Raedwulf-et. Find more information at: or

    “ET: Legacy is based on the source code of the Wolfenstein: Enemy Territory which was released under the GPLv3 license. The main goal of this project is to fix bugs, remove old dependencies and make it playable on all major operating systems while still remaining compatible with the ET 2.60b version and as many of its mods as possible.”

  39. merethan Says:

    Alright, for those who are new or a bit confused about this stuff, here’s what I’ve found out in the last one and a half days investigating the current status quo of wolfet (I have not really looked into rtcw).

    It’s Oktober 4′th 2012 at the time of writing, and here’s the deal: Wolfet and quake3 are two very similar codebases as both of them are idTech3. A crucial difference between them though, has nothing to do with it’s code. This difference is the license they have been released under. Quake3 has been released with a GPLv2 license, but wolfet was released with GPLv3 (thank Zenimax for that). Code-wise there’s a lot of work already done for ioquake3 that could be easily integrated into iowolfet, but this would create the very quirky situation of possibly having two licenses onto one codebase (or parts thereof). All of this might be coming with nasty legal situations and what not. This is a risk Icculus did not want to take.

    So, because practically nobody likes doing the same thing twice (taking work from ioquake3 would create a license mess) nobody cared about fixing up iowolfet.

    At Icculus at least. At numerous other places around the web, projects sprung up. The major ones were wolfet-merge, raedwulf-et, XreaL-ET, openterritory and etlegacy. Most (if not all) of them didn’t really care about mixing GPLv2 and GPLv3 code. Nobody would care anyway and legally it’s most likely fine too. Most likely. Icculus however wants 100% certainty, that’s why work is now done elsewhere.

    wolfet-merge was an attempt to move the wolfet-specific stuff into ioquake3, as ioquake3 had a much cleaner codebase already. This proved to be easier said than done. Which led to the next project.

    raedwulf-et tried to patch up whatever problem showed up and occasionally borrowed something from ioquake3. This project ran for a while and was forked a few times too, so it was fairly successful. It is now dead, however, and has a few loose ends that need to be tied up.

    XreaL-ET is a significant overhaul of wolfet. The engine internals have become a whole lot like idTech4 and bits of the game content have been modified too (think of sharper textures and shiny gimmicks in maps to show off the engine). It’s not very active and kind of kills the nostalgia, but looks nice.

    openterritory was a fork of Xreal-ET and was meant to become what openarena is to ioquake3. This project was short lived however as no artists could be found.

    etlegacy is a fork of raedwulf-et. At some point in raedwulf-et’s development, Ralph “Raedwulf” Eastwood began replacing SDL in favor of glfw. Not everybody liked this so the codebase was forked and began an another life. It has been under constant development ever since and is still an active project. In fact, it is the most active wolfet project I have come across so far.

    To wrap this whole thing up for you: If you want the smoothest but authentic wolfet experience or if you’re eager to join an active project and development team, you should most likely go here:

    A good resource for understanding the idTech3 engine can be found here: (It is about quake3 but gives a good idea of the inner workings of wolfet and rtcw too.)

  40. laremah Says:

    could someone make a native FreeBSD port. the Linux one is useless without Nvidia hardware, but I think with KMS it could get decent framerates.

Leave a Reply