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 ;))

Duke it out with “David MeShow”

I would hardly call myself a rock fan, yet from time to time, I need my “shot” simply to bring some balance, I guess. πŸ˜‰ But who does not love that Megadeth aka Duke Nukem theme song?
So once more I was listening to it through Youtube when I stumbled upon this “best guitar improvisation ever” thing. 13M hits, mm.. πŸ™‚
Check this out. Gotta love this guy πŸ˜‰

I read in the description of some other vid he uses EZDrummer for his drums but I’ve seen him doing some neat stuff with the keyboard too.

Monitoring resources

Every linux user is familiar with (h)top to monitor processes for cpu usage. Its spin-off tools are a lot less commonly known: iotop for monitoring io,iftop for monitoring network traffic, ftop for file monitoring.. (am I missing any other?).

Another interesting one, particularly if you’re on a mobile device, is powertop for monitoring power consumption. I remember when Intel announced its work on a smaller energy footprint for Intel devices back in 2007 but forgot about it since my kernel didn’t support it yet anyway. πŸ™‚

Although the research was focused on Intel hardware, it is quite useful for other cpu’s like AMD. In that case, powertop is not able to calculate the power usage, but it can still show the number of wake-ups per second per process and how much time is spent in each power state.

Repair grub after windows install

Last week I installed Windows 7 RC (which still works these days, btw) on my brother’s computer so he could practice Autodesk Inventor at home. Since Windows stubbornly still denies the existence of any other OS, it consequently wipes the MBR and installs its own boot loader. Bottom line, we need to reinstall the GRUB boot loader.

There are several ways to do that, but since my brother uses openSUSE, I will use the openSUSE install dvd:

  • Boot from the install dvd
  • Select “Rescue system”. This will give you a console. (I also tried the automatic repair option, but that somehow did not work..)
  • log in with root. no password is asked.

From here on, it is not openSUSE specific anymore:

  • Run “grub”. It starts scanning your disks and after some time you should get a grub> prompt.
  • (Optional) Find the partition where grub is installed:
    grub> find /boot/grub/stage1
  • Set grub’s root partition (example: first harddisk, first partition):
    grub> root (hd0,0)
  • Execute grub installation into MBR:
    grub> setup (hd0)
  • If you would have wanted to install into a specific partition instead of the MBR, simply specify the partition instead:
    grub> setup (hd0,0)

You can find all this info and more in the grub manual.

Flushing the dns cache

As we all know, under windows we can flush the DNS cache with

ipconfig /flushdns

But what is the linux equivalent command? It is so obvious, yet I somehow keep forgetting it. πŸ™‚
Under linux, the standard way to have a daemon reload its configuration, is sending a SIGHUP signal. In case of the name service cache daemon (nscd), this implies flushing its cache!
So you could use the following command to flush the DNS cache if you’re using nscd:

pkill -1 nscd

Digicorder getting TiVo like features?!

When you live in Belgium, being ripped off for broadband internet and telephony is your inevitable fate. It’s like there is some conspiracy to keep Belgian people away from the information highway. However, it seems after decade(s) of suppression, there is a little light at the end of the tunnel. πŸ™‚ This month brings interesting news, especially if you’re a Telenet customer.

First of all, my data limit gets doubled next month and even tripled in July. Second, they finally got rid of the silly mail box size (50MB), although the silly web space without php/mysql stays. πŸ˜‰

Third, and that’s why I started this post actually, is the possibility to program your digicorder (digital PVR) from wherever you are using a website (Dutch announcement)! I’ve always wanted that. πŸ™‚ I won’t go into details why the digicorder still sucks big time (and once more, Java and “slow” seem to go together, painful coincidence? ;)), still, I welcome any improvement. πŸ™‚ Way to go Telenet!