Alastair Reynolds — On the Steel Breeze

I finished Alastair Reynolds’ “On the Steel Breeze” yesterday and I really enjoyed it (but then I also liked “Pushing Ice”…). It’s set after the events of “Blue Remembered Earth” but is supposedly readable stand-alone, but to be honest I wish it hadn’t been so long since I’d read that because there were a ton of cross-references.

This book seems to have more a Culture vibe to it (and it seems oddly optimistic), and starts to move events from Solar-scale in the last book to something slightly larger. It starts off a bit slow, but then turned into a real page-turner for me (and only rarely employed the usual “cliffhanger at end of chapter followed by perspective switch / narrative break” strategy).

There’s quite a few coincidences and odd choices about resource allocation (elephants…), but none of these dragged the story down in my opinion. An improvement on “Blue Remembered Earth” in every regard (and that wasn’t bad at all to start with).


Tomb Raider (Re-reboot?)

I received my copy early and have been looking forward to playing it over the last few days a whole damn lot. I ended on 91% completion, then came back and got 100% (which I do rarely – two challenges are a real bitch (Mine Sweeper and Sun Killer)).

Really enjoyed it, and it looks awesome (especially considering how old the 360 is by now). Combat feels good for the first time in a Tomb Raider game, but I’d still prefer more tombs / temples / puzzles. When I got the achievement for “All Optional Tombs completed!” I shed a little tear, because reviews said later tombs were better and I expected a few more, but they were all short single room deals. I could also do with less semi-QTE scrambling across disintegrating bridges / burning buildings / whatever. Leave that to Uncharted.

Somewhere between an 8/10 and a 9/10.


I quite enjoyed this. I think in parts it tries a bit too hard to be ‘artsy’, but it is a compelling, mind-fucking first person puzzle game. The art mostly screams ‘coder art’, but it kind of works.

Sometimes it’s easy to lose the progression path and (re-)find the place where you’re expected to progress now, and I’m sure I completed some puzzles by accident (or because of bugs) that I wasn’t meant to be able to complete yet.
Also, controls can be iffy due to the first-person nature (e.g. distinction between drawing into the ‘away from you’ direction and up/down).

Took me about 16hours to reach the end (without having completed everything obviously). 9/10 for me.

Halo 4

Some thoughts on the single-player campaign (because fuck paying for Xbox Live Gold with the amount I’ve been playing the Xbox recently):

  • Great art and rendering technology
  • Impressive engine cut-scenes (especially characters and skin-shaders / lighting)
  • Difficulty was manageable but quite frustrating on Heroic (yes, I’m terrible). After switching to Normal I actually had some fun. The shield scaling for Heroic feels slightly off, everything just takes way too many hits to kill (I’m looking at you, Watchers). Also, it feels as if the AI cheats and moves enemies as soon as I have a nice shot lined up. Heroic and Legendary would probably be fun in coop though.
  • I never thought I’d say this, but I feel that there’s too many weapon options. Human, Covenant and Prothean versions of pretty much everything. Of course there’s subtle differences between them all, but a lot feel rather pointless.
  • The levels themselves were not particularly memorable, but the reconfigurable geometry was a nice idea (although I’m not sure it really added anything). The Forerunner architecture reminded me of the style of P.N.03, a game I still dearly miss a sequel to. Too often the flow degenerates to “Go somewhere for some reason that only makes sense if you played all games 5 times and read all the books, and then do the same thing 2 to 3 times to progress” (go through portals, push buttons, activate light-bridges). Mostly push convenient buttons / Cortana insertion points.
  • As alluded to in the previous point, it feels to me as if the story is getting worse and worse with each game (ODST and Reach sort of aside): Halo 1 and 2’s was fine, simple Humans against aliens (with the Flood sort of popping up) and some mystery as to the forerunners / Halo rings. Now we have all sorts wawa that feels more like Matrix 2 and 3, instead of 1 (Reclaimer, Mantle, Composer, Didact, Librarian, …). All this Jesus-complex, 1000s of years leading up to Master Chief (and his armour!) and then on-the-spot gene-manipulation bullshit just went over the top. The mystery (and awe) is sort of gone.

In summary, an above average single-player game with a convoluted story that grasps higher than it can reach, with slightly repetitive level design that is saved by excellent tech and me wanting to see the next cut-scene (even if it is mostly gibberish). Nonetheless, I still hope there’s more Master Chief (and Cortana). 🙂


After getting it in the Steam Sale I just finished this after ~19 hours spent on it. Some thoughts after my stealth / nearly no killing run-though:

  • Excellent world and visual design
  • Nice gameplay (closest relative I can think of is Deus Ex, with the multiple approaches depending on the powers you’ve invested in) and good missions
  • Powers are almost too powerful (e.g. Dark Vision, Stop Time, Possess, …). It’s supposed to be balanced by their rune cost, but the normal exploratory collecting got me to have ~5 runes left over at the end after purchasing anything stealth relevant.
  • The “celebrity acquisition” (that’s a line from the credits) didn’t really improve the voices IMO, I rather got pulled out of the world. “Why is Cersei a maid / tutor?”
  • The ending was lacklustre (1 line from Emily + some static 3D environments according to some outcomes / side-missions). Not much in the way of explanations for the plague or resolution thereof.
  • Why on earth would you use a 20 year old video codec (Bink) and then use that to encode your scrolling credits? It seems no-one can code a scroller anymore… ;_;

So, definitely enjoyable (especially at half price), but not close to GOTY for me.

Code-Project: Virtual 5.1 Soundcard (Mac)

2015-12 Addendum: See SoundPusher for an update to (and new name for) this project.

As far as I’m aware there very few real-time 5.1 (Dolby Digital / AC-3) encoders for the Mac that integrate into the default CoreAudio HAL (and can thus be used by any application); I’ve only stumbled upon ac3jack, which builds on the multi-platform JACK Audio Connection Kit.
I thought it’d be interesting to learn something about CoreAudio and low-latency coding and thus decided to write such a system. Currently, this is split into 3 components:

  • CoreAudio AudioCodec for transforming LPCM into encoded AC-3. I’m using libavcodec as the encoder for this.
  • Audio driver presenting a virtual sound output to the system, and forwards that data as a provided sound input. The idea is to select the virtual output as default / system output, and then encode from the virtual input into the compressed format and forward that to a physical optical output.
    In 10.8 “Mountain Lion” you can write these sorts of plug-ins as sandboxed user-space components, which is quite neat (but not well documented at the moment).
  • A normal application / menu extra that takes raw sound from the virtual sound input, passes that to the AC-3 audio encoder, and then forwards the resulting stream to a physical digital output port.

The encoder seems to work; I’m currently working on the driver and then comes the user-space connector / configuration application.

Fun times! 😀

How-To: Headless transmission-daemon on OS X

As MacPorts is rather unhappy with Xcode 4.3 (understandably, with all those changed paths), I invested a fair amount of effort to get it recompile rTorrent (which I’d been running in a screen-session on my Mac mini). I got it work (xcode-select + setting the Developer-folder in /opt/local/etc/macports.conf to either “/Applications/” or “/”), but while searching around, I also came across Transmission‘s headless daemon and web-interface.

So, here’s how I built and configured the headless daemon on OS X (with Xcode 4.3):

  1. Get the source-package, e.g. transmission-2.50.tar.bz2
  2. Copy the source of libevent2 into “third-party/libevent” (“mv ../libevent-2.0.17-stable third-party/libevent” inside the Transmission-directory).
  3. Build via “xcodebuild -project Transmission.xcodeproj -target transmission-daemon -configuration Release”.
  4. Run the daemon so it creates its initial config in “~/Library/Application Support/transmission-daemon”.
  5. Edit the configuration in settings.json (whitelist, watchdir, ports, speeds, …).
  6. If you want to use the web-interface, copy its files: “cp -R web ~/Library/Application Support/transmission-daemon/”
  7. Re-start the daemon.

This worked well for me and I’m quite impressed with both the web-interface and Transmission itself.