Monthly Archives: December 2007

Nice Comparison of Free-Software Shooters

On http://www.linux-gamers.net/smartsection.item.81/comparison-of-free-software-shooters.html you can find a very nice comparison, which is pretty extensive and to my shame I have to admit that I haven't played many of them - I really ought to try War§ow soon.

Nexuiz gets a pretty good review (in your face, AlienArena :P ) but still note:

While most of the game is cleaned up far beyond its Quake 1 roots, it is still lacking in presentation with the menu being very circa 1990s.

/me sighs

I officially suck...

This Evening's Worklog

Today I've decided to work on BSS again - finally.

And I've even come up with a few neat bullet points to help me clean-up the codebase and I really feel like sharing them with the world today (although everybody can come up with them in a few minutes, too, but hey - now I can say that you've only copied my thoughts :-P ):

How to fix and clean-up stuff quickly:

What do I want?
  • remove unnecessary code
  • clean-up the design
  • untangle tight couplings

How do I do that???

Hack & Polish

  • look at a specific code section
  • rewrite it quickly while keeping the behavior the same
  • don't look at the overall design concepts - to KISS (to keep it simple STUPID)
  • as soon as the new code actually seems to work, go and polish it slightly (to make it readable again)

Repeat these steps a few times..

Now look at the "overall picture" and try to identify common patterns and remove duplicate code again by writing generic helper code - but this time keep it decoupled and make it less messy!

Rinse and repeat...

OK... sounds great? Yes, it does! And it even works to some degree. I've tried it this evening and although I - like always :-( - lose too much time browsing around and getting lost in the WWW, I still made some progress.

Here's my worklog as proof (and to annoy Joshua a bit ;-P):

18:32 starting to work on BSS's cleanup
19:20 removed some Sploidz-specific code from the items module
20:00 removed more files, tracked down Joshua's new coder (wtf didnt he tell me?!?) and found out that two files were missing in the SVN repository (added them from a backup that I have with me here)
20:30 changed bits of EventFSM and t2dFSM
21:00 reworking BlockItem
21:45 BlockItem now uses a FSM
22:45 BlockGame now is decoupled from Grid (gamelogic-wise) and BlockItem from BaseItem (the latter might be reverted later though)
23:00 trying to rewrite BlockGame's setupItem function again but deciding that it's pretty late

Enough for today. One more Dexter episode for me now (actually the first today) and then good night!

Good night,
Black

Blender2md5 Exporter

Update: I've (sadly) worked on it some more today and there's a new version online. You can find it on icculus again: http://svn.icculus.org/darkwar/trunk/base/scripts/Latest interface

For the past 4 days I've been working on and off on some changes to der_ton's blender2md5 exporter - big thanks to him for developing the exporter in the first place - and in doing so I've finally learnt Python, which is an awesome scripting language to say at least.

I haven't really changed much of the exporter's internal workings (only a few clean-ups here and there which hopefully didn't break it) because I mainly concentrated on GUI changes. fleeky, a nice circus fellow who is DarkWar's only active modeller at the moment, pestered me long enough to add support for exporting multiple animations from Blender to md5, that I finally gave in and started working.

Thank God, Python's tutorial page is excellent, too - especially 'Learn Python in 10 Minutes', which really does a very good job at showing you many language features very fast - which arguably isn't useful for total newbies but it gives a nice overview and invites you to play around.. and is really helpful when you start to code because you already know about some "advanced" language features early-on and can look them up when you think that they might help you solve a problem more elegantly (in contrast to not knowing about the features at all).

Another tip for Python beginners: get ActivePython and Komodo Edit (or even the IDE if you have the money and/or are a student and willing to go through their registration process, which I might if I'll happen to work more with Python). Both are free and will get you started with Python coding quickly. They really helped me a lot while learning and coding the new features.

Anyway, so what did I code? First let's take a look at the original exporter interface:Old blender2md5 Interface

My first changes were about adding a simple batch system that allows you to set the properties for one animation and mesh to export and then specify a batch file and append them to it. Then you can export all "jobs" from the specified batch file or directly specify it and export from it:

Interface with first change set

This was ok but it didn't feel that nice - since you'd have to manually edit the batch file if you wanted to change export properties, etc.

Today then I've decided to spend one last day on the project and rewrite most of the GUI:
it now displays all default buttons at the bottom and allows one to insert as many animations to export as one wishes. It displays the animations each with their own target filename, start and end frame and action dropdown menu in a table and now also exports all other settings to settings files (batch files don't really describe it correctly).
Even better I've added support for automatically saving the settings to Blender's .blend files which should really help automate exporting a lot.

Just open the scene file, open the plugin, hit export and you're done!

Right now I have disabled (commented out) exporting camera animations because they don't really fit anymore, but if there's a need for them, I'll put them back in).

And finally, here's the new interface:

New Blender2md5 Interface

Give a try. You can find the python script in Darkwar's repository: http://svn.icculus.org/darkwar/trunk/base/scripts/
Mirror for now: http://home.in.tum.de/~kirschan/blender2md5.py (out-dated but I'm leaving it in case icculus.org is down again and someone badly needs a mostly working exporter)

Either copy it into your Blender plugin directory or manually open it in Blender's text editor and run it with Alt/Meta-P.

Enjoy and Merry Christmas!

Alientrap Application Email

Funny, I've just found the original email (at least the text) that I've sent to Lee Vermeulen when I applied at Alientrap after I saw a screenshot of Nexdm something on flipcode - RIP :-(

Note that this dates back to: Saturday, 23. August 2003, 19:25:14

I'll just tell the truth :

I'm almost 16 years old and live in Germany, but I do understand matrices, etc.
I have 8 years of programming experience but only 2 in c/c++.
I just learnt OpenGL, so don't expect me to be a John Carmack.

Now let's get to the positive aspects.
I want to learn, learn, learn - so give me a problem and I'll work until I've got a solution.
Math is not a problem to me, I like it pretty much (especially when I finished calculating some formula).

I've got a adsl flatrate, so I can always search the internet for additional informations.

Perhaps I could be tester, or help finding bugs, etc., until I learnt more opengl and other programming technics.

Sincerely yours,
Andreas Kirsch

Also observe the cute mistakes - which I'm still making today, too >_>

But anyway, there were forty applicants and only three 'who survived the "look at the code and try to implement one of the features on the TODO list" test, out of 40+ applicants?' (LordHavoc in IRC). Two of them got jobs in the game industry shortly afterwards, so I was the only one left out of 40 applicants!

Well guys (the 37 of them), you clearly suck, because you didn't even try. I have tried and although LordHavoc pretty much dismissed all of my changes as useless or not committable, I still got onto the team and I honestly have never regretted it.

So always: try your best, even if it looks as if you're failing, because you're not the only one and your attempt already is a success compared to simply giving-up up-front!

Now enough of that, enjoy your weekend!
Greetings,
Black

PS: Always a nice read - http://www.thejonjones.com/2005/08/24/smart-people-are-dumb-failure-is-awesome/

xkcd \o/

Today I was waiting for the care-taker to arrive and take a look at some installation issues and while I was waiting I decided to browse a bit around in xkcd. And well... there are a few links that might worth sharing - and I'm not going to link Cat Proximity again this time!

And here are the other ones that I've found interesting while randomly browsing through the archive:

So enough of that, there's more work to be done!

Cheers,
Black

I have a problem that I cannot explain - I have no reason why it should have been so plain...

Hump yard (copyright: trains.com)I have a problem and a solution, but the problem is nice, so lemme tell you about it first..
The problem is as follows:

We have got 31 tracks and 10 trains, Each train is so big, that between two there needs to be at least one free track.
Now, how many valid combinations do exist to place the 10 trains on the 31 tracks?

Read on if you think that you have got the solution and want to compare it with mine (no guarantee that I've got it right though..)
Read more »

Geckos here and Geckos there - Gecko's everywhere!

Oh a new update and again it's going to be short - probably or at least not proof-read..... Ok, so what about the last screenshot? Well a small update - with moving bits! \o/

Click it! -- Gecko in Darkplaces with text injection

This is nice, isn't it?

And again this is for EDU2 - an undisclosed, well, maybe it's kinda disclosed now, but you still don't know what it is about, wannabe project after another wannabe project from the Univserity of Jena, which happen to work on with another very talented (it seems!) programmer, who happens to work on Crystal Space, too (hint hint..).

For what it's worth at least I get to spend some time on DarkPlaces again which is a lot of fun because it feels like going to back your roots, since it all started with DarkPlaces more than 4(?!) years ago. I can't believe it's already been that long ago, but that's life..
So even if the project turns out be a failure (chances are 70% if you ask me - you'll get a more elaborate opinion soon), at least and this is the most importan, I work with LordHavoc on something again (semi-again since we only talk about design issues now and then but this is already an improvement).
However, what is not an improvement but rather very very awkward, is that I'm wasting so much time with it and actually I'm really horribly neglecting a project (BSS) I've been working on for Joshua, whom I owe more than just a lot. And I feel bad for it. Oh! How bad I feel! Which reminds me to spend the next days on his project and finally get something done again...
On other news (or rather similar news) university (the one I actually attend in Munich) is killing my time, too - I have a 30+ hour week at university and add to that the time I have to spend on homework, lecture preparation and wrap-up and I have probably and quite certainly less spare time (it converges to minus zero) than my favourite work-aholics at SplashDamage (yes, you even work on weekends!). Now with the additional projects this actually results in severe sleep deprivation but, well, that's been my choice and in February it'll be over for sure.

So... now I've been talking and writing a lot of thoughts down and I think that's enough for today. More news and screenshots from our multi-touch-screen thingy and BSS(!) soon.

Stay awake and tuned,
Black