Has anybody ever done a usable 3D starmap on paper?

Best Selling RPGs - Available Now @ DriveThruRPG.com

Nobby-W

Not an axe murderer
Joined
Oct 7, 2018
Messages
7,070
Reaction score
16,011
Many games have abstracted star maps into two dimensions, of which Traveller is likely the best example. I've seen a few ham-fisted attempts at 3-D star maps in role playing games, and some applications on computers, but nothing that ever came across as practical to use in a game. Traveller: 2300 and Space Master both published poster sized maps of stars but the maps didn't visualise the stars in 3 dimensions, sticking to printing a Z coordinate on the star's entry.

Something I've kicked about on a few occasion is a 3 dimensional star mapping format, but it's not easy to come up with something that works well on paper without resorting to a visualisation app that lets you rotate the view around. Making a game that relies on something like that is a can of worms that I would rather not open, at least not for initial versions.

The closest thing I've seen to a practical format for a static image is something like this -

12lys.png

This shows the map from an oblique angle and uses lines to a central plane to visualise the positions in 3D space. I think this could work with maps up to about 50 or so stars before looking too cluttered, which is probably enough to do a sector. There are certainly a variety of available stellar data sets that could be used to construct such a map from.

However, by itself this format doesn't show routes in and out of the sector. It's not really good for seeing close-by stars in neighbouring sectors without some supplementary documentation. In order to make it work you would probably have to supplement it with some listing of distances between stars, and maybe lines showing major routes (which might be better if your setting canon was based around some sort of gate system). If you added a cross-tabulation of distances, or a list of routes into neighbouring sectors you might be able to use it to work out how to move across sectors without it being too difficult to understand. Making something like this too geeky would be an entry barrier to the game.

Has anybody seen examples of a pen-and-paper game that actually did 3-D star maps and made them work?
 
Last edited:
I think the ones in Space Opera were ok. I remember someone working on 3d sectors for traveller over on COTI some years ago, but I'll have to be at home on the computer to do a thorough look for them.
 
Here's the ones from COTI I was thinking of; they're subsector maps, so might not be as useful, since they take on the preconceptions of the Traveller universe.
 

Attachments

  • 3D Map Blank.pdf
    341.4 KB · Views: 16
Amusingly, it seems like the source of that image you linked posted in the same thread.
 
Ok.. I was thinking, for some reason, that those images were already created with it, but have you looked at Astrosynthesis as an option for creating the 3d maps then printing them with +/- altitude notations? I don't have it installed right now, but it seemed to work fairly well when I was poking at them a couple years ago.
 
What I've done is a ten by ten by ten block. You can then use a set of ten ten by ten charts to look up any distance between points. I've also got a file for a 10 x 10 x 10 nested hex grid. It's not really practical but it's trippy to look at. I think it's probably in Corel Draw format and I don't have Corel Draw installed on this machine right now. But it's certainly one way to think about things.

I do like your example map but really, unless you can look up distances or measure them somehow you'll have to do the math. It's not terrible math but people generally dislike using a calculator in play.
 
What I've done is a ten by ten by ten block. You can then use a set of ten ten by ten charts to look up any distance between points. I've also got a file for a 10 x 10 x 10 nested hex grid. It's not really practical but it's trippy to look at. I think it's probably in Corel Draw format and I don't have Corel Draw installed on this machine right now. But it's certainly one way to think about things.

I do like your example map but really, unless you can look up distances or measure them somehow you'll have to do the math. It's not terrible math but people generally dislike using a calculator in play.
I think you would have to accompany the map with a table showing the distances apart, something like below. The other thing that occurred to me was to include the outline of a cube showing the sector boundaries, and also show the major routes in and out of the sector on the map as well.

distance-charts_north-island.jpg
 
I think the ones in Space Opera were ok. I remember someone working on 3d sectors for traveller over on COTI some years ago, but I'll have to be at home on the computer to do a thorough look for them.
From a quick shufti at one of the star atlas books over the interwebs, it looks like Space Opera is still doing an orthogonal projection plus notes for Z axis. What I didn't like about 2300 and Space Master using that projection was that stars at opposite sides could look adjacent to each other with no visual cues about the distance on the Z axis. If you have an oblique projection with a line down to a central plane you get a visual cue for that. The downside is that they add clutter to the map, limiting the number of stars that could be practically displayed.

Having said that, if you restricted the map to inhabited systems or other systems of note, dropping most of the red dwarf stars off, you could tune your sectors to having a reasonable number of points of interest (I think somewhere about 20-50 on a map) and cut out most of the clutter.

Ok.. I was thinking, for some reason, that those images were already created with it, but have you looked at Astrosynthesis as an option for creating the 3d maps then printing them with +/- altitude notations? I don't have it installed right now, but it seemed to work fairly well when I was poking at them a couple years ago.
I did look at Astrosynthesis, but found it quite buggy. It also makes the game dependent on software for star mapping, and it would be a major faff to get something homebrew together that would work on PC, Mac, IOS and Android and get it stable enough to deploy to punters through app stores. For that and other reasons, I think that making the game dependent on an app to display star maps is a bridge too far, at least at this point. It might be viable later, though.

That said, I'm less concerned with rendering the map. I can think of a few options that are technically in my grasp for a reasonable level of effort; In a pinch one could even write something that takes the coordinates and renders to SVG or encapsulated postscript. Stellar coordinate data for nearby stars is pretty readily available off the interwebs.

The problem I'm trying to solve is a display format for a 3D star map that is useful on a purely pen-and-paper medium. It needs to show an at-a-glance view of the stars, major routes between them and major routes in and out of the sector. As David Johansen David Johansen says above, one would also have to supplement this with a distance matrix to avoid people having to do their own pythagorean calculations to work out distances. The distance matrix could also include routes in and out.

Ok.. I was thinking, for some reason, that those images were already created with it, but have you looked at Astrosynthesis as an option for creating the 3d maps then printing them with +/- altitude notations? I don't have it installed right now, but it seemed to work fairly well when I was poking at them a couple years ago.
I think that page has been around a while; you can see its age in the use of MS Sans-Serif bitmap fonts. There are a few other maps about that look like they were rendered with the same software.


Interestingly, it looks like someone has updated the software.

 
Last edited:
A distance matrix is easy enough to do with a spreadsheet. Space Master Privateers used one.

I'll have to see if I can find the printout I did of the 3d hex grid and scan it.
 
A distance matrix is easy enough to do with a spreadsheet. Space Master Privateers used one.

I'll have to see if I can find the printout I did of the 3d hex grid and scan it.
Certainly, once you have the coordinates themselves then calculating and rendering the distance matrix into something that can be imported is not much of a bother. I think the distance matrix would be a good add-on to the map.
 
This is a spherical region 40 light years across. Based on this, a 10 parsec cube would average something like 120 stars. If you take stars between F5-K5 spectral groups as having long enough life to support life in a system and F0-K5 or so as being able to host worlds that could be terraformed then you average about 6 systems that might have naturally occurring garden worlds and 15 systems that could have worlds that might be either natural garden worlds or candidates for terraforming. You could also have some systems with permanent habitation but no garden or terraformable worlds.

If you dropped the smaller and less significant red dwarf stars from the map, you could keep the number of stars displayed to reasonable levels. The map really only needs to show stars with inhabited systems or some other mcguffin relevant to the game. I think this would be enough worlds for a sector, and a 2x2x2 sector region might have 100 inhabited systems or thereabouts.


 
Last edited:
So, I have a cunning plan -

After a bit of perusal, I've found a csv of stars on the Atomic Rockets website that is more or less suitable, and I took another look at Astrosynthesis per David Johansen David Johansen's suggestion. It's still got its annoying light year/parsec bug, but I figured out a workaround for it and spent an evening tinkering last night and got a data set of stellar data into it.

If one scales the 'verse to roughly 30 parsecs (approx. 100 light years) across - with a blob on one side where an alien polity is located - then the data set has about 1,600 stars in a 30 parsec cubic volume with a 10 parsec cube on the side. Trimming out potentially habitable star systems, this nicely fits the design goal of a sandbox with about 200 inhabited systems - big enough to have elbow room and small enough to to be manageable. At this scale, starships would probably work with a range of about 10-15 light years.

A 3x3x3 grid (plus hangers-on) of 10 parsec wide sectors gives sectors with typically 5-10 inhabited systems, perhaps a few other points of interest and maybe way stations on longer routes. That's a bit smaller than I originally had in mind, but it's workable. In fact, it could probably fit a (relatively uncluttered) sector map, a distance matrix, a listing of systems and some summary blurb onto a two-page spread.

I think a 3D format like the example above, with major routes, plus major routes in and out of the sector would enable folks to navigate around the region, with a distance matrix showing the distances to reachable stars.

Unfortunately, Astorsynthesis won't output in this format, but according to the blurb the file is a SQLite database, so it shouldn't be a big deal to make something capable of reading that and rendering a sector in EPS or SVG format. I've done these sorts of generators before so I'm confident it's not going to be a major undertaking.

And that's my cunning plan. It cuts the problem down to a manageable size, and I think the final presentation format stands a fighting chance of being usable without needing an app to visualise the sectors.
 
I always found that enabling the automatic jump-(whatever number) routing helped to visualize what was reachable.
 
Why not just identify an origin, a coordinate and assign each location a set of coordinates? Calculating straight line vectors is trivial.
 
I always found that enabling the automatic jump-(whatever number) routing helped to visualize what was reachable.
Why not just identify an origin, a coordinate and assign each location a set of coordinates? Calculating straight line vectors is trivial.
Working out the routes isn't a big deal - that's just some analysis based on calculating distances, which are easy enough to calculate using Pythagoras's calculation, although getting Astrosynthesis to show it is handy. We can get coordinates from the stellar data. There's a reasonably good set on the Atomic Rockets page that I've used as a starting point.
I think he was more looking for a table-usable graphic representation.
That's exactly what I'm trying to do. I think that making the game dependent on an app for star mapping is a bridge too far - it erects an entry barrier. To make something that could be used at the table without excluding people you would have to support mobile devices as well as PCs, deal with internationalisation, get it stable enough with a simple enough UX to deploy to non-technical punters, and deal with a whole raft of other logistic issues. Astrosynthesis by itself doesn't meet most of those criteria, and building something that does isn't going to be a trivial undertaking.

Building an app to do this to an acceptable standard for non-technical punters so it works and doesn't generate negative "This is too buggy" feedback online is quite a substantial undertaking. Months of design, build, testing, feedback and so forth. Plus, I've never done any mobile development before, so there's the issue of coming up to speed on some platform that will do this. The most likely candiate for something that could build an app that would work across iOS, Android and Windows (maybe MacOS) would be C++/QT, with a fallback position of building separate apps for each platform - an even bigger undertaking.

That's the main reason that I'm against making the game dependent on an app. Going down this route far enough to do make it fit for purpose will be a major can of worms and I don't want to put resolving that on the critical path for developing the game.

So, my call for this is that making the game dependent on an app isn't going to work without a disproportionate amount of effort, which leaves the only feasible approach being a graphical representation that can work on paper without needing an app. Broadly, the options for this fall into some variant of two approaches:
  • Stick to a two-dimensional abstraction, for example the hex map format that GDW used for Traveller, or
  • Find a way to represent a three-dimensional star field so that it's easy to interpret.
This is an exercise in figuring out how to do the latter. The representation needs to be easy to interpret visually, it needs to show the positions of stars, major navigable routes, including routes in and out of the sector, and have some easy way to look up distances.
 
Last edited:
Well, there's the simple method of graphing in x,y and annotating z, then doing a vector for the distance using the standard algebraic method when needed. (SQRT((x2-x1)^2+(y2-y1)^2+(z2-z1)^2).
 
Sadly we're in an industry where double digit addition is seen as too complex. One of the design conceits of Galaxies In Shadow is that scientific calculators are relatively cheap and available these days but I must confess serious misgivings about that from a market standpoint.
 
Sadly we're in an industry where double digit addition is seen as too complex. One of the design conceits of Galaxies In Shadow is that scientific calculators are relatively cheap and available these days but I must confess serious misgivings about that from a market standpoint.
I'd be OK with someone doing a pythogras calculation for something ad-hoc, but it would be better to have it somewhere lookup-able for common routes.
 
I think a 2D representation and table of relative distances (to account for locations with significant out of plane variances) world be perfectly useable for gaming applications.

For more “local” maps, a 3D plot with some form of axonometric projection of the points would make the point that “space is 3D!”.
 
Personally you should pass the map and the calculator to the player who's character is the navigator and tell them to go to it. Unfortunately the easily foreseen consequence of that action is that nobody takes navigation skill (or Astrophysics in Galaxies In Shadow) and they pass the chart and calculator back to the GM.

Here's the output on a little javascript I wrote. I would have liked it to put tabs between the lines so I could copy and paste it to my word processor. I should get back to figuring that out. I can't remember what the functional unit was supposed to be. Possibly days at light speed with a fixed range per space.

1
1 2 3 4 5 6 7 8 9 10
1 42 59 80 102 125 148 171 195 219 242
2 59 72 90 110 131 154 176 199 223 246
3 80 90 105 122 142 163 184 206 229 252
4 102 110 122 138 156 175 195 216 238 260
5 125 131 142 156 171 189 208 228 248 269
6 148 154 163 175 189 205 223 241 261 281
7 171 176 184 195 208 223 239 256 275 294
8 195 199 206 216 228 241 256 273 290 308
9 219 223 229 238 248 261 275 290 306 324
10 242 246 252 260 269 281 294 308 324 340
2
1 2 3 4 5 6 7 8 9 10
1 59 72 90 110 131 154 176 199 223 246
2 72 83 99 118 138 159 181 204 226 249
3 90 99 113 129 148 168 189 211 233 255
4 110 118 129 144 161 180 199 220 241 263
5 131 138 148 161 176 193 212 231 252 273
6 154 159 168 180 193 209 226 245 264 284
7 176 181 189 199 212 226 242 260 278 297
8 199 204 211 220 231 245 260 276 293 311
9 223 226 233 241 252 264 278 293 309 326
10 246 249 255 263 273 284 297 311 326 343
3
1 2 3 4 5 6 7 8 9 10
1 80 90 105 122 142 163 184 206 229 252
2 90 99 113 129 148 168 189 211 233 255
3 105 113 125 140 157 176 196 217 239 261
4 122 129 140 154 170 187 206 226 247 268
5 142 148 157 170 184 201 219 238 257 278
6 163 168 176 187 201 216 233 251 269 289
7 184 189 196 206 219 233 248 265 283 302
8 206 211 217 226 238 251 265 281 298 316
9 229 233 239 247 257 269 283 298 314 331
10 252 255 261 268 278 289 302 316 331 347
4
1 2 3 4 5 6 7 8 9 10
1 102 110 122 138 156 175 195 216 238 260
2 110 118 129 144 161 180 199 220 241 263
3 122 129 140 154 170 187 206 226 247 268
4 138 144 154 166 181 198 216 235 255 276
5 156 161 170 181 195 211 228 246 265 285
6 175 180 187 198 211 225 241 258 277 296
7 195 199 206 216 228 241 256 273 290 308
8 216 220 226 235 246 258 273 288 305 322
9 238 241 247 255 265 277 290 305 320 337
10 260 263 268 276 285 296 308 322 337 353
5
1 2 3 4 5 6 7 8 9 10
1 125 131 142 156 171 189 208 228 248 269
2 131 138 148 161 176 193 212 231 252 273
3 142 148 157 170 184 201 219 238 257 278
4 156 161 170 181 195 211 228 246 265 285
5 171 176 184 195 208 223 239 256 275 294
6 189 193 201 211 223 236 252 268 286 305
7 208 212 219 228 239 252 266 282 299 317
8 228 231 238 246 256 268 282 297 313 330
9 248 252 257 265 275 286 299 313 328 344
10 269 273 278 285 294 305 317 330 344 360
6
1 2 3 4 5 6 7 8 9 10
1 148 154 163 175 189 205 223 241 261 281
2 154 159 168 180 193 209 226 245 264 284
3 163 168 176 187 201 216 233 251 269 289
4 175 180 187 198 211 225 241 258 277 296
5 189 193 201 211 223 236 252 268 286 305
6 205 209 216 225 236 249 264 280 297 315
7 223 226 233 241 252 264 278 293 309 326
8 241 245 251 258 268 280 293 307 323 339
9 261 264 269 277 286 297 309 323 338 354
10 281 284 289 296 305 315 326 339 354 369
7
1 2 3 4 5 6 7 8 9 10
1 171 176 184 195 208 223 239 256 275 294
2 176 181 189 199 212 226 242 260 278 297
3 184 189 196 206 219 233 248 265 283 302
4 195 199 206 216 228 241 256 273 290 308
5 208 212 219 228 239 252 266 282 299 317
6 223 226 233 241 252 264 278 293 309 326
7 239 242 248 256 266 278 291 305 321 338
8 256 260 265 273 282 293 305 319 334 350
9 275 278 283 290 299 309 321 334 349 364
10 294 297 302 308 317 326 338 350 364 379
8
1 2 3 4 5 6 7 8 9 10
1 195 199 206 216 228 241 256 273 290 308
2 199 204 211 220 231 245 260 276 293 311
3 206 211 217 226 238 251 265 281 298 316
4 216 220 226 235 246 258 273 288 305 322
5 228 231 238 246 256 268 282 297 313 330
6 241 245 251 258 268 280 293 307 323 339
7 256 260 265 273 282 293 305 319 334 350
8 273 276 281 288 297 307 319 333 347 362
9 290 293 298 305 313 323 334 347 361 376
10 308 311 316 322 330 339 350 362 376 390
9
1 2 3 4 5 6 7 8 9 10
1 219 223 229 238 248 261 275 290 306 324
2 223 226 233 241 252 264 278 293 309 326
3 229 233 239 247 257 269 283 298 314 331
4 238 241 247 255 265 277 290 305 320 337
5 248 252 257 265 275 286 299 313 328 344
6 261 264 269 277 286 297 309 323 338 354
7 275 278 283 290 299 309 321 334 349 364
8 290 293 298 305 313 323 334 347 361 376
9 306 309 314 320 328 338 349 361 374 388
10 324 326 331 337 344 354 364 376 388 402
10
1 2 3 4 5 6 7 8 9 10
1 242 246 252 260 269 281 294 308 324 340
2 246 249 255 263 273 284 297 311 326 343
3 252 255 261 268 278 289 302 316 331 347
4 260 263 268 276 285 296 308 322 337 353
5 269 273 278 285 294 305 317 330 344 360
6 281 284 289 296 305 315 326 339 354 369
7 294 297 302 308 317 326 338 350 364 379
8 308 311 316 322 330 339 350 362 376 390
9 324 326 331 337 344 354 364 376 388 402
10 340 343 347 353 360 369 379 390 402 416
 
Last edited:
So I did a quick excel workup on generating the distance tables using about 30 randomly generated names and random coordinates (+100 to -100), and typing the math in works pretty well for figuring out the distance between all of them with each other. It's probably pretty doable to work it out for a quick reference, then you can toss the coordinates and the calculator to the Navigator as a part of the experience :grin:

There's probably more elegant ways to do it in excel, but this is the code I used:
Code:
=ROUND(SQRT(SUM((VLOOKUP($A2,Coordinates,2,FALSE)-VLOOKUP(B$1,Coordinates,2,FALSE))^2,(VLOOKUP($A2,Coordinates,3,FALSE)-VLOOKUP(B$1,Coordinates,3,FALSE))^2,(VLOOKUP($A2,Coordinates,4,FALSE)-VLOOKUP(B$1,Coordinates,4,FALSE))^2)),1)

Coordinates are the list of names and x,y,z coordinates on another tab, designated for ease of reference.

MeumIpliotEstraohChauYarDizrurHootsudZruthuthZirriVlijakWoocsAzecIgleudGriuHeidBuekdaktLuagtefOceortaOnusaasIthaicrorsOkuEzeVriotDoacsCriuFliaksoyGleubbakThulagZruhlooThaeltelt
Meum028.3139.39887.847.943182.4107.8165.5129.27736.278.2209.6192.543.144.2111.9168.385.453.1112.3190.1161.6145.9148.687.545.393.9
Ipliot28.30137.6126.2109.870.242.2197125.8188.1128.289.28.880.5228.7213.156.951.5137.5177.1112.861.4138.5203.8183.1152.7169.2112.525.299.8
Estraoh139.3137.60190.8137.2181173.1129111.6163.863.7128.7133.9123.1165.6160.2165.9132.4167139.3177.5133188.915714361.5134.8155.9160149.3
Chau98126.2190.8074.769.2117.8174.6104121.1181.6112.4134.2136.6177.5154.993.4108.963.6183.625.9108.845.6178123.6171.1120.760.8137136
Yar87.8109.8137.274.7091.2127.2159.937.1126.7151.8118.3114.5135166.4143.681.77097182.953.364.753.9112.592.7105.7111.989.8125.5149.4
Dizrur47.970.218169.291.2054.2202.5122.5168.6169.499.578.9110.1221201.140.970.1104.919261.475.189.9202.1168.5177.215984.272.9114.7
Hootsud4342.2173.1117.8127.254.20211150193.5152.590.248.885.6240.8224.963.980.3132.9183.7111.289.5140.7232.4199.6187.1179.7107.539.192.5
Zruthuth182.4197129174.6159.9202.52110137.771.9107.9125.8198.8141.753.562.6211.9194.3118.874.3177.9195.3186.9191.410313157.8127.2221.7145.7
Zirri107.8125.8111.610437.1122.5150137.70116.4135.2123.3128.6138.5144.2123.211189.1106.7170.686.983.88589.770.671.596.5102.9145.2155.9
Vlijak165.5188.1163.8121.1126.7168.6193.571.9116.40148121.5192.8148.159.642.7184.9177.169.2115.1130.2176.9134.5175.670146.529.189.4210.1146.6
Woocs129.2128.263.7181.6151.8169.4152.5107.9135.2148088.2125.778.4156.9155.1167.3143144.285.7175.6147.3194.9202.9155.8111.9122.2131.5151.699.6
Azec7789.2128.7112.4118.399.590.2125.8123.3121.588.2092.930161.8151.3116.3111.579.695114.2118.1141.4211.6146.5148.2106.358.9110.233.1
Igleud36.28.8133.9134.2114.578.948.8198.8128.6192.8125.792.9081.7231.6216.663.354.3144178.3120.463.9145.4205186.7151.5172.9119.126.6102.7
Griu78.280.5123.1136.6135110.185.6141.7138.5148.178.43081.70183.1174.5121.1113.3109.3101.8135.3121.1163.1224.7168.8153.4130.387.7100.529.7
Heid209.6228.7165.6177.5166.4221240.853.5144.259.6156.9161.8231.6183.1025.7231.4216.4127122.8182.7215.5183.5181.685.6148.262.1143.8252.6185.2
Buekdakt192.5213.1160.2154.9143.6201.1224.962.6123.242.7155.1151.3216.6174.525.70211.1197.4109128.7159.5195.9158.7162.962136.745.7126.6236.3177.4
Luagtef43.156.9165.993.481.740.963.9211.9111184.9167.3116.363.3121.1231.4211.1037.2129.8206.974.741.295.5182.2170.3159.6170.4109.257.2134.5
Oceorta44.251.5132.4108.97070.180.3194.389.1177.1143111.554.3113.3216.4197.437.20132.8194.187.49.9104.2158.5154.9126.5158112.862133.5
Onusaas111.9137.516763.697104.9132.9118.8106.769.2144.279.6144109.3127109129.8132.80125.577.8134.795.1187.5102.215770.825.9155.7104
Ithaicrors168.3177.1139.3183.6182.9192183.774.3170.6115.185.795178.3101.8122.8128.7206.9194.1125.50189.5198.7209.1243159.5167.3103.1123.7199.898
Oku85.4112.8177.525.953.361.4111.2177.986.9130.2175.6114.2120.4135.3182.7159.574.787.477.8189.508631.6159.9119.9155.2124.770.6123.5140.2
Eze53.161.4133108.864.775.189.5195.383.8176.9147.3118.163.9121.1215.5195.941.29.9134.7198.7860100150151122.8157.811671.3141.3
Vriot112.3138.5188.945.653.989.9140.7186.985134.5194.9141.4145.4163.1183.5158.795.5104.295.1209.131.61000142.5112.1156.513194.6148.7169.2
Doacs190.1203.8157178112.5202.1232.4191.489.7175.6202.9211.6205224.7181.6162.9182.2158.5187.5243159.9150142.50106.596.2159.8189.3219.8244.1
Criu161.6183.1143123.692.7168.5199.610370.670155.8146.5186.7168.885.662170.3154.9102.2159.5119.9151112.1106.50101.660.1114.4204.5178.3
Fliaksoy145.9152.761.5171.1105.7177.2187.113171.5146.5111.9148.2151.5153.4148.2136.7159.6126.5157167.3155.2122.8156.596.2101.60119.5151.8174.3177
Gleubbak148.6169.2134.8120.7111.9159179.757.896.529.1122.2106.3172.9130.362.145.7170.415870.8103.1124.7157.8131159.860.1119.5083.8192.4133.8
Thulag87.5112.5155.960.889.884.2107.5127.2102.989.4131.558.9119.187.7143.8126.6109.2112.825.9123.770.611694.6189.3114.4151.883.80130.684.2
Zruhloo45.325.2160137125.572.939.1221.7145.2210.1151.6110.226.6100.5252.6236.357.262155.7199.8123.571.3148.7219.8204.5174.3192.4130.60116.7
Thaeltelt93.999.8149.3136149.4114.792.5145.7155.9146.699.633.1102.729.7185.2177.4134.5133.510498140.2141.3169.2244.1178.3177133.884.2116.70
 
Has anybody seen examples of a pen-and-paper game that actually did 3-D star maps and made them work?
Yes 2300 AD along with the work done by Winchell Chung.

Basically you use a node map. It takes advantage of the fact that even fictional FTL drives are limited either by time or range to a range of star from a origin system. After plotting the various courses the result is a node map of varying complexity. It preserves the 3D relationship between the stars but in a way that is far easier to follow than any type of pseudo 3D representation involving trig to calculate the distances between stars.

From my own work I found that if the FTL drive long range or more flexible what would happen is that starfaring civilization will skip over the uninteresting or useless system in favor various goldilocks system either because of resources or habitability.

In a realistic system generator these systems will be few and far between the thousands of brown dwarfs and M class stars. So a node diagram still is helpful.

1603740340565.png

1603740436613.png

Finally for near feature sci-fi with near realistic drive, what you want is not a traditional solar system map of concentric ellipses and rings. But a delta-vee node map show how much dv it takes to travel to various destinations.
 
So, after a few days of tinkering, I've got a prototype up and running. It generates output to a postscript file. By default the names are a bit cluttered, as the app just places the name above or below the star. However, by converting the postscript file to PDF one can tidy up the names by editing it in Adobe Illustrator.

Anyway, here's the output from the prototype. I also think that it might also be desirable to apply a little artistic licence to the locations of the stars and move the cluttered bits apart a little, and probably a little judicious pruning to remove some stars from the clutter.

Sector POC.png
 
Last edited:
Neat! What about only having the lines go up and putting the square at the bottom? I'm curious how it would look / ease of use.
 
OK,

So here's a version that I've trimmed out some of the stars, moved a few others around a bit, and implemented an 'Inhabited' flag. Here' we have a major trade route going through Chi 1 Orionis (Denaspar), Pi 3 Orionis (Lushun), Gliese-192 (Hamashis Way Station) and 111 Tauri (Karres), plus a few other inhabited systems.

I haven't done the route renderer yet, but I did touch up the final output a little in Adobe illustrator to make the names a bit clearer. The touch-up only takes a few minutes, so it's practical to rely on doing that for presentation.

The underlying assumption is that starships typically have a range of 3-4 parsecs.

Sector POC2.png
 
Last edited:
And now, I've added some route visualisation functionality. Some of the systems have been marked up as inhabited and routes set up. I did a calculator to auto-generate routes as a starting point. The stars and routes can be read in from CSV files that can be maintained in a spreadsheet or text editor.

From the look of these sectors, starships should have a range of 3-4 parsecs - at 5 parsecs there are about 40 navigable routes in the sector so the map gets a bit cluttered. A few routes around 2 parsecs or less, so you could do short-range ships with about 2 parsecs range - perhaps one could think of the skiff from the second Riddick film that 'doesn't have the legs to get somewhere or other'.

Here's a map showing just the inhabited systems and the 4 parsec or less routes. I've done a midpoint calculator, so at some point I'll label the routes with the distance.

Note also the disembodied routes on the lower right. Those go to Procyon in the Sol sector but the renderer doesn't show it. At some point I'll do something to clip the routes at the sector boundary and render a label for the destination.

Sector POC 3.png
 
I think that for ease of use, maybe use a different type of line to represent the pathing? Or colorize, I suppose.
 
I think that for ease of use, maybe use a different type of line to represent the pathing? Or colorize, I suppose.
Yes, I think there are a few things that can be done to tart the maps up. I've got most of the basics working now, so we can tinker with the format a bit.
 
Last edited:
I like that one quite a bit. I can follow it easily.
Thank you - that's a good start. I think a sector entry probably needs two maps - one with all stars and one with inhabited ones plus the routes. Maybe the all-stars map isn't necessary.

To think what could fit onto a two-page spread. At the minimum, it needs a map, a listing of all stars, and a distance matrix. If you did a map with the routes and had a listing you could forego a full map. Maybe the routes map could have a few more systems on it.

I'm in two minds about the distances. On one hand they add clutter to the map, on the other hand, they're quite a useful reference, and maybe the distance matrix wouldn't be needed.

In the full-fat version I have in mind, systems of note would have a listing page that broke out the whole star system, a bit like this. One could add a distance matrix with ranges to all stars out to (say) 5 parsecs to the system listing, which would show everything reachable from that star system.
 
Have you ever looked at the format for the Traveller World Designer at Ozemail?

It's super fancy and does a lot of the design work for you (you can just type in partial UWPs and it fills in the rest, and you can generate maps and such for it, including a system map that's pretty useful (although it generates VERY cold planets).
 
As for the distance markers, I'm a full fan. I don't think they overclutter, and they make the map a one-stop shop.
 
Have you ever looked at the format for the Traveller World Designer at Ozemail?

It's super fancy and does a lot of the design work for you (you can just type in partial UWPs and it fills in the rest, and you can generate maps and such for it, including a system map that's pretty useful (although it generates VERY cold planets).
I haven't seen that one before, although I think T5 is rather more crunchy than I had in mind.

I did something that generates a Star-Trek style world class (e.g. Class 'M') for each world in the system, (see below) The idea is that you can fit a system listing on a line like this:

0101 LV 17299 --R --- RDwarf
0103 Hamashi -NS-RAQRAQA DML MainSeq HA
0104 Eta Hamashis -I-A --- RDwarf HA
0106 Ezra's Belt -I-RDQDR S-A MainSeq IN
0108 Gehenna A-M-QDAQ MSL MainSeq IS

Then you can do a system listing page in more depth for systems you want to expand on. This can break out individual worlds with blurbs like the link above. I did one for a Traveller-styls two-dimensional hex map, adapted from a Traveller sector renderer I did some years ago. The objective of the system listing is to give names for everything, some short blurb describing points of interest, and names of major stations, starports or cities. Basically a one-stop lookup for 'What do we find here?'


# ======================================================================
# === SystemGenerator.py ===============================================
# ======================================================================
#
# Randomly generates a sector and dumps out to a file.
#
# === Change Log =======================================================
# Date Who Notes
# 2016-03-13 nwc Created
#
import random
import csv
from Utilities import Coords2XY, XY2Coords


WORLD_TYPES = [('A', 'No Atmosphere'),
('B'. 'No atmosphere but significant Water/CO2 ice'),
('C'. 'No atmosphere but significant Organic ice'),
('D', 'Trace CO2 Atmosphere'),
('E', 'Trace Organic Atmosphere'),
('F', 'Trace Nitrogen/Oxygen Atmosphere'),
('G', 'Trace Halogen/Halide Atmosphere'),
('H', 'Trace Ammonia/Methane Atmosphere'),
('I', 'Tide-locked non-breathable'),
('J', 'Tide-locked, significant free Oxygen'),
('K', 'Nitrox Atmosphere, Terraformed'),
('L', 'Nitrox Atmosphere, Desert'),
('M', 'Nitrox Atmosphere, Bodies of Water'),
('N', 'Nitrox Atmosphere, Taint'),
('O', 'Nitrox Atmosphere, Water World'),
('P', 'Nitrox Atmosphere, Greenhouse effect'),
('Q', 'Gas Giant'),
('R', 'Asteroid Belt'),
('S', 'Carbon Dioxide Atmosphere'),
('T', 'Organic atmosphere'),
('U', 'Hydrogen/Halide Atmosphere'),
('V', 'Ammonia/Methane atmosphere'),
('W', 'Other'),
('X', 'Hot, Exotic atmosphere'),
('Y', 'Hot, corrosive atmosphere')
('Z', 'High temperature environment')]
 
I do like that quick system generation, but how does it deal with binary+ systems? The Centauri system for instance. I find Traveller to be pretty useful, although it's nearly star wars-like in its focus on there being a single habitable planet per system; the baseline generation just focuses on the system mainworld's UWP, and the rest of the system (like stellar classification, GG, Belts, etc) are all afterthoughts.

that's one of the reasons why I like that world designer, you can plug in some random values and a seed and a single button press will generate a whole system to play around with.
 
I do like that quick system generation, but how does it deal with binary+ systems? The Centauri system for instance. I find Traveller to be pretty useful, although it's nearly star wars-like in its focus on there being a single habitable planet per system; the baseline generation just focuses on the system mainworld's UWP, and the rest of the system (like stellar classification, GG, Belts, etc) are all afterthoughts.

that's one of the reasons why I like that world designer, you can plug in some random values and a seed and a single button press will generate a whole system to play around with.
The dataset I've put together has binary systems in it and the system generator does it per star in its older version (I haven't adapted it to this system yet). For rendering purposes, you have a line for each star in the listing.

The setting in mind has a couple of core conceits:
  1. Although the 'verse is kept to a manageable size (I have 200 inhabited systems or thereabouts in mind), there are multiple inhabited planets in many systems - mining, industry and so forth, plus a race that had a big apocalyptic event on their homeworld and got really good at building space habitats.
  2. From a bygone era there is a lot of crap left over in the outer systems that is essentially salvaged and squatted by Smegs - spaceborn folks a bit like the Belters of The Expanse.
So, by design, there are places to go and things to do in the outer system of quite a few places, and a fair bit of it is essentially off the grid. Plus, there may be several worlds insystem with significant populations. The end goal is to have an actual society in space that the party is a part of rather than being Dumarest-style wandering strangers turing up at a new world every episode, Quite a bit of the society is off the grid in some form or another - sort of space cyberpunks. Then there are the worlds themselves.

I liked the single letter classification over a Traveller-style UWP, as it lets you describe a system on a single line and a single letter classification actually conveys enough information about the world for game purposes - do I need a respirator etc. Mostly I intend to handwave over Traveller-isms like tech level or law level and just treat outliers as a special case that one would just make up in support of a particular adventure. What I had in mind was something a bit more like Star Wars - ambient, grungy tech available pretty much everywhere subject to economics.
 
A little bit more tinkering and I've gotten a line-intersects plane calculation working and it appears to produce sensible results. It also produces a nice coefficient that you can apply to the relative difference between the origin and end point to calculate the intersection point and clip the route vector to that.

It's bedtime now, so I don't have time to finish it tonight, but with a bit of luck I'll have it working tomorrow night.
 
So, I did some maths last night and got it calculating where a route intersects the sector boundary, and clipping that. You can see the routes to Procyon on the right hand side of the map. Some source material for it:


The map still requires manual intervention to tidy up the labels, but in practice the scope of work is just a few dozen maps, and most not needed immediately so that's not a major issue. Anyway, the map with the routes to Procyon clipped and labelled below. I think that's all the major rendering features working now.

Sector POC 5.png
 
Banner: The best cosmic horror & Cthulhu Mythos @ DriveThruRPG.com
Back
Top