Sunday, February 27, 2011

Data extractor for The Void

And another data extractor script, this time for The Void, available again from Github:
Music and voice clips are again in .ogg format, textures in DDS, the game comes with plenty of XML files that store properties and seems to support overlay directories (i.e. just have a director Properties/ next to Properties.vfs and it will use files from that directory instead of the .vfs).

Friday, February 25, 2011

Data extractor for Goin' Downtown and Everlight

I hacked together a quick little script that lets one extract the data files (music, sound, textures, etc.) of the games Goin' Downtown and Everlight. Available via Git from:
The data structure in both these games is very simple, resources.meta is an sqlite3 database containing offset, size and resource file index end resources.* contain then the real data. Data in the game itself is the usual stuff, but quite heavy on Open Source components, DDS for textures, Ogg for music and voice, Python for game scripting and they seem to have used Swig for engine bindings, animation stuff is Granny, there are a few Ogg Theora videos and GUI seems to be done in XUL.

Monday, February 21, 2011

Review: Infinite Space (NintendoDS)

Infinite Space is a science fiction RPG/visual-novel developed by Platinum Games and released 2010 for the Nintendo DS. In the game the player takes control of Yuri, a 16 year old boy who wants to become an adventurer exploring the galaxy.

The game starts out with an anime intro that is based on a few anime short movies created for advertisement purpose for the game. This by itself would be nothing special, but in the case of Infinite Space this causes some initial confusion as the intro doesn't present the beginning of the game, but the first hour or so of the regular gameplay and thus shows things that your game character has not yet done. Worse yet, the events portrait in the anime shorts all differ quite a bit from what actually happens in the game, so it ends up being confusion instead of helpful. So its probably best to just skip past that.

The premise of the game, with the boy being 16 year old and buying his own space ship is also a bit weird and hard to believe, but given that this is Japanese, it is probably to be expected, the game however doesn't really continue much with this plot line and basically just uses it as a starting point to get you into the role of an inexperienced spaceship captain.

The gameplay in Infinite Space follows a very simple overall structure, as the focus of the game isn't in providing a freely explorable universe, but on telling a mostly linear story, thus the game is split up into mainly four parts navigation, ship-to-ship battles, upgrade management and talk with other characters. The talking follows normal Japanese visual-novel conventions and works similarly to what can be seen in other DS games such as Trauma Center or the like, meaning it works by presenting an static 2D image of the character over a static background and the text he is saying. Choice from the player is very limited in those discussion, as the discussions for most part run linearly, only rarely is there a bit of choice intermixed and in those cases its mostly about "Yes/No" kind of choices, not selection of a topic or sentence as in western adventures. Interacting with a character multiple times is often necessary to get all the dialog, which can however lead to a bit of an annoyancy as used dialog options don't get removed.

The ship-to-ship battles also follow a very simple scheme, instead of complex strategic elements, the player is limited to five base actions "Dodge", "Barrage", "Normal", "Forward" and "Backward". The forward/backward commands let the player move closer or further away from the enemies, which is used to get into or out of weapon range. The normal attack fires a regular shoot, while the barrage command fires a more powerful one. The dodge move can be used to evade barrage attacks, but cannot be used to evaded normal attacks. Battles always take place between two parties, each consisting of up to five ships, however the ships can't be controlled individually, they act as a single group and commands apply to all of them. The multiple ships are mostly used just for cover, as ships in the front lines will be easier to hit then ships in the back. Rearanging ships is only possible outside of battles, not within them. The battles are presented in full 3D, but camera movement is restricted and the ships only move on a straight line, so you will be looking at them basically from an isometric persective the whole time.

Upgrading the ships is possible when docking to a planet and works by either chosing the weapons to use or by installing modules into the ship. Each ship has a fixed amount of room for modules and modules come in the form of Tetris-like blocks that you have to arrange manuall to make the best use of the available space. Modules increase your stats such as health, number of crew members and so on. The game doesn't require any form of micromanagment, as docking to a planet will automatically fully repair your ships and restock crew or fighters that might have lost in a battle at no cost.

The navigation part of the game is what holds the other parts together, it allows you to navigate on a 3D star map, which is presented as a multi-layered 2D map (i.e. like multiple SuperMarioBros3 worldmaps stacked on top of each other). Each node on the map presents a planet to which you can dock and while traveling between planets you can be attacked by pirates that come in the form of random encounters. When docked to a planet one can either upgrade the ship or visit locations to talk to other characters, all of this happens via a simple menu interface, an abilty to walk freely around with your character isn't given.

One nice difference of the game compared to other jRPGs is that it is very fast to navigate. Regular random encounters can almost always simply be skipped at the press of a button, so if you don't want to do them, you don't have to (however as they are the main source of income in the game, skipping them all is probably not a good idea). Furthermore the ship-to-ship battle sequences contain some rather elaborate and slow firing sequences, but again, with the press of the button one can easily skip them, so they don't annoy. Dialogs and navigation also follow a similar scheme, while it will happen frequently that you talk again to a character only to discover that he doesn't have anything new to say, you can just hold L and you will fast-forward through the dialog. All of these small tweak take away a lot of the annoyance that is normally present in this type of game.

Saving in the game is limited to planets. The game provides five save slots and an additional slot for automatic saves, which when enabled will save on every departure from a planet. The game is however very forgiving, allowing you to almost always travel back to a planet after a single fight. So when you encounter multiple ships on the way to a boss battle, you can just turn around and save. There are a tiny few exceptions to this later on in the game, but I never ran into a single situation where I had to replay a longer segment.

The user interface in Infinite Space is almost exclusively touch screen based, some smaller functions such as camera rotation or fast forward have to be done with the dpad or via the L button, but main menu navigation can only be done with the touchscreen.

Where the game stumbles a bit is in the story progression and keeping track of tasks, as the game lacks a quest log, it is sometimes hard to keep track of where one has to go or to which character one has to talk to. Sometimes those hints are also a bit vague, so even if you do keep manually track of them by writing them down, the game can force you to do a bit more trial&error traveling around then it should.

Where it however really gets interesting is in its story itself. While the premise is a bit ridiculous, the game doesn't bother much with it and soon has you free your sister from the hands of pirates, wipe out pirate homebases and later on has you trying to get whole nations united again to fight an even bigger enemy. Along the way you meet a ton of different characters and different factions, many of which will join your crew and in the background there are some alien artifacts whose purpose you try to uncover. At the mid point the game even has a big cut, moving the game story forward for 10 years and then continuing from there. The game does a decent job of not letting it all fall into simplistic categories of good vs evil and even has some of your crew join the opposing factions later on, putting all your doing into question.

Overall as a game Infinite Space certainly has some issues, mainly its simplicity. While there is a never ending supply of upgrades and ships available, I managed to pull through the first half the game pretty much with a simple tactic of moving into attack range, firing, then moving out of it to have my weapons recharge. In the second half of the game it gets even more easy, as by that point the game makes aircraft carriers available, which without much if any risks for your own fleet can easily wipe out everything else, as enemies very rarely carry anti-aircraft weapons with them. However this simplicity didn't bother me, quite the opposite, it allow to get through the story without much if any grind or frustration. The game however does a bad job at explaining things, that the icons at the bottom screen signal attack range isn't exactly clear at the beginning and that assigning crew members to the second in command allows you to use their special power in battles (such as healing the fleet or attacking the enemy ships in the back of the formation, without loss of precision) is also rather important, but again, never really explained.

To progress through the story and work around the lack of a quest log I used a walkthrough, that not only took all the trial and error out of the game, but also provided hints to a few story threads that one might otherwise easily miss. Even with that help this is however not a short game, quite the opposite, it clocks in at around 50 hours, even more when not played with the help of a walkthrough. Given the cut the game has in the middle, this makes the game feel almost like two full length game in one, something I haven't really seen before.

While the story is overall quite interesting and has an enourmus cast of characters, my biggest issue with the game would probably be the ending, which after some 50 hours of preparation, simply comes far to quickly and felt rushed. That whole endgame plot really should have started quite a few hours earlier or just left out completely for a sequel.

As somebody who generally dislikes jRPGs, I enjoyed Infinite Space quite a bit, all the normally annoying parts of that genre take a backseat in this game and the story is really the focus, not the leveling up of your characters or ship, those just happen in the background or provide a little diversion every few hours. So for people looking for a portable story driven space opera, I can definitively recomment this game, there really isn't much else like it out there.

Sunday, February 20, 2011

Review: Alpha Protocol (PC)

Alpha Protocol is a RPG/stealth/shooter mix developed by Obsidian Entertainment and released in 2010. The game takes a lot of inspiration from Biowares Mass Effect, using a similar mix of third person shooter elements along with a dialog driven story. Unlike Mass Effect the game doesn't take place in a Sci-Fi universe, but instead in contemporary times, putting you into the role of the special agent Michael Thorton, who went rogue after an incident on his first mission and is now fighting against his organization Alpha Protocol.

The game starts of with the regular character creation screen, but unlike other RPGs, you are restricted to just a single character, whose hair, facial hair and accessories you can however customize. One neat thing is that the game allows you to customize your character even after the initial creation, a feature that many other RPGs still miss. The character stats are separated into stealth, sabotage, technical aptitude, toughness, martial arts along with specialization in one of the four weapons. Dumping points into a category improves your abilities as well as gives you additional special powers that you can activate in combat, such as the ability to fire multiple shots in a row or become invisible for a short time.

The main game world is separated into three main locations, Rome, Taipei and Moscow, along with separate sections for the start and endgame. Each of these locations contains numerous sub missions, which once unlocked, you can be played in any order or sometimes even skipped completely. The three main locations also don't have a fixed order and thus also allow to be played in an arbitary order. The base of operations in each of those locations is a safe house that allows you to watch news (which however repeat frequently), read email, buy weapon upgrades or change your inventory. An overworld that can be freely navigated is not provided, instead all the mission selections is handled via a simple menu. Unlike Mass Effect you never actually walk up to an NPC and hit a talk button, instead dialog is either triggered events in the missions itself or by missions that consist of nothing else but meeting with another character. The safehouse is thus devoid of any other characters and chat with other members of your team is limited to what happens before or while on a mission. And speaking about what happens before the missions, one weird part of Alpha Protocol is that you can reach the menu to select your next mission by exiting the safehouse, but starting a mission will catapult you back in front of your TV in your safehouse, as that is where you will communicate with your handler about the next mission. Its a small detail, but it kind of disrupts the pacing a bit, it would have made more sense to have a direct connection to the handler or a radio and use that instead of the door to reach the menu.

The core gameplay of Alpha Protocol follows mostly conventional modern cover based third person shooter design, with some light elements from Splinter Cell mixed in for the stealth aspects of the game. Special abilities, ammunition or items are activated via a Mass Effect like power-wheel, but Alpha Protocols version happens to be a bit more cumbersome to use, as it requires to assign an action to a button and doesn't allow direct activation from the menu. In addition to that the game only has a single button for special abilities, thus activated multiple at once requires entering and exiting the menu multiple times. Control for the party is not provided, as in Alpha Protocol you act mostly alone and your handler is only available in the form of voice via radio. Just like Mass Effect the game uses three short mini-games when it comes to unlocking safes, doors or hacking into computers.

The shooting in Alpha Protocol is based on your character stats, thus when a weapon ability hasn't been leveled up it will be substantially weaker then when fully leveled up. The game also makes heavy use of delayed aiming, thus the longer you aim at something, the more precise your shoot will become. Both of these have earned heavy critism in the gaming press, which I have however a hard time to follow, as the mechanics are really simple to understand and Alpha Protocol isn't exactly the first game that allows you to increase your precision by holding an aim longer.

The special abilities of your character are in Alpha Protocol not so much based on reality, but more on what works for the game, thus it might feel a bit gamey at times, but works very well in the context of the game. A special stealth ability for example allows you to become completely invisible for enemies, a special pistol ability allows you to fire multiple shoots instantly at different targets (the game goes in slow motion to allow you to select the targets) and a special assault rifle ability gives you basically an aimbot that instantly locks your aim to the nearest enemy.

One of the most outstanding parts of Alpha Protocol is its dialog system and its dynamic story. While the dialog system is similar to Mass Effect, it is really much closer to that of Fahrenheit, as it requires you to select one of usually four dialog options under a time constraint. Dialogs don't follow the "pick every option till the dialog tree has been exhausted", but instead basically require a decision at every turn. Unlike Mass Effect however those decision are however not split into simplistic black/white or good/evil categories, but instead follow mostly adjectives such as "suave", "professional" or "aggressive", depending on the context. The choices can have rather small effects such as increasing the trust an NPC has into your character, but also can have drastic consequences, such as completely killing of one of the main character or severing the connection you have to one of the factions. Unlike most other games which offer those moral choices, Alpha Protocol never feels cheap, as there is never a clear good or bad path to follow, it is always very grayish and mostly about which factions you want to work together with. While the overall missions you will have to play can't really be changed by the dialog choices, the fate of characters and who will help you can change dramatically, something few, if any, games have managed before. My only gripe with the dialog system would be that it gives a default choice, which unless select another, will be auto selected when the time runs out. It helps to keep the cutscene from stopping, but I would have preferred a completely default-less dialog system.

The save system is a bit contrived, as it doesn't allow you to save everywhere, but instead only copies your last checkpoint. While this works fine for the main game, it can lead to a few weird situation in the safehouse, as you can't for example read a few email, upgrade your weapons, save and then come back later, as your last checkpoint would be entering the safehouse and all your doing would be forgotten. The game however makes this pretty clear and handles saves otherwise quite well, by not only providing an autosave of your last checkpoint, but also an autosave for your last safehouse visit in case you might want to start a different mission instead or restart with different equipment.

Another annoyance is that the game doesn't allow you to change the difficulty mid-game, you are locked into the choice you made at the very beginning.

On the technical side, the game has full Xbox360 controller support on the PC, which I used to play the game. Graphically it looks very solid, nothing outstanding, but not much to complain about either. The only graphical issues I had where a bit of Z-fighting on my ATI HD5670 with character accessories (hats mostly) when they where standing far away from the camera and a few polishing issues such as palms clipping through near walls or shadows being visible through the roof, but both of these are hardly noticeable on a regular playthrough. In terms of bugs I expected far worse, but didn't really run into any practical problems, throughout my two playthrough I fell through the ground twice and the game seems to have issues with Alt-Tab, which either works really slow or just not at all.

Given the large amount of criticism the game has received on released I was actually surprised how good it really is. I basically had no issues with the combat at all, it worked perfectly well the way it was designed. Headshots where easy to perform, if distance was required the assault rifle did a good job and the occasional melee combat provided some variety. When playing with a solider character the stealth kills turned out not worth the effort, on the other side they become rather fundamental when playing with a stealth based character. My biggest complaint would be that it was all a little to easy, playing as a soldier character you didn't really need to bother with stealth and could shoot your way through anything and with a stealth character you could render yourself invisible for half a minute, running around and killing guards without much issue. A few situations where staying completely undetected would have been required would have been nice and a little less health couldn't have hurt either, as the game was rather forgiving when you screwed up your stealth as you can shoot your way out of most situations without to much trouble.

The stat system felt a bit limited, as you are never given enough points to level up in many different categories, so instead it is easiest to concentrate on basically just three core abilities, which in turn limits the amount you can do in the game. As soldier or stealth characters I almost never touched any of the gadgets the game provided, as there was just no point in using something my character wasn't specialized in. Grinding experience points is impossible in Alpha Protocol, as you don't really have any side missions you can work on, everything you can do connects back to the main plot. Weapon upgrades had a similar issue, as there isn't much money available and neither much stuff you can buy, thus instead of doing constant upgrades throughout the game you basically just end up doing a single big one for your weapons and another one for your armor in the whole game when enough money has allocated over quite a few hours of gameplay. However neither of these issues is much of a practical problem, as you simply work with the tools you have and can make it through the game just fine, it is just that a bit more freedom could have added more variety to the game. And speaking about weapons, it would have been nice if the game would have allow the free use of sniper rifles, but instead sniper rifles are only available in a very few selected spots and can't be carried around.

The boss design in the game certainly felt really old school, as it does have the boss characters, full with health bar and everything, run around pretty crazily while you shoot at them. But that boss design didn't really bother me, it could have been handled more intelligently, but one can have some fun with trying to exploit their behaviors.

The story in the game overall was a bit generic, following the frequently used current day scenarios of secret government organizations, terrorists and the military-industrial complex. It also was at times a bit hard to follow, as it wasn't always so clear whom you where fighting against or why, as quite a few of the contacts you make happen and missions you get come from pre-existing intelligence knowledge or information from other contacts, not actions the player himself performs. However what it lacks in general story the game makes up for with interesting characters, most of them falling straight into the cheesy category, and interesting location, as unlike your average military shooter Alpha Protocol doesn't restrict itself to some far away desert, but you have to fight in villas, museums and other interesting locations. I would have however welcomed a bit more player driven navigation through those locations, far to often one just follows the marker on the HUD, instead of navigating the virtual world by landmarks.

Overall I really don't get the heavy criticism the game has received at all. Yes, there are a few minor issues and the combat might not feel as impact full as in a modern FPS, but for a game that doesn't want to be a FPS, but a spy RPG that style of combat makes perfect sense and really doesn't feel all that different to what you would do in a Splinter Cell or similar game. I didn't encounter anything that I would consider anywhere near game breaking throughout my two playthrough, quite the opposite, I had a ton of fun with what the game had to offer and enjoyed every minute of the around 15 hours that a single playthrough takes. As far as dynamic story lines go, Alpha Protocol is easily among, if not the best out there and for people that enjoyed Deus Ex, Mass Effect or Splinter Cell Alpha Protocol really should be considered a must-play.

Sunday, February 06, 2011

Graphic Card Upgrade

My old Geforce 7600LE card was good enough for playing Mass Effect in the lowest resolution and in the lowest detail settings, but not much good for many other modern games, so I went out in search for a new card. After quite some month of search I finally settled on a Sapphire ATI Radeon HD5670 512MB. Here some of the issues I encountered along the way:

Powersupply

Almost all modern PCIe graphic cards not only need a powerful powersupply, but also a separate power connection that gets plugged into the card. My computer has neither and the powersupply is a 350W one and doesn't have the needed power connection. What is worse is that most reviews or product descriptions don't bother to mention that fact, so it took quite some search to find that this is an issue to begin with and then some more search to find out how to solve it.

The ATI Raedon HD5670 seems to be the most powerful card that fitted the powersupply I had and didn't require a separate power connection. It was still a bit on the edge, recommending a 400W powersupply in the product description, but search around the net indicated that this wasn't really necessary and a good 350W or even a 300W one might be fine. To be a bit more on the safe side I ripped out a small additional HDD that I had in that case and moved its data to an USB one.

One Slot vs Two Slots

The old Geforce 7600LE was a single slot card with only passive cooling, almost all modern cards on the other side are two slots wide, this basically meant I had to scarify the only PCIe x1 I had on the motherboard along with the card that was currently plugged into that slot. Wasn't to much of a problem for me, as that card didn't had Linux drivers to begin with, so it was just hanging around unused anyway and saving whatever power it used couldn't hurt either.

Model Numbers

Digging through all those model numbers of graphics card is insane. Even if you have settled on a model of a card, you still have multiple manufacturers and multiple variations of the card to chose from. Reading through a whole bunch of reviews indicated that the Sapphire one would be decent and that the HD5670 wouldn't profit much from a 1GB of memory. The 512MB variant also happened to be quite a bit cheaper.

With the manufacturer and card model set, there where still some model number variations to chose from, namely:
  • 11168-01-20R
  • 11168-02-20R
  • 11168-06-20R
  • 11168-07-20R
Finding out that the 01 and 07 cards had a display port instead of the VGA one that the 02 and the 06 one had to offer was the easy part. The exact difference between 01 and the 07 or respectively the 02 and 06 one however still puzzles me. The product matrix at Sapphire list one as "Hyper Memory Enabled" and the others as not, however only in the cards name, not in the tech specs, other information on the net however indicates that basically all ATI cards have hyper memory support. A question send to their support indicated that both cards are to their best knowledge completely identical and there wasn't much logic to begin with behind those SKU numbers to begin with.

I finally ended up getting a 01 card, as I was getting really tired of looking through product charts and there didn't seem to be any more information on the net regarding those product numbers. While I can't tell if it is technically any different from a 07 card, I can say that it does look different from all those official product photos of the Sapphire ATI Radeon HD5670 that I could find on the net. As unlike in those photos, my card has two slot blends, not just a single one. Maybe thats the defining difference between 01 and 07?

Adapters from the DVI output to VGA and from the HDMI output to DVI come in the box.

Windows

Windows driver installation was easy. I just download the Catalyst driver from the ATI page and the thing is ready to go. One mistake I however did was uninstalling everything that had Nvidia in its name, bad idea, seems that Nvidia Physix is something that is actually required by some games even when you use an ATI card and those games (Alpha Protocol) won't properly function after an uninstall of that. Had to reinstall the game to get it back up and running.

Linux

Like most graphics card, especially when a few month old, the HD5670 does have solid Linux support, both in the form of Open Source as well as proprietary drivers. At the moment I am running the proprietary ones, as the Open Source ones that came with Ubuntu didn't have 3D acceleration and I didn't want to bother with recompiling stuff right now.

And while the installation went smoothly in the end, there was one big showstopper when it come to installing the drivers that took quite a while to figure out: ATI drivers and Nvidia drivers are incompatible. You can't have both on your system at the same time, as somewhere down in the virtual dependencies or alternatives or whatever there will be silent conflicts which cause the drivers to not function properly and crash the system. After purging everything Nvidia and everything ATI and quite a few reboots and crashes later, I however managed to install the driver properly and so far it has been working smoothly ever since.

One subjective thing I couldn't yet really confirm however: 2D performance seems sluggish. Scrolling in Emacs has always been mind boggling slow with anti-aliased fonts, but now it seems to be even slower. Not sure whats up with that and if its a real thing or just imagination.

Configuring multi-display support is very simple in Linux, just a few button clicks in the ATI configuration tool. The card seems to have three XVideo "ports", allowing you to watch three videos at the same time. Adjusting contrast and brightness in XVideo also works, which didn't with my earlier NVidia card.

Conclusion

With the Sapphire ATI HD5670 512MB I can now play almost all games I have tested in with at 1680x1050 in high details, Crysis is one of the few exception, that is only usable at medium details. Overall this is quite respectable for an otherwise four year old PC. The power supply seems to hold up fine, no crashes or any other issues so far.

The annoying part with PC upgrades really isn't the cost, as that card doesn't cost all that much, but the amount of information you have to wade through to make an informed decision on your purchase. That information is also often hard to find, especially with OEM hardware. For example benchmark information for my 7600LE is basically non-existent, the documentation for my motherboard is not available from the manufacturer of that board as it is an OEM and information of how much power your power supply should have is vague at best. So it becomes really hard to tell if a new card will fit the system and what advantages it will have over the old one.

I didn't even look at all information out there, the Nvidia GT 240 seems to be comparable to the HD5670 and there is an endless numbers of models for that, some cheaper, some more expensive then the HD5670, I didn't even bother to look through much of that and if I would, I would probably still digging through it. After finding out that it is probably close enough to not matter much in practice was enough for me to just ignore it.

If it wouldn't have been for all that crap I had to wade through I might have already bought a new card a year or two ago, but back then I always ended up reaching a point where I just had enough of it and stuck with the old card. No surprise in that situation really that consoles are taking the market share away from the PC.