2015-04-01

Route Rendering

(Disclaimer: not an April Fool's joke)

I made a slight tweak to the way routes are rendered.

Old:

New:

Look closely at how the routes intersect the world disc. Previously they came extremely close. So close, in fact, that they actually are drawn first - right to the center of the world! Then the world is rendered by painting over the routes with the background color, then the world itself renders. Now, the routes are rendered with the endpoints offset slightly from the world. Which is closer to how a human would draw the routes, and matches classic work like posters and LBBs.

I made the change to improve the rendering when a background was present, like these cases:

Old:

New:

Note how in "old" the routes intersect the world, whereas in "new" the routes don't. This was never a big deal, but I'm experimenting with rendering styles where backgrounds are more important.

I don't normally announce such subtle tweaks in rendering, so why even bring this up? 

There may be places in the data where routes actually go right through other worlds. Here's an example in Deneb:


If you look at Unxava, Sorel, or Ibsen you can see that the route doesn't stop at those worlds. Previously, the painting over with the background color would have meant the route line and the world disc would never touch. You also wouldn't have been able to tell if the X-boat route from Dawn to Zeng was one J-4 or four J-1s. This new way of rendering distinguishes the two cases, although it doesn't look quite as pretty.

(Aside: hand-curated sectors like the Spinward Marches would avoid putting a route across other worlds like this, because a key factor in creating X-boat routes is looking good. The routes exist primarily to add visual interest to the maps, rather than convey important data. The notion of communication routes impacting gameplay by allowing players to "race the news" was a later innovation.)

There may be cases where a route should be broken up. When transcribing routes from print I may have made incorrect assumptions. If you spot any such anomalies, please let me know.


Ω

3 comments:

ovka said...

This change makes xboat routes much clearer, and has a great look. However, would it be possible to add a style to this that determines how it works? In other words, I have cases where I would like to have the standard (new) format, and cases where I would like for the lines to go all the way into the center of the worlds. Two more options that I would love to see for this are 1) whether to render the route before (default) or after the worlds are rendered, and 2) whether to have a flat end to the route (default), or place a circle at the end. Note that placing a circle at the end of the route is only useful if the route goes all the way to the center of the world and the route is rendered after the worlds are rendered.

Joshua Bell said...

The main motivation for this change (as noted in the post) was to remove the hack of blanking out just around the world disc. You can see the code change here:

https://github.com/inexorabletash/travellermap/commit/01906ea5fc0c8ac765724d491a864ea37d870352

It sounds like the styles you want don't require that. So it's a possibility - can you toss something on the wish list?

For "placing a circle at the end", can you create a mockup of what you're thinking?

ovka said...

Sure. I signed up for a Trello account, but I can't figure out how to add items to the wish list. Do you have to add me to the board?