Monday, November 1, 2010

Tech that WORKS: My Legendary IBM Thinkpad

A few years ago, when I entered my first year at the Karel de Grote college, all IT students had to buy their own laptop to use during the lessons. I bought an IBM (Lenovo) thinkpad. Not the sexiest laptop (damn, I swore to only use this word when referring to women, but now I failed). It's just a black, business-like laptop, and nothing else. It doesn't try to be anything else. But it's damn good at what it does, and that's the important part.

"Technology doesn't always need to be the latest brand new gadget stuff to be in my liking."

During the first years of its life, the thinkpad was really put to the test. For 3 years, it travelled almost every day from the rural town of Wuustwezel to the big city of Antwerp in my backpack.
Shamefully I must admit that I often moved it around while it was powered on. I can remember a few cases where it was dropped, or hit by something. Cables were constantly plugged in and out. Its videocard got pretty hot when I used it to play 3D games for hours. Its harddisk was under heavy load with every other install of school-related development software like IDEs, Database Servers, Webservers, and Virtual Machines. Its processor, RAM and motherboard were constantly working to get everything done.

Around me, laptops of my fellow students started to fail. Power cords and adapters got broken. Screens started to fall apart. Memory got corrupted. Keyboards started to break. Or their casing just got all messy and worn off. In some cases, the poor machines just got dumped by their owners, who wanted the newest and flashiest stuff. And who can blame them? Because obviously, times pass and technology advances. For quite a while now, I'm using a fancy new pc that runs on Windows 7.

But the old thinkpad is still in service. I haven't replaced it with another laptop. I carry it around the house, or my girlfriend uses it to do some work when she's here. The thinkpad still runs after 4,5 years without ever reformatting. It still has the same Windows XP installation, stripped of all graphical effects for maximum performance. It's still fast enough, and it even runs some "heavy" games of a few years ago. There are no signs of any wear and tear. No broken keys, no loose screen that sways in all directions.

There was one minor defect during its entire lifetime. Suddenly it started overheating. I solved this by opening the thing up, blowing some air into it, and closing it back up. Surprise, surprise, it worked! Probably something was blocking a fan.

In the video below, you can see a a guy that pours water over his thinkpad, which keeps on running fine. I obviously didn't try that myself, but it wouldn't surprise me at all. There are similar videos as well.

Anyway, let's hope this machine keeps on running for a while. But if it suddenly decides to cross the river and enter laptop-heaven, I totally understand. If not, this thing is very welcome to stay with me for eternity, as it will always have a place in my "tech that WORKS" memories.

Thursday, April 8, 2010

6 PC game install and menu annoyances

*UPDATE: Corrected some errors*

Time for a little rant. After playing some recent PC games, some things got on my nerves. No gameplay annoyances this time - They all have something to do with installers and menus.

Note: My own game failed on some of these points - my (lame) excuse is that it was a no-budget casual game.

English, please

Don't ever install anything in dutch on my computer. I beg you. Yes, dutch is my mother tongue. No, I do not watch any movies with dutch overdubs. In my opinion, movie-cowboys in Texas should not be dubbed in German and Nazi's should not speak English with a German accent... And for the same reason I will never, ever play a shooter in Dutch, where teammates yell "De Fijanden komen eraan" with a horrible accent. Just give me a list to select my preferred language when installing, and we're ok.

Note: If there was a "Matroesjkas" videogame in native Aaantwerps, I'd be honoured to play it. "Iedereen blijve staan of ik knal de cravate zen flosj eraf!" - or something like that.

Don't spam

Don't bug me about playing online, registering online, starting extra downloads, creating an online profile or any of that crap unless I specifically ask for it (by navigating to the multiplayer menu for example). Don't install any services, tray icons and/or download managers unless I command you to. I already bought the game - There's no possible gain in spamming and bugging me.

Don't pretend

If I need to manually restart the game after configuring my video resolution etc ingame, why even bother putting that option there? Just make a pre-config windows dialog or something. It may not be as fancy, but it saves me some time.

No labyrinths please

It's cool to have a fancy menu screen. But the main purpose of a menu is to be easy to navigate. Both with mouse and keyboard. So keep all your rotating 5-layered labyrinth clusters for your own entertainment, don't put them in a consumer product!

Try first, enjoy later

I like cool intro movies and intriguing stories. But before I immerse myself in the game experience, I want to make sure the game runs smoothly, that my controls are correct and just try out the gameplay for one minute. So if you don't plan to include a skirmish/freeroam/practice mode, at least give me the option to skip those intro movies! Preferably by pressing escape, space or enter. This prevents me from bashing my keyboard and other hardware.

The way out

Finally: If I press Escape, this means I want to pause the game and/or go to the menu (or go to a higher menu level). Nothing else. Ever. If I'm in a hurry, and I press Alt + F4, this means I want the game to exit immediately. Without warning. Without saving. If that doesn't work, I'll go with ctrl-alt-delete, uninstall the game and eat both the dvd and the packaging with ketchup.

Wednesday, April 7, 2010

Mission successful!

Newsflash: The game/experiment is over!

We had 99 participants... Damn, so close to 100! :) Anyway, the minimum of 60 was easily achieved.

This means my work is over... Which is not the case for my partner in crime Laura: The experiment was part of her master thesis, and she's currently processing all the data and writing the paper. Since all the data is looking good, "mission succesful" is the right thing to say.

Now the experiment is over, it's no longer possible to submit the survey or your highscore. I removed the download from moddb to prevent people from trying to fill in the survey in vain. But in a couple of days/weeks, I'll have a version of the game online with all the survey stuff stripped out.

Again, thanks to all the people who played and/or told others about the game!

Thursday, March 11, 2010

So how's our online experiment going?

So far, we've had 36 survey participants in the past 4,5 days. Not a huge number, but not bad either... Let's just hope we can keep up the pace and get around a 100 participants over the next three-four weeks.

Of course, we still can't give away what the survey is all about. Let's just say, the collected data is looking good so far. 

Additionally, we've had 772 pageviews on moddb and 140 game downloads.

You can view the highscores here: To get yourself in that list, you have to complete the game on 'hard'. To be the best, you need to beat Sheldor The_Conquerer, who has an impressive highscore of 445 points. Difficult, but not impossible... 480 points is the maximum!

Our thanks go out to Davy for giving us some publicity from his blog, and to all other people who participated and told others about the game! We really appreciate the effort.

If you haven't had the time to play yet, hurry to and give it a try! And spread the word to all your friends, family, coworkers, neighbours, facebook friends, blog followers, twitter followers, myspace buddies and random people on the bus and on the street.

Sunday, March 7, 2010

You can finally play it!

Well, after some delay (exactly one week), the game is ready!

You can download the game from Check out the screenshots and other info, or navigate straight to the 'downloads' section. After downloading, unzip the archive and follow the instructions in the readme (or just click Setup - next - next - next... if you can't wait any longer).

One more important note: Please do not give away the 'clue' of the survey to other people after you've played the game, and answer the questions as honestly as possible. We need as many 'good' participants as possible.

Thank you for participating, and have fun! :-)

Tuesday, March 2, 2010

BDM vs the bug from hell, episode 1.

Just a short note. My little XNA Game was planned to be released... today. Too bad, in the last few days, a new bug has emerged. Not just *A* bug. The most horrific bug I ever faced. Almost impossible to debug and real bitch to test. And so damn annoying it kinda ruins the fun of the game.

Although I tried everything, from changing every possible parameter to bashing my keyboard until it started to continuously produce 'qkqkqkqkqkqkqk' until I rebooted it (I didn't even know that was possible!), it's still not fixed.

Which implies that the release is delayed until that bitch is fixed. The bad news: no clue how long it's going to take. The good news: once it's fixed, everything is immediately ready for the release.

Well, let's hope I'll have more luck tomorrow. :-)

Tuesday, January 26, 2010

Busy, busy, busy...

I'm very busy with a lot of stuff at the moment... As a result, you won't see too many posts here from now until the end of februari ("most important things first", you know).

After that, I'll be back at full strength: First of all, my XNA game will be promoted. We need as many people as possible to play the game and fill in the survey. Currently the goal is to get at least 100 players/participants in one month. Will it succeed? To be honest, I don't have a clue. :-)

Peace out


Sunday, January 17, 2010

Why I switched from Game Maker to XNA

As you might have noticed by reading this blog, a little hobby of mine is to play around with software, with a specific interest in casual game development. For quite a long time, I used a free tool called "Game Maker" for this purpose. It's a free (the lite version anyway) tool to make games for windows. It's really simple to use; Most of the work can be done by clicking and dragging - there's absolutely no low-level programming required. But recently, I moved on and started focussing on XNA game studio instead. Read on to find out why.

1) Scalability

As with many drag and drop type tools, development speed and quality are very closely related to project size. For smaller games, Game Maker might be the top of the bill. You click "new game", and your rendering system, collision detection, level editor and whatnot are all in place. What better start could you wish for?

But then, after creating some smaller games, you move on to the real work. You want to create a game with multiplayer capabilities, a physics engine and a custom level editor. And you want to work cooperatively with a team of say 5 persons. *Dang*. The streamlined tool starts getting in the way. It's perfectly understandable; you can not logically expect a large game to sit comfortabely in the simple architecture of a tool that's designed to appeal to beginners. Whether you want to do one tiny thing that the built in level-editor does not support or you want to use complex inheritance trees or do advanced AI debugging... You'll collide with the boundaries sometime. And if you do, there's not really a way back (see point 3 below).

I know very well that creating advanced games is possible with tools like GM - Perhaps a thousand times cooler than anything I'll ever manage to put together. But from a coding/architecture point of view, I still say no. Full-scale projects require a different approach. Although you CAN make them with a tool like game maker, you're better off using something more custom. Because at one point, development will slow down, and you'll pay the price.

With XNA, I'm using C# and all possible tools to make coding easier, faster and more robust. I can architect the game code the way I want it. And if it turns into a mess, it's my own responsibility.

2) Gap between GML and professional experience

In my day job, I develop business applications in C#, using Visual Studio and Resharper. For game development, I use exactly the same toolset. I already had many moments at work where I could use something I learned during game development, and vice versa. I really like this interaction; it's nothing I'd easily give up. And if I'd choose to work with game maker and its scripting language (GML), that's exactly what'd happen.

You might say "It's better to know many different languages/environments". In another context, I might agree. But the gain of learning a specific scripting language that is used nowhere else is rather small. It's like learning a new language that you can speak only to one person.

3) No way back

Additionally, I find it hard to accept the fact that once you choose to use game maker, you're bound to keep using it. Once you start dragging and dropping and scripting, there's no possible way you can say: "Let's extract the code and move to [some completely other platform]". You have a bunch of scripts that are not meaningful in another environment. Most likely, they're not really clean and well tested either. You'll just throw them away and start from scratch, instead of converting them. While I'm quite confident that I can do exactly that last thing with XNA. Converting C# code to Java for example, is not that hard...


So let's wrap this up. In it's own way, game maker is a brilliant piece of software. Brilliant in the way it allows people with little experience to create games, have a lot of fun and learn many things about game development. Really, there's not one tool I'd rather recommend to people who are new to programming but want to create their own little game from scratch. But as any other tool, game maker needs to be used in the right perspective.

I used the learning perspective, but now I'm ready to move on. For actual development, that is. Because recently, I discovered another perspective to use GM... I still use it to create prototypes for my games. This requires some more explanation - I'll talk about this practice in a later post.

Monday, January 11, 2010

My XNA Game: Progress update

60% Complete!

Yup, that's right. I'm more than halfway done. So it's time for some more info on the game, in addition to what I wrote in this post.

The game's protagonist, as seen in this draft, is a little but slightly overweight bird. The main objective of the game is to collect as many points as possible by picking up bonusses and moving objects from A to B. You have to evade dangerous objects such as spikes, because they can destroy the object you are carrying and/or harm your bird. If you run out of health, you respawn at your birdhouse. Each level has a time limit, so you have to rush a little if you want a highscore :-).

Level 1 is set in the forest, where the bird lives. It's an easy level that allows the player to familiarize him/herself with the controls and game mechanics. Level 2 is set in the city and has an increased difficulty. The actual playing time is around 10 minutes for the two levels combined. The controls are easy: just the arrow keys and the spacebar. Sounds ok for an all-age casual game, right?

Final (?) words on the installer

I decided to go with the visual studio setup project for the installer. While not being 100% convinced of its superiority, to say the least, I had to pick something and go with it. I tested the setup on a number of windows PC's with XP, Vista and 7, and had no problems so far. The installer downloads all missing dependencies.

There's just one last issue with the installer: the setup project creates two files - a .msi file that performs the actual install, and an .exe that checks the prerequisites. This leads to two problems...
  • For the download, I should create a zip file that contains both files. This seems slightly unprofessional. Players expect to download a single installer file which they can immediately execute after dowloading.
  • The players should in some way be forced to run the .exe file. If they run the msi file instead, the prerequisites are not checked. They can install the game even if the .NET framework or XNA runtime are missing. If they subsequently try to launch the game, they'll get a very nasty error message.
A solution would be to use a zip self-extractor, that runs the .exe file after extraction. Sadly, many web resources report problems with this approach as well. So I'm well underway but not yet done with this...


As the tests have proven, the game runs smoothly without framerate drops, so that's one less thing to worry about. But there's still a lot of work to in the next 1,5 months...

P.S: Still no screenshots, since there's some heavy graphics rework being done at the moment...

Monday, January 4, 2010

Dealing with bad sleeping habits (step 2)

Read the introduction at

 Since the day I posted that sad story about struggling to get out of bed in the morning, I took action.

This is the new way my day starts: My stereo system wakes me up for about 50% most of the mornings. Nothing new about that; in the old scenario, this was the point where I turned over again to start snoozing for a very long time. Now, it's just a final warning that allows me to turn over one last time and prepare for the upcoming horror...

Because there's no escape anymore; every night, I put my cell phone on maximum volume on the other end of the room. Even though I really love my warm bed, the TITITITITI-sound of my cell phone alarm is just so annoying that I can't do anything but jump out of bed and turn the damn thing off. So there I stand, fully awake before 7 a.m. Now that's what I call a "brute force" technique!

Let's make that my first official good intention for 2010: keeping up this new habit :-)

And if I fail, I'll install one of these:

Happy newyear!