Final Fantasy publisher Square Enix recentlyh took an interesting approach to cross-platform development -- using DS source code to spawn the Wii version of Final Fantasy Crystal Chronicles: Echoes of Time.
At the CESA Developers Conference (CEDEC) in Yokohama, Japan, Square Enix game director Mitsuru Kamiyama and Nintendo technology support sub-manager Masaru Mitsuyoshi talked about the challenges in developing a DS-based game for the Wii.
"Echoes of Time was originally intended only for the DS, but our president at that time insisted that all titles be multiplatform," said Kamiyama. "So we decided on a Wii version, but with the condition that it be created based on the source code of the DS version."
This way, Kamiyama thought, most of the focus could be placed on DS games that could be simply ported over to the Wii later. However, since the DS and Wii have different development kits, using the same source code was impossible.
The team decided to use CodeWarrior, and based on the DS source code, a build was created for the Wii. Even though the output came out with countless errors, he filled the empty strings on functions where the errors occurred and continued to repeat the process until the error was fully eliminated.
These empty strings were then replaced using the Wii SDK. Also, since the endiannes for the DS (little endian) and Wii (big endian) were different, a method to automatically convert upon reading the data was also created. As for the graphics, DS character models and texture data were also used on the Wii version, but were rendered at a higher resolution.
However, there were still many other issues that needed to be addressed. This is where Nintendo's technical support team came in to provide backup support to complete the Wii version.
"Our technical support team consists of 15 staff members and this is all done through a web-based forum," explained Mitsuyoshi. "Third party developers can post questions and we would do our best in providing possible solutions. There are probably about 4,000 to 5,000 registered users, and there are only 15 of us that would manage these forums."
As an example, problems over key sharing were addressed with Nintendo's help. In a multiplayer game with several DSes, the role of the 'parent' unit would be to first gather the data of all the key input from the 'child' units and then distribute this to all the key data to all the 'child' units. This is done in every frame during the game, and as all the keys are gathered and distributed, the game would proceed to the next step and the process is repeated.
However, something that may not be a problem with several DSes may cause serious problems when the game deals with the DS and Wii. They found out that this was the result of an implementation-dependency in C language since a C# converter was used as an authoring tool to convert data from the DS to the Wii.
Although a conversion library was finally completed, only Echoes of Time has adopted it so far. Kamiyama believes that "in our case, this method matched our game design, but this does not necessarily apply to all types of games."
"For example, the DS touch controls and Wiimote controls have a different level of accuracy and in Echoes of Time, the buttons were already made bigger and this was easy to control even on the Wii," Kamiyama added.
Nintendo was very patient working with the team: "Normally we would get a total of 50 or so thread topics from one project, but this game made the records," said Mitsuyoshi of the game's 1,082 threads.