Project announcement: Vocabulary trainer

This year I followed a course in Spanish. Ever since I was a kid, when I had to study, I invented ways to not have to study. When learning a new language, what better excuse could I find than to develop a vocabulary trainer? πŸ™‚
This is how the voctrainer project got started on the eve of the first semestrial exams. It was very basic and non-functional for other people, but at least I felt I didn’t entirely waste my study time. πŸ˜‰ After the exams, development stalled but at the end of the year, once again, I managed to program instead of study. I believe it is now in a usable state, at least, when you know how to use it. πŸ˜‰

Let me explain the purpose of this program and why I couldn’t just use existing soft.

First of all, it doesn’t replace existing soft (in my world: Parley and KWordQuiz) but rather supplements it. Parley is my preferred vocabulary trainer so I use it to enter my words and train in dedicated mode. Dedicated training takes time and requires you to focus and not do anything else. Wouldn’t it be cool if you could train your vocabulary during the day while working or eating or on your cell phone while watching tv? It’s what I like to call “passive learning”. =)

This is where voctrainer comes in. It is a small light-weight tool dedicated to training (no entry/grading) without requiring your dedicated time. πŸ˜‰
Currently, its main features are:

  • Kvtml format: use the vocabularies you created in Parley/KWordquiz. Only the enabled (with a checkbox) ones are trained.
  • Automatic mode: cycles through your word list using configurable time delays, no interaction needed. Put it in a corner of your screen.
  • Popup option: useful when you want to be welcomed by a new word every hour/day, for example. Good to keep you in the game during holidays.
  • Manual mode: go through your word list at your own pace using mouse/keyboard, optionally skipping solutions.
  • Auto font size: useful when you put it full screen so you can still read it from a large distance while cooking/eating/doing the dishes..
  • Written in Qt: runs on all platforms without loads of dependencies (like KDE)
  • Lean and mean: you should be able to run it off your smartphone (didn’t try this scenario, since I don’t own a smartphone yet πŸ˜‰ ) Uses QXmlStreamReader for fast yet memory conservative parsing.

Currently, configuration is done through the config file (located in $HOME/.config/Mattiesworld) but a gui dialog is coming. I also plan on supporting 2 configurable profiles: normal and fullscreen.

VocTrainer is open source and still fully in development over at gitorious.

VocTrainer

Game review: Mirror’s Edge

During the Steam Holidays (xmas 2009) I picked up Mirror’s Edge for a few bucks. I definitely do not regret. Mirror’s Edge stands out by its intriguing graphical style and gameplay. I totally dig the visual style based off primary colors like blue/red/white. See it for yourself.

Story

Although there is a story, I wouldn’t call it exactly a major part of the game. It is fun to have a goal, but let’s face it, it could’ve been better (especially the ending) and it’s not what makes Mirror’s Edge shine (as proves the DLC content which has nothing to do with the story πŸ˜‰ ). In a nutshell, you are one of those runners delivering messages/packages for the “rebels” in a society where all rights on free speech/freedom have been abandoned. This guy your parents knew got killed and now your sis is framed. Rescue her. πŸ™‚
Everything takes place in “the city”, which proves to be a nice environment for stunt jumps and the like, and with plenty of variation in location. From time to time, you’re treated with a surprise, like for example a train thrill ride. πŸ™‚

Atmosphere

In general, the atmosphere of the game is really great. The active modern city presented in an clean abstract art way really ends up right. Visual effects are being used where adequate: blooming sun when you climb from a ladder in the shadow on the top of building. HDR effects: when you kick in a door and enter a building your eyes have to adjust to the darker environment. Vice versa when you escape out of a building. Narrowed vision when running at top speed. Motion blur when something happens in slow-motion.. Nothing special, but it makes the experience complete.
On a funny side-note, this is also the first FPS game I encounter which has REAL working clocks! I was in an office with a clock on the wall and noted the time. Later, when I came by again, time had passed, in real-time! πŸ™‚ Clocks are often just textures, not in ME!
The music sets the exact right mood. Although I understand a song at the end of a game is fashionable nowadays, I still can’t believe they decided to also have “Still Alive“. Is this some kind of joke..? πŸ™‚ Some kind of me-too? πŸ˜‰

Combat

It is really refreshing to have a game where melee combat is your primary weapon. This does not mean the enemy doesn’t use fire arms or that you can’t use them (although you first have to overpower an enemy to take it πŸ˜‰ ). Since weapons are not a main thing in this game, I was surprised to still find quite a collection along the way: pistol, light machine gun, shotgun, heavy machine gun, sniper, … 11 in total! However the game does try to encourage you not to use guns. First of all, it is useless to attack more than 2 people in a frontal way without weapon. Second, when you pick up a gun, you walk a lot slower and can’t do special jumps. Third, there is no ammo in the game. πŸ™‚
Most of the times, if there are only 2 bad guys, you can take out one by surprise, get his gun and use it to kill the other. If there are more, you first have to get hold of a machine gun or just do what you do best: run. πŸ™‚
Basically it is a lot more fun to take out a guy matrix style by wall running and then perform some special kick jump/strangling move than to shoot them from a distance. Talking about distance, there is one time you can really use that sniper gun you just got hold of to clean the area before infiltrating a facility. But they don’t overdo a certain game mechanic so it doesn’t get repetitive.

Mirror’s edge uses a minimal HUD. In fact, there is no HUD. πŸ™‚ You can be shot a few times and it turns (too) red when you’re about to die. There is an option though which, when enabled, indicates the next recommended jump by highlighting the related objects in red. I must say, quite useful, especially for beginners. πŸ™‚

Criticism

It’s a console game.. πŸ™‚ You can’t save when you want, they somehow didn’t get the refresh rate totally right, the mouse pointer does not fit the visual style and is barely visible like it is has been taped on afterwards, …
I was also disappointed to learn that the achievements websites are talking about are actually XBOX achievements and have not been ported to Steam! Would’ve been extra fun..

Everything happens from the 1st person’s POV, which helps create an immersive feel with the environment. The camera moves along when bursting through a door, climbing a ladder, etc. So they have this great engine (modded Unreal 3 engine) which they can use to create cut-scenes, yet from time to time most (but not all!?) cut-scenes are suddenly in a different style, i.e. drawn. For example (compare with the above in-game video):

I don’t understand.

There is also some kind of Max Payne slow-mo button, yet I fail to grasp its usefulness. Reportedly, it would aid in disarming enemies because you can only do that at the right moment during a fairly short timespan. But then again in the heat of an attack, I don’t feel like slowing down or having to choose the right moment to slow down and then have to wait until the slow-down effect has finished. πŸ™‚
Another thing is the runner packs. Somehow, they don’t add up. It’s clear it’s fun to find them, but then what..? In the extra’s (which you get when you finish the game), you can read in the comments of the concept art that originally those bags had a bigger role. Made me understand better, but also made me curious. πŸ™‚

Bang for buck

The game is not too long (less than 10h) but I don’t mind short games since otherwise I don’t get to finish them. πŸ˜‰ It does have some replay value as you can time trial the existing levels. It is actually fun to do the time trials of the levels because now you know all the moves/possibilities without having to think too much. You can actually play the game like in the demos/trailers then. πŸ˜‰ The time trials are in fact exactly the same as the story mode (enemies inclusive), but you get a timer in the top right of the screen.

There is also a global online ladder but I didn’t try that as you have to log in with your EA account for that (which of course, I don’t have handy when I’m in a game).

DLC

For the die-hard fans, there is also some DLC released in January 2010, which is cool, if you live in a console world. πŸ˜‰ As a pc gamer, I’d rather try out some fan-made extra content which is popping up on moddb. It’s going slowly though, as DICE does not officially support custom maps. But as usual, some smart peep figured it out.

Another interesting moddb project is “Mirror’s Edge: Source“. Basically some guy saw the Mirror’s Edge trailer and decided to try out a remake (a premake actually, since it was before release of the game πŸ˜‰ ) using Valve’s Source engine. To quote the author: “I did all of the modelling and mapping by sight while pausing the trailer in parts that I was working on.” It turned out quite well, too bad he never finished his work. πŸ˜‰ Of course, mimicking the graphical style would certainly not be sufficient to recreate the feel of a game like ME.

If you are looking for wall papers or the latest ME news, I can highly recommend http://mirrorsedgefans.fr. It contains every single news fact there is to know about ME and has every ME wallpaper/fan art/concept art known to mankind in its gallery.

Conclusion

In an era in which FPS games rule, I believe DICE came with quite a innovative almost daring concept: a fine mix of first person melee combat and puzzles. Combined with a unique graphical style and chilly music, they certainly made a remarkable game. There is definitely room for improvement here and there, but the result may certainly be seen. In the meantime EA has already announced a sequel, so let’s hope they have learned a few lessons. πŸ˜‰
All-in-all, I can highly recommend this game! I will remember it for it sure.

Note: I got reminded of my almost finished review when I saw Mirror’s Edge was again on sale for 3.74EUR! If you hurry, you could still get it. Probably only a few minutes left πŸ˜‰

Update 3 apr 2012: read my thoughts after a replay on hard.

Configuring an ad hoc network on suse

Since I don’t own a gigabit router but I do have Gbit NICs on my laptop and main computer, I set up a peer to peer network for optimal performance when I have to transfer a large volume. I don’t do that often so I end up losing time every time. So I decided to write a small blog post about it. πŸ™‚ My concrete setup is transfering between a windows and linux machine.

In windows, when the network adapter is configured for DHCP but it can’t find a DHCP server, it automatically falls back to link-local addressing. On IPv4, this is the 169.254.0.0/16 block. (Apparently, Microsoft likes to calls this APIPA.)
However, on my opensuse 11.1 box, it seems not automatically configured for that. When you open Yast -> Network Settings, edit the network interface and enable “zeroconf” under “dynamic address”.
Yast network zeroconfig configuration
All easy peasy and intuitive.

But now comes the catch! After applying these settings, it works… but stops working after a few secs/mins! I checked the messages log and found out the dhcp client tries to restore the old lease if it doesn’t receive an offer. This causes the zeroconf address to be invalidated. So, before enabling Zeroconf, be sure to release the lease first. You can do this as follows:

sudo dhclient -r

Possibly if you keep the DHCP+Zeroconf setting in yast, you can just release the lease when you want to setup a local network and it would fallback to zeroconf. Didn’t verify it though (had to go online to document this ;))