Mapping/ko: Difference between revisions

From DDraceNetwork
(Updating to match new version of source page)
(Updating to match new version of source page)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
<languages/>
{{MigrateTranslation}}
<languages />
 
<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
The brainstorming session requires the map maker to create a creative and entertaining map entity through extraordinary imagination.
'''Mapping''' is the process of building and creating [https://ddnet.org/releases/ maps], the basis of DDNet's (and other modes') gameplay. Maps can be created by anyone, given they have the will and creativity to do so.
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
The mapping session requires the map maker to add a nice look to the map, the design process should generally be aesthetically pleasing to the public, and the information represented in each mapping should be clear enough and not ambiguous, while the overall design style should also generally be in line with the game's art style.
Mapping also allows users to add their own design, sound, and aesthetic to maps, and can also be used for entities backgrounds, main menu themes, and more.
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
The map test session requires the map maker to test the map he or she has made in order to find out any gameplay problems or texture design problems that have not yet been detected in the current map.
DDNet allows players to submit their own race maps on the [https://ddnet.org/discord DDNet Discord], where respective rules and guidelines can also be found.
</div>
</div>


Line 21: Line 23:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
== DDNet Map Creation Guidelines==
==Overview of the Editor Interface==
{{Todo|Update the interface section with visuals and instructions for the new editor visuals}}
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
If a player eventually wants their map to be published on the DDNet server, then the player must follow the following guidelines to create the map. Before uploading the map to DDNet's Discord server, please make sure that the player has tested the map completely, that the levels of the map run and operate smoothly, and that the design aspects have been fully completed.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
[[File:Editor 3.png|800x800px|<div lang="en" dir="ltr" class="mw-content-ltr">
===In terms of game experience, we require that:===
Map editor within DDNet
</div>
</div>]]
 
<div lang="en" dir="ltr" class="mw-content-ltr">
That each level should have enough space for the player to operate comfortably.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
The overall difficulty of the map should be balanced, without large fluctuations (e.g. no insertion of high star high level maps or even crazy map operations in the middle of a medium level map).
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
there should be a way for other players to rescue in levels that are prone to failure
Each labeled button in the editor interface has the following functionalities:
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
level operations must not be too precise or difficult just for the sake of being difficult
===[1] File===
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
[[File:Editor file.png|right|thumb|<span lang="en" dir="ltr" class="mw-content-ltr">File drop-down menu content</span>]]
shall not make excessive use of special game entities, and at the same time shall not use special entities for fixing map level bugs
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
shall not intentionally mislead or confuse the way the level operates
Opens a drop-down menu to create, load and save map files.
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
*<span lang="en" dir="ltr" class="mw-content-ltr">New {{key press|ctrl|N}}: new map file.</span>
Levels must not exploit bugs in the game's physics mechanics to achieve this.
*<span lang="en" dir="ltr" class="mw-content-ltr">Load {{key press|ctrl|I}}: loads a map file.</span>
</div>
*<span lang="en" dir="ltr" class="mw-content-ltr">Load Current Map {{key press|ctrl|alt|I}}: loads the current map, given the player is currently in-game or viewing a demo.</span>
 
*<span lang="en" dir="ltr" class="mw-content-ltr">Append {{key press|ctrl|A}}: adds all the design elements from a selected map file to the current map.</span>
<div lang="en" dir="ltr" class="mw-content-ltr">
*<span lang="en" dir="ltr" class="mw-content-ltr">Save {{key press|ctrl|S}}: saves the current map under its current name.</span>
===In terms of visual effects, we require that:===
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
all entities required by the player to pass the level must be clearly represented in the mapping.
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
the decals or markers for different entities must be easily distinguishable.
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
there must be a clear distinction between foreground and background.
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
not to turn up the contrast and saturation too high, otherwise it will look uncomfortable.
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
If there are signs, hints or warnings in the mapping layer, the "Turn Off Entities" marker must be added to the entity layer.
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
If you use material from other maps, you need to get permission from the original author of the material before you can use it.
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
===On other levels, we require:===
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
That all players must pass the starting point.
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
There should be time checkpoints on each map.
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
===Additional notes:===
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
On top of the above rules, it is important that the levels are unique and innovative, and that the maps have excellent mapping design. A simple map with good level design and good visuals will have a higher chance of being selected and uploaded to the DDNet server than a map with a wide variety of complex problems.
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
==Overview of the editor interface==
</div>
 
[[File:Editor 3.png|800x800px|<div lang="en" dir="ltr" class="mw-content-ltr">
Map editor within DDNet
</div>]]
 
<div lang="en" dir="ltr" class="mw-content-ltr">
Next, we will explain the purpose of each button in the editor interface one by one according to the content number on the picture.
</div>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
=== [1] File ===
</div>
[[File:Editor file.png|right|thumb|<span lang="en" dir="ltr" class="mw-content-ltr">File drop-down menu content</span>]]
<div lang="en" dir="ltr" class="mw-content-ltr">
Clicking button opens a drop-down menu to create, load and save map files.
</div>
*<span lang="en" dir="ltr" class="mw-content-ltr">New {{key press|ctrl|N}}: New map file.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Read {{key press|ctrl|I}}: reads the map file.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Load Current Map {{key press|ctrl|alt|I}}: If you enter the editor screen during the game or during playback, clicking this button will load the map used in the current game.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Append {{key press|ctrl|A}}: adds all the materials in a map file to the current map.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Save {{key press|ctrl|S}}: saves the current map.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Save As {{key press|ctrl|shift|S}}: saves the current map under another file name, while continuing to edit the map under that file name.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Save As {{key press|ctrl|shift|S}}: saves the current map under another file name, while continuing to edit the map under that file name.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Save Copy {{key press|ctrl|shift|alt|S}}: saves the current map under another file name, but continues to edit the map under the original file name. When the map name used when saving a copy duplicates an existing file, the map will continue to be edited with that file name after completing the save.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Save Copy {{key press|ctrl|shift|alt|S}}: saves the current map under another file name, but continues to edit the map under the original file name. When the map name used when saving a copy duplicates an existing file, the map will continue to be edited with that file name after completing the save.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Exit {{key press|ctrl|shift|E}}: Exit the editor interface.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Exit {{key press|ctrl|shift|E}}: Exit the editor interface.</span>
<div style="clear:both;"></div>
<div style="clear:both;"></div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
=== [2] File name ===
===[2] File name===
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
This area displays the name of the map file currently being read and its file save path.
Displays the name of the map file currently being edited as well as its file save path.
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
=== [3] Editor state info ===
===[3] Editor state info===
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
This area displays the attributes of the current map editor.
Displays the attributes of the current map editor.
</div>
</div>


*<span lang="en" dir="ltr" class="mw-content-ltr">X, Y: indicates the current position of the map editor where the mouse cursor is located, in grid.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">X, Y: indicates the current tile position of the map editor where the mouse cursor is located, with (0, 0) being the top left corner.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Z: indicates the scale value of the current map, which defaults to 200 when the map is loaded in the editor.</span>  
*<span lang="en" dir="ltr" class="mw-content-ltr">Z: indicates the scale value of the current map, which defaults to 200 on first load.</span>  
*<span lang="en" dir="ltr" class="mw-content-ltr">A: indicates the playback speed of the current map animation, default is 1.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">A: indicates the playback speed of the current map animation, default is 1.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">G: indicates the size of the current map grid lines, default is 1.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">G: indicates the size of the current map grid lines, default is 1.</span>
Line 159: Line 80:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
=== [4] Exit ===
===[4] Exit===
</div>
</div>


Line 167: Line 88:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
=== [5] Display functions ===
===[5] Display functions===
Display functions changing how the map is displayed.
Changes how the map is displayed.
</div>
</div>


*<span lang="en" dir="ltr" class="mw-content-ltr">HD (Show High Details) {{key press|ctrl|H}}: preview the appearance of the current map in high quality mode.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">HD (Show High Details) {{key press|ctrl|H}}: preview the appearance of the current map in high quality mode.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Anim (Show animation) {{key press|ctrl|M}}: previews the animation effect set by the current map.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Anim (Show animation) {{key press|ctrl|M}}: previews the animation effect set by the current map.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Proof (Show field of view boundary) {{key press|ctrl|P}}: previews the maximum field of view of the player in the default zoom level.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Proof (Show field of view boundary) {{key press|ctrl|P}}: previews the maximum field of view of the player in the default zoom level.</span>  
**<span lang="en" dir="ltr" class="mw-content-ltr">blue circle: indicates the player's actual position</span>
**<span lang="en" dir="ltr" class="mw-content-ltr">blue circle: indicates the player's actual position</span>
**<span lang="en" dir="ltr" class="mw-content-ltr">the red box line and green box line indicate the maximum range that can be observed at different resolutions</span>
**<span lang="en" dir="ltr" class="mw-content-ltr">the red box line and green box line indicate the maximum range that can be observed at different resolutions</span>
Line 182: Line 103:
*<span lang="en" dir="ltr" class="mw-content-ltr">(Unused) {{key press|ctrl|U}}: allows placement of unused mappings in the map, a feature not commonly used in modern maps anymore.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">(Unused) {{key press|ctrl|U}}: allows placement of unused mappings in the map, a feature not commonly used in modern maps anymore.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Color: previews the color set by the current brush, after closing the brush will show the original color match, but does not affect the color set by the placed mapping.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Color: previews the color set by the current brush, after closing the brush will show the original color match, but does not affect the color set by the placed mapping.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Entitles: select the category of entity layer that needs to be used for the current map. Depending on the game mode applied to the map, the entity layer selected in the editor should also be different.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Entities: select the category of entity layer that needs to be used for the current map. Depending on the game mode applied to the map, the entity layer selected in the editor should also be different.</span>
 
<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
=== [6] Zoom ===
===[6] Zoom===
Field of view adjustment functionality, descriptions in order from left to right.
Field of view adjustment functionality, descriptions in order from left to right.
</div>
</div>
Line 192: Line 114:
</div>
</div>


*<span lang="en" dir="ltr" class="mw-content-ltr">ZO (Zoom out) {{key press|numpad-}}: expands the field of view of the operation area by 50 points of scale value each time.</span>
 
*<span lang="en" dir="ltr" class="mw-content-ltr">ZO (Zoom out) {{key press|numpad-}}: expands the field of view of the operation area by 50 points of scale value each time.</span>  
**<span lang="en" dir="ltr" class="mw-content-ltr">Scrolling the mouse wheel down also expands the field of view by 20 scale points per scroll, expanding the field of view in this way up to a maximum of 2000 scale points.</span>
**<span lang="en" dir="ltr" class="mw-content-ltr">Scrolling the mouse wheel down also expands the field of view by 20 scale points per scroll, expanding the field of view in this way up to a maximum of 2000 scale points.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">1:1 {{key press|numpad*}}: restores the field of view to the default scale value.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">1:1 {{key press|numpad*}}: restores the field of view to the default scale value.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">ZI (zoom in) {{key press|numpad+}}: reduces the field of view of the operation area by 50 points of scale value at a time.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">ZI (zoom in) {{key press|numpad+}}: reduces the field of view of the operation area by 50 points of scale value at a time.</span>  
**<span lang="en" dir="ltr" class="mw-content-ltr">Roll the mouse wheel upward to also reduce the field of view by 20 scale points per scroll frame, and reduce the field of view in this way up to 10 scale points.</span>
**<span lang="en" dir="ltr" class="mw-content-ltr">Roll the mouse wheel upward to also reduce the field of view by 20 scale points per scroll frame, and reduce the field of view in this way up to 10 scale points.</span>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
=== [7] Brush functionality ===
===[7] Brush functionality===
Descriptions from left to right:
Descriptions from left to right:
</div>
</div>
Line 205: Line 128:
*<span lang="en" dir="ltr" class="mw-content-ltr">X/X (Horizontal flip) {{key press|N}}: flips the contents of the brush horizontally.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">X/X (Horizontal flip) {{key press|N}}: flips the contents of the brush horizontally.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Y/Y (Vertical flip) {{key press|M}}: flips the contents of the brush vertically.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Y/Y (Vertical flip) {{key press|M}}: flips the contents of the brush vertically.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">90° (Rotation angle): the angle at which the content in the brush is turned each time it is rotated, which can be modified by holding down this button and sliding the mouse left and right, holding down {{key press|shift}} during the modification process for more precise modification.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">90° (Rotation angle): the angle at which the content in the brush is turned each time it is rotated, which can be modified by holding down this button and sliding the mouse left and right, holding down {{key press|shift}} during the modification process for more precise modification.</span>  
**<span lang="en" dir="ltr" class="mw-content-ltr">You can only choose from 90°, 180° and 270° angles.</span>
**<span lang="en" dir="ltr" class="mw-content-ltr">You can only choose from 90°, 180° and 270° angles.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">CCW (Counterclockwise rotation) {{key press|R}}: rotates the contents of the brush counterclockwise at an angle.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">CCW (Counterclockwise rotation) {{key press|R}}: rotates the contents of the brush counterclockwise at an angle.</span>
Line 211: Line 134:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
=== [8] Layers/Images/Sounds management ===
===[8] Layers/Images/Sounds management===
In this area you can manage different groups of layers including the physics layer.
In this area you can manage different groups of layers including the physics layer.
By clicking on the top button "Layers", you can add images and sound resources to the map.
By clicking on the top button "Layers", you can add images and sound resources to the map.
Line 219: Line 142:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
==== Layers ====
====Layers====
</div>
</div>


* <span lang="en" dir="ltr" class="mw-content-ltr">Layers (left click) {{key press|→}}: Switch to Image management</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Layers (left click) {{key press|→}}: Switch to Image management</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">Layers (right click) {{key press|←}}: Switch to Sound management</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Layers (right click) {{key press|←}}: Switch to Sound management</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">Click "Add group" at the bottom to add a new group.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Click "Add group" at the bottom to add a new group.</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">Right-click a group to set the parameters of that group</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Right-click a group to set the parameters of that group</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">Right-click a layer to set the parameters of that layer</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Right-click a layer to set the parameters of that layer</span>


{{todo|Explain right click menu in group and layer with images}}
{{todo|Explain right click menu in group and layer with images}}


==== Images ====
====Images====


*<span lang="en" dir="ltr" class="mw-content-ltr">Images (left click) {{key press|→}}: Switch to Sound management</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Images (left click) {{key press|→}}: Switch to Sound management</span>
Line 236: Line 159:
*<span lang="en" dir="ltr" class="mw-content-ltr">Click the Add button to add image clips from the default clip folder to the map file.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Click the Add button to add image clips from the default clip folder to the map file.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Embedded area means the clips of this series have been embedded in the map file, when downloading the map, this kind of file will be included in the map file volume.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Embedded area means the clips of this series have been embedded in the map file, when downloading the map, this kind of file will be included in the map file volume.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">External area means that the material of this series is located outside the map, it is the default material in the game, when downloading the map, this kind of file will not be counted in the map file volume. When the map needs to call the image material of this area, it will directly call the file with the same name from the player's local default material library.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">External area means that the material of this series is located outside the map, it is the default material in the game, when downloading the map, this kind of file will not be counted in the map file volume. When the map needs to call the image material of this area, it will directly call the file with the same name from the player's local default material library.</span>  
**<span lang="en" dir="ltr" class="mw-content-ltr">Regardless of the location of the clip, when the clip file is white or red (selected), it means the clip is being used by the map; when the clip file is blue or purple (selected), it means the clip is not yet used by the map.</span>
**<span lang="en" dir="ltr" class="mw-content-ltr">Regardless of the location of the clip, when the clip file is white or red (selected), it means the clip is being used by the map; when the clip file is blue or purple (selected), it means the clip is not yet used by the map.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Left-click on a file that has been added to preview the image in the right workspace, and right-click on the file to perform the following actions.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Left-click on a file that has been added to preview the image in the right workspace, and right-click on the file to perform the following actions.</span>  
**<span lang="en" dir="ltr" class="mw-content-ltr">Readd: Overwrite the clip by calling a file with the same name directly from the default clip library.</span>
**<span lang="en" dir="ltr" class="mw-content-ltr">Readd: Overwrite the clip by calling a file with the same name directly from the default clip library.</span>
**<span lang="en" dir="ltr" class="mw-content-ltr">Replace: select a clip file to overwrite the clip.</span>
**<span lang="en" dir="ltr" class="mw-content-ltr">Replace: select a clip file to overwrite the clip.</span>
Line 244: Line 167:
**<span lang="en" dir="ltr" class="mw-content-ltr">When right-clicking on a file in the External area, an additional Embed option will appear to move the file into the Embedded area.</span>
**<span lang="en" dir="ltr" class="mw-content-ltr">When right-clicking on a file in the External area, an additional Embed option will appear to move the file into the Embedded area.</span>


=== Sounds ===
===Sounds===


*<span lang="en" dir="ltr" class="mw-content-ltr">Sounds (left click) {{key press|→}}: Switch to Layer management</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Sounds (left click) {{key press|→}}: Switch to Layer management</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Sounds (right click) {{key press|←}}: Switch to Image management</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Sounds (right click) {{key press|←}}: Switch to Image management</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Click the Add button to add sound clips from the default clip folder to the map file. Currently DDNet game editor only accepts opus format audio files.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Click the Add button to add sound clips from the default clip folder to the map file. Currently DDNet game editor only accepts opus format audio files.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Right-click on a file to perform the following actions.</span>
*<span lang="en" dir="ltr" class="mw-content-ltr">Right-click on a file to perform the following actions.</span>  
**<span lang="en" dir="ltr" class="mw-content-ltr">Readd: Overwrite a clip by calling a file with the same name directly from the default clip library.</span>
**<span lang="en" dir="ltr" class="mw-content-ltr">Readd: Overwrite a clip by calling a file with the same name directly from the default clip library.</span>
**<span lang="en" dir="ltr" class="mw-content-ltr">Replace: select a clip file to overwrite the clip.</span>
**<span lang="en" dir="ltr" class="mw-content-ltr">Replace: select a clip file to overwrite the clip.</span>
Line 255: Line 178:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
=== [9] Context dependent actions ===
===[9] Context dependent actions===
</div>
</div>


Line 263: Line 186:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
==== On all layers ====
====On all layers====
</div>
</div>
<!--T:103-->
<!--T:103-->
When any layer is selected, the following buttons appear:
When any layer is selected, the following buttons appear:


Line 280: Line 204:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
=== [10] Mapping area ===
===[10] Mapping area===
</div>
</div>


Line 292: Line 216:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
=== [11] Hint area ===
===[11] Hint area===
</div>
</div>


Line 300: Line 224:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
=== [12] Server setting ===
===[12] Server setting===
</div>
</div>


Line 312: Line 236:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
=== [13] Envelopes ===
===[13] Envelopes===
</div>
</div>


Line 318: Line 242:
Envelope animation: this is responsible for setting the animation effect in the map.
Envelope animation: this is responsible for setting the animation effect in the map.
</div>
</div>
{{todo|Explain in more detail}}
{{todo|Explain in more detail}}


Line 328: Line 253:


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
== External Resources ==
==External Resources==
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
*<span lang="en" dir="ltr" class="mw-content-ltr">[https://forum.ddnet.org/viewtopic.php?f=35&t=2419 Mapping ABC] by Index</span>
* [https://forum.ddnet.org/viewtopic.php?f=35&t=2419 Mapping ABC] by Index
*<span lang="en" dir="ltr" class="mw-content-ltr">[https://forum.ddnet.org/viewtopic.php?f=16&t=2420 Link list]  including lots of mapping resources by Index</span>
* [https://forum.ddnet.org/viewtopic.php?f=16&t=2420 Link list]  including lots of mapping resources by Index
*<span lang="en" dir="ltr" class="mw-content-ltr">[https://www.youtube.com/watch?v=t0ljtNtiijU DDRaceNetwork - How to Use the Map Editor] by Nick Joy</span>
* [https://www.youtube.com/watch?v=t0ljtNtiijU DDRaceNetwork - How to Use the Map Editor] by Nick Joy
*<span lang="en" dir="ltr" class="mw-content-ltr">[https://www.youtube.com/watch?v=UXZnF17TgEQ Teeworlds - How to map a DDRACE map. - Part 1] by Aoe</span>
* [https://www.youtube.com/watch?v=UXZnF17TgEQ Teeworlds - How to map a DDRACE map. - Part 1] by Aoe
*<span lang="en" dir="ltr" class="mw-content-ltr">[https://www.youtube.com/watch?v=tKuv4nn3nIo Teeworlds - How to map a DDRACE map. - Part 2] by Aoe</span>
* [https://www.youtube.com/watch?v=tKuv4nn3nIo Teeworlds - How to map a DDRACE map. - Part 2] by Aoe
*<span lang="en" dir="ltr" class="mw-content-ltr">[https://www.teeworlds.com/forum/viewtopic.php?id=11094 Maps Envelope Tutorial] by 2gethR</span>
* [https://www.teeworlds.com/forum/viewtopic.php?id=11094 Maps Envelope Tutorial] by 2gethR
*<span lang="en" dir="ltr" class="mw-content-ltr">[https://forum.ddnet.org/viewtopic.php?t=2428 Automapper Tutorial] by timakro</span>
* [https://forum.ddnet.org/viewtopic.php?t=2428 Automapper Tutorial] by timakro
*<span lang="en" dir="ltr" class="mw-content-ltr">[https://forum.ddnet.org/viewtopic.php?f=9&t=722 Mapper rules] for DDNet map testing process by jao</span>
* [https://forum.ddnet.org/viewtopic.php?f=9&t=722 Mapper rules] for DDNet map testing process by jao
</div>

Latest revision as of 20:36, 1 June 2024

Note: This page already exists on your language! Please help out by migrating the archived page (accessible by clicking this link) to the new translation system by clicking 'Translate'. Once finished, delete the archived page to remove this notice. Thanks! You can find a list of pages needing migration on Category:NeedsMigration.

Mapping is the process of building and creating maps, the basis of DDNet's (and other modes') gameplay. Maps can be created by anyone, given they have the will and creativity to do so.

Mapping also allows users to add their own design, sound, and aesthetic to maps, and can also be used for entities backgrounds, main menu themes, and more.

DDNet allows players to submit their own race maps on the DDNet Discord, where respective rules and guidelines can also be found.

Players can access the map editor interface by clicking on the editor in the main menu.

From any in-game screen, pressing ctrl+⇧ Shift+E will also take you directly to the map editor screen.

Overview of the Editor Interface

TODO: Update the interface section with visuals and instructions for the new editor visuals


Map editor within DDNet


Each labeled button in the editor interface has the following functionalities:

[1] File

File drop-down menu content

Opens a drop-down menu to create, load and save map files.

  • New ctrl+N: new map file.
  • Load ctrl+I: loads a map file.
  • Load Current Map ctrl+alt+I: loads the current map, given the player is currently in-game or viewing a demo.
  • Append ctrl+A: adds all the design elements from a selected map file to the current map.
  • Save ctrl+S: saves the current map under its current name.
  • Save As ctrl+⇧ Shift+S: saves the current map under another file name, while continuing to edit the map under that file name.
  • Save Copy ctrl+⇧ Shift+alt+S: saves the current map under another file name, but continues to edit the map under the original file name. When the map name used when saving a copy duplicates an existing file, the map will continue to be edited with that file name after completing the save.
  • Exit ctrl+⇧ Shift+E: Exit the editor interface.

[2] File name

Displays the name of the map file currently being edited as well as its file save path.

[3] Editor state info

Displays the attributes of the current map editor.

  • X, Y: indicates the current tile position of the map editor where the mouse cursor is located, with (0, 0) being the top left corner.
  • Z: indicates the scale value of the current map, which defaults to 200 on first load.
  • A: indicates the playback speed of the current map animation, default is 1.
  • G: indicates the size of the current map grid lines, default is 1.
  • 10:18: local time.

[4] Exit

Exit the editor interface. ctrl+⇧ Shift+E

[5] Display functions

Changes how the map is displayed.

  • HD (Show High Details) ctrl+H: preview the appearance of the current map in high quality mode.
  • Anim (Show animation) ctrl+M: previews the animation effect set by the current map.
  • Proof (Show field of view boundary) ctrl+P: previews the maximum field of view of the player in the default zoom level.
    • blue circle: indicates the player's actual position
    • the red box line and green box line indicate the maximum range that can be observed at different resolutions
    • the white box line indicates the maximum range that can be observed with dynamic view turned on.
  • Zoom: preview what the player sees in the actual game.
  • Grid ctrl+G: turns on grid lines.
  • Info ctrl+I: previews the details of the entity or texture, including but not limited to the ID of the entity or texture, the texture animation track, and the texture deformation.
  • (Unused) ctrl+U: allows placement of unused mappings in the map, a feature not commonly used in modern maps anymore.
  • Color: previews the color set by the current brush, after closing the brush will show the original color match, but does not affect the color set by the placed mapping.
  • Entities: select the category of entity layer that needs to be used for the current map. Depending on the game mode applied to the map, the entity layer selected in the editor should also be different.

[6] Zoom

Field of view adjustment functionality, descriptions in order from left to right.

Expanding or scaling the field of view by clicking buttons or pressing shortcut keys has no maximum and minimum scale value, and the scale value can even reach negative values. When the scale value is negative, the map as a whole is upside down.


  • ZO (Zoom out) numpad-: expands the field of view of the operation area by 50 points of scale value each time.
    • Scrolling the mouse wheel down also expands the field of view by 20 scale points per scroll, expanding the field of view in this way up to a maximum of 2000 scale points.
  • 1:1 numpad*: restores the field of view to the default scale value.
  • ZI (zoom in) numpad+: reduces the field of view of the operation area by 50 points of scale value at a time.
    • Roll the mouse wheel upward to also reduce the field of view by 20 scale points per scroll frame, and reduce the field of view in this way up to 10 scale points.

[7] Brush functionality

Descriptions from left to right:

  • X/X (Horizontal flip) N: flips the contents of the brush horizontally.
  • Y/Y (Vertical flip) M: flips the contents of the brush vertically.
  • 90° (Rotation angle): the angle at which the content in the brush is turned each time it is rotated, which can be modified by holding down this button and sliding the mouse left and right, holding down ⇧ Shift during the modification process for more precise modification.
    • You can only choose from 90°, 180° and 270° angles.
  • CCW (Counterclockwise rotation) R: rotates the contents of the brush counterclockwise at an angle.
  • CW (Clockwise rotation) T: rotates the content in the brush clockwise at a certain angle.

[8] Layers/Images/Sounds management

In this area you can manage different groups of layers including the physics layer. By clicking on the top button "Layers", you can add images and sound resources to the map. Layer management area, here is responsible for managing the map's layer groups and layers, as well as the invocation of the mapping material, picture material, and sound material. Pressing will also switch to the image management interface, or pressing will switch to the sound management interface

Layers

  • Layers (left click) : Switch to Image management
  • Layers (right click) : Switch to Sound management
  • Click "Add group" at the bottom to add a new group.
  • Right-click a group to set the parameters of that group
  • Right-click a layer to set the parameters of that layer
TODO: Explain right click menu in group and layer with images

Images

  • Images (left click) : Switch to Sound management
  • Images (right click) : Switch to Layer management
  • Click the Add button to add image clips from the default clip folder to the map file.
  • Embedded area means the clips of this series have been embedded in the map file, when downloading the map, this kind of file will be included in the map file volume.
  • External area means that the material of this series is located outside the map, it is the default material in the game, when downloading the map, this kind of file will not be counted in the map file volume. When the map needs to call the image material of this area, it will directly call the file with the same name from the player's local default material library.
    • Regardless of the location of the clip, when the clip file is white or red (selected), it means the clip is being used by the map; when the clip file is blue or purple (selected), it means the clip is not yet used by the map.
  • Left-click on a file that has been added to preview the image in the right workspace, and right-click on the file to perform the following actions.
    • Readd: Overwrite the clip by calling a file with the same name directly from the default clip library.
    • Replace: select a clip file to overwrite the clip.
    • Remove: removes the clip file.
    • When right-clicking on a file in the External area, an additional Embed option will appear to move the file into the Embedded area.

Sounds

  • Sounds (left click) : Switch to Layer management
  • Sounds (right click) : Switch to Image management
  • Click the Add button to add sound clips from the default clip folder to the map file. Currently DDNet game editor only accepts opus format audio files.
  • Right-click on a file to perform the following actions.
    • Readd: Overwrite a clip by calling a file with the same name directly from the default clip library.
    • Replace: select a clip file to overwrite the clip.
    • Remove: Remove the clip file.

[9] Context dependent actions

Additional buttons that will change depending on the selected layer.

On all layers

When any layer is selected, the following buttons appear:

  • Refocus home: immediately focuses the view to the upper left corner of the map.
  • Goto XY: immediately focuses the view to a specific coordinate of the map. Clicking this button sets the coordinate in its drop-down menu, and then clicking the Go button focuses the view to that coordinate.
  • Destructive mode ctrl+D: When Destructive mode is enabled, the area the brush passes over will be completely covered and the texture of this area will be replaced; when Destructive mode is disabled, the area the brush passes over will only be filled with the location that is not filled with the texture.
  • When Game or Tile layer is selected: Add Border: Adds a two-tile wide border to the current layer, using the texture of the selected layer's No. 2 map.
  • When Switch layer is selected: Switch ctrl+A: Set the number of the next placed switch layer entity. In the drop-down menu: Number is used to set the number, Delay is used to set the number of additional information, and F (shortcut: ctrl+F) is used to automatically set the unused number.
  • When Speedup layer is selected: Speedup ctrl+A: Set the parameters for the next placement of the speedup entity. In the drop-down menu, Force is used to set how much speed the belt can provide, Max Speed is used to set the maximum speed you can have at the belt, and Angle is used to set the direction of the belt.
  • When the Tele layer is selected: Tele ctrl+A: Sets the number of the next entity to be placed in the transmission area. The drop-down menu: Number is used to set the number, and F (shortcut: ctrl+F) is used to automatically set the unused number.
  • When Tune layer is selected: Tune ctrl+A: Set the number of the next placed adjustment zone entity. In its drop-down menu, Zone is used to set the number.
  • When the Quads layer is selected: Add Quad ctrl+Q: Adds a picture set by the current layer to the workspace. If no picture is set for that layer, a plain white square of 2*2 grid size is added by default.
  • When the Sounds layer is selected. Add Sound ctrl+Q: Adds a sound set by the current layer to the workspace.

[10] Mapping area

Workspace, where all the components needed for the map are placed.

TODO: Explain in more detail

[11] Hint area

When the mouse hovers over a button, the hint area will appear with the function of the button and a keyboard shortcut for the button function.

[12] Server setting

You can change Map settings to change server behavior. For example setting a map to be a solo map.

TODO: Explain in more detail

[13] Envelopes

Envelope animation: this is responsible for setting the animation effect in the map.

TODO: Explain in more detail
TODO:

Explain in detail what is marked "to be explained in detail" above. Full explanation of the features in the editor. Discuss the similarities and differences between modern maps and traditional and classical maps, or discuss their backstories.

Write a short tutorial on mapping.


External Resources