Original X-Wing engine rebuilt project
Posted: Wed Jul 13, 2016 4:59 pm
Greetings, gentlemen.
I have been encouraged to share here the existence and progress of this little project that I started one and a half years ago in the GOG forums.
The original thread started asking around for the interest on developing a particular kind of mod to the original X-Wing.
The idea was not to replace the resource files (mission, ships, etc) as so many mods before have done, but to instead replace the executable itself with a rebuilt version made from scratch, by reengineering all the different systems and features based on plain observation of the game, technical references, contributions of many during the years about the different file formats, etc.
The main motivation of this was that it is practically harder to hack the official executable to allow for nowadays standard resolutions, hardware and game inputs, than is to remake it withing a modern framework that already supports all those features.
Also, while the rebuilding of X-Wing might sound unnecessary, especially when there is X-Wing 98, and countless ports and total conversions to later versions of the engine, or to other game engines, it is usually agreed that none of these ports and remakes feel totally right, because some signature features of the original X-Wing are "lost in translation", like the functional cockpits, the iMuse system, the cutscenes, the roster pilot management before missions, and many others.
Finally, it is developed as a mod, and not as an independent game or a remake. The main reason of this is to stay away from copyright or trademark infringements with the IP owners. The user, owning a license of the original game got from the original releases, from Steam, or from GOG, will just run an alternative executable that will make use of the original resources in the original game's directory.
Where the original resource files weren't appropriate, they would be replaced with community made content.
Of course, the project has zero intention to have any commercial aspirations.
The roadmap was kept simple, as the main goal of the project was to be feasible. Unlike the opinion of many, the X-Wing games aren't that simple in their mechanics. So instead of starting from the latest game in the series, and also the most complex XWA, the idea was to rebuild the X-Wing engine as well as possible without access to the source code, then possibly evolve it with the features added during the years to the series.
So the main stop in the roadmap was to get a "minimum viable product" that showcases the traditional X-Wing mechanics. That is, above anything else, the flight engine, a medium complex mission (parsed from the original mission files), and some 3D placeholders to represent the ships, weapons and cockpit instruments.
(Due to their enthusiasm, some clever members have totally found out the iMuse system, and it is totally implemented and complete in the current build, with nicely re-synthesized tracks. So that is a bonus on top of the initial idea of a "minimum viable product".)
The real long term goals are that the new engine parses the OPT files from the Win98 version of the game (or whatever the user decides to download, perhaps XWAU models) and uses them as 3D models. However, an on-the-fly OPT importer is a project itself in complexity, so instead we opted for handpicked placeholders and leave the OPT import module for later on.
What couldn't be reused from the game itself, we have temporarily proxied with "developer art". As you can see in the screenshot that opens this text, the cockpit was made by me (a programmer, not a 3D artist) and it shows.
Only for internal development builds, and I repeat, only for internal non public, not to be distributed builds, we went to use 4 XWAU models that pose as placeholders for the ships that are involved in our testbed mission, Y-Wing Historical Mission 6, Rescue Ackbar.
The reason of this was to test how well the Unity engine deals with higher polycount models, rather than the 2000s era models of the game.
We humbly feel that we haven't broken the terms of use from XWAU, as we have not manipulated them, made derived works of them, neither published or distributed them without permission (since the developer build is nowhere to be downloaded and they are just placeholders). In any case, the dev build has had, at all times, a big label crediting the origin of the models.
We have, however, some talented members working on making totally new models for this project (so far, of only the 4 ships involved in the testbed mission) in case the XWAU team considers that we have misused their work. In such case we deeply apologize and commit to remove them for all future releases.
These other models have the purpose to allow the game to load different possible model sets to the user's preference. While one user might like to have models as close to the flat untextures models of the original X-Wing; another user might want to have highly detailed, high polycount models for all ships; another could want to have the beloved XWAU models; and another could stick to the X-Wing 98 models. All of this with just the ease of a selection in the customization screen.
We couldn't feel more honored if the XWAU team would give us permission to implement such a feature in the future, where the game would download the files form the XWAU site and install them on the fly, hopefully keeping up to date with the latest versions.
If the XWAU team isn't happy about this idea, there is nothing else to say about it.
Much of the technical discussion can be found in the original GOG thread. Most of it has been documented on this online document, giving credit to the source of the information whenever it has been known.
The source code of the project is hosted in BitBucket for public reviewal, and will be open to external collaboration once the foundations of the flight engine are stable and the first tesbed mission is completed armed and operational to be played.
I am looking forward to reading the opinions of the members of this community about this project.
We are always welcoming suggestions, feedback, and concerns. And I couldn't think on a better place than this from where to get all of that.
Thanks for your time.
Azrapse,
Main developer of the XWVM project.
I have been encouraged to share here the existence and progress of this little project that I started one and a half years ago in the GOG forums.
The original thread started asking around for the interest on developing a particular kind of mod to the original X-Wing.
The idea was not to replace the resource files (mission, ships, etc) as so many mods before have done, but to instead replace the executable itself with a rebuilt version made from scratch, by reengineering all the different systems and features based on plain observation of the game, technical references, contributions of many during the years about the different file formats, etc.
The main motivation of this was that it is practically harder to hack the official executable to allow for nowadays standard resolutions, hardware and game inputs, than is to remake it withing a modern framework that already supports all those features.
Also, while the rebuilding of X-Wing might sound unnecessary, especially when there is X-Wing 98, and countless ports and total conversions to later versions of the engine, or to other game engines, it is usually agreed that none of these ports and remakes feel totally right, because some signature features of the original X-Wing are "lost in translation", like the functional cockpits, the iMuse system, the cutscenes, the roster pilot management before missions, and many others.
Finally, it is developed as a mod, and not as an independent game or a remake. The main reason of this is to stay away from copyright or trademark infringements with the IP owners. The user, owning a license of the original game got from the original releases, from Steam, or from GOG, will just run an alternative executable that will make use of the original resources in the original game's directory.
Where the original resource files weren't appropriate, they would be replaced with community made content.
Of course, the project has zero intention to have any commercial aspirations.
The roadmap was kept simple, as the main goal of the project was to be feasible. Unlike the opinion of many, the X-Wing games aren't that simple in their mechanics. So instead of starting from the latest game in the series, and also the most complex XWA, the idea was to rebuild the X-Wing engine as well as possible without access to the source code, then possibly evolve it with the features added during the years to the series.
So the main stop in the roadmap was to get a "minimum viable product" that showcases the traditional X-Wing mechanics. That is, above anything else, the flight engine, a medium complex mission (parsed from the original mission files), and some 3D placeholders to represent the ships, weapons and cockpit instruments.
(Due to their enthusiasm, some clever members have totally found out the iMuse system, and it is totally implemented and complete in the current build, with nicely re-synthesized tracks. So that is a bonus on top of the initial idea of a "minimum viable product".)
The real long term goals are that the new engine parses the OPT files from the Win98 version of the game (or whatever the user decides to download, perhaps XWAU models) and uses them as 3D models. However, an on-the-fly OPT importer is a project itself in complexity, so instead we opted for handpicked placeholders and leave the OPT import module for later on.
What couldn't be reused from the game itself, we have temporarily proxied with "developer art". As you can see in the screenshot that opens this text, the cockpit was made by me (a programmer, not a 3D artist) and it shows.
Only for internal development builds, and I repeat, only for internal non public, not to be distributed builds, we went to use 4 XWAU models that pose as placeholders for the ships that are involved in our testbed mission, Y-Wing Historical Mission 6, Rescue Ackbar.
The reason of this was to test how well the Unity engine deals with higher polycount models, rather than the 2000s era models of the game.
We humbly feel that we haven't broken the terms of use from XWAU, as we have not manipulated them, made derived works of them, neither published or distributed them without permission (since the developer build is nowhere to be downloaded and they are just placeholders). In any case, the dev build has had, at all times, a big label crediting the origin of the models.
We have, however, some talented members working on making totally new models for this project (so far, of only the 4 ships involved in the testbed mission) in case the XWAU team considers that we have misused their work. In such case we deeply apologize and commit to remove them for all future releases.
These other models have the purpose to allow the game to load different possible model sets to the user's preference. While one user might like to have models as close to the flat untextures models of the original X-Wing; another user might want to have highly detailed, high polycount models for all ships; another could want to have the beloved XWAU models; and another could stick to the X-Wing 98 models. All of this with just the ease of a selection in the customization screen.
We couldn't feel more honored if the XWAU team would give us permission to implement such a feature in the future, where the game would download the files form the XWAU site and install them on the fly, hopefully keeping up to date with the latest versions.
If the XWAU team isn't happy about this idea, there is nothing else to say about it.
Much of the technical discussion can be found in the original GOG thread. Most of it has been documented on this online document, giving credit to the source of the information whenever it has been known.
The source code of the project is hosted in BitBucket for public reviewal, and will be open to external collaboration once the foundations of the flight engine are stable and the first tesbed mission is completed armed and operational to be played.
I am looking forward to reading the opinions of the members of this community about this project.
We are always welcoming suggestions, feedback, and concerns. And I couldn't think on a better place than this from where to get all of that.
Thanks for your time.
Azrapse,
Main developer of the XWVM project.