Difference between revisions of "Mission Editor"

From Zero-K
Jump to navigation Jump to search
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
:<span style="color:red">'''Does not work in latest ZK version! Unsupported until further notice'''</span>
+
Campaign missions are created in one of two ways, with the missions editor or with a mission definition file. The mission editor is used for the first mission and Kodachi Rally as they involve triggers and cutscenes. The skirmish-style missions are created with a definition file.
The '''Mission Editor''' allows players to create interactive missions similar to single-player scenarios of commercial games and to easily publish them to all players.
 
  
Missions can also be designed for multiplayer and can be played cooperatively or competitively.
+
The '''Mission Editor''' allows players to create interactive missions similar to single-player scenarios of commercial games and to easily publish them to all players. These missions are [[Mod_Creation#Mutators|mutators]] so can be designed for multiplayer and played cooperatively or competitively.
 
 
Missions can become part of campaigns. (Campaigns not implemented yet)
 
  
 
[[File:Mission editor intro 1.jpg]]
 
[[File:Mission editor intro 1.jpg]]
Line 12: Line 9:
  
 
[https://github.com/ZeroK-RTS/Zero-K-Infrastructure/issues Feature Requests and Bug Reports]
 
[https://github.com/ZeroK-RTS/Zero-K-Infrastructure/issues Feature Requests and Bug Reports]
 +
 +
== Script Missions ==
 +
Most of the campaign missions are defined solely by the contents of [//github.com/ZeroK-RTS/Chobby/tree/master/campaign/sample/planets Chobby/campaign/sample/planets]. For example, [//github.com/ZeroK-RTS/Chobby/blob/master/campaign/sample/planets/planet1.lua planet1.lua] contains a list of sides, commanders, units, objectives, and rewards. The file is processed into a startscript by chobby when ythe mission is launched. Some gadgets and widgets in ZK read particular values in the startscript to to make unmodified base ZK run as the mission.
 +
 +
There are a few development widgets in ZK that can help create mission files. The most useful is the one that saves all the units (and optionally orders) in the format required for the script mission files. Documentation of the script mission files can be found in [//github.com/ZeroK-RTS/Chobby/blob/master/campaign/sample/planetDocumentation.lua planetDocumentation.lua]
 +
 +
== Running the Mission Editor ==
 +
The mission editor loads its files using an older version of Spring. To get the required version:
 +
# Open a Custom host and set a password.
 +
# Do <code>!engine 104.0.1-287-gf7b0fcc</code>. You should see the response <code>Nightwatch Engine changed to 104.0.1-287-gf7b0fcc</code>.
 +
# Start the battle. The engine should start downloading silently in the background.
 +
# Wait a few minutes and check whether <code>steamapps/common/Zero-K/win64/104.0.1-287-gf7b0fcc</code> exists (you may have to look in <code>Zero-K/engine/win64</code>). If it doesn't then try <code>win32</code>. If you're on Linux then check the appropriate directory.
 +
# Copy the entirety of <code>104.0.1-287-gf7b0fcc</code> folder to a new folder somewhere isolated called <code>missionDev</code>.
 +
# Copy <code>steamapps/common/Zero-K/maps</code> and <code>steamapps/common/Zero-K/games</code> to <code>missionDev</code> such that you have the paths <code>missionDev/spring.exe</code>, <code>missionDev/maps</code> and <code>missionDev/games</code>. Optionally, you may just make empty <code>games</code> and <code>maps</code> folders and copy whatever you need in as you need it.
 +
# Run the mission editor and point it to <code>missionDev/spring.exe</code> when it asks you to supply an engine path.
 +
 +
You now have a mission editor setup capable of making and editing missions that use the maps and games you have copied into the relevant folders. To edit existing missions you may require two additional steps:
 +
* Some missions run off the development version of Zero-K as this makes them easier to test and debug. When the mission is exported for use the version is changed to zk:stable. To get the development version of Zero-K [[Zero-K:Developing#Getting_sources|follow the instructions here]] with paths modified to end up with <code>missionDev/games/zk.sdd</code>.
 +
* To take a look at or edit the current missions, clone [https://github.com/ZeroK-RTS/Zero-K-Missions this repository] similarly to how you would clone the main game in the above dot point.
 +
* Some old missions may be made with a version of Zero-K that no longer loads on the mission editor. When in doubt, use the development version of Zero-K (<code>Zero-K $VERSION</code> as it is the most likely to be up to date. The version of a mission can be changed directly by editing its xml.
  
 
== Tutorials ==
 
== Tutorials ==
  
 
[[Mission Editor Tutorial|General Tutorial]]
 
[[Mission Editor Tutorial|General Tutorial]]
               
+
 
 
[[Mission Editor Factory Orders Tutorial|Factory Orders Tutorial]]
 
[[Mission Editor Factory Orders Tutorial|Factory Orders Tutorial]]
  
Line 22: Line 39:
  
 
== Publishing a mission ==
 
== Publishing a mission ==
 +
The mission editor exports mutators, so missions can be uploaded the same way you would upload any other mod, see [[Mod Creation]]. If the mission must be run on a particular map, then you can bundle the map and mutator together with a [[Custom Modes|Custom Mode]].
 +
 +
== Publishing a mission OUTDATED (but the infrastructure may still be there) ==
 
You can make your mission available online by ''publishing'' it. It will be available for others to play once enabled by an administrator.  
 
You can make your mission available online by ''publishing'' it. It will be available for others to play once enabled by an administrator.  
  

Latest revision as of 14:40, 10 September 2024

Campaign missions are created in one of two ways, with the missions editor or with a mission definition file. The mission editor is used for the first mission and Kodachi Rally as they involve triggers and cutscenes. The skirmish-style missions are created with a definition file.

The Mission Editor allows players to create interactive missions similar to single-player scenarios of commercial games and to easily publish them to all players. These missions are mutators so can be designed for multiplayer and played cooperatively or competitively.

Mission editor intro 1.jpg Mission editor intro 2.png

Download

Feature Requests and Bug Reports

Script Missions

Most of the campaign missions are defined solely by the contents of Chobby/campaign/sample/planets. For example, planet1.lua contains a list of sides, commanders, units, objectives, and rewards. The file is processed into a startscript by chobby when ythe mission is launched. Some gadgets and widgets in ZK read particular values in the startscript to to make unmodified base ZK run as the mission.

There are a few development widgets in ZK that can help create mission files. The most useful is the one that saves all the units (and optionally orders) in the format required for the script mission files. Documentation of the script mission files can be found in planetDocumentation.lua

Running the Mission Editor

The mission editor loads its files using an older version of Spring. To get the required version:

  1. Open a Custom host and set a password.
  2. Do !engine 104.0.1-287-gf7b0fcc. You should see the response Nightwatch Engine changed to 104.0.1-287-gf7b0fcc.
  3. Start the battle. The engine should start downloading silently in the background.
  4. Wait a few minutes and check whether steamapps/common/Zero-K/win64/104.0.1-287-gf7b0fcc exists (you may have to look in Zero-K/engine/win64). If it doesn't then try win32. If you're on Linux then check the appropriate directory.
  5. Copy the entirety of 104.0.1-287-gf7b0fcc folder to a new folder somewhere isolated called missionDev.
  6. Copy steamapps/common/Zero-K/maps and steamapps/common/Zero-K/games to missionDev such that you have the paths missionDev/spring.exe, missionDev/maps and missionDev/games. Optionally, you may just make empty games and maps folders and copy whatever you need in as you need it.
  7. Run the mission editor and point it to missionDev/spring.exe when it asks you to supply an engine path.

You now have a mission editor setup capable of making and editing missions that use the maps and games you have copied into the relevant folders. To edit existing missions you may require two additional steps:

  • Some missions run off the development version of Zero-K as this makes them easier to test and debug. When the mission is exported for use the version is changed to zk:stable. To get the development version of Zero-K follow the instructions here with paths modified to end up with missionDev/games/zk.sdd.
  • To take a look at or edit the current missions, clone this repository similarly to how you would clone the main game in the above dot point.
  • Some old missions may be made with a version of Zero-K that no longer loads on the mission editor. When in doubt, use the development version of Zero-K (Zero-K $VERSION as it is the most likely to be up to date. The version of a mission can be changed directly by editing its xml.

Tutorials

General Tutorial

Factory Orders Tutorial

Cutscenes Tutorial

Publishing a mission

The mission editor exports mutators, so missions can be uploaded the same way you would upload any other mod, see Mod Creation. If the mission must be run on a particular map, then you can bundle the map and mutator together with a Custom Mode.

Publishing a mission OUTDATED (but the infrastructure may still be there)

You can make your mission available online by publishing it. It will be available for others to play once enabled by an administrator.

To do this, open the Mission menu and click Publish. Fill in the form displayed.

A mission must have a description and image to be published.

Uploading the mission will take a few seconds. If you want to update or delete it, select the Manage Missions item in the Mission menu.

Errors

If you have the error message "Value cannot be null. Parameter name: paths"

  • Make sure your engine folder exists in the correct format in your Spring data directory: engine/<platform>/<version>.
  • For instance: engine\win32\103.0.1-746-g82259fc