Difference between revisions of "Mission Editor Tutorial"
HistidineBot (talk | contribs) (Ported from ZK wiki by DotNetWikiBot) |
|||
(5 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | + | This is a '''tutorial''' on the basics of using the [[Mission Editor]]. | |
− | Download the mission editor [ | + | ==Attack of the Chickens== |
+ | Download the mission editor [http://zero-k.info/missioneditor/setup.exe here] | ||
Install and double-click on MissionEditor.exe | Install and double-click on MissionEditor.exe | ||
Line 7: | Line 8: | ||
You'll see the following screen: | You'll see the following screen: | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor1.jpg | |
− | If the unitsync box is red, click on browse, go to Spring/engine/ | + | If the unitsync box is red, click on browse, go to <code>Spring/engine/<platform>/<newest version></code> and select spring.exe. |
+ | Also edit springsettings.cfg in the same folder, and set SpringData to reference your Spring data directory. Like so: | ||
+ | <pre>SpringData = C:\Users\<my username>\Documents\My Games\Spring;</pre> | ||
+ | This lets it use the same maps and games that you normally play with online. | ||
Click on New Mission, select an map, a mod, and mission name. They can be changed later. | Click on New Mission, select an map, a mod, and mission name. They can be changed later. | ||
− | We'll call our mission | + | We'll call our mission "Attack of the Chickens" |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor2.jpg | |
Once the map and mod have loaded, the main window will appear. On the left you can see a bar that will be filled by our mission logic. Mission logic consists of conditions and actions, contained by triggers. When any of the conditions in a trigger are met, its actions are executed. | Once the map and mod have loaded, the main window will appear. On the left you can see a bar that will be filled by our mission logic. Mission logic consists of conditions and actions, contained by triggers. When any of the conditions in a trigger are met, its actions are executed. | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor3.jpg | |
− | First, let's look at the settings dialog. You can reach it by pressing on the | + | First, let's look at the settings dialog. You can reach it by pressing on the "Mission" button in the menu bar, then on "Settings". |
Fill in the author, description and scoring method. Also, rename the teams by double-clicking on their names. | Fill in the author, description and scoring method. Also, rename the teams by double-clicking on their names. | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor4.jpg | |
− | Dismiss the window by pressing on | + | Dismiss the window by pressing on "OK". Let's start by adding some units. Click on the "Create Units" action, in the left bar. You'll see the units that are loaded by default. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor5.jpg | |
− | We don't need them. Select them by shift or ctrl-clicking on them, then right-click on one and press on | + | We don't need them. Select them by shift or ctrl-clicking on them, then right-click on one and press on "Delete". |
− | The player will need some units to start with. Let's add some advanced engineers. We could scroll down until we see the Freakers, but it's faster to right-click on the unit list and select | + | The player will need some units to start with. Let's add some advanced engineers. We could scroll down until we see the Freakers, but it's faster to right-click on the unit list and select "Find". Type "corfast" in the find dialog and press on enter. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor6.jpg | |
Now, the Freaker is selected. Pick a nice hill on the South side and click on it a few times to add some engineers. | Now, the Freaker is selected. Pick a nice hill on the South side and click on it a few times to add some engineers. | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor8.jpg | |
It would be cruel to send the player into a chicken-infested area without precautions, so give him a few Outlaws (codename: cormak). Grab them from the top border and rotate them a bit. | It would be cruel to send the player into a chicken-infested area without precautions, so give him a few Outlaws (codename: cormak). Grab them from the top border and rotate them a bit. | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor9.jpg | |
− | Time to add something to shoot at! Click on the | + | Time to add something to shoot at! Click on the "New" button in a trigger bar. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor10.jpg | |
A new trigger will appear. | A new trigger will appear. | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor11.jpg | |
− | It's a good idea to rename triggers to keep them organized. Right-click on the blue trigger bar, press on | + | It's a good idea to rename triggers to keep them organized. Right-click on the blue trigger bar, press on "Rename" then pick a new name. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor12.jpg | |
− | We want chickens to attack every minute. We'll add a metronome condition. Click on the | + | We want chickens to attack every minute. We'll add a metronome condition. Click on the "New" button in the conditions bar and click on "Metronome Clicks". |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor13.jpg | |
Set it to one minute. | Set it to one minute. | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor15.jpg | |
− | Triggers, by default, can only be executed once. Right-click on the trigger then press on | + | Triggers, by default, can only be executed once. Right-click on the trigger then press on "Settings". Set the execution limit -1, which means that there is no limit. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor16.jpg | |
− | The trigger still won't have any effect. We'll need to add some actions. Click on the | + | The trigger still won't have any effect. We'll need to add some actions. Click on the "New" button in the actions bar. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor17.jpg | |
Line 87: | Line 91: | ||
Pick a spot in the North and add some chickens. | Pick a spot in the North and add some chickens. | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor18.jpg | |
− | Chickens will now spawn every minute, but will just stand there. Add a | + | Chickens will now spawn every minute, but will just stand there. Add a "Give Orders to Unit" action and select it. If you don't select a group for the action, t will affect any unit created before the action, in the same trigger. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor19.jpg | |
Line 99: | Line 103: | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor20.jpg | |
The objective is to stop the chickens, so we need to make the player lose points when they get past him. For that, we'll need to first add the chickens to a group. | The objective is to stop the chickens, so we need to make the player lose points when they get past him. For that, we'll need to first add the chickens to a group. | ||
Line 105: | Line 109: | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor21.jpg | |
Right click on them, then select Edit Groups. Type chickens and press on enter. | Right click on them, then select Edit Groups. Type chickens and press on enter. | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor22.jpg | |
Line 116: | Line 120: | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor23.jpg | |
− | Next, create a new trigger. Add a | + | Next, create a new trigger. Add a "Unit Entered Area" condition. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor24.jpg | |
Line 130: | Line 134: | ||
Select the chickens group from the group list. Selecting a group means that only units from that group can meet the condition. | Select the chickens group from the group list. Selecting a group means that only units from that group can meet the condition. | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor25.jpg | |
We want the trigger to last more than one activation. | We want the trigger to last more than one activation. | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor26.jpg | |
Units in Area condition will now active its trigger every second that a chicken is in the rectangle. | Units in Area condition will now active its trigger every second that a chicken is in the rectangle. | ||
− | Let's make the player lose points. Add a | + | Let's make the player lose points. Add a "Modify Score" action and cause the player to lose a point every time the trigger is executed. |
The score is displayed in the GUI once it's different from zero. | The score is displayed in the GUI once it's different from zero. | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor27.jpg | |
− | Let's give reward the player for killing chickens. Create a new trigger. Add a | + | Let's give reward the player for killing chickens. Create a new trigger. Add a "Units Destroyed" condition. Select the chickens group. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor28.jpg | |
− | Create a | + | Create a "Modify Score" action. This time, make the player gain points. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor29.jpg | |
Line 159: | Line 163: | ||
− | Maybe we should give the player some time to prepare for the assault. Let's grant the player a minute of truce, and display a countdown for the first attack. Add a | + | Maybe we should give the player some time to prepare for the assault. Let's grant the player a minute of truce, and display a countdown for the first attack. Add a "Start Countdown" action to the first trigger. Give it a descriptive name. Choose the duration of the truce. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor30.jpg | |
− | We'll make the | + | We'll make the "Chickens Attack" trigger that you created earlier start disabled, then activate after a minute. Select it and uncheck the "Enabled" check-box. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor31.jpg | |
− | Create a new trigger. Add a | + | Create a new trigger. Add a "Countdown Ended" condition. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor32.jpg | |
− | Add an | + | Add an "Enable Trigger" action. Select the chickens attack trigger. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor33.jpg | |
Now the chickens won't attack until the countdown ended. The player will see the time remaining in the GUI. | Now the chickens won't attack until the countdown ended. The player will see the time remaining in the GUI. | ||
− | Let's make Spiker waves, too. Create a new trigger. Add a | + | Let's make Spiker waves, too. Create a new trigger. Add a "Create Units" condition. Place a few Spikers near the first chickens and add them to the chickens group. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor34.jpg | |
− | Add a | + | Add a "Give Orders to Units" action and make them fight their way to the south border. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor35.jpg | |
Let's make the waves occur each couple of minutes, but this time, let's add a bit of randomness to make them less predictable. Add a metronome condition and set it to one minute. | Let's make the waves occur each couple of minutes, but this time, let's add a bit of randomness to make them less predictable. Add a metronome condition and set it to one minute. | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor36.jpg | |
Go to the trigger options, set the execution count to -1. Also, set the probability to 0.5. It means that half of the times the conditions of the trigger will be met, it will not fire. | Go to the trigger options, set the execution count to -1. Also, set the probability to 0.5. It means that half of the times the conditions of the trigger will be met, it will not fire. | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor37.jpg | |
− | Let's make the Spiker attacks start after 10 minutes. Add a | + | Let's make the Spiker attacks start after 10 minutes. Add a "Wait" action. Move it up until it's the first action in the trigger. You can move triggers up by right-click on them then selecting "Move Up". Set the time to 10 minutes. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor38.jpg | |
− | Time to add the boss! Create a new trigger. Add a metronome condition set to forty minutes. Add a | + | Time to add the boss! Create a new trigger. Add a metronome condition set to forty minutes. Add a "Create Units" and a "Give Orders to Units" action. |
− | Place a queen and order her to fight to the south border. Set her group to | + | Place a queen and order her to fight to the south border. Set her group to "chickens,queen". This means that she is both in the "chickens" and "queen" groups. The queen group will be needed later. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor39.jpg | |
− | Add a | + | Add a "Cause Sunset" action. An ominous darkness will announce the arrival of the queen. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor40.jpg | |
− | Let's make the player win and gain a big pile of points if he defeats the queen. Create a new trigger. Add a | + | Let's make the player win and gain a big pile of points if he defeats the queen. Create a new trigger. Add a "Unit Destroyed" condition. Select the queen group. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor41.jpg | |
− | Create a | + | Create a "Modify Score" action. Set it to "Increase Score" and type a large number. Also add a "Send Score" action. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor42.jpg | |
− | What if he's defeated? We want to record his score in that case, too. Create a new trigger. Add a | + | What if he's defeated? We want to record his score in that case, too. Create a new trigger. Add a "Player Died" condition and select the Robots team. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor43.jpg | |
− | Add another | + | Add another "Send Score" action. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor44.jpg | |
The game will end immediately, if it's tested at this point. That's because the chicken player has no units in the first minute. Go back to the first trigger and create a few chickens that will just stand there and prevent the game from ending. | The game will end immediately, if it's tested at this point. That's because the chicken player has no units in the first minute. Go back to the first trigger and create a few chickens that will just stand there and prevent the game from ending. | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor45.jpg | |
− | You can now test the mission. Click on the Mission menu button and select Test | + | You can now test the mission. Click on the Mission menu button and select Test Mission. |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor46.jpg | |
Resourceful players might make a huge wall to prevent the chickens from getting through. Since we didn't add any digging or climbing chicken, we'd better disable terraforming. Add a Lock Units action to the first trigger and select the terraforming buildings. | Resourceful players might make a huge wall to prevent the chickens from getting through. Since we didn't add any digging or climbing chicken, we'd better disable terraforming. Add a Lock Units action to the first trigger and select the terraforming buildings. | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor47.jpg | |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor48.jpg | |
− | We should tell the player about his objectives. First, let's center the camera on his units, when the game starts. Add a | + | We should tell the player about his objectives. First, let's center the camera on his units, when the game starts. Add a "Point Camera to Map Point" action to the firs trigger. |
Click on the starting hill. | Click on the starting hill. | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor49.jpg | |
Add a GUI message action. Explain to the player what he needs to do in great detail. | Add a GUI message action. Explain to the player what he needs to do in great detail. | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor50.jpg | |
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor51.jpg | |
Finally, mark the south border. Add a Show Marker Point action. Type the description and click on the south border of the map. | Finally, mark the south border. Add a Show Marker Point action. Type the description and click on the south border of the map. | ||
− | + | http://enalostka.pancakeapps.com/S/Zero-k_editor52.jpg | |
+ | The mission is now ready to be shared! See the [[Mission Editor#Publishing a mission|Mission Editor]] page for instructions. | ||
− | + | [[Category:Mission Editor]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 00:22, 2 April 2017
This is a tutorial on the basics of using the Mission Editor.
Attack of the Chickens
Download the mission editor here
Install and double-click on MissionEditor.exe
You'll see the following screen:
If the unitsync box is red, click on browse, go to Spring/engine/<platform>/<newest version>
and select spring.exe.
Also edit springsettings.cfg in the same folder, and set SpringData to reference your Spring data directory. Like so:
SpringData = C:\Users\<my username>\Documents\My Games\Spring;
This lets it use the same maps and games that you normally play with online.
Click on New Mission, select an map, a mod, and mission name. They can be changed later. We'll call our mission "Attack of the Chickens"
Once the map and mod have loaded, the main window will appear. On the left you can see a bar that will be filled by our mission logic. Mission logic consists of conditions and actions, contained by triggers. When any of the conditions in a trigger are met, its actions are executed.
First, let's look at the settings dialog. You can reach it by pressing on the "Mission" button in the menu bar, then on "Settings".
Fill in the author, description and scoring method. Also, rename the teams by double-clicking on their names.
Dismiss the window by pressing on "OK". Let's start by adding some units. Click on the "Create Units" action, in the left bar. You'll see the units that are loaded by default.
We don't need them. Select them by shift or ctrl-clicking on them, then right-click on one and press on "Delete". The player will need some units to start with. Let's add some advanced engineers. We could scroll down until we see the Freakers, but it's faster to right-click on the unit list and select "Find". Type "corfast" in the find dialog and press on enter.
Now, the Freaker is selected. Pick a nice hill on the South side and click on it a few times to add some engineers.
It would be cruel to send the player into a chicken-infested area without precautions, so give him a few Outlaws (codename: cormak). Grab them from the top border and rotate them a bit.
Time to add something to shoot at! Click on the "New" button in a trigger bar.
A new trigger will appear.
It's a good idea to rename triggers to keep them organized. Right-click on the blue trigger bar, press on "Rename" then pick a new name.
We want chickens to attack every minute. We'll add a metronome condition. Click on the "New" button in the conditions bar and click on "Metronome Clicks".
Set it to one minute.
Triggers, by default, can only be executed once. Right-click on the trigger then press on "Settings". Set the execution limit -1, which means that there is no limit.
The trigger still won't have any effect. We'll need to add some actions. Click on the "New" button in the actions bar.
Select the chicken team in the team list.
Pick a spot in the North and add some chickens.
Chickens will now spawn every minute, but will just stand there. Add a "Give Orders to Unit" action and select it. If you don't select a group for the action, t will affect any unit created before the action, in the same trigger.
Select the Fight order from the orders list.
Click on a spot on the map near the south border. You'll see the player units a bit blurred. It means they were created in another trigger.
The objective is to stop the chickens, so we need to make the player lose points when they get past him. For that, we'll need to first add the chickens to a group. Go back to the Create Units action, and shift or ctrl-click on all the chickens. They'll glow to indicate they are selected.
Right click on them, then select Edit Groups. Type chickens and press on enter.
The group will be displayed under the unit in the map.
Next, create a new trigger. Add a "Unit Entered Area" condition.
We want to add a rectangle where chickens will cause the player to lose points. Click on the rectangle button in the toolbar. Drag a rectangle in front of the south border. Select the chickens group from the group list. Selecting a group means that only units from that group can meet the condition.
We want the trigger to last more than one activation.
Units in Area condition will now active its trigger every second that a chicken is in the rectangle.
Let's make the player lose points. Add a "Modify Score" action and cause the player to lose a point every time the trigger is executed. The score is displayed in the GUI once it's different from zero.
Let's give reward the player for killing chickens. Create a new trigger. Add a "Units Destroyed" condition. Select the chickens group.
Create a "Modify Score" action. This time, make the player gain points.
Remember to remove the trigger executions limit.
Maybe we should give the player some time to prepare for the assault. Let's grant the player a minute of truce, and display a countdown for the first attack. Add a "Start Countdown" action to the first trigger. Give it a descriptive name. Choose the duration of the truce.
We'll make the "Chickens Attack" trigger that you created earlier start disabled, then activate after a minute. Select it and uncheck the "Enabled" check-box.
Create a new trigger. Add a "Countdown Ended" condition.
Add an "Enable Trigger" action. Select the chickens attack trigger.
Now the chickens won't attack until the countdown ended. The player will see the time remaining in the GUI.
Let's make Spiker waves, too. Create a new trigger. Add a "Create Units" condition. Place a few Spikers near the first chickens and add them to the chickens group.
Add a "Give Orders to Units" action and make them fight their way to the south border.
Let's make the waves occur each couple of minutes, but this time, let's add a bit of randomness to make them less predictable. Add a metronome condition and set it to one minute.
Go to the trigger options, set the execution count to -1. Also, set the probability to 0.5. It means that half of the times the conditions of the trigger will be met, it will not fire.
Let's make the Spiker attacks start after 10 minutes. Add a "Wait" action. Move it up until it's the first action in the trigger. You can move triggers up by right-click on them then selecting "Move Up". Set the time to 10 minutes.
Time to add the boss! Create a new trigger. Add a metronome condition set to forty minutes. Add a "Create Units" and a "Give Orders to Units" action. Place a queen and order her to fight to the south border. Set her group to "chickens,queen". This means that she is both in the "chickens" and "queen" groups. The queen group will be needed later.
Add a "Cause Sunset" action. An ominous darkness will announce the arrival of the queen.
Let's make the player win and gain a big pile of points if he defeats the queen. Create a new trigger. Add a "Unit Destroyed" condition. Select the queen group.
Create a "Modify Score" action. Set it to "Increase Score" and type a large number. Also add a "Send Score" action.
What if he's defeated? We want to record his score in that case, too. Create a new trigger. Add a "Player Died" condition and select the Robots team.
Add another "Send Score" action.
The game will end immediately, if it's tested at this point. That's because the chicken player has no units in the first minute. Go back to the first trigger and create a few chickens that will just stand there and prevent the game from ending.
You can now test the mission. Click on the Mission menu button and select Test Mission.
Resourceful players might make a huge wall to prevent the chickens from getting through. Since we didn't add any digging or climbing chicken, we'd better disable terraforming. Add a Lock Units action to the first trigger and select the terraforming buildings.
We should tell the player about his objectives. First, let's center the camera on his units, when the game starts. Add a "Point Camera to Map Point" action to the firs trigger. Click on the starting hill.
Add a GUI message action. Explain to the player what he needs to do in great detail.
Finally, mark the south border. Add a Show Marker Point action. Type the description and click on the south border of the map.
The mission is now ready to be shared! See the Mission Editor page for instructions.