首先,简单说明一下背景:这个项目的愿景是打造一款尽可能逼真的太空管理游戏,同时确保它足够有趣、真正好玩。这是一个挑战!

在游戏中,你将能够从地球太空港发射卫星、望远镜和飞船,将它们送入轨道,或前往其他卫星或行星。

但要实现这一点,需要你在游戏过程中学习相关知识。首要目标是成功进入近地轨道(LEO)。

构建太阳系——开端

如果我们按真实比例呈现太阳系,游戏画面会变得非常乏味,需要大量缩放和平移才能导航。这无法以有用的方式展示真实的太阳系,最终只会显得空荡荡。

因此,首要挑战之一就是想办法让太阳系既可导航,同时又能正确呈现行星间的距离和大小——但最重要的是,尽可能贴近真实。

解决这个问题的一种方法是放大每颗行星的半径,让它们在各缩放层级下都可见。

然而,尽管这在技术上讲得通,但我们需要大幅缩放每颗行星,这会导致太阳吞噬水星和金星,仅仅为了让其他行星稍微可见。

单独缩放也行不通,因为我们想尽可能真实地展示太阳系,而那样做会让人难以看清行星之间的实际大小差异。

此外,由于我们会使用真实的轨迹和轨道力学,缩放会导致卫星进入其他行星系统,偏离轨道,从而破坏保持物理真实性的目标。

所以,我们需要一种不同的方法,在真实太阳系与游戏画面可操作性之间找到良好的折衷——显然,这必将是一种妥协。

我们可以缩放并归一化行星轨道之间的距离,使一切更靠近,但这样一来,太阳系就无法呈现轨道距离的差异。例如,地球离火星相当近,但火星却离它的另一个邻居木星非常远。

我们必须确保这些差异在视觉上得以体现。

引入对数缩放

因此,为了缩小太阳系,同时保证良好的视觉距离差异,对数缩放方法可能是个解决方案。这样就能压缩一切,同时保持良好的视觉呈现。

这样一来,我们便达成了一个合理的折衷,既能相当准确地呈现太阳系,又能轻松导航。

不过,这也引发了一些新问题,比如如何可视化前往外行星的太空旅行。

由于轨道是对数缩放的,外行星看起来会更近,但实际上并非如此。因此,从地球飞往海王星的飞船,在旅程开始时速度(视觉上)很快,随着前进,速度会看起来越来越慢——但实际上它保持着完全相同(或接近)的速度。

如果是你,会如何解决这个问题?你遇到过类似的缩放挑战吗?