Post feature Report RSS Upgrading an X-Wing Mission for XWVM

A brief overview of some XWVM sidecar functionality, and a walkthrough of applying this to create dialogue for an original X-Wing Tour of Duty mission.

Posted by on

XWVM Dialogue


Overview

By now, you’ll have seen the screenshots, videos and streams of XWVM, and the transformative experience it brings to playing the original X-Wing game from 1993: not just in the improvements to visuals and audio, but also the advances to controls, configurability and user feedback.

With these improvements in mind, when playing the original missions through a modern lens, some limitations quickly become evident. Battles can be confusing, with the arrival and departure of crucial flight groups easy to miss while in the heat of a dogfight. Objectives can be opaque once you’ve lost yourself in the thrill of combat; the mission briefing becomes a rapidly-fading memory. Missions fail, or otherwise end abruptly, with little indication as to what’s gone wrong.

The original game designers recognised these flaws, and through the evolution of the series, made a number of improvements to mission design and player experience through the introduction of in-flight dialogue. Depending on the events taking place at a given moment, some tailored text and/or audio would be triggered.

Such dialogue can give the player crucial hints about the mission: a reminder or clarification of an objective; arrival of a hostile flight group intent on destroying a friendly objective; updates on a crucial boarding operation; or one of a dozen other important scenarios. Alternatively, the dialogue may be purely expository, immersing the player in the lore or development of the story or characters – this is particularly evident in X-Wing Alliance with conversations relating to Azameen family characters, as an example.

While these improvements were introduced in TIE Fighter and later games, this functionality was never backported to X-Wing, despite there being later re-releases of the game, such as the 1998 Windows release (referred to as “X-Wing 98” by the XWVM team). This was perhaps understandable given the scope of such a task: X-Wing features 116 missions across the Historical Missions and Tours of Duty.

Never deterred by a challenge, the XWVM team has taken up the mantle of upgrading the original X-Wing missions to support this feature, with the aim of increasing immersion to the standard of TIE Fighter and X-Wing Alliance, where possible.

This has been made possible by the recent implementation of an innovation called sidecars. These custom files are read by XWVM alongside the original mission file, and allow for the addition and overriding of properties of that mission, without directly modifying the original file itself.

Note: Sidecars have various uses for XWVM: this article refers to a subset of mission-related functionality only.

For example: in Y-Wing Historical Mission 3 ‘SOS from Twi’Lek Corvette Karrine’, the mission briefing refers to the Twi’lek home planet as Twi’lek, which most fans would better recognise as Ryloth, as featured in various Star Wars content published since the release of X-Wing. Using sidecars, the label shown under the planet in the briefing can be amended directly, with no change to the original files.

General Dodonna is puzzled at the odd choice of planet name in the original mission.

General Dodonna is puzzled at the odd choice of planet name in the original mission.


This functionality extends beyond the briefing, as in-flight dialogue can be added without otherwise changing the substance of original missions, with the intent of increasing player immersion and providing vital context to the mission status.

The sidecar updates the planet name in XWVM without modifying the original mission file.

The sidecar updates the planet name in XWVM without modifying the original mission file.


Sidecars also allow for mission properties to be overwritten: for example, changing a flight group designation or type; arrival trigger; etc.

Upgrading a mission: Tour 5, Mission 12

To illustrate this feature, we’ll walk through the process of creating dialogue for one of the later missions in the game: Tour 5, Mission 12 ‘Intercept Imperial Attack’, originally released as part of the B-Wing expansion pack and later bundled with the 1994 and 1998 Collectors’ CD releases of the game.

Step 1: Study and play the original mission

The dialogue creation process begins with an examination of the original mission. X-Wing missions consist of two files: a BRF file containing the mission briefing, and an XWI file containing the mission definition itself used when playing the game.

These files can be opened using any one of a number of existing editors, such as YOGEME or X-ED, and will provide a list of all flight groups (craft and objects) present in the mission, and data such as position, arrival and departure triggers, goals relating to the player, and flight orders. From this information, the key mechanics of the mission such as player objectives and major threats can be understood.

Static analysis can only tell us so much, however, and can also be tedious when reviewing lots of missions: to really understand how the mission will unfold, it must be played directly.

As mentioned previously, a number of X-Wing releases exist. Each has its own feature set, quirks, and in some cases, minor mission modifications, which can make selection of a baseline challenging.

For XWVM, we use X-Wing 98 as our baseline, as mission timing is consistent compared to the DOS versions, which were dependent on the frame rate, resulting in the same mission potentially playing very differently on two machines running at different speeds.

Flying the original mission, and avoiding some deadly gunboat collisions!

Flying the original mission, and avoiding some deadly gunboat collisions!


In the case of this mission, we play through the original mission as was intended: dogfights with Imperial fighters ensue; some careful target prioritisation ensures wingmen safety; and some talented heroics save one of the target freighters from destruction by the late arrival of some nasty Imperial transports wielding warheads. The mission completes, and we pat ourselves on the back: another battle completed in the name of the Rebellion.

If all goes well, we have a nice summary of the completed mission goals.

If all goes well, we have a nice summary of the completed mission goals.


Step 2: Initial dialogue crafting

With this view of the mission mechanics clear in our mind, it’s now time to create a first draft of dialogue.

Dialogue is created based on mission events, such as mission start; arrival of a flight group; craft being inspected; and so on. Based on the observations from the mission file analysis and playthrough, the relevant events can be used as the basis for the new dialogue.

The original games had a limitation for the allowed length of messages: 63 characters. While XWVM does not share the same technical limitation, for consistency, conciseness and player expectation, we choose to approximate this limit. Where longer dialogue is needed, multiple messages can be triggered by the same event(s) and queued together, by specifying a delay as a multiple of 5 seconds.


An excerpt of draft dialogue based on the initial playthrough.

An excerpt of draft dialogue based on the initial playthrough.


After creating the dialogue and assigning a ‘speaker’ (for later use with voice recordings), this can be converted into a sidecar for use by XWVM.

The sidecar format is based on XML and follows a straightforward structure that allows for concise settings and rapid iteration.

Partial view of the initial sidecar for testing.

Partial view of the initial sidecar for testing.


With the sidecar done, it just needs to be saved within a subfolder in the player’s XWVM settings folder (in Windows, this is within AppData), and the game will now automatically load this when starting the mission.

With the sidecar placed in the appropriate folder, our dialogue now appears in-game.

With the sidecar placed in the appropriate folder, our dialogue now appears in-game.


Starting the mission in XWVM, we now have our dialogue messages appearing in-game. It’s a good idea at this point to play through the mission again to check that the triggers are correct and the dialogue works in context of the player’s actions.

This video shows the sidecar additions in action.


Step 3: Refinement

At this point, the dialogue may need some refinement in response to testing. This might be a change in timing or trigger behaviour, amendments to the lines, or adding new lines to account for situations that the player might create.

In the case of Intercept Imperial Attack, we find a potential scenario that challenges the dialogue written in the first draft: rather than playing the mission as was intended by the designer, the player can instead significantly shortcut the mission by destroying the Habassan freighter that the Empire is trying to board.

Destroying the freighter doesn’t affect the mission objectives directly, but instead this allows the arriving Habassan repair freighter (which must survive for the mission to succeed) to depart much more quickly, speeding up the overall time to complete the mission, as well as minimising the opportunity for enemies to attack it.

Aside from the player attacking the freighter directly, the Imperials also send in a squad of transports armed with torpedoes - unless the player is vigilant to their arrival, this is another possible event that will cause the destruction of the freighter.

In this case, the solution is quite simple: we add dialogue acknowledging the destruction of the original freighter, and reiterate to the player that the newly arrived freighter must be protected.

With some tweaks, we can account for the destruction of the freighter Jess 6.

With some tweaks, we can account for the destruction of the freighter Jess 6.


Within the context of the core mission refinements for XWVM, our philosophy is to maintain a ‘light touch’ approach to mission modifications: only making changes where it benefits the player and prevents ‘soft-lock’ issues or obvious logical bugs. Therefore, as a general rule, we don’t change the gameplay of the original missions, so where knowledgable or experimental players had workarounds to shortcut the mission, these will normally be preserved.

Additionally, changing the game to include additional craft or variations present in either new canon or the Expanded Universe is beyond the scope of this project (e.g. changing Imperial frigates to Arquitens-class cruisers), as the necessary efforts to develop such content would distract development resources from XWVM’s core mission. Of course, with the customisation and modularity of XWVM, the community could create such content following the release of the engine.

One other area of enhancement is the inclusion of voice acting. This is a planned addition, but will follow the completion of the main campaign dialogue writing and testing phase.

Summary

Hopefully, this article has explained and clarified the intention, scope and process that we are using to update the original X-Wing missions for play in XWVM, to provide an enhanced experience to players that is more in line with the later games in the series.

Of course, for those who prefer to play the original missions as they were in 1993 / 1994 / 1998, we’ve got you covered: all of these enhancements are entirely optional, and most likely won’t be included in the core game download on release, but instead are planned to be available as an independent add-on to be installed.

For everyone else, we sincerely hope you will enjoy these revisions and updates to a truly classic game, and immerse yourself in the thrilling campaign charting the struggles of the early Rebellion.

Post comment Comments
jackhicks236
jackhicks236 - - 108 comments

This is awesome, guys. You're doing a hard but promising job. My respect!

Reply Good karma Bad karma+2 votes
Salk
Salk - - 296 comments

Wonderful article!

I loved X-Wing but I believe there is space for improvements in the missions just like the team is doing.

Reply Good karma Bad karma+2 votes
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: