Author: Matthias Gall

Windows Genuine Advantage

Microsoft now requires its Windows users to prove their right to download updates by verifying the serial number and the activation status. Within 24 hours, this check was passed over, as BoingBoing reports. But it looks to me like this one is very easy to fix for MS, maybe it’s even a debug flag which was forgotten.

Privacy and Copyright on ICQ/AIM

I’m sure it’s an old hat for the most of you, but I read about this for the first time and found it unacceptable (and I can’t believe I really overlooked this when I agreed to the terms of service). From the ICQ Terms Of Service: You agree that by posting any material or information anywhere on the ICQ Services and Information you surrender your copyright and any other proprietary right in the posted material or information. You further agree that ICQ Inc. is entitled to use at its own discretion any of the posted material or information in any manner it deems fit, including, but not limited to, publishing the material or distributing it. From the AIM Terms Of Service: You or the owner of the Content retain ownership of all right, title and interest in Content that you post to public areas of any AIM Product. However, by submitting or posting Content to public areas of AIM Products (for example, posting a message on a message board or submitting your picture for the …

Weekend Gamedev

I’ve done a huge refactoring of our game project, DVW, over the weekend. One reason was that I could not see the GUI code anymore. It was a mess! Most of the stuff was about four years old, and it looked like 40 years old or so. So I was spending the whole Friday night to rearrange things, move attributes and methods up to the parent class, remove some redundant stuff, and I even killed about 1000 lines of code by simply removing some GUI controls which were not used any longer and which were buggy as hell. The main reason was that I am currently writing the main menu code which is completely controlled from a Lua script. I didn’t want it to be hardcoded, because I don’t want to be the one who needs to do all the fine tuning with all the visual effects we’re going to have. We have people who are much more talented with this detail work. I wrote a state machine which supports multiple states at once, so …

Why patents suck

I found a great example why (software) patents suck on the IGDA homepage, and an oppressive feeling arises when I imagine what lawsuits like this mean for game developers and software engineers in general if the claim is admitted. A short excerpt: There is an ongoing patent litigation case in the Eastern District of Texas of interest to all developers because of how broadly the Plaintiff appears to want to apply the claims of the patent. In this case, American Video Graphics, L.P. (“Plaintiff”) has sued sixteen game publishers, alleging that these defendants infringe AVG’s [patent], “Method and Apparatus for Spherical Panning.” […] Plaintiff has identified over 1000 accused games, which Plaintiff alleges infringe their [patent]. IGDA is now desperately searching for prior art to invalidate the patent. Read the full story here.

Exceptions and Stacktrace in C++

Today I was discussing about how one could implement a stacktrace in C++, where one has not the luxury of Thread.dumpStack() or Throwable.printStackTrace(…) of Java. The general C++ approach one finds often is to create a dummy object on the stack at the beginning of each method which receives the current file and function as constructor parameters (using the __FILE__, __FUNCTION__ and __LINE__ macros) and stores them, i.e. increases a list pointer and saves the const char* at the resulting position. As soon as the object gets destructed at the end of the function, the list header pointer is decreased again. So, my first implementation looked like this: The first test with an exception I threw somewhere deep in the call hierarchy of my program revealed what one has to remember about exceptions: objects that exist on the stack at the time the exception is thrown are ordinary destructed. So, the d’tor of my CallStack object was called, too, and current was not pointing to where I had expected. So I had to mark the …

GTK Font Size

Although I’m not a Linux geek, I play around with it from time to time. I have a Gentoo installation on my notebook. One might argue about the different distributions, but I found this one to be the most intuitive among the ones I tried. Today, I updated to the current Eclipse 3.1 M5a milestone, which I use at work, too. I had no trouble with this version yet, and if it’s good enough for work, it’s fine for using it at home, isn’t it? I did not use portage, but downloaded the GTK 2 binary instead. One thing I disliked was the huge font size. I was able to customize most font sizes in the Eclipse options, but the main menu remained in its original way-too-large size. I found out that this was some kind of GTK default font, so I searched for a way to change it, and found a little handy tool called gtk-chtheme. I downloaded it using emerge gtk-chtheme and was then able to change this main font easily. Now everything …

Bureaucracy rocks

I am currently working on a review of Diomidis Spinellis’ book “Code Reading – The Open Source Perspective”. I found a nice quote at the beginning of chapter five, “Advanced Control Flow”: “It is necessary for technical reasons that these warheads be stored upside down, that is, with the top at the bottom and the bottom at the top. In order that there may be no doubt as to which is the bottom and which is the top, it will be seen to it that the bottom of each warhead immediately be labeled with the word TOP.” (British Admiralty Regulation) Had a good laugh when I read that 😉

Christmas Code Contest

We held a little gamedev contest between christmas and sylvester, and I handed an entry in, too. The goal was to create a little game using graphics from Reiners Tilesets only. This is a screenshot of my entry. The programming language was unspecified, and so I decided to write a little MMORPG (Minimal Online Roleplaying Game) in Java. I had no time to test it in the Internet and found out that it’s nearly unplayable online, later, but it’s quite nice for LAN playing. The goal is to collect all gems on a map in a limited time, and to beat all collected gems out of your opponents with your sword. The entry and the other contributions, all with full source code, are available for download on the #gamedev.ger contest page. Sidenote: I recognized that there seems to be a difference in the behaviour of the KeyboardActionListener under Windows and Linux, but I won’t investigate this issue further. If you have strange effects while trying to walk around with your character, you most likely just …

Download of the day

Microsoft is always good for a laugh. If you ever wondered why your Snow White & the Seven Dwarves DVD won’t work when watching it under Windows XP, it might be because you missed to install this patch. A friend of mine recently pointed me to this one and I had a good laugh. Don’t bother about IE security issues, download a Snow White & the Seven Dwarves DVD patch instead!

Welcome

Hey, I am Matt! I’ve built dozens of spare time projects, started a couple of companies and even made decent money from it. And I’ve always thought about writing about it. Somehow, it never really worked out. I still haven’t given up on the idea to write about the journey, so I hope to share a couple of more stories with you some day on my blog. While you’re here, please check out my ever incomplete portfolio.