Are you, in fact, a pregnant lady who lives in the apartment next door to Superdeath's parents? - Commodore

Create an account  

 
Ship Movement

Ship Movement

Ship movement in MOO has always been a bit of a mystery to me. I struggled to gauge the distance between planets leading to many frustrations. Does MOO understand the Pythagorean theorem for measuring diagonals or does it just use a set figure like 1.5 as in Civ or some other method altogether? Of course early scouts help but can you reach that next planet outside scout range after settling closer? And can that other race reach that planet or even you? How do players do it – naked eye, ruler, captured image? So I decided to check it out. Before I lay out the rules, a puzzle for you. In this picture before any tech discoveries which human scout (warp 1) on the left will reach the yellow planet of Morrig on the right first?
[Image: attachment.php?attachmentid=813&stc=1]

Basics
For ship movement, galaxy size does not matter. The galaxy is built on a co-ordinate system (x,y where x is W-E, y is N-S) where the size of a parsec in points of the co-ordinate system is fixed. When I looked at co-ordinates of planets and ships moving between them in the savefile, I quickly saw that the maximum movement in one direction, when travelling at an acute angle, was 9 points. Also I could see that in addition to 9 points in one direction (say W-E), you could at the same time move a few points in the opposite axis (N-S). In fact it looks like MOO fully understands the Pythagorean theorem because I was able to build the following rules for a one turn of movement at warp 1:

1. You can move up to 9,4 (distance 9.849) any direction any multiple of times
2. You can move up to 8,5 (distance 9.434) any direction any multiple of times
3. You can move up to 7,7 (distance 9.899) any direction any multiple of times

Since a destination at 9,5 (distance 10.296) or 8,6 (distance 10) could not be travelled in one turn the formula used seemed fair, only dogged by the rounding down. However this was not the full story, but meanwhile how is our race to Morrig going, 4 turns in:
[Image: attachment.php?attachmentid=814&stc=1]
Still confident about the result? Or do you want the second scout’s engine tested?

Diagonal boost
Although you cannot reach a destination at 9,5 or 8,6 in one turn, you can travel these distances during longer travels. So my estimate for amended rules for one turn of movement in a journey of multiple turns:
[Edit] See PS for updated chart which is more accurate & more clear.

1a. If the greater turn movement W-E or N-S is 9 points then you can move one turn of 9,5 for any number of turns of 9,4 or 4 turns of 9,5 for each turn of 8,5.
2a. If the greater turn movement W-E or N-S is 8 points then you can move one turn of 8,6 for each 5 turns of 8,5 or 9 turns of 8,6 for each turn of 7,6.
3a. You can move 7,7 (distance 9.899) any direction any multiple of times.

Although individual turns can move greater than 10 points most journey’s average move is less but there are exceptions - eg. 44,25 in 5 turns via 4 x 9,5 + 1 x 8,5 is average 10.12 points per turn. Still seems a reasonably fair formula subject to rounding and the odd journey sneaking over 10 points per turn. However there was more which takes us back to our race. Have you decided? Well these were the journey times at the start:
[Image: attachment.php?attachmentid=815&stc=1]

Slipstream
So the second placed scout will overtake the nearer one and finish a turn earlier! The distances are 75,1 (distance 75.007) for the near scout and 88,0 for the far scout. So how can one scout travel 88 points faster than another can travel 75.007? Well apparently if you are exactly on the horizontal or vertical axis with your destination you can move at 11 points per turn! It is not actually quite that simple since the near scout moves 11 points its first turn only despite not being exactly on an axis. It appears you can move 11 points at very acute angles if the distance is large enough. I think journey’s exactly on an axis are very rare but be aware they can speed you up noticeably. Acute angles are more a possibility but you need long distances to benefit.

Warp speed & transports
I did not do any thorough checking of differences at higher speeds but ran a couple of tests. I believe warp 2 is simply twice warp 1 but do not quote me! I did quickly check those transport slowdowns at the Altair nebula in Imperium 13. Apparently transports at warp 1 in a nebula slow from the usual 9 points per turn to 4 points per turn, allowing 4,2 or 3,3 on individual turns. What slouches!

So there we have it. I still cannot judge distance but now I know why it is so hard – rounding down, boosted diagonal turns and the exceptional axis alignment slipstream!

[Edit]
PS. It might be easier to see this in diagrams or pictures.

[Image: attachment.php?attachmentid=816&stc=1]
Note I show North as positive movement, as usual, but game has 0,0 in top left NW corner and East & South are positive while West & North are negative in game co-ordinates.

[Image: attachment.php?attachmentid=817&stc=1]

So the greatest distance per turn is exactly N/E/S/W (0/90/180/270 degrees) but very rare to be exactly aligned like this. Otherwise distance per parsec increases as angle from horizontal (or from vertical) increases up to about 30 degrees, then reduces back down to past 40 degrees then peaks again at 45 degrees.
Note also that the 5 parsec grid (Alt+M) is actually 50 points wide & high. Since you nearly always travel a maximum of only 45 points in one direction for 5 parsecs it is a little decpetive. It is only really close to accuracy at maximum angled travel ie. at 30 or 45 degrees from horizontal or vertical.


Attached Files
.xls   Ship movement chart.xls (Size: 36.5 KB / Downloads: 2)
Reply

Intriguing findings. I notice that in the screen shots neither ship appears to be moving exactly along the X-axis (according to their green flight path indicators) though both are close. I take it that this is because the graphics behave as though the ship left from its graphical departure point, just northwest of the planet, and that the calculation for the ship's actual location and/or distance traveled is based on the relative locations of the origin and target planets themselves. Is that right?

Also: Nebulas aside, I have never encountered a case where reported warp 1 transit time between two planets differs from the reported parsec range between the same two planets (when one is colonized as the closest of your planets to the other). This leads me to assume that each turn at warp X really is the same as X turns at warp 1, as the rounding, diagonal boost, and "slipstream" effects all seem to be incorporated into the calculated distance between any two points (from which transit time is then calculated) rather than directly into the calculated transit time.
Reply

Yes, it is odd that both ships appear above the planet, not in line and 1 point below. Since these ships were edited in they are not hampered by requirements for planet departure so I can only conclude the graphics are not centred on their co-ordinates as you expect ie. the planets/ships location is not their centre - not helpful to naked eye calculations!

You are exactly right about warp speed. I was a little flippant with my comment but noticed that warp 2 ships normally travel a maximum of 18 points per turn or 22 points in the slipstream. This is exactly double the warp 1 movement and, as you say, you would expect that since we have all seen how warp 2 and above simply divide the number of turns to complete the same distance as warp 1 ships.

I have added a chart and game image to the first post which should make it clearer what the layout is.
Reply

Thanks for the chart, sargon, now it is clearer to me. Seemed like some kind of magic behavior before.

I think the game algorithm for the distance ran could be something like:

1) count the angle of movement (start - target)
2) count the "ideal" coordinates for distance = (warp speed + 1), with trigonometric functions.
3) round down to get the "real" bitmap coordinates
4) move the ship

That gives an explanation to the slipstream effect, rounds down to 0,11.
Buggy buggy buggy. Can be an interesting knowledge to use in a game, though.


NOTE: this algorithm would mean that the angle of movement must be recounted every turn - and therefore there could eventually (and very unlikely) happen a mistaken ETA even without Nebulae.
Reply

Yes, the movement is re-calculated every turn. For moving fleets the game only records their co-ordinates, their speed and the index of the planet they are moving to (from which it can get the target co-ordinates).

I am sure it was intended that horizontal/vertical movement would be 10 points per parsec (which still would leave the distance variety from different angles and rounding down) but instead it results in 11 points per parsec - a bug. The 10 points per parsec for movement in a line would then agree with the grid but this is only 4 points or angles around a possible 360 so would still leave difficulty for naked eye measurements most of the time.

Take into account the game shot added to my first post of different distances to planets in 5 turns has all targets at maximum 5 parsec range for their angle from Sol. If you looked at minimum 5 parsec journies as well (1 point up from 4 parsecs) you would see even greater distance variation in journies of the same duration!
Reply

Ehm, sargon, are you sure about your chart?

Can you run a test to verify that a ship cannot go from point [0,0] to point [10,1] in one turn?

(I somehow cannot imagine how this would be impossible.)
Reply

Checked 0,0 to 10,1 takes 2 turns (warp1). I think this is normal. Warp 1 distance should be 10 points but is bugged so straight movement is 11 not 10. Diagonal movement is over 9 but less than 10. So 10,1 is a distance of 10.05 so is out, you can only manage 9,1. Up to 9,4 is okay but then 9,5 alone is out (over 10) but can apparently combine with 9,4 or 8,5 to average supposedly less than 10 but the odd one just over 10 is allowed. Same for 8,5 any or 8,6 sometimes and 7,7 anytime. It all seems logical to me except 11 points on axis.

Actually 8,6 should be allowed anytime since it is exactly 10.
Reply

Sorry, maybe it is my english, but I'm lost.

How does the game decide which point the ship goes to? It computes the angle and approximates the point? What does it mean "combines" 9,4 and 8,5? What if the ship goes at warp 2, does it make two steps, one by one, or warp one step doubled?

Maybe I am just not supposed to understand this sort of things smile
Reply

It's okay, I start with the game's basic definitive rules but it then fudges them a bit, so the result is a bit vague. Note first of all I show angle in my chart for the reader's benefit, it helps me visualize how it looks. Whether the game uses angle in its calculations I do not know, but I suspect not. I just know the results of individual moves so I am guessing myself what the method may be. Note I have also changed my mind while writing this, which does not help.

One of the first moves I looked at was from Imperium 13, Altair to Vega is from 45,87 to 46,140. My warp 1 scout travel was 0,9 five times then 1,8 to finish. This lead me to believe 9 points equalled one parsec but the 5 parsec grid (size 50 x 50) and the suggestion that 'straight' movement (along the axis) should be 10 points changed my mind. Ten seems the logical number so why does the Altair-Vega journey feature 0,9 repeatedly? Well I think the game realises the journey is not 'straight' so is looking for a maximum distance less than 10 (possibly same reason 8,6 is not allowed freely). The odd thing is the game has no memory of previous moves and if the first step was 1,9 instead of 0,9 I am sure it would then move a straight 10 (or bugged 11) points on each subsequent move - it seems to want to complete the longer distance before any remainder of the shorter distance.

After finding 9,4 (or 9,3 or 9,2 or 9,1) and 8,5 (or 8,4) freely used it seemed logical enough. At the time I thought these were rounding down to max 9 so 9,5 and 8,6 were too big but now I think they are largest angled distances less than max 10 and 8,6 failing is a minor bug of thinking any angled step must be less than straight 10. Then I noticed some 9,5's and 8,6's being used.

What do I mean by combine? Well 18,8 is simply 2 x 9,4 but 18,10 will take 3 turns because 2 x 9,5 is not allowed. However 18,9 is 2 turns via 9,5 then 9,4 (combining 9,5 and 9,4 in my terminology earlier). The game seems to fudge it. Also 9,5 move then 8,5 gets 17,10 in just 2 turns and 8,6 move then 7,6 gets 15,12 in 2 turns. So how many longer turns allowed for normal sub-10 legitmate turns? I do not know. The numbers I wrote in the origninal article (under rules 1a, 2a) are almost cetainly wrong.

Warp speed works logically as expected. For simple moves (eg. 8 x 9,4) the speed just divides the turns so warp 2 would be 4 x 18,8. I have not analysed more complex turns with different size movements in detail but I suspect the game always calculates each movment as warp 1 then moves the number of turns the ship's warp speed allows so if warp 1 goes 9,5 then 9,4 then warp 2 simply goes 18,9.

The big question, as you ask, is how does the game arrive at each individual move? I really do not know. I think it has a simple set of rules based upon 10 points per parsec and angled turns being shorter (I do not think they realised or allowed for 8,6 being a striaght 10). It may involve using angles to assess the largest possible travel in one direction but it may just compare the ratio of N-S to W-E movement for this. How do the longer 9,5 & 8,6 moves happen occassionally (even frequently for some moves)? It could be rounding, it could be a bug.

I hope this answers some of your questions but I do not have all the answers. I am happy with the chart, which I think is still correct, because I can visualize the different sizes of one parsec in different directions but it is still tricky to gauge in-game.
Reply

RefSteel Wrote:Intriguing findings. I notice that in the screen shots neither ship appears to be moving exactly along the X-axis (according to their green flight path indicators) though both are close. I take it that this is because the graphics behave as though the ship left from its graphical departure point, just northwest of the planet, and that the calculation for the ship's actual location and/or distance traveled is based on the relative locations of the origin and target planets themselves. Is that right?

Apologies! I was a little dismissive in my earlier reply to your hypothesis. At the time I was under the misapprehension that it was 9 points per parsec and according to the 5 parsec grid the planets were not centred. I also thought that you were suggesting the movement compensated for the departure point on a turn by turn basis, getting closer to actual location, but with no memory of previous moves or orignal location I could not see how this could be.

Now I 'know' that it is 10 points per parsec and the planets are pefectly centred according to the grid. What this all means is that you were right, of course! bow Ships are always NW of their actual location when departing or in transit. The game needs no memory or point of departure, it adjusts actual location by a fixed NW amount for the moving fleet's graphic. This is also why you sometimes see ships go past their destination before arriving the next turn but only if they are travelling North or West. Good call! smile

Of course this makes another adjustment you need to make when judging ship to planet distance as opposed to planet to planet distance.
Reply



Forum Jump: