Difference between revisions of "Map Merger"

From /tg/station 13 Wiki
Jump to navigation Jump to search
m
(Update instructions for PR 55658)
Line 3: Line 3:
 
/tg/station uses a tool called the '''Map Merger''' to make map changes easier for maintainers to review and less likely to conflict with map changes made by others.
 
/tg/station uses a tool called the '''Map Merger''' to make map changes easier for maintainers to review and less likely to conflict with map changes made by others.
  
There are two ways of running the tool, each requiring some amount of setup. If you have trouble or need help, ask in [[Community|#coderbus]].
+
There are a few ways of running the tool. If you have trouble or need help, ask in [[Community|#coderbus]].
  
== Basic setup ==
+
== Use as a Git hook ==
  
# '''Install Python''': If you don't already have Python installed, [https://www.python.org/downloads/ download and install] the latest version.
+
# '''Install the hook''': Open the <code>tools/hooks</code> folder and double-click <code>Install.bat</code>
 +
#* Linux users: run <code>tools/hooks/install.sh</code>
  
== Use as a Git hook (recommended) ==
+
Once complete, the map merger will run '''automatically''' every time you commit in Git. The console log can be reviewed if there are any errors.
  
# '''Install the hook''': Windows users open the <code>tools/hooks</code> folder and double-click <code>install.bat</code>. Other platforms run <code>tools/hooks/install.sh</code>.
+
== Fully manual method (not recommended) ==
  
Once the Git hook is installed, no further manual intervention is needed and the map merger will run automatically any time you commit in Git.
+
This is the older method, and requires careful manual use each time you want to make changes to the map. First:
 
 
The dialog box or console output of the commit will show the map merger's log. You can check the git commit log to review changes, or run <code>tools/mapmerge2/precommit.py</code> manually to review changes before committing.
 
 
 
== Run manually (not recommended) ==
 
 
 
This is the older method, and is simpler but requires careful manual use each time you want to make changes to the map. First:
 
 
 
# '''Install dependencies''': For Windows users, run <code>tools/mapmerge2/requirements-install.bat</code>. Non-Windows or advanced users can manually run <code>python -m pip install tools/mapmerge2/requirements.txt</code>.
 
  
 
Each time you want to edit a map, follow these steps:
 
Each time you want to edit a map, follow these steps:

Revision as of 04:51, 23 December 2020

Guide to contributing to the game > Guide to mapping

/tg/station uses a tool called the Map Merger to make map changes easier for maintainers to review and less likely to conflict with map changes made by others.

There are a few ways of running the tool. If you have trouble or need help, ask in #coderbus.

Use as a Git hook

  1. Install the hook: Open the tools/hooks folder and double-click Install.bat
    • Linux users: run tools/hooks/install.sh

Once complete, the map merger will run automatically every time you commit in Git. The console log can be reviewed if there are any errors.

Fully manual method (not recommended)

This is the older method, and requires careful manual use each time you want to make changes to the map. First:

Each time you want to edit a map, follow these steps:

  1. Prepare maps: Run tools/mapmerge2/Prepare Maps.bat to save a backup of all maps in their current state.
  2. Make your changes: Don't forget to save.
  3. Exit DreamMaker: Optional, but ensures that you don't accidentally undo the map merger's work.
  4. Run the map merger: Run tools/mapmerge2/mapmerge.bat and select the map you edited to merge.

With this method, leaving the map open in DreamMaker or reviewing it after running the map merger makes it possible to accidentally save and overwrite the merged map with an unmerged map. Close DreamMaker entirely before manually running the map merger or be extra-careful not to overwrite the changes the map merger made.

What is map merging, actually?

The "map merge" operation describes the process of converting a map file written by the DreamMaker map editor to:

  1. Use a format more amenable to Git's conflict resolution, called "TGM" and originally developed by Remie. The TGM map format is like the standard Dream Maker map format, but arranged differently, meaning Dream Maker is able to open TGM maps.
  2. Keep the size of the difference between the old version and the new version of the map as small as possible.

It requires an old version of the map to use as a reference and a new version of the map which contains the desired changes.

Information on the tool's implementation is stored with the code.


Hosting Hosting a serverSetting up the databaseWorking with /tg/station as an upstream repository
Contributing Guide to contributing to the gameSetting up gitDownloading the source codeReporting issuesChangelogs
Coding Understanding SS13 codeSS13 for experienced programmersCode docsCoding standardsGetting Your Pull AcceptedBinary flags‎Text FormattingMySQL
Mapping Guide to mappingMap mergerGuide to door access
Spriting Guide to spritingResolving icon conflicts
Wiki Guide to contributing to the wikiWikicodeAutowiki