Wednesday, October 27, 2010

Porting Windstille to Windows via MinGW cross compiler

Once done with porting Windstille over to MacOSX I switched to porting it over to Windows:
  • Windows doesn't seem to have a clear MacPort alternative, so I went with compiling most libraries myself
  • SDL comes in precompiled binary form that is usable with MinGW
  • C++ libraries are incompatible between MinGW and Microsoft Visual C++, C libraries are often compatible, but not always, so building things yourself or downloading the MinGW specific binaries might be required
  • as the whole Windows FOSS landscape ended up looking a little to confusing for my taste, I switched over from native Windows to cross compiling from Linux, which also allowed me to use Linux tools in the build process and not having to worry about building them for Windows
  • Ubuntu comes with a ready to use cross compiler in the package gcc-mingw32
  • cross compiling standard autotools packages works with:
    ./configure --prefix=/home/ingo/projects/mingw32/run/ --host=i586-mingw32msvc --build=i686-linux-gnu
  • GLEW binaries didn't work and GLEW doesn't support cross compiling, using the Makefile.mingw and changing the compiler, linker, etc. names in it manually (g++ -> i586-mingw32msvc-c++) however did work
  • boost cross compile is a bit tricky, but well documented, make sure you only build the boost libraries you need, not everything, as that will cut down the build time from a few hours to a few minutes
  • Freetype, Ogg, JPEG and Vorbis compile smoothly
  • libpng and the required zlib do not cross compile smoothly, hacking the build scripts and hardcoding the compiler, linker, etc. names again did the trick
  • Gtk+ comes in a binary distribution that is usable in MinGW, but as it contains hardcoded path names in its pkg-config files some changes are needed (adjust to your build location as needed):
    sed -i "s/c:\/devel\/target\/.*/\/home\/ingo\/projects\/mingw32\/run\/opt\/gtk
    /" *.pc
  • Gtkmm and GtkGLExt are not part of that binary distribution and have to be build manually
  • with the Gtk+ binaries building Gtkmm wasn't all that hard, just a bit labor intensive due to the many dependencies
  • GtkGLExt is the most problematic and so far I didn't manage to create a working version, as the last release is incompatible with current Gtk+ and the latest development version of GtkGLExt is incompatible with GtkGLExtmm, I managed to produce compilable results by changing the latest release to handle newer Gtk+ versions (just a few macro changes), but the resulting application, while runable was not usable as the OpenGL widget leaked into other GUI elements and redraw behavior was completly broken
  • DLLs have to be in the current path for Wine to find them (still searching for a proper workaround for that)
  • OpenGL libraries have again other names, here its -lopengl32, this same naming convention is also used for GLEW and OpenAL
  • the gcc that comes with MinGW seems to be a lot more picky about the order of static libraries then the Linux gcc, had to reorder the libraries in my SCons file to make things build and fix undefined references
  • Free Software solutions for building Windows installers are: Inno Setup, NSIS and WiX
  • NSIS has the nice advantage that it comes as a Ubuntu package and thus is well suited for a cross-compiling environment, its config file syntax however seems a bit ugly and seems to require a good bit of manual book keeping to make proper uninstall, it also doesn't support .msi install files, only old style .exe
Overall compiling in native Windows seems kind of a mess, as you end up grabbing software from many different places and can never really be sure that they all will work properly together. Setting up a cross compile environment on the other side was reasonably simple, just a lot of manual compiling required and a few hacks here and there to get some libraries through, Wine seems to help a good bit to make most configure checks, that might try to run a .exe, work without hacks. Basic Gtk+ seems to be simpler to get up and running then on MacOSX, as it comes in a nice binary distribution with all the required libraries, lack of a working GtkGLExtmm however prevented the Windstille Editor from being usable.

Friday, October 22, 2010

Porting Windstille to MacOSX

Some notes on porting Windstille to MacOSX:
  • PPC iBooks don't support booting from USB, good luck reinstalling a OS when your internal drive breaks
  • everything earlier then MacOSX 10.4 Tiger seems completely unusable by now, as almost all software won't run on it, no support for building universal binaries either, OSX seems to go obsolete a lot faster then Windows
  • MacPorts provides a good and up to date selection of software, you can almost find anything that you might need to build your software there, but MacPorts requires to compile everything from source, so installing a full build environment can take quite a few hours
  • Flink provides binaries, but is outdated enough to be of not much use
  • some include directives need changes, for example GL/gl.h to OpenGL/gl.h, AL/al.h to OpenAL/al.h
  • native MacOSX libraries come in the form of frameworks, which bypass the usual -I, -l and -L flags and use a "-framework SDL" flag for gcc
  • SDL comes as a native precompiled OSX framework library
  • using the SDL framework requires to hardcode the include path or doing #ifdef's, as there is no sdl-config and the way frameworks requires you to include SDL_image with , which is incompatible with the way things are done in Linux
  • using g++ with -isystem DIR instead of -IDIR results in "error: template with C linkage", so don't do that on older MacOSXs
  • otool is the equivalent of ldd on MacOSX
  • building a standard MacOSX software bundle requires some fudging with the hard compiled path variables
  • Gtk+ is by far the most troublesome piece of software to get up and running, it doesn't come in binary form but only in a fragile jhbuild
  • MacOSX specific code can be isolated with a #ifdef __APPLE__ or on the Python side with a sys.platform == "darwin"
Overall porting Windstille to MacOSX went far smoother then expected, at least as far as Windstille itself is concerned, at first I struggled a bit with manually building many software packages, but once I learned about MacPorts, I switched over to that and had a smooth ride after that. SDL comes as standard MacOSX framework and most of the other dependencies I could grab directly from MacPorts. xcftools was the only exception and that had to be build manually. The Windstille SCons build scripts however need some bigger changes to handle the different naming of some libraries on MacOSX. Building the Windstille Editor is a different story, so far I haven't managed to do that, as that depends on Gtk+, Gtkmm and GtkGLExtmm and all of those depend on dozens of other libraries themselves. I think the Gtk+ libraries in MacPorts all depend on X11 and aren't native, but so far I haven't tried them.

PS: While porting Windstille over to MacOSX I also fixed a few issues with the render path for older hardware, so it should be able to run (or crawl) again on Geforce2MX style hardware.

Saturday, October 09, 2010

Windstille Lensflare Test

Quick little test for a lenseflare effect for use in Windstille, still needs some graphical improvements, but the occlusion queries to hide the flare work fine:

Sunday, October 03, 2010

Review: Metroid Prime Hunters (Nintendo DS)

Metroid Prime Hunters was released in 2006 for the Nintendo DS and is a spin-off of the Metroid Prime series for the Gamecube and the Wii. The game takes place after the first Metroid Prime game, but as the story doesn't have any connection with the other games that hardly matters. The game features both a single player adventure mode as well as online multiplayer, I however haven't played the multiplayer, so I will focus on the single player.

The game starts with receiving a cryptic message about some 'ultimate power' with hints at its locations. Following that Samus Aran and six other bounty hunters start the search for that power to gain control over it. Reaching the 'ultimate power' requires the collection of eight Octolith, which in turn unlock the location of the 'ultimate power' and result in the final boss battle.

Unlike other entries in the series Metroid Prime Hunters follows a more linear approach, that is somewhat similar to Metroid Prime 3: Corruption. Instead of one huge world to travel around in, the game is separated into four locations, the Celestial Archives, Alinos, Arcterra and the Vesper Defense Outpost. Each of these locations contains a boss at the end that will provide you with one of the required Octolith. Once each location has been visited and beaten, new areas in each location will become accessible and the player has to revisit them again to fight a second boss and gain another Octolith in each location. Travel between locations is possible at any time by using the space ship, travel on food between locations is not possible.

The space ship also acts as the only type savepoint in the game, regular savepoints are not provided. To reduce the amount of backtracking the game however does include teleporter, conveniently placed before each boss fight that will bring you back to your ship, to allowing saving the game and replenishing the ammunition. Those teleporter also allow you quick travel back to the boss area itself once activated. The game also features a checkpoint system, checkpoints are automatically activated and save your current health and ammo, when you die you can restart at the checkpoint with the old health and ammo count. As the game doesn't give any active indication when a checkpoint is activated this can lead to a few annoying situation where a checkpoint gets saved when one is low on health.

The overall structure of the levels is always the same, the player starts at his ship and then has to travel deeper down into the map. Three artifacts are needed to unlock the teleporter to the level boss, these artifacts themselves are protected by a force field and disabling the force field requires collecting a force field key by solving some more or less complicated puzzles. The puzzles in this game however lack any of the good design seen in the other Metroid Prime games, instead they feel like a throw back to gaming a decade or two ago. The problem with the puzzles is that they are hardly ever based in the location or environment around you, instead the puzzles often come in the form of a series of switches that have to be activated and these switches happen to be placed completely randomly all over the map, without any clear rhyme or reason, so you will frequently find yourself looking into each and every corner of the map in the search for a switch. Other times the force field key appear after defeating all the enemies in a room or after going through a morph ball passage on a time limit, again with little hint or reason behind it and it is never really clear which key unlocks which force field.

Unlike in other games in the series Metroid Prime Hunters is also very low on upgrades. Samus Aran starts out with the morph ball, bombs, missiles and a charge beam. The only upgrades available throughout the game are six new weapons that have to be obtained from the other bounty hunters. The bounty hunters happen to be randomly scattered throughout the maps and act as sort of a mini-boss. They however don't really follow a classic boss pattern that has to be learned, instead they just run around randomly really fast, making them hard to hit. The main bosses in this game come only in two forms that are each repeated four times throughout the game, with some minor variation in the attack pattern.

Just as in other Metroid games, the new weapon can be used to unlock doors that are marked with the color of the weapon. In addition to the normal doors the weapons can also be used to deactivate special force feels, with these force fields there is however the additional problem that, unlike the doors, they are not marked on the map screen, thus it can become hard to remember where a special force feel was. Another issue is that the color coding is to similar, especially on the small Nintendo DS screen. Weapons come in green, blue, purple, yellow, orange and red and telling the different between those can be tricky. This becomes especially a problem on the last boss fight where the color coding plays a crucial part of the strategy to defeat the boss.

The game comes with the same scanning ability as seen in other Metroid Prime games, but unlike in other games the logbook is not available via the pause menu, but only from inside your ship. The logbook interface is also really cumbersome, the text is limited to just three lines and a very small window and lengthy animations make it really slow to switch between entries. The entries themselves also happen to be rather uninteresting and, aside from the final boss, are hardly ever useful.

The demo version of the game, Metroid Prime Hunters: First Hunt, that shipped with early Nintendo DS units, used to feature a simply top-down map on the bottom of the screen, in the final game this map is gone and replaced by a basic and mostly useless radar screen. The level map itself has been moved to the pause menu and works much like the map in the bigger Metroid Prime games. Due to the small resolution and the level design which features many small, potentially overlapping, corridors however the map is much harder to read then on a big TV screen. And as mentioned the force fields aren't marked on the map, only the doors, so it can at times get really tricky to figure out where to go next. The simplified map in the demo version did look a good bit more helpful, especially since that one was always available without pausing the game.

The controls in Metroid Prime: Hunters differ noticeably from the other games in the series, the lock on function is completely gone, instead the game follows more traditional first person shooter controls. The dpad is used for running and strafing, while the touch screen is used to rotate the view around or look up and down. The main weapon is fired by pressing the L shoulder button, which will when held down, produces three normal shots before going into charge mode. These three shots allow rapid fire without a very high frequency of presses on the button. The morph ball, the scan visor, as well as the weapon switching are handled with areas on the touch screen that can be clicked. Jumping is accomplished by tapping the touch screen twice in short order. Zooming on the map screen and using the boost ball ability are done with the R button, which is rather awkward, as that button is rather hard to reach when holding a stylus.

The graphics in this game fail to impress, while they do try to get close to the other Metroid Prime games and even succeed in some areas, they only really look good on screenshots. In the game itself they are simply impractical, the high level of texture detail makes it very hard to properly distinguish enemies from the background, so that one frequently ends up shooting blindly when chasing a hunter or another enemy, instead of doing proper aim. The graphics also lack any kind of light effects, so they feel very static and artificial. On top of that the Nintendo DS hardware just isn't very good at 3D graphics, so all the textures look pixelated and the enemy meshes are very basic. I would have welcome an artistic direction that is build more around the limitations of the hardware, then one that tries to emulate what was accomplished on much better hardware.

Overall the game disappoints on many levels. The level design itself feels basic and random, none of the puzzles really make any sense in terms of the environment and are just typical switch/door situations of the cheapest kind. The separation into four planets furthermore gives the game a linear feel, lacking the exploration of the other Metroid Prime games. Instead of proper free exploration, you spend most of your time looking for the next randomly placed switch or dry to decipher the hard to read map. The other bounty hunters make very weak enemies, as you just end up spamming them with missiles while they run around super fast. The game is also full of doors that are locked till you kill all the enemies in the room and other cheap tricks to artificially lengthen the game. The recycling of the main bosses further makes this game fill really cheap and the fast paced first person shooter gameplay just feels out of place in a Metroid game. Atmosphere in this game is basically non-existent, neither the location nor music invoke any and even if they would, that would quickly be destroyed by the gamey nature of puzzles and enemies. Enemies also only come in a few different forms, so they repeat a lot.

The controls in this game are simply atrocious, while they do work perfectly fine from a technological point of view, they are a complete nightmare in terms of ergonomics. Navigating with the dpad while holding the Nintendo DS and scrubbing around on the touch screen with the stylus just doesn't work in any way, shape or form. What makes the situation even worse is that the game is every fast paced at times, so it will give you hand cramps frequently and it is overall just painful to play.

In the end there really isn't much positive I can say about this game. The checkpoints are certainly a welcome addition and reduce the frustration a good bit and it can be a bit of fun when you finally have figured out a boss tactic that worked. But none of that really saves the game in the end or makes the around ten hours that it will take you to beat it fun. Metroid Prime Hunters feels like a mix of Quake with a Metroid Prime look slapped on, but at the same time it completely fails to actually create a proper Metroid atmosphere. Even taken as an action game it just fails, for that there are to many annoying puzzles in the way and the game is just not straight forward enough to enjoy that way. This game is certainly the low point in the Metroid series and doesn't contribute anything noteworthy.

Saturday, October 02, 2010

Review: Metroid Prime 3: Corruption (Wii)

Metroid Prime 3: Corruption was released in 2007 and marks the third and final entry in the Metroid Prime series (ignoring the Nintendo DS spin offs Metroid Prime: Hunters and Metroid Prime Pinball). Unlike its two predecesors this game didn't came out on the GameCube, but on its successor, the Nintendo Wii and large parts of the game design reflect this change in being build specifically around the Wiimote controller and its pointing and motion detection capabilities. The game also takes a more much story driven approach then its predecessor.

The game starts out with a short sequence showing the rebirth(?) of Dark Samus and switches then to to the regular Samus Aran waking up in her space ship on her route to the planet Norion. At this point the player takes control of Samus and can, via the Wii Remote, look around in the cockpit and interact with a few buttons and gadgets, allowing him to deploy a shield, engage the weapons or look at some game statistics. The game then requires the player to input a code via a virtual keypad and engage the docking sequence. After a short cutscene showing the docking with the G.F.S. Olympus, a Galactic Federation spaceship, Samus leaves her spaceship and the player takes control of her with the regular first person shooter controls.

On the G.F.S. Olympus the player can walk around and talk to crew members and have a sentence or two with them. Samus stays however complete silent in these situations, as she will for the rest of the game, but the NPCs are fully voiced. The dialog however still is based in its text origins and the player has to acknowledge each sentence spoken by pressing the A button. The dialog also doesn't go very deep and most talk is either about where you have to go or empty phrases like "I am on duty, I can't talk now". Overall the beginning of the game feels extremely similar to that of Doom 3, not only in the way one can interact with the crew, but also in a short scanning procedure that follows later on.

Once past the initial introductions, which also provided a few tutorial like opportunities to get familiar with the Wiimote controls, the game puts the player into a briefing room where he learns that an Aurora Unit has been stolen from the G.F.S Valhalla and used to hack into the federations network. The Aurora Units are large brain-like super computers that resemble the Mother Brain from the first Metroid and act as control units throughout Galactic Federation facilities. The job of the player and three other bounty hunters that join the fight is to clean the Aurora units of their infection. The briefing however is soon interrupted by a pirate attack after which the player has to fight his way back to his ship and land on the planet Norion to support the ground troops there.

On Norion the player learns that a Leviathan, a Phazon invested asteroid, is on collision course with the planet and in turn has to activate a few power generators to fire an orbital canon to destroy the Leviathan. This leads to a few encounters with the other bounty hunters and to one of the highlights of the game, where Samus fights against Ridley while falling down a generator shaft, being saved by one of the other bounty hunters in the end. With all the generators back online all bounty hunter head to the canon that shall destroy the Leviathan, but they all get knocked out by a surprise attack of Dark Samus. Samus manages to still activate the canon and destroy the Leviathan before falling unconscious.

After this point, that happens at around an hour or two of gameplay, the games story makes a sharp cut and jumps one month forward. Samus Aran wakes up in a medical bay and learns that she has been infected with Phazon. This infection in turn was utilized by the scientists to build a Phazon Enhancement Device device that allows Samus to shot a very powerful Phazon beam for a short amount of time, called Hypermode. Furthermore she learns that multiple Leviathans have hit other planets in the system. All the other bounty hunters, who also have been equipped with P.E.D., have already woken up earlier and send on a mission to destroy each of the Leviathans, but contact was lost shorty afterward. Samus mission now is to find out what happened to the other bounty hunter and to destroy the Leviathans. At this point the game turns from its heavily scripted gameplay of the first part of the game, that in part bear a close resemblance to the beginning of Halo: Combat Evolved, back to more traditional Metroid Prime style gameplay. A few cutscenes with dialog will still happen after this point, but they will be mostly limited to boss fights and dialogs with an Aurora Unit that gives hints on where the player has to go next.

The story thus continues with Samus Aran traveling to the planet Bryyo, an abandoned planet filled with lava and industrial constructions use to produce fuel. Here she has to deactivate a Space Pirate shield generator that protects the Leviathan and following that attack the and destroy the Leviathan from the inside by fighting the corrupted golem Mogenar. After clearing Bryyo the journey continues to the planet Elysia, a floating city in the sky previously inhabited by the Chozo, but now abandoned, leaving only a few robotic maintenance droids. The way to destroy the protective shields of the Leviathan on Elysia turns out to be the building of a nuclear bomb. After being done with Elysia the journey continues to the Pirate Homeworld, where the last Leviathan is destroyed by a united attack of Samus and a group of Galactic Federation Marines. The Leviathans guardian turns out to be Ridley. After short departure to the remains of the lost ship G.F.S Valhalla, where a few command codes to control a Leviathan are recovered, Samus along with a fleet of Galactic Federation ships makes it to the homeworld of Phazon, called Phaaze. Here the confronts Dark Samus again and finally destroys the planet.

The cutscenes in Metroid Prime 3: Corrupted, while more plentiful then in the previous two games, are not still fully convincingly implemented. The animation timing always looks incorrect with none of the presented movement ever looking realistic and even seeing Samus Aran's spaceships flying around seems to lack proper weight and acceleration. Some of the cutscenes are also just badly written. For example there is one where you enter a room, see a few space marines being attacked and two of them killed, before a third one activates his P.E.D. device to kill the pirates with a powerful blast. This cutscenes serves only to demonstrate to the player the effects of the P.E.D. device, before the player obtains it himself, while at the same time braking the immersion, as Samus is just stands around doing nothing while the pirates and marines fight. Another general issue is that after every fight sequence the marines will go to a 'stand against the wall' position, they look like your standard bored military guard, not like somebody that is right now actively involved in defending the base. It just looks ridiculous.

The games structures differs from other Metroid Prime games in that one is no longer limited to a single planet, instead the player can, via his ship, travel to different locations in the solar system or to different landing spots on the same planet. This freedom is almost unrestricted, with Norion, Elysia and Bryyo being accessible right from the start. This new freedom however comes at a price, the world in Metroid Prime 3: Corruption feels much more linear and less interconnected then in previous games. There are even quite a few points in the game where traveling to another point on the same planet via the ship is required. Thus instead of just having the ship as a faster way to get back to a previous location, it becomes a questionable item to let the player jump from one location to another, without providing a direct connection.

Just like in the previous two titles, this game also again features an item collection at the very end of the game that requires you to backtrack through previous locations. This backtracking comes in the form of energy cells that are needed to unlock pathways on the G.F.S. Vallhalla. Hints for the locations for the energy cells are again provided in the logbook, but unlike before one shouldn't have to much problems collecting all the required energy cells on a regular playthrough, so that backtracking is hardly ever necessary. The only exception to this is the G.F.S. Vallhalla itself, it is not immediately obvious that the ship only really becomes important at the very end up the game, so one will probably have visited it a few times before, just to run into a dead end.

The controls in Metroid Prime 3: Corruption differ noticeably from those in previous titles. The left analog stick is no longer used to turn the character, instead it is used in the classic WASD-style to strafe. Turning is handled by moving the Wiimote cursor to the edge of the screen, while moving the cursor around the center allows to aim. The threshold at which point your character goes from free aim to turning can be configured in three steps, with the largest one requiring almost to put the cursor out of the screen to begin turning. The lock on feature is still present in this game and can be used in combination with the aiming of the cursor to shoot enemies at specific spots, instead of just the center. This new ability is reflected in most of the enemy and especially the boss design, which always features a collection of weak spots, while the plain center remains invulnerable.

Jumping and shooting is handled just as before with the A and B button, while morphball and lockon is done via the C and Z keys on the nunchuck. The visor selection has been moved from the dpad to a pie-menu that can be triggered by holding the minus button. The visors present in this game are reduced to the regular scan visor, an x-ray visor, that works much the same as before, and a new ship visor, that however doesn't really visualize anything, instead it is just used a few times to call your ship to specific landing spots or call in air strikes. The plus button acts to activate the hypermode. With the plus and minus buttons already being used, access to the map, logbook and option menu has to be placed on the hard to reach 1 button. Pressing the 2 button will display a context sensitive help. Missiles are now shot by pressing down on the dpad, while the other directions on the dpad remain without functions. A weapon select is not present in this game, as the weapons no longer have different abilities, a weapon upgrade will simply replace the previous weapon and act for most part simply as a stronger version of what the previous weapon did. The ability to freeze enemies has been moved to an ice missile, just like in Metroid Fusion.

The map system in Metroid Prime 3: Corruption continues to have the same issue as in previous games, namely that different areas on the map will overlap in the 3D view, making it hard to decipher the map. A more structured 2D map view or better hints on the map are still missing, however due to the simplified level design these issues don't become as annoying as they did in the previous titles. The logbook is now back to a regular menu, leaving the misguided rotational menu of Metroid Prime 2: Echoes behind. Another welcome addition is the larger text area and the ability to smooth scroll through the text, instead of being limited to page flips. The ability to view the 3D models of creatures however seems to have disappeared.

Aside from the regular button based controls, the game also features some motion controls. The most basic one would be the jumping in morphball mode that is triggered by jamming the Wiimote upwards. Another motion control comes in the form of the grapple lasso, that is triggered by locking on a target jamming the nunchuk forward or, when already connected to a target, by pulling it backward. The grapple lasso is used to move items around or to rip shields or armor from enemies. While all of these motion controls have the typical issue of a rather large delay between the motion and the action on the screen, they mostly work with acceptable accuracy.

Where the motion controls however fail is in the minigames. These minigames are used to activate controls, open doors or to solve other minor puzzles and involve some simple sequences of actions such as pushing the Wiimote to the screen, rotating it and then pulling it back. The rotation is detected by the accelerometers and accurate. The push and pull however is done via the IR sensor on the Wiimote, and while that sensor is precise when it comes to pointing, it is much less precise when it comes to detecting distance. On top of that it is not immediately obviously that the push and pull actions require that the Wiimote is pointed precisely at the screen, thus it can often happen that a move won't be properly registered. This issue becomes even more problematic as the normal way of holding a Wiimote never leaves enough room for doing a push or pull that is large enough to properly register.

The game is however very forgiving in those minigames, never requires them to be done under time pressure and guided enough that things will often snap into place randomly before even having executed a gesture properly, so that it never becomes an issue of frustration. It however feels awkward when such a minigame pretty much solves itself, without the action on the screen really reflecting much of what the player did. In one minigame, near the end of the game which is used to activate a train, where one simply has to pull a lever up and then back down, the issue become so bad that I would go as far as to say that that minigame is just flat out broken. Not once did I managed to have the actions on the screen mirror of what happened with the Wiimote, random wiggle always seems to have just as much chance of success, which is weird as detecting the tilt of the Wiimote is something that actually should work technically just fine.

From a technical point of view, the graphics in this game are very similar to those in the previous games. The main difference being that they are now full 16:9 instead of 4:3 and that they have a glow filter applied to them. Where they however differ a good bit is in the use of color. While Metroid Prime 2: Echoes was mostly grays and a bit purple, Metroid Prime 3: Corruption is full colors, even the suit got an colorful remake. Sometimes this amount of color gets a little to much, as the Wiimote cursor can become hard to see, but overall it is a nice game to look at and the frame rate remains high throughout the game. Aside from the improvements the new graphics however also have a downside. In the previous two games you had light effects on your beam and missiles, shooting a missile through a dark hallway would light it up in those parts where the projectile was traveling through. In this game those effects seem to be completely gone, the hallway stays dark. There are still light effects left when rolling around in the morphball however, but for missile and power beam they are gone.

Another big graphical difference with this game is that it is now full of open rooms. While the room like level design itself persists and your freedom is still just as limited as before, you have frequently a large panorama in the background that gives a good sense of scale. It also helps that those panoramas no longer suffer from the low texture resolution that they had in Metroid Prime 2: Echoes.

Water sections in this game are completely absent, same goes for nature sections in general. The scenarios in this game are limited to a federation base, a federation spaceship, a pirate base, a sky city, an old lava filled temple and a small Phazon section. So you spend a lot of time in buildings and only very little time in natural caves.

One new feature in this game is how the unlocking of artworks, instead of having the galleries locked to things like finishing the game with 100% items or finishing it on a specific difficulty setting, you earn points throughout the game that act as currency with which you can unlock galleries. The earning of points is similar to the Xbox 360 achievement system, some points get earned by doing special things, other by regular game progression. Where that system however fails is with the 'friend vouchers', these are points that you can't use by itself, but that you have to exchange, via the network, with another person owning the game. What makes this problematic is that the game as no multilayer component, thus the only reason to go through all this 'friend' stuff is to unlock the vouchers, it really serves no other purpose at all. What makes this especially problematic is that you actually need those special friend vouchers to unlock a very large portion of the artworks, so no matter how many other points you collected, they stay completely useless unless you go through the friend setup and exchange procedure.

Another disappointing thing is that the game is still limited to three save games, on the Wii with more then plenty of internal storage thus an artificial limitation really shouldn't exists.

In terms of length the game is a bit shorter then the previous two Metroid Prime games, clocking in around 14 hours on a normal playthrough.

Overall it is a good game, but not a great one. The game certainly tries to make most of the Wiimote with its plenty of mini-games, but in the end, none of those really contribute much meaningful substance to the game and most of them barely function. The ability to enter your spaceship is a nice addition, but again it stays meaningless, as you really can't do anything inside your ship. The only motion control that actually works reasonably well is probably the grapple lasso, it works well enough to not malfunction all the time and does its job to get you a little more involved in the game.

The pointer based controls on the other side work reasonably well, especially with most of the games enemies build around the new precision aiming they are fun to play. I however wouldn't say that they work much better then a classic dual analog setup, having turning and aiming done via the same cursor just feels a little to awkward. And there are moments in the game where you go from a dialog scene back to the game just to find your character spinning around like crazy, as your cursor, invisible through the dialog, might no longer point at the center of the screen. This issue of course gets more problematic the more sensitive you configure your controls.

The story in this game mostly disappoints, while it certainly tries in terms of presentation, it never really delivers in terms of actual content. None of what happens elevates beyond bare bones video game story telling. And some issues such as killing the three other bounty hunters that you befriended at the beginning of the game are just completely glossed over.

The level design also feels like a bit of a downgrade from previous games, it is to linear and simplified, lacking the heavy interconnected nature that made Metroid Prime 2: Echoes so interesting. The addition of the spaceship doesn't help much either, as it breaks the game into even more non-connected pieces.

Where the game however wins is in accessibility, the addition of reset points before boss fights and a general downgrade in terms of difficulty, makes this an easily enjoyable game. It might not have the depths of its predecessors, but neither does it have the heavy potential to frustrate. It is simply a more streamlined experience overall, for all the good and bad that this brings.