fun

Teeworlds - a fun, fast-paced, open-source, online multiplayer shooter

Teeworlds CTF screenshot

I have no idea how such a great open-source game as Teeworlds has been able to exist without me hearing about it until recently.

Teeworlds is a fast-paced realtime multiplayer shooter. You control a small "Tee" which can hold various weapons (hammer, gun, shotgun, laser-rifle, rocket launcher, ninja-sword) while running and jumping around frantically on the map, trying to frag as many other Tees as you can before you're killed by some other guy. Easy, eh?

Teeworlds server list screenshot

There's are many game servers to choose from, as well as various game modes (death match, team death match, capfure the flag and some unofficial "mods"). You can join servers on the Internet, or create your own server, be it a public one or a LAN server.

Installation

Usually I would suggest apt-get install teeworlds, but for now the packages in unstable are an older 0.4.x version, whereas upstream released a much-improved 0.5.1 version. I have already filed a bug and I'm optimistic there'll be a new version in unstable soon.

In the mean-time however, you can manually build the game from source via:

 $ apt-get install zlib-dev libsdl1.2-dev
   (maybe also libgl, libglu, and python, if not already installed)
 $ wget 'http://teeworlds.com/trac/bam/browser/releases/bam-0.2.0.zip?format=raw' -O bam-0.2.0.zip
 $ wget http://teeworlds.com/files/teeworlds-0.5.1-src.zip
 $ unzip bam-0.2.0.zip
 $ unzip teeworlds-0.5.1-src.zip
 $ cd bam-0.2.0
 $ ./make_unix.sh
 $ cd ../teeworlds-0.5.1-src
 $ ../bam-0.2.0/src/bam release

Teeworlds stats screenshot

Running the game

 $ ./teeworlds

You'll obviously need a working OpenGL/DRI setup (check if "glxinfo | grep direct" says "Yes"), otherwise the game will be way too slow. In case you experience graphics glitches and distortions, first exit the game, then:

 $ vi ~/.teeworlds/settings.cfg

Change the "gfx_noclip 0" option there to "gfx_noclip 1" and restart the game.

Teeworlds DM screenshot

Firewalls

If you use a local firewall as I do, you need to open at least ports 8300-8303 (UDP), even better 8300-8310 for more choice in game servers:

 $ iptables -A OUTPUT -m state --state NEW -p udp --dport 8300:8310 -j ACCEPT

Further resources

Have fun!

Rebuilding the whole Debian archive using the Open64 compiler

I got bored recently, so I rebuilt the whole Debian archive on one of my machines. To make this not a completely useless excercise, I used the Open64 compiler instead of gcc and created build logs for your perusal.

So what is Open64?

From the Wikipedia page:

Open64 is an open source, state-of-art, optimizing compiler for the Intel IA-64 (Itanium), AMD Opteron and Intel IA-32e architecture. It derives from the SGI compilers for the MIPS R10000 processor. It was released under the GPL in 2000, and now mostly serves as a research platform for compiler and computer architecture research groups. Open64 is licensed under the GPL. Open64 supports Fortran 77/95 and C/C++, as well as the shared memory programming model OpenMP. It can conduct high-quality interprocedural analysis, data flow analysis, data dependence analysis and array region analysis.

Open64 installation

The installation is pretty easy fortunately:

$ wget http://ovh.dl.sourceforge.net/sourceforge/open64/open64-4.0-src.tar.bz2
$ tar xfvj open64-4.0-src.tar.bz2
$ cd open64-4.0
$ export TOOLROOT=/opt/open64
$ make
$ make install (as root)

I think you need gcc-3.4 (gcc 4.x is not yet supported), and for some odd reason you also need csh as one of the install scripts seems to use it.

It would be nice if someone could package Open64 for Debian, I definately don't have the time to maintain such a huge package (a whole maintainer team would probably be good here).

Rebuilding the Debian archive

There are several possible ways (and tools) to rebuild the Debian archive; I've used pbuilder/cowbuilder with the rebuild scripts from Bastian Venthur, which are now included in pbuilder.

First we need to install the required packages, setup a cowbuilder base chroot, and get the list of packages:

$ apt-get install cowdancer grep-dctrl wget devscripts sudo
$ cowbuilder --create --distribution lenny --basepath /var/cache/pbuilder/testing-base.cow
$ cp -r /usr/share/doc/pbuilder/examples/rebuild .
$ cd rebuild
$ ./getlist lenny

Now we add Open64 into the cowbuilder chroot and fix up the chroot by pointing the gcc/g++ symlinks to Open64:

$ cp -a /opt/open64 /var/cache/pbuilder/testing-base.cow/opt
$ chroot /var/cache/pbuilder/testing-base.cow
$ cd /usr/bin
$ mv gcc gcc.orig
$ ln -s /opt/open64/bin/opencc gcc
$ mv g++ g++.orig
$ ln -s /opt/open64/bin/openCC g++
$ exit

In addition, we set the CC and CXX environment variables to Open64, which will make 90% of all (autoconf-using) packages automatically use Open64. We need a small script for that:

$ cat c.cfg:
export CC="/opt/open64/bin/opencc -m32"
export CXX="/opt/open64/bin/openCC -m32"

Now edit the buildall script. Change the Debian mirror used there (optional) and make it use our c.cfg script by adding the --configfile /path/to/rebuild/c.cfg option in the "pdebuild" line.

We can now finally start building the archive:

./buildall list.lenny.i386 lenny

You can also run multiple buildall instances at once to speed up the archive rebuild on SMP/multicore machines, and you can even abort the command and simply restart it later. The script will continue where it left off.

Results

The whole rebuild (with 2 instances of buildall running at the same time) took ca. 9 days on an AMD64 Athlon64 X2 (dual core, 1.8 GHz each) machine with 1 GB of RAM.

I really should have used something like apt-proxy to speed up the rebuild and save some bandwidth, but I read about apt-proxy too late...

All log files from my rebuild are available for detailed analysis if anybody is interested (you can browse the logfiles online or download all of them as tarball). I didn't perform any detailed analysis, just some rough numbers here:

  • Succeeded package builds: 8425
  • Failed package builds: 2509
  • Total number of packages rebuilt: 10934

If anybody does some more elaborate analysis, please let me know.

Google Earth

OK, I heard lots and lots of stuff about Google Earth so far. Yesterday, I actually installed it on some not-so-free-OS box and gave it a try. Two things are floating on my mind now:

  1. w00t!
  2. This is the scariest shit one can imagine!

I "browsed" different parts of the world and got more and more fascinated... and scared. For instance you can see the Statue of Liberty, and if you zoom in enough, you see people walking around on liberty island! Nice on the one hand, major security and privacy problem on the other hand.

There are loads of interesting ways to use Google Earth, e.g. over at Google Earth Hacks. I'm afraid most of my spare time during the next few days has just crumbled to dust... Now, if they would only port it to Linux, that'd be really nice...

Debian Quiz

So I took the Debian Quiz, too.

The result is not too good:

You got 36 of 41 (87.8%) right.
Pretty good. Some answers were still wrong, though.

Who else doesn't remember how often Branden Robinson ran for DPL?

Fun With IRC

While reading parts of "What's the Best Geek Joke You Know?" on Slashdot, I stumbled upon this snippet from an IRC log from bash.org:

t0rbad> so there i was in this hallway right
BlackAdder> i believe i speak for all of us when i say...
BlackAdder> WRONG BTICH
BlackAdder> IM SICK OF YOU
BlackAdder> AND YOUR LAME STORIES
BlackAdder> NOBODY HERE THINKS YOURE FUNNY
BlackAdder> NOBODY HERE WANTS TO HEAR YOUR STORIES
BlackAdder> IN FACT
BlackAdder> IF YOU DIED RIGHT NOW
BlackAdder> I DON"T THINK NOBODY WOULD CARE
BlackAdder> SO WHAT DO YOU SAY TO THAT FAG
*** t0rbad sets mode: +b BlackAdder*!*@*.*
*** BlackAdder has been kicked my t0rbad ( )
t0rbad> so there i was in this hallway right
CRCError> right
heartless> Right.
r3v> right

Syndicate content