2026年4月16日 · Mikhail Vasilyev

《構宙》開發日誌:太陽系

Watch on YouTube

上個階段新增了一個模擬——太陽系。這裡還沒有玩法,也沒有真實的物理,只是引擎的一個演示。

太陽系

中心是太陽,周圍環繞著帶衛星的行星和小行星。每個天體都有屬性:質量、大小、溫度,還有十幾項其他參數,而且全都基於真實的天文資料。於是它就像一部互動的維基百科——點開一個天體就能查看了解。目前這只是一個觀賞模式:可以看,但不能玩。還有第二個模式,戰術模式。那裡的軌道是示意性的,沒有運動,但畫面被劃分成六邊形格子——在格子上調動艦隊、建造太空站很方便,就像太空策略遊戲那樣。這是為將來的玩法做的鋪墊。

模擬中的太陽系:太陽、帶小行星帶的行星,選中的行星打開了屬性面板
同一個世界的戰術模式——軌道被劃分成六邊形格子

引擎有什麼新東西

這個月最主要的是做了一個帶圖形和動畫的 2D 客戶端。而在內部,解決了幾個從老遊戲一直拖到現在的問題。屬性變成通用的了:拿質量來說,行星有,一袋米也有——這是適用於任何實體的同一種屬性。具體用哪些屬性,由每款遊戲的設計來決定。

順便也把很大和很小的數字理順了。以前我們一些早期的遊戲就栽在這上面:人口一旦超過十億,就開始冒出兆、億億這樣的大數,根本沒法好好顯示。現在這類數值用十的次方來簡短表示:10³⁰,而不是 1 後面跟著三十個零。混亂也就沒有了。

整個系統可以隨時用指令來改。格式很簡單:/set,後面跟天體、屬性和數值。下面是影片裡的兩個例子:

/set Jupiter Orbit 2
/set Earth Weight 1e35

第一條把木星挪到第二條軌道,離太陽更近——它的特洛伊小行星也跟著一起搬過去,就是那些一直待在它附近的小行星。第二條把地球加得很重,重到它塌縮成一個黑洞,其他所有屬性一下子全沒了。任何一步都能撤銷——一切都會恢復原樣。

用指令把質量加到 10³⁵ 的地球,塌縮成了黑洞

密度是引擎根據質量和大小自己算出來的。不過這裡沒有完整的物理,只是個演示:就像木星,哪怕緊挨著太陽也還是冷的,我只是沒顧上做這塊。

語音控制

在手機上,這一切都能用語音來控制。點一下麥克風,說出要做什麼。「刪掉火星」——行星連同軌道一起消失。「把木星和海王星的軌道對調」——它就對調了。「給太陽加上大氣層」——它加了,不過是有毒的。AI 能聽懂很多,但不是全部:你叫它「把月球變好」,它就愣住了,因為「好」是很主觀的。而且目前所有的圖形和說明都只針對太陽系:系外行星或者星系這樣是加不進去的,那是另外的內容,還在計畫裡。

手機版:底部的語音控制按鈕

語言與連線

語言用一條指令就能切換:

/lang arSA
/lang enUS

這樣介面就切到阿拉伯語,再切回來,語言一共有二十多種。連線方面,可以再開一個客戶端,連到同一場遊戲裡——現在還只是演示,但將來就能這樣一起連線玩工作室的老遊戲,例如《大理石時代》之類。手機版幾乎把這些都照搬了過來,所以躺在沙發上就能改太陽系。

模擬我已經放到網站上了——在模擬目錄就能試。關於《構宙》和後續計畫的更多內容,請見《構宙》專區