Difference between revisions of "Mission Editor Tutorial"

From Zero-K
Jump to navigation Jump to search
m (Ported from ZK wiki by DotNetWikiBot)
m
Line 12: Line 12:
  
 
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 “Attack of the Chickens”
+
We'll call our mission "Attack of the Chickens"
  
 
http://enalostka.pancakeapps.com/S/Zero-k_editor2.jpg
 
http://enalostka.pancakeapps.com/S/Zero-k_editor2.jpg
Line 21: Line 21:
  
  
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”.
+
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
 
http://enalostka.pancakeapps.com/S/Zero-k_editor4.jpg
  
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.
+
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
 
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 “Delete”.
+
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.
+
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
 
http://enalostka.pancakeapps.com/S/Zero-k_editor6.jpg
Line 46: Line 46:
  
  
Time to add something to shoot at! Click on the “New” button in a trigger bar.
+
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
 
http://enalostka.pancakeapps.com/S/Zero-k_editor10.jpg
Line 56: Line 56:
  
  
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.
+
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
 
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 “New” button in the conditions bar and click on “Metronome Clicks”.
+
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
 
http://enalostka.pancakeapps.com/S/Zero-k_editor13.jpg
Line 71: Line 71:
  
  
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.
+
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
 
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 “New” button in the actions bar.
+
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
 
http://enalostka.pancakeapps.com/S/Zero-k_editor17.jpg
Line 90: Line 90:
  
  
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.
+
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
 
http://enalostka.pancakeapps.com/S/Zero-k_editor19.jpg
Line 118: Line 118:
 
http://enalostka.pancakeapps.com/S/Zero-k_editor23.jpg
 
http://enalostka.pancakeapps.com/S/Zero-k_editor23.jpg
  
Next, create a new trigger. Add a “Unit Entered Area” condition.
+
Next, create a new trigger. Add a "Unit Entered Area" condition.
  
  
Line 140: Line 140:
 
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 “Modify Score” action and cause the player to lose a point every time the trigger is executed.
+
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.
  
Line 146: Line 146:
  
  
Let's give reward the player for killing chickens. Create a new trigger. Add a “Units Destroyed” condition. Select the chickens group.
+
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
 
http://enalostka.pancakeapps.com/S/Zero-k_editor28.jpg
  
  
Create a “Modify Score” action. This time, make the player gain points.
+
Create a "Modify Score" action. This time, make the player gain points.
  
 
http://enalostka.pancakeapps.com/S/Zero-k_editor29.jpg
 
http://enalostka.pancakeapps.com/S/Zero-k_editor29.jpg
Line 159: Line 159:
  
  
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.
+
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
 
http://enalostka.pancakeapps.com/S/Zero-k_editor30.jpg
  
  
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.
+
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
 
http://enalostka.pancakeapps.com/S/Zero-k_editor31.jpg
  
Create a new trigger. Add a “Countdown Ended” condition.
+
Create a new trigger. Add a "Countdown Ended" condition.
  
 
http://enalostka.pancakeapps.com/S/Zero-k_editor32.jpg
 
http://enalostka.pancakeapps.com/S/Zero-k_editor32.jpg
  
Add an “Enable Trigger” action. Select the chickens attack trigger.
+
Add an "Enable Trigger" action. Select the chickens attack trigger.
  
 
http://enalostka.pancakeapps.com/S/Zero-k_editor33.jpg
 
http://enalostka.pancakeapps.com/S/Zero-k_editor33.jpg
Line 178: Line 178:
 
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 “Create Units” condition. Place a few Spikers near the first chickens and add them to the chickens group.
+
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
 
http://enalostka.pancakeapps.com/S/Zero-k_editor34.jpg
  
Add a “Give Orders to Units” action and make them fight their way to the south border.
+
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
 
http://enalostka.pancakeapps.com/S/Zero-k_editor35.jpg
Line 194: Line 194:
 
http://enalostka.pancakeapps.com/S/Zero-k_editor37.jpg
 
http://enalostka.pancakeapps.com/S/Zero-k_editor37.jpg
  
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.
+
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
 
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 “Create Units” and a “Give Orders to Units” action.
+
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.
+
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
 
http://enalostka.pancakeapps.com/S/Zero-k_editor39.jpg
  
Add a “Cause Sunset” action. An ominous darkness will announce the arrival of the queen.
+
Add a "Cause Sunset" action. An ominous darkness will announce the arrival of the queen.
  
 
http://enalostka.pancakeapps.com/S/Zero-k_editor40.jpg
 
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 “Unit Destroyed” condition. Select the queen group.
+
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
 
http://enalostka.pancakeapps.com/S/Zero-k_editor41.jpg
  
Create a “Modify Score” action. Set it to “Increase Score” and type a large number. Also add a “Send Score” action.
+
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
 
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 “Player Died” condition and select the Robots team.
+
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
 
http://enalostka.pancakeapps.com/S/Zero-k_editor43.jpg
  
Add another “Send Score” action.
+
Add another "Send Score" action.
  
 
http://enalostka.pancakeapps.com/S/Zero-k_editor44.jpg
 
http://enalostka.pancakeapps.com/S/Zero-k_editor44.jpg
Line 227: Line 227:
 
http://enalostka.pancakeapps.com/S/Zero-k_editor45.jpg
 
http://enalostka.pancakeapps.com/S/Zero-k_editor45.jpg
  
You can now test the mission. Click on the Mission menu button and select Test Mission.
+
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
 
http://enalostka.pancakeapps.com/S/Zero-k_editor46.jpg
Line 237: Line 237:
 
http://enalostka.pancakeapps.com/S/Zero-k_editor48.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 “Point Camera to Map Point” action to the firs trigger.
+
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.
  
Line 253: Line 253:
  
  
The mission is now ready to be shared! Press on the “Publish Mission” entry in the Mission menu. Fill in the form.
+
The mission is now ready to be shared! Press on the "Publish Mission" entry in the Mission menu. Fill in the form.
  
 
http://enalostka.pancakeapps.com/S/Zero-k_editor53.jpg
 
http://enalostka.pancakeapps.com/S/Zero-k_editor53.jpg
  
  
Wait a few seconds...
+
Wait a few seconds... and the mission is visible in the Missions module of SpringDownloader. If you want to update or delete it, select the Manage Missions item in the Mission menu.
 
 
 
 
and the mission is visible in the Missions module of SpringDownloader.
 
 
 
 
 
If you want to update or delete it, select the Manage Missions item in the Mission menu.
 

Revision as of 07:07, 25 June 2016

Mission Editor Tutorial: Attack of the Chickens.

Download the mission editor <a href="http://zero-k.info/missioneditor/setup.exe">here</a>

Install and double-click on MissionEditor.exe

You'll see the following screen:

Zero-k_editor1.jpg

If the unitsync box is red, click on browse, go to Spring/engine/[newest version] and select spring.exe.

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"

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.

Zero-k_editor3.jpg


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.

Zero-k_editor4.jpg

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.


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 "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.

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.

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.

Zero-k_editor9.jpg


Time to add something to shoot at! Click on the "New" button in a trigger bar.

Zero-k_editor10.jpg


A new trigger will appear.

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 "Rename" then pick a new name.

Zero-k_editor12.jpg


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".

Zero-k_editor13.jpg


Set it to one minute.

Zero-k_editor15.jpg


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.

Zero-k_editor16.jpg


The trigger still won't have any effect. We'll need to add some actions. Click on the "New" button in the actions bar.

Zero-k_editor17.jpg


Select the chicken team in the team list.


Pick a spot in the North and add some chickens.

Zero-k_editor18.jpg


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.

Zero-k_editor19.jpg


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.


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. Go back to the Create Units action, and shift or ctrl-click on all the chickens. They'll glow to indicate they are selected.


Zero-k_editor21.jpg

Right click on them, then select Edit Groups. Type chickens and press on enter.


Zero-k_editor22.jpg


The group will be displayed under the unit in the map.


Zero-k_editor23.jpg

Next, create a new trigger. Add a "Unit Entered Area" condition.


Zero-k_editor24.jpg


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.

Zero-k_editor25.jpg


We want the trigger to last more than one activation.

Zero-k_editor26.jpg


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.

Zero-k_editor27.jpg


Let's give reward the player for killing chickens. Create a new trigger. Add a "Units Destroyed" condition. Select the chickens group.

Zero-k_editor28.jpg


Create a "Modify Score" action. This time, make the player gain points.

Zero-k_editor29.jpg


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.

Zero-k_editor30.jpg


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.

Zero-k_editor31.jpg

Create a new trigger. Add a "Countdown Ended" condition.

Zero-k_editor32.jpg

Add an "Enable Trigger" action. Select the chickens attack trigger.

Zero-k_editor33.jpg

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.

Zero-k_editor34.jpg

Add a "Give Orders to Units" action and make them fight their way to the south border.

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.

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.

Zero-k_editor37.jpg

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.

Zero-k_editor38.jpg

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.

Zero-k_editor39.jpg

Add a "Cause Sunset" action. An ominous darkness will announce the arrival of the queen.

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 "Unit Destroyed" condition. Select the queen group.

Zero-k_editor41.jpg

Create a "Modify Score" action. Set it to "Increase Score" and type a large number. Also add a "Send Score" action.

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 "Player Died" condition and select the Robots team.

Zero-k_editor43.jpg

Add another "Send Score" action.

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.

Zero-k_editor45.jpg

You can now test the mission. Click on the Mission menu button and select Test Mission.

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.

Zero-k_editor47.jpg

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 "Point Camera to Map Point" action to the firs trigger. Click on the starting hill.

Zero-k_editor49.jpg

Add a GUI message action. Explain to the player what he needs to do in great detail.

Zero-k_editor50.jpg

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.

Zero-k_editor52.jpg


The mission is now ready to be shared! Press on the "Publish Mission" entry in the Mission menu. Fill in the form.

Zero-k_editor53.jpg


Wait a few seconds... and the mission is visible in the Missions module of SpringDownloader. If you want to update or delete it, select the Manage Missions item in the Mission menu.