Насчет кораблей. Путь у них отрезками задается и отсюда вопрос - как сделать:
1. подгружать следующие отрезки после текущего (иначе говоря, изменение маршрута возможно только в конце отрезка)? 
2. или сделать возможность менять маршрут в любое время? 
Второй вариант посложнее, из-за привязки маршрутов ко времени, но вполне возможен (хотя алгорит там - 


 черт ногу сломит)