Difference between revisions of "User:Aquanim/DraftMapMakingGuide"
Line 35: | Line 35: | ||
* Edit mapinfo.lua | * Edit mapinfo.lua | ||
* Test the map | * Test the map | ||
+ | |||
+ | (The minimap in the lobby will be blank, don't worry about this for now.) | ||
== Metal and Startboxes == | == Metal and Startboxes == |
Revision as of 21:35, 12 June 2020
Contents
Minimal Brief Guide
For more detail on each of these steps read the later sections of the document.
This guide assumes that you are using a version of Zero-K installed through Steam. You can still make maps if you installed by some other method but you may need to modify some of the later steps.
Download Tools
- 7zip - https://www.7-zip.org/download.html
- pymapconv - clone or download https://github.com/Beherith/springrts_smf_compiler somewhere, then copy pymapconv.exe and nvdxt.exe to a new directory to keep things simple
- map blueprint
Create Images
For a 10x10 (TitanDuel-size) map, create the following images with a tool of your choice:
- A height map grayscale image with dimensions 641 x 641, saved as an 8-bit .bmp or a 16-bit .png. (The latter is preferred but not all tools offer 16-bit output.) The brighter a pixel is the higher the corresponding part of the map will be.
- A texture map colour image with dimensions 5120 x 5120, saved as a .bmp
If you want a different size map see the heightmap and texture map sections below.
Put these images in the same directory as pymapconv.exe from the previous step (may not strictly be required but keeps things simple).
Compile Your Map
Run pymapconv.exe and fill in the following fields...
- An output file name - ideally this should be the name of your map, possibly with a version number. File extension .smf, will also generate a .smt. IMPORTANT: Do not rename these files after compiling!
- Use the buttons to select the texture and heightmap images you made in the previous step.
- I expect the minimum/maximum height values to be overridden by mapinfo.lua later but you might as well set them.
- Scroll down to the NVDXT option and make sure it says "-Sinc -quality_highest". Also probably a good idea to tick the CLEAN option.
- Untick everything else, press "Save options as" if you like, then press the "Compile" button.
Construct .sdd File
- Copy into map blueprint
- Rename map blueprint
- Edit mapinfo.lua
- Test the map
(The minimap in the lobby will be blank, don't worry about this for now.)
Metal and Startboxes
Now that you can look at your height and texturemap ingame this is a good time to sort out your metal spots and start locations. Holding SPACE ingame will display a dialog box which (among other things) gives the X and Z coordinates of wherever your cursor is. This will be helpful when setting up the following config files.
- Edit metal
- Edit startboxes
Optional Extras
You can skip this for now, but refer to the sections linked below if you want...
- Features (geovents, trees, rocks, etc)
- DNTS (fancy map details and specular map)
- Fancy mapinfo stuff (lighting, water effects, etc)
- Skybox (???)
- Other nonsense (particle effects, sound, etc)
Upload
- Make a Springfiles account
- Pray to your deity of choice that whoever approves Springfiles accounts checks in this month
- Upload your map
- Pray to your deity of choice that Springfiles is actually working this week
- See your map on the ZK website
Debug data:
[SQLBagOStuff] MainObjectStash using store ReplicatedBagOStuff
[objectcache] MainWANObjectCache using store EmptyBagOStuff
IP: 18.191.181.161
Start request GET /mediawiki/index.php?diff=next&oldid=6650&title=User%3AAquanim%2FDraftMapMakingGuide
HTTP HEADERS:
CONTENT-TYPE:
CONTENT-LENGTH: 0
USER-AGENT: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HOST: zero-k.info
ACCEPT-ENCODING: gzip, br, zstd, deflate
ACCEPT: */*
CONNECTION: close[localisation] LocalisationCache: using store LCStoreDB
[session] SessionManager using store SqlBagOStuff
[DBReplication] Cannot use ChronologyProtector with EmptyBagOStuff
[DBReplication] Wikimedia\Rdbms\LBFactory::getChronologyProtector: request info {
"IPAddress": "18.191.181.161",
"UserAgent": "Mozilla\/5.0 AppleWebKit\/537.36 (KHTML, like Gecko; compatible; ClaudeBot\/1.0; +claudebot@anthropic.com)",
"ChronologyProtection": false,
"ChronologyPositionIndex": 0,
"ChronologyClientId": false
}[DBConnection] Wikimedia\Rdbms\LoadBalancer::lazyLoadReplicationPositions: executed chronology callback.
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at 'localhost'.
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[session] SessionBackend "sqa7lg4ckifk7o4rah1a6i01o2p0ulu9" is unsaved, marking dirty in constructor
[session] SessionBackend "sqa7lg4ckifk7o4rah1a6i01o2p0ulu9" save: dataDirty=1 metaDirty=1 forcePersist=0
[cookie] already deleted setcookie: "wikidb229_mw__session", "", "1710339308", "/", "", "", "1"
[cookie] already deleted setcookie: "wikidb229_mw_UserID", "", "1710339308", "/", "", "", "1"
[cookie] already deleted setcookie: "wikidb229_mw_Token", "", "1710339308", "/", "", "", "1"
[cookie] already deleted setcookie: "forceHTTPS", "", "1710339308", "/", "", "", "1"
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at 'localhost'.
Title::getRestrictionTypes: applicable restrictions to [[User:Aquanim/DraftMapMakingGuide]] are {edit,move}
[ContentHandler] Created handler for wikitext: WikitextContentHandler
Article::view: showing diff page
DifferenceEngine old '6650' new 'next' rcid ''
[MessageCache] MessageCache using store SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] SqlBagOStuff::lock failed due to timeout for wikidb229-mw_:messages:en.
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[MessageCache] MessageCache::load: Loading en... local cache is empty, global cache is expired/volatile, loading from database
ParserFactory: using preprocessor: Preprocessor_Hash
Unstubbing $wgLang on call of $wgLang::_unstub from ParserOptions->__construct
DifferenceEngine old '0' new '0' rcid '0'
WikiPage::getParserOutput: using parser cache: no
[caches] parser: SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
Parser cache options found.
[Preprocessor] Cached preprocessor output (key: wikidb229-mw_:preprocess-hash:1c5605261a7b2f5427f5406dbd367dc6:0)
[Preprocessor] Cached preprocessor output (key: wikidb229-mw_:preprocess-hash:1c5605261a7b2f5427f5406dbd367dc6:0)
MediaWiki::preOutputCommit: primary transaction round committed
MediaWiki::preOutputCommit: pre-send deferred updates completed
MediaWiki::preOutputCommit: session changes committed
MediaWiki::preOutputCommit: LBFactory shutdown completed
Title::getRestrictionTypes: applicable restrictions to [[User:Aquanim/DraftMapMakingGuide]] are {edit,move}