Add a new map: Data capture

From SEOW Wiki (IT)
Jump to: navigation, search

(from 4Shades , Hawk_5, Goanna, Dore)

Requirements

  • Have your own web server or admin level access to one. I run a web server from a second home PC on the network. Its old and slow (500M cpu) but it runs Scorched Earth just fine. Setting one up is reasonably simple but that is for another thread.
  • A good graphics program such as Photoshop or Paint Shop Pro. This is needed to create the final map images and trim them to size. Multi-layer capability is a must in my books.
  • A text editor program that can edit PHP files and understands the format. I started using Windows Notepad which can do the job but using a good software application designed for this type of thing makes it so much easier. I currently use a program called ConTEXT. It was a freeware download and there are so many of them it should be no problem to find one that suits you.
  • A spreadsheet application such as Microsoft Excel or Open Office Calc.

This is used to sort captured data (as 4Shades described in his post) and formatting it so it can be imported into a database management application. Which leads to;

  • An MSAccess or SQL database management application. Scorched Earth can use either database types. I use SQLyog which again is a free download (like most of my software where I can help it). Navicat is another good application and there is a free trial version (at the time of writing) which can get the job done.
  • FMBplus use 4.08 or 4.09b1m with mod for easier Data Capture (see below)

This is the "Toolkit" that lets you create maps but it also means you have your own functional Scorched Earth system to run campaigns.

There are two main lines of effort involved in adding a map to SEOW. The first is the data capture effort for the database, and the second is the map-making effort for the MP.

Data Capture

The following data needs to be captured from the FMB:

  • Roads and Railways (all of them!)
  • Bridges (defined by Road and Railway data)
  • Industrial Installations (factories and fuel dumps)
  • Tile Map Codes (from the Destruction Viewer in FMB)
  • Airbases
  • Railway Stations
  • Blockages Routes (Railways and Roads)


Additionally, the following data defaults need to be added for the new Sector in the respective database tables:

  • Army divisions in Army_Units
  • Climatic settings in Sector_Climate
  • Opposing forces in Sector_Dominance
  • Recon effect parameters in Sector_Recon_Parameters
  • FMB map strings and seasonal changes in Sector_Seasons
  • Resupply locations in Resupply_Points


Finally, you ought to associate some of the available Airforce_Units with your new sector. Note that you cannot just make up Airforce Unit names (as you can for Army Units). This is because all Airforce Unit names are hard-coded in IL-2 so you are stuck with what is defined in the Airforce_Units table. IL-2 doesn’t even consider platoon/flotilla naming for ground/sea forces, so we are free to do that ourselves in SEOW. When you start a campaign in SEOW, you will have access to all flights for the air regiments used in your template file PLUS all flights for air regiments indicated as defaults for the sector by any entries in the Airforce_Units table.


  • How to Capture Roads and Railways

This is brute force work, especially for large European maps. Pacific/Asian maps have much smaller road networks. The method is to open the map in FMB and place a separate moving vehicle to drive along every stretch of road between each pair of intersections. In some maps this might give you several hundred moving vehicles as you cover all possible road routes between intersections (and to the edge of the map). Do the same for trains. Sometimes it is very hard to get trains to stick on the map. Save the FMB file and open it in a spreadsheet. The road coordinates for each of the vehicle routes are shown under the "[nn_Chief_Road]" headings, like the following:

Code:

[1_Chief_Road]

 13100.00 39863.88 120.00 0 14 3.055555582046509 
 13100.00 39100.00 20.00 
 13100.00 37700.00 20.00 
 13300.00 37500.00 20.00 
 13300.00 36300.00 20.00 
 14100.00 35500.00 20.00 
 14100.00 33300.00 20.00 
 14900.00 32500.00 20.00 
 14900.00 31500.00 20.00 
 15900.00 30500.00 20.00 
 15900.00 30100.00 20.00 
 16300.00 29700.00 20.00 
 16300.00 29300.00 20.00 
 16359.55 28979.78 120.00 

[2_Chief_Road]

 24502.58 12659.96 120.00 0 19 3.055555582046509 
 24500.00 12900.00 20.00 
 24300.00 13100.00 20.00 
 24300.00 15100.00 20.00 
 23700.00 15700.00 20.00 
 23700.00 15900.00 120.00 
 23700.00 16300.00 20.00 
 23700.00 16700.00 20.00 
 23700.00 16900.00 -4.00 
 23700.00 17300.00 -4.00 
 23700.00 17500.00 20.00 
 23700.00 17700.00 20.00 
 23100.00 18300.00 20.00 
 22900.00 18300.00 20.00 
 22500.00 18700.00 20.00 
 22300.00 18700.00 20.00 
 22100.00 18900.00 20.00 
 22100.00 19100.00 20.00 
 21935.15 19317.45 120.00 


Each record has 3 values, the "highway node" (X,Y,Z) coordinates. By IL-2 convention, all road and rail nodes lie on a regular grid with coordinates of multiples of 100.0 m (usually odd multiples). In the examples above, the first and last records for each Chief are where you click the vehicle waypoint (Z=120.00), while the other records are generated by FMB to following the internal highway node locations (Z=20.00). We want to capture the complete list for each Chief with exact coordinates. Each of these Chief highway routes should be assigned a unique "Route" number and then entered into the Highways table of the database. Every route on every sector in SEOW has its OWN Route number.

Two useful tools to capture easier roads and railways:

  • FMBplus (use 4.08 or 4.09b1m with mod)

The advantage is that coordinates (X,Y, 120) are exact. So we can keep them without modification. FMBplus show also bridges'number. Just unzip in MODS folder. It'll create a new .../MODS/FMB folder.

- Use "Snap function" with step between 20 or 40 meters, and it'll be easy to find roads' intersections.

--> Also very useful for create a template:

- Select several objects to move, rotate or delete: In EDIT menu select "ENABLE SELECT" then draw a box around objects with left mouse and LEFTALT key on.

- For move: Select one object to move all

- For rotate: Put mouse cursor without click to indicate the rotating center and rotate with numericpad keys. 2D: 1 and 3 for rotate 30°, 4 and 6 for 15°, 7 and 9 for 5°, 5 for reset

3D:

F1: slowly move

F2: normal move

F3: faster move

Right mouse click: XY move

F4 and Right mouse click: move Z

F5 and Right mouse click: rotate with showing coordonates

F6 and F7 and Right mouse click: bend objects when possible

F10: remove landscape.

Example:

- Without FMBplus you obtain this in your mis file:

The first and last records for each Chief are where you click the vehicle waypoint (Z=120.00), while the other records are generated by FMB to following the internal highway node locations (Z=20.00).

[1_Chief_Road]

 13121.03 39863.88 120.00 0 14 3.055555582046509 (
 13100.00 39100.00 20.00 
 13100.00 37700.00 20.00 
 13300.00 37500.00 20.00 
 13300.00 36300.00 20.00 
 14100.00 35500.00 20.00 
 14100.00 33300.00 20.00 
 14900.00 32500.00 20.00 
 14900.00 31500.00 20.00 
 15900.00 30500.00 20.00 
 15900.00 30100.00 20.00 
 16300.00 29700.00 20.00 
 16300.00 29300.00 20.00 
 16359.55 28979.78 120.00

- With FMBplus you obtain this:

[1_Chief_Road]

 13100.00 39800.00 120.00 0 14 3.055555582046509 
 13100.00 39100.00 20.00 
 13100.00 37700.00 20.00 
 13300.00 37500.00 20.00 
 13300.00 36300.00 20.00 
 14100.00 35500.00 20.00 
 14100.00 33300.00 20.00 
 14900.00 32500.00 20.00 
 14900.00 31500.00 20.00 
 15900.00 30500.00 20.00 
 15900.00 30100.00 20.00 
 16300.00 29700.00 20.00 
 16300.00 29300.00 20.00 
 16300.00 28900.00 120.00
  • SEOW_Routes_Tool_v1.1.xls: Excel spreadsheet for transform *.mis file data in SEOW data.

As an example, after using SEOW_Routes_Tool_v1.1, if we say Chief2 above represents Route 123456 in the Sector "Rhami Land", then we would add it to the Highways table as

Code:

Route X_Axis Y_Axis Orientation Waypoint_Number Map

123456 24500.00 12700.00 20.00 1 "Rhami Land"

123456 24500.00 12900.00 20.00 2 "Rhami Land"

123456 24300.00 13100.00 20.00 3 "Rhami Land"

123456 24300.00 15100.00 20.00 4 "Rhami Land"

123456 23700.00 15700.00 20.00 5 "Rhami Land"

123456 23700.00 15900.00 20.00 6 "Rhami Land"

123456 23700.00 16300.00 20.00 7 "Rhami Land"

123456 23700.00 16700.00 20.00 8 "Rhami Land"

123456 23700.00 16900.00 -4.00 9 "Rhami Land"

123456 23700.00 17300.00 -4.00 10 "Rhami Land"

123456 23700.00 17500.00 20.00 11 "Rhami Land"

123456 23700.00 17700.00 20.00 12 "Rhami Land"

123456 23100.00 18300.00 20.00 13 "Rhami Land"

123456 22900.00 18300.00 20.00 14 "Rhami Land"

123456 22500.00 18700.00 20.00 15 "Rhami Land"

123456 22300.00 18700.00 20.00 16 "Rhami Land"

123456 22100.00 18900.00 20.00 17 "Rhami Land"

123456 22100.00 19100.00 20.00 18 "Rhami Land"

123456 21900.00 19300.00 20.00 19 "Rhami Land"


The idea is that every route overlaps at its start and end points with another route. The same process goes for trains for the Railway_Waypoints table. Do not bother about updating the Highway_Intersections table - that is created by running a query in the MySQL database. For reference, I did all the roads and bridges in Khalkhin Gol in under 2 hours. But Paddington took a long time to do Gulf of Finland which is many times more complicated. You may also find places on your map where the road route or the railway route is broken. For roads you can sometimes plot out your own path around this map problem, but for trains you usually cannot. The database table Route_Blockages allows you to define blockage markers for your sector, if required. These will show on your sector in the MP as black circles with a white X in them, indicating that there is no route through here.

  • Bridges

Bridges are denoted in the roads and railways data by instances where Z < 0. In the example above we have the two lines Code:

 23700.00 16900.00 -4.00 
 23700.00 17300.00 -4.00 


The two lines give the start and end coordinates of the bridge. The Z value is converted into the Bridge ID number by BridgeID = -Z-1. So for our example, BridgeID = -(-4)-1 = 4-1 = 3, i.e. Bridge 3. The length of the bridge is given by Code:

length = SQRT((X1-X2)*(X1-X2) + (Y1-Y2)*(Y1-Y2))


In our example we see that Bridge 3 has length 400 m. The remainder of the fields in the Bridges table are easy enough to fill out, except Damage_Name. The Damage_Name is given by the BridgeID according to the corresponding entry in Bridge_Codes table. With using SEOW_Routes_Tool_v1.1, you obtain directly the right Bridges SEOW data.

  • Industrial Installations

As a rule of thumb, we usually consider any factory building with 3 or more chimneys as a valid major factory installation, and any fuel dump with 6 or more fuel tanks as a valid fuel facility, but as map builder you can make your own convention about what deserves to be an installation in your map. In FMB, locate all such facilities on the map and place a stationary object INSIDE the fuel tank or factory. Save the FMB file and find the X,Y,Z coordinates of the stationaries and use them to build new records for the Industrial_Installations table. In that table you can ignore the Sm_x,Sm_y,Sm_z,Sm_h,Destruction_Code,Event_Date and Production_Points fields, but the other fields are all necessary. Every factory and fuel dump should have its own unique name. Stick to the naming conventions already in the table.

  • Tile Map Codes

This is really easy and fun. Open the map in FMB, select the Destruction tool, choose Destruction level Maximum, choose maximum Cursor width, click on the map, press "f" and move the mouse. You will paint all destroyable map tiles (green squares) over the whole map bright red. Save the FMB file. Open it up and you will see many lines of weird codes at the end of the file. You need to capture these with the new sector name into the Tile_Map_Codes table. No X,Y,Z coords needed as this information is already encoded into the tile codes.


  • Airbases

The idea here is to use FMB to capture landing and takeoff points for each airbase. By convention we land at the western end and takeoff at the eastern end where possible. The X,Z coords need to be entered into the Airbases table. Also identify what type of layout each airbase has (by reference to the SEOW Airbase Layouts PDF available from the download site). In some cases a new airbase is encountered, so a new Airbase Layout must be built. (see below)


Now for the data defaults. Most of these can be done simply by copying data from other sector records in the tables, but some care must be given to Army_Units, Sector_Seasons and Resupply_Points.

  • Army_Units

This is where you specify the names of the Allied and Axis army divisions that will be ued to name platoons in the template. The Division Names are arbitrary, but the remainder of the fields must remain in standard format. Make sure you give at least 2 or 3 divisions of each type "V","T","A" and "E" to each side. You can have the same Division_Name in different sectors if you like.

  • Sector_Seasons

This table contains information about whether the sector uses the same FMB map all year around, or swaps between summer and winter forms, e.g. Moscow has a green summer map and a white winter map. This swapping is specified in SEOW by putting the respective map loader strings in the "Summer_Map" and "Winter_Map" fields. For Moscow the two map loader strings are Code: Summer: Moscow/sload.ini Winter: Moscow/load.ini


These map loader strings are found in FMB files near the top. Sector_Seasons also contains the dates on which Summer switches to Winter, and Winter to Summer. These dates are written as numbers in MMDDhhmm format, so "04010000" means "1 April at 00:00 hours". Map summer/winter dawn and dusk times are given to regulate the use of airfield lighting throughout the year, and also to feed into the reconnaissance calculations. To help you identify which FMB maps SEOW uses for different sectors, take a look at the "Maps" link in the horizontal toolbar of the MP front page.

  • Resupply Points

Again, some air, ground, rail and sea resupply points should be added to the Resupply_Points table, where appropriate. The Supply_Point field is just an arbitrary name, but all other fields must be entered strictly in format. The Point_Z field for air supply points indicates the spawn altitude of aircraft using the point. . For railway supply points, the Z field indicates the direction of the railway line at the supply point location. To get this information you must place a stationary object at the location in FMB and align it with the railway line, pointing into the map rather than exiting the map. The Z field for this object inside the .mis file is the value you need to use in the corresponding railway supply point definition in Resupply_Points table. For road and ship supply points, the Z field in the Resupply_Points table is ignored.


OK, that is about it for data capture. Airbases and roads are usually the hardest parts. Next, we will talk about the MP mapping side of things: Add a new map: Maps and php

(from 4Shades , Hawk_5, Goanna, Dore)