Modular code to make the Revolution?
Some time ago, probably going on years now, I remember discussing the idea of upgradeable consoles, and how games could benefit from this using modular code. The idea is that ConsoleX can be shipped with certain hardware, and games could be written for the hardware as would be the case on any console. However, the code for these games would be written with forethought, making Application Program Interface (API) calls that point to data for the given hardware set.
Later, when the hardware is upgraded, the same API calls point to new data shipped with the new hardware, effectively allowing the game to make use of newer features that correspond to the console upgrade.
For example, a game shipped with ConsoleX includes code that generates the polygons for a particular model. Let’s say the code aims to generate an explodable sphere comprised of some number of polygons, and ConsoleX is limited in the number of polygons it can generate to draw that sphere. However, when ConsoleX is upgraded, the new hardware would be capable of generating many more polygons for drawing a sphere. In a traditional setup, running the game on the upgraded ConsoleX will not result in the sphere looking, or exploding, any differently.
However, under my proposed “modular” design, the calls the game code made to generate the sphere would now point to an upgraded software library, designed specifically for the new hardware. As such, the same game, on the newer hardware, would generate a much smoother-looking sphere comprised of more polygons, yet would not need to be recompiled. Efffectively, when the game code searches a software library to execute a particular function, the function it executes is specific to the hardware the game runs on.
The same idea can be applied to a game’s physic’s engine, AI, etc.
This concept reoccured to me when reading up on Nintendo’s patent I wrote about earlier. One of the bonuses of people have been talking about is that legacy Nintendo games could be played on the Revolution that look better than when they were originally released, or, optionally, could be played using characters unavailable to players in the original title.
When pondering whether or not Nintendo would re-edit all the old code to their games, it occured to me that my idea for code modularity for Nintendo’s “virtual console” could very well be akin to writing code with the forethought of hardware changes. Just as a game might be written to “point” to a function that generates an explodable sphere, games might be written to “point” to libraries that include available characters to play with, weapons available, et al. In effect, a game developer could write a game today that allows players to choose from one of eight characters, and later release a new “library” that includes 10 characters. Rather than re-compile the game and distribute it accordingly, the developer would only have to distribute the new library.
With this type of implementation, Nintendo’s virtual console for the Revolution makes sense, at least as far as claims go suggesting that their older games will have surprising improvements in areas other than graphics. Considering that their patent was filed back in 2001, Nintendo developers could easily have included “hooks” to external libraries for all Gamecube games, with the thought in mind that one day, given the proper distribution method, these games could be “upgraded” in the future.
With the Nintendo Revolution, this type of upgrade is ab absolute possibility, since the Revolution will be able to access Nintendo’s wireless network, to purchase old games. Since the Revolution will play Gamecube games by loading the respective disc, all the Revolution would need to do is connect to Nintendo’s server, download the updated “library”, and suddenly give an old game new possibilities for play.
In much the same way, much older titles may be re-coded to conform to this modular, library-driven format, such that Nintendo could periodically push content upgrades for its games should it so desire. Thusly, if Nintendo wants to add Toad and the Princess as playable characters in the original Super Mario Brothers, they can make those characters available one at a time.
Imagine games that constantly evolve, with fighting games having new selectable warriors available over time, or games like Fable not requiring the purchase of a whole new disc to include levels that the developers didn’t have time to add to the original release. Instead, the new material would be available in small downloaded segments, without the developers having to modify the original game code.
The technology for pushing patches to consoles is available and already in use, but how Nintendo decides to use it is the question. Currently, game upgrades need to be purchased on XBox Live!, but Nintendo could very well start a new trend by giving players minor game upgrades for free, or by making them available by “unlocking” them through the accomplishment of certain goals, be it beating the game in its original form, obtaining special “character cards” in Happy Meals, et al. With Nintendo’s current social networking, its proposed virtual console features, and its desire to innovate on traditional gaming, I can very well see this type of modularity happen, especially if Nintendo intends to integrate it with future systems as well. Imagine, for example, one title that has its graphics rendered differently on the Revolution than on Nintendo’s new handheld, yet still shipping on the same disc.
Popularity: 2% [?]
Leave a Reply