Final Fantasy XIII
0
Well, it’s taken me the best part of two months, but I finally fancy writing my review for Final Fantasy XIII. The only reason that it’s taken this long is that I don’t usually like to cast judgement on a game I’m not finished with — but I think that after spending 60 hours with FFXIII I’ve probably learned everything I’m going to need. And yes, I am still playing it… which makes a welcome change from the last two eight-hour games I got for the same price.
For those of you who have been living under a rock for the past twenty years, FFXIII is the thirteenth instalment in the popular J-RPG franchise from Square-Enix. As with most J-RPGs, the storyline is pretty cliche; the story sees a seemingly workaday group of people get swept up in an evil plot, granted magical powers and eventually fight to save their planet from destruction. The details are different, sure, but there’s nothing ground-breaking in story-telling terms. In fact, I’d probably even go so far as to say that the plot and its characters are not as memorable as those from previous Final Fantasy games. The lone possible exception to this rule is the game’s protagonist — Lightning — who is pretty striking (if you’ll excuse the pun).
A quick run-down of those things that make FFXIII different, then:
- Restriction
One of the best things (in my opinion) about J-RPGs is the freedom; at some point in the game, usually about half way through, you find yourself an airship and gain the ability to revisit all of the towns and locales you’ve passed through before. This freedom is unfortunately missing from most of FFXIII. Of the game’s six characters, only three of them can take part in battles at any given time. Of those three, you can only control one — who you are stuck with until the battle is finished. Each “Chapter” of the game comes with a level cap, presumably to discourage you from grinding, and it’s impossible to max out your characters until you’ve defeated the final boss. There are no towns or villages to speak of, no real NPC interaction, your hand is held tightly as the game drags you down a set path… I could go on.
- Battle System
First FFXII, now FFXIII — it seems that Square-Enix is more than happy to kill the original turn-based battle systems that worked so well in previous games. That isn’t to say that FFXIII‘s battle system is bad, necessarily, but it does take some time getting used to. At the beginning of the game, your characters are confined to three “paradigm roles” each, which limits your selection of battle strategies considerably. Thankfully, this restriction is limited after about 30 hours. Unfortunately, up until this point, the best tactic seems too often to be: hammer away on the “Auto-Battle” command until whatever you’re fighting falls over.
- Weapon / Accessories Upgrades
FFXIII has one of the most in-depth upgrade systems I’ve ever seen. Almost every item that you find on your travels has an amount of EXP associated with it, which can be used to upgrade accessories and/or weapons; a ring providing +15% Earth Resistance may, eventually, evolve into a completely different ring providing +40% Earth Resistance, for example. This system is the only way to gain stronger weapons (including each character’s Ultimate Weapon), so its use is essential.
The tone of this review has been surprisingly negative so far — surprising because I’m still playing the game. A large chunk of it lacks in freedom, as I’ve said, but everything changes rather suddenly in Chapter 11 (of 13). You find yourself thrown from the planet where the rest of the storyline took place to a world called Pulse (which serves as FFXIII‘s World Map) and just told to get on with it. The change was too sudden for me; having been left to my own devices, I promptly got lost and died. Several times. But eventually I figured out where I was going, how to work the teleporters and how to accept missions; the difficulty had been ramped up considerably and things were starting to get interesting.
There are 64 optional bounty-hunter style missions to undertake on Pulse, which is the reason I’m still grinding away. These sorts of missions might not be to everybody’s tastes, but I found them a pleasant distraction. Attempting them in order seems the most sensible idea, and gives you a handy method of levelling up; in addition to counting towards an achievement/trophy, each mission offers useful rewards and experience that help prepare you for the next.
So, what am I trying to say? Probably that Final Fantasy XIII disappoints in a few places, but that it’s still brilliant. The characters may not be that memorable, the dialogue may be filled with nonsense and the game may feel very cramped and restricted for the first 30 hours, but the hours that follow; the exploration of Pulse; the high-definition FMVs; and the musical score easily make up for all of the game’s faults.
It’s made me even hungrier for a high-definition remake of Final Fantasy VII, to boot. What? A man can dream…
Why I Hate the #debill
0Well, the ayes have it, the ayes have it; the Digital Economy Bill looks set to become the Digital Economy Act. A bad day for all users of the internet throughout the UK.
My upset has nothing to do with my support for legalised filesharing — though I do believe that copyright is in dire need of reform and that filesharing creates rather than destroys markets, that’s an issue to be covered another day in a different blog post.
I am more concerned with the fact that the measures outlined in the bill will not work. Thanks to anonymity networks like Tor, illegal filesharing through otherwise legal technologies (such as BitTorrent and YouTube), the “dynamic” IP addresses in use by most ISPs and an inability to adequately protect ones own wireless connection from serious attacks, we’ve been placed at the top of a slippery slope.
All that this bill will accomplish is pushing illegal filesharing further underground, forcing it to invent new untrackable technologies and/or abuse existing old ones. It is only a matter of time before the big “creative industries” realise that their sales have not gone up and that their profits have not increased. It is only a matter of time before they claim that nobody purchased Lily Allen’s new album because of people trading files via e-mail, posting DVDs and USB sticks to one another via smail mail, and recording their own MP3s from low-quality media streams. The suggestion that people don’t want to buy crap music they can hear for free every day on the radio is apparently too radical.
The answer to these problems? More legislation pushed through by people who do not understand the internet and less freedom for its users.
I’m also very uncomfortable with the way that copyright infringement through non-filesharing means are not mentioned (or, if they are, I’ve yet to hear about it). Where is the crackdown on the lending of books and CDs? Where is the legislation that says it is illegal to create copies of television shows you have watched and distribute them to your friends? Presumably the bill would not have passed, had the elderly been aware they’d have their VHS players confiscated.
Excuse me, whilst I write another letter to my MP.
God of War III
0God of War III (apparently) marks the end of the God of War trilogy. It follows Kratos, the “Ghost of Sparta”, as he finally gets his revenge for everything that happened across the course of the first two games. What this means, essentially, is that you get to kill everything and anything that stands in your way — Titans, Gods, slave girls… Anything that looks like it might bleed is probably worth a stabbing.
Perhaps I just came to the franchise a little too late, but God of War III didn’t really live up to my expectations. Hold your winged horses, fanboys — give me a chance to explain. There are a lot of reasons to like GoW3.
For one, it is one of the most brutal games I’ve ever had the pleasure of playing; it’s very difficult to describe how satisfying it is to rip the horn off of a Chimaera and then stab it through its brain, or to repeatedly punch somebody in the face until the screen is completely splattered with their blood. I think it’s something that probably speaks to everybody at some level, though — my mum (who doesn’t like games) insisted on being present for most of my playthrough simply because it was so gruesome.
The immense scale of some of the creatures and environments is also worth a mention. Think Shadow of the Colossus, but bigger. One boss fight pits you up against a titan, whose fingernails are easily ten times the size of Kratos. At other times, a simple camera zoom-out or pan makes you realise that every single level you’ve visited is part of a much larger whole; that the huge chain you’re climbing really does stretch from Hades to the top of Mount Olympus…
Unfortunately, by the time that I really started to get into the game, I knew that it was almost over. My stats were (mostly) maxed out, a bloody trail of Gods had been left in my wake and I had only been playing for eight hours. Eight. Now, I know that this criticism seems unfair — my recent review of Heavy Rain made plenty of excuses about why its length didn’t matter — but I can’t help but feel that the game would have been better if it were longer.
Perhaps the harder difficulties and Olympus Challenges will add a lot of replay value (or be so frustratingly difficult that an eight hour playthrough needs to be stretched across months of real time), but that’s something I can’t really comment upon at this point.
My recommendation to people who haven’t yet bought God of War III would be to wait for the God of War Collection available for pre-order at all good online retailers. The price difference isn’t that much, but you’ll get at least three times as much fun out of it. That, and that you should definitely pretend it doesn’t rip off Max Payne at all.
Heavy Rain
2The long-awaited spiritual sequel to Fahrenheit, Heavy Rain, has finally arrived. Whether or not it was worth the wait seems to be a matter of opinion, but I am sitting quite comfortably on the “Of course, are you out of your mind?” side of the fence. For anybody hearing about Quantic Dream’s masterpiece for the first time, a quick recap…
Heavy Rain is being marketed less as a game and more as an “interactive drama”. The story follows four characters, each chasing a serial killer known as ‘The Origami Killer’ for his or her own reasons; Ethan Mars, a father whose son has been kidnapped; Scott Shelby, a private investigator who has been hired by the families of the killer’s victims; Norman Jayden, an FBI agent working alongside the police to crack the case; and Madison Paige, a photographer-cum-journalist doing some investigative reporting. The gameplay consists almost entirely of quick-time events, ranging from mundane tasks like pouring juice and cooking eggs to edge-of-your-seat fight scenes.
Sound fun? Well, it isn’t — but that’s not a criticism. It’s not much fun to watch when you’re not playing it, either — but that’s not a criticism. Like its predeccessor, Heavy Rain is completely unlike most other games; rather than playing it for the satisfaction of seeing somebody’s head explode or handing somebody’s ass to them online, you play it because you are engaged in the storyline. You play it because the mundane tasks you perform make you feel like the character is real — because you feel empathy for them. I admit, it’s tempting to see Heavy Rain as a work of art, and most of what I’ve said is already plastered all over every review site and gaming magazine known to man.
But fear not, skeptics — I’ll be the first to admit that Heavy Rain does have some faults:
- Inconsistent Voice Acting
Owing almost entirely to the fact that you are in direct control of what your character says, what they think and how they react to certain situations, some of the voice acting comes across as entirely wrong and broken. Early in the game, when your son goes missing, you can press “X” to call his name. Being caught up in the game as I was, I pressed the button regularly and was disappointed to hear Ethan’s cries cycle through the same three variations of “Jason!”. Entirely my fault, granted, but giving the player the ability to ruin the mood of the scene was a bad move.
- Pretty Short
I can’t give an accurate time (since the game doesn’t provide one), but the game has taken me less than two days of play to complete. This may not be too big a deal, if it proves to be as replayable as I hope, but otherwise I feel a little cheated. I wasn’t expecting a 40-hour epic, but I could have sworn Fahrenheit was longer… And that cost me less than £10.
- Major Technical Bugs
In my short time with Heavy Rain, I have experienced the following faults (in no particular order): temporary loss of all sound, speech delays that wouldn’t look out of place in a badly-dubbed kung-fu film, video freezes, children walking directly through my character and seemingly random interruptions to internal monologues. At one point, Jayden’s ARI glasses flew off his face, folded themselves in mid-air and placed themselves neatly in his coat pocket — pretty hard to ignore.
That said, ignoring most of the above is exactly what I’m going to decide to do. Why? Because the storyline is brilliant, full of twists and its conclusion depends entirely on how you play the game; because it deals with some very mature themes and proves conclusively that games are not “just for kids”; because it’s going to be a game that everybody talks about for years to come; and because the installation process includes an origami how-to for the bird on the box. Heavy Rain is a work of sheer genius, and should not be missed.
Variadic Macros and CUDA
0Again, a relatively obvious tool for those who are more experienced with C than I, but this is something I recently stumbled across and found very useful.
One of my major annoyances with CUDA is the way that device emulation works — you go through your code, writing printf statements here and there, compile for device emulation and everything’s fine. But remove your -deviceemu and everything goes horribly wrong, as device functions cannot call host functions. Until now, my only way around the error has been to comment out all of my print statements, which is pretty arduous.
The answer lies with a variadic macro. Define something like this at the top of your CUDA files, or the top of a generic header file included everywhere:
#ifdef DEVICEEMU
#define debug(format, ...) printf(format, ## __VA_ARGS__)
#else
#define debug(format, ...)
#endif
With this in place, where you would have used printf("Some output = %d.\n", variable), debug("Some output = %d.\n", variable) will do exactly the same thing. If -D DEVICEEMU is passed as an argument to nvcc, all calls to debug will be replaced by suitable (and working) printf statements. If it isn’t, they are all replaced by empty lines and the compiler just skips over them.
A few quick changes to your Makefile and everything’s pretty much automatic. Thanks, variadic macros!
Bioshock 2: Special Edition Unboxing
2I got a nice surprise when I came home this evening; my special edition Bioshock 2 had been left with a neighbour whilst I was out. Not only is it massive (much bigger than I thought it would be, for some reason), but it is also quite possibly the most special collector’s edition I’ve ever had the pleasure of owning. I thought the Assassin’s Creed II box was nice, but this is almost beyond words.
The Box
I’ve got no idea why there is a butterfly or moth made of handprints on it, but I’m hoping that it will become clear as I play the game. They may be Little Sister handprints, but that’s purely speculation on my part.
The Record
Lifting the butterfly lid off reveals “I Am Rapture, Rapture Is Me”, a 12″ vinyl of the Bioshock orchestral score. I don’t actually own a record player, but I don’t care. It makes sense.
The Book
But wait, there’s more! 168 pages more, to be precise. Concept art, level designs, posters, it’s all there. The rolled-up paper next to it are 3 “vintage Rapture advertisements” that I’ve not dared unwrap yet; I’m not allowed posters in my room this year, so will save them for my next house.
The CD (and Game)
After all that, seeing the game box sitting snugly in its velvet box (did I mention it was velvet?) is almost anti-climactic… Until you find the CD sitting underneath, that is! The CD is perhaps the coolest one I’ve ever laid eyes upon — it’s actually been printed to look like a very small vinyl.
Now, if you’ll excuse me, I’ll be heading into Rapture. See you soon…
My Favourite Games
0In trying to convince my girlfriend that Heavy Rain is going to be a game-changer (ha!) for the industry, I found myself earlier today all but forcing her to play its “spiritual prequel” – Fahrenheit. Since she is neither blind nor stupid, she loved it. But, as you may have guessed from the title, that isn’t the point of this entry. Whilst reeling off a number of reasons that Fahrenheit is so great, and why Quantic Dream’s newest offering is going to blow everything else out of the water, I found myself describing it as “one of my favourite games”. A quick search of previous entries revealed I throw this phrase around quite a bit more than I’d like; this list is, at the time of writing, semi-definitive.
In alphabetical order, along with a brief justification…
- Broken Sword 1 & 2
Brilliant art, a storyline featuring the Knights Templar, and puzzles that make you feel smart for completing them. For the rest of my life, I will always compare French women to Nico Collard. - Eternal Sonata
Beautiful. Cel-shaded goodness coupled with music by Fryderyk Chopin. Difficult to not just sit and watch. - Fahrenheit
An amazing and experimental game that plays out more like an interactive film. (Not the way MGS4 does…) You care about the characters and their mental states, and there is a sense of urgency in all situations that is absent from most games. Goes a bit weird towards the end, but it’s hard not to forgive it. - Final Fantasy VII, VIII & IX
It’s almost cliché to say that one likes games in the Final Fantasy series, particularly the seventh, but if it wasn’t for these games then I wouldn’t have discovered JRPGs at all. FFVII was bought, second-hand, on a whim, because I saw it listed alongside Broken Sword in OPSM’s “Top Adventure/Puzzlers” category. The storylines of all three games are engaging, the characters are three-dimensional, and I’m certain that Nobuo Uematsu can do no wrong when it comes to music. I’ve been mourning Aeris for 13 years. - Final Fantasy Tactics: War of the Lions
I think my original description of this game was simply “Wow”. I don’t know how it compares to the original, having never played it, but the combination of tactical combat with gorgeous animated cutscenes and a billion different class combinations was enough to get me hooked. - Lost Odyssey
Mistwalker’s second offering (after Blue Dragon), this game is just awesome. Random battles and turn-based battle might seem a bit outdated, but if it ain’t broke then it shouldn’t be fixed. By far the best thing about this game is its use of the main character’s amnesia as an excuse to flesh out his past. There are several little stories you can read throughout the game; they’re well-written, completely optional, and just… nice. - Monkey Island I, II & III
Fuck-off funny. I’ve yet to play another game featuring a rubber chicken with a pulley in the middle.
Games that might make it onto the list eventually include Dragon Age: Origins for its character loyalty system, Mass Effect 1 & 2 for its depth and Bioshock for a twist I didn’t see coming. I’ll think about it. If anybody can think of a game that I’ve missed, please let me know.
Samsung YP-P3
2After years of convincing myself that an MP3 player was something that wouldn’t benefit me in the slightest, I decided to treat myself to a Samsung YP-P3 as a “post-Christmas, hurray it’s 2010″ present. Since starting my PhD, I have found myself walking alone and sitting on trains far more often than I have at any other time in my life; it ‘s become more and more important to drown out the noise of other people’s music and inane chatter. Part impulse buy, part “necessity”, I’m quite impressed so far.
Here it is, in all of its “taking ages to transfer files” glory…
You might be wondering why, since this is my first MP3 player purchase, I jumped in with something quite so expensive (£200 for the 32GB model) that wasn’t manufactured by Apple. The reasons are many, and the most important are outlined below:
- File Formats
The YP-P3 supports: MP3/WMA/OGG/AAC/FLAC/WAV/ASF
Yup. OGG and FLAC. Since most of the music I have ripped is in OGG (being an open-source Linux advocate), one of my biggest problems with Apple’s iPods and their “rivals” is their seeming inability to play anything but MP3. Sure, you can flash the firmware, but the point is that you shouldn’t have to.
- Linux!
Okay, so the YP-P3 doesn’t “support” Linux. It comes bundled with a piece of software called EmoDio that you’re supposed to use to transfer your music to and from the player (and thus keep your library synced), but it’s by no means compulsory. In fact, the first thing I did upon turning on the YP-P3 was to switch it from MTP to UMS — a switchover that was no hassle at all. This essentially causes the player to appear as a removable drive when it’s plugged in, meaning that rearranging the library is a drag-and-drop job. Perfect.
The interface is pretty, it’s skinnable, has widgets, and the touch screen is very responsive. It even vibrates when you touch something, providing the tactile feedback that is often missing from this sort of interface.
I only have one niggle with the YP-P3 so far, and admittedly it is a rather minor one. It seems to me, based on my admittedly limited research, that the album cover system is implemented solely through ID3 tags. This is a minor annoyance for MP3 and OGG files, since getting album art to appear requires manually tagging each and every MP3 and OGG on my system. It’s an even bigger problem for WMA, M4A and FLAC, since I haven’t found any way to edit their tags.
I hope that somebody somewhere comes up with a way of forcing the YP-P3 to look for a “folder.jpg” image, or at least an easier way of making sure it knows where the images are. If that happened, I wouldn’t be able to fault it at all. An iPod beater? I certainly think so.
Good Results, Bad Timing
0As is often the way with these things, as soon as I had presented a clearly broken and spiky graph at the CUDA conference the solution became obvious. With relatively little work this morning, I produced a much prettier graph:
I remain skeptical of the numbers, of course, but I’m fairly certain that my results are correct. It’s re-taught me a pretty valuable lesson about CUDA, too; the memory access pattern is very, very important. Though my error seems obvious in hindsight, it was not so obvious at the time!
When dividing a two (or three) dimensional array into blocks, it is tempting to simply calculate one’s indices using something like this:
(threadIdx.z*N + threadIdx.y)*N +threadIdx.x.
Perhaps surprisingly, this significantly increases the number of memory accesses for a given warp. Though the entire array has been placed in contiguous memory, cells that appear close to one another within a block are often quite far apart in reality. For example, in the first “tile” of a 2D 128 x 128 grid of floats, cell 0′s south “neighbour” is a massive 512 bytes away. If we assign one thread to each cell in a 4 x 4 tile, then, fetching the four rows requires at least four memory transactions, even on a Tesla.
If we think about this a little bit, we see that rearranging memory such that blocks lie in contiguous memory is relatively easy and, given the impressive speedup, definitely worth considering. An alternative solution is to ensure that tiles are at least 16 x 16, but this may not always be possible due to shared memory constraints.
Since this is something that I somehow managed to overlook for so long, I thought it was worth writing about. Hopefully it might help somebody with similar issues.
1st UK CUDA Developer’s Conference
2Today I attended my first academic conference; the 1st UK CUDA Developer’s Conference, in Oxford. I also presented for the first time at an academic conference — the same one, in fact.
The topic of my presentation was “Parallelising Pipelined Wavefront Computations on the GPU”, and I’ve made the slides available on my e-Portfolio (head to Research > Conferences in the side-bar). Since this work is still very much in-progress, the subject-matter isn’t too complicated, really; it is mainly an explanation of what wavefront computations are, and how we have attempted to optimize them for the GPU. That said, it probably serves quite well as an introduction to my research.
The last few days I was filled with a mild panic, unsure of what to expect, but luckily everything seems to have turned out okay. It was particularly interesting to see what other people are using CUDA for, and I think I’ve picked up a few interesting tricks and tips. If nothing else, it’s been a brilliant start to my PhD.
I believe that the other presentations will eventually be made available publicly… If and when this happens, I’ll be sure to update this post.









