逝去的0x10c與它的小夥伴

其實這個話題我在很早以前便想寫了,但由於拖延症直到現在才動筆...

如果不知道0x10c是啥的話...可以自行百度/谷歌一下,它是Notch計劃製作的一個太空沙盒遊戲,後來因為各種原因被宣布擱置了...

從0x10c正式被宣布凍結(8月13日)到現在已經有11個月了,它的社區經歷了震驚、恐慌、憤怒和絕望後,終於歸於死寂,從它的論壇的回復記錄來看,幾乎所有的板塊都已經荒廢了.

然而,仍有一個板塊不時有人回復 - Community Creations板塊,許多對0x10c的死亡不甘心的大犇扛起了"太空編程沙盒"的大旗,當然不是向Notch要源代碼然後接手開發,而是從零開始,製作0x10c的同人作品.

本文介紹的是跟0x10c比較貼近的幾個同人作:

  • Trillek
  • Exoverse
  • Megastage
  • Trillek2D
  • Comatose - 1990

從此開始,百億光年

一定意義上的"官方"同人

Trillek

Trillek是個在13年8月時發起的項目,目標是用C++寫一個開源(應該也是免費的)、跨平台的仿0x10c遊戲,當然,也少不了DCPU.(順便一提,雖然它的項目啟動和0x10c的正式凍結時間非常貼近,但我覺得Trillek不是為了給0x10c補刀/給Notch抽臉的...)

項目主頁:http://trillek.org/
Github地址:https://github.com/trillek-team

Trillek相當根紅苗正,甚至還獲得過Notch的"精神支持"(...),然而它的進度並非十分理想,在去年年底和今年年初相繼放出兩個半里程碑版本後,項目一度陷入假死,直到最近才宣布準備放出里程碑3.你可以從這裡下載到里程碑2.5,但是相信我,相當的瞎眼...

2014-07-13 18_28_04-Trillek Milestone 2.5

進入遊戲後旁邊的電腦,咦...白屏了.

2014-07-13 19_32_02-Trillek Milestone 2.5

隔壁的電腦可以正常運作,加載的程序可以自行設定,具體參考TR3200 README.

2014-07-13 19_32_16-Trillek Milestone 2.5

機庫和遠方的"星球"...

2014-07-13 19_32_35-Trillek Milestone 2.5

最後就是外景,然後沒了...

技術

Trillek使用的是Sigma引擎,一個由adam - Trillek的主程 - 開發的跨平台遊戲引擎,由C++寫成,圖形接口使用OpenGL,物理引擎使用Bullet.

Trillek有一支規模不錯的來自開源社區的開發團隊,即使是在經過精簡後,它仍擁有至少5名核心程序員,然而,和大多數開源遊戲相似的是,它缺乏美工.不過,考慮到遊戲的開發程度,現階段不需要美工也是正常的.

程序

與其他作品不同,Trillek沒有強制要求一款特定的CPU,它定義了一個Trillek虛擬計算機規範(Trillek Virtual Computer Specifications),該規範描述了Trillek中的統一硬件規格,包括數據的格式,虛擬計算機的架構,設備驅動的編號等等.幾個值得注意的指標包括:

  • 小端序
  • 可以有32kb的ROM
  • 最大1152kb內存(128kb主內存+1024kb擴展內存)
  • 最多一個CPU,頻率被限制在1000KHz,500KHz,200KHz和100KHz這4個檔次.
  • 最多32個硬件.(不包括CPU)
  • 主板包括(以下不計入硬件):
    256B的NVROM.
    可編程的間斷計時器
    時鐘
    隨機數發生器
    蜂鳴器

對於CPU,目前Trillek有2個CPU規範,DCPU-16N和TR3200.

DCPU-16N是經過修改後的DCPU,它和DCPU都是16位的,主要區別包括:

  • 內存總線,支持擴展內存.
  • 高速乘法器和高速除法器(其實就是為程序員們開了兩個圖省事的後門...)
  • 循環移位器(又是開掛的東西...)
  • 理論上仍支持訪問65535個硬件,但實際上Trillek的計算機最多只有32個硬件...

TR3200(全稱Trillek Risc cpu 32 00)則是一個高大上的32位CPU,它擁有11個通用寄存器,乘法/求商寄存器,位操作寄存器等高大上的黑科技.你可以在這裡運行一個在線模擬器.

==============================================================================

逝去的幻想

Exoverse

與風風火火的Trillek相比,Exoverse雖然是和Trillek同一時期啟動的,但它的發展卻顯得格外坎坷,首先我要說的是,這個項目已經被無限期凍結了.

項目主頁:http://www.exoversegame.com/ (無內容)

跟Trillek強大的隊伍相比,Exoverse從始至終只有3名開發者,而且我還不知道其中有幾個是程序員."現"階段它是閉源的,有一位開發者表示它今後有可能開源,但0x10c和Trillek社區普遍認為它會是個閉源的商業遊戲.

Exoverse由mjn - 一個號稱跑了40年DnD團,桌面和電子遊戲閱曆數十載的職業軟件開發者 - 發起.當0x10c尚未掛掉的時候,他便在社區成立了Interstellar Design Corp(簡稱IDC)作為一個0x10c公會.當Notch宣布0x10c擱置後,他帶着2個小夥伴去開發Exoverse了.

Exoverse始終沒有發布過成品,也似乎沒有遊戲截圖,開發者曾錄製過幾段解說視頻,從視頻中可以看出,遊戲已經具有一定的完成度,顯然是使用JME開發.

此外,Exoverse還曾和Trillek有過一些競爭,起因似乎是有小白在Trillek的論壇上稱Exoverse為"盲目的模仿者"(Copy Cat...hehe),發帖者的原帖被砍了,但兩個遊戲的開發組在回帖中的爭吵卻留了下來.半個月後,在Trillek發布里程碑1時,mjn又跑去就"Trillek用C++"一事以跨平台為由噴了一通,並聲稱幾周後Exoverse將發布第一個Demo,而結果我們也知道,Exoverse直到無限期凍結時仍連個屁都沒憋出來.另外,我也覺得mjn用跨平台為理由噴Trillek有點屬於"沒事找事"...首先Sigma本身就是為跨平台而設計的,其次他認為為每個平台都準備一個客戶端很沒有便攜性,但我可不認為會有人把遊戲裝在U盤上,在裝有不同操作系統的電腦上拷來拷去...如果真要找個理由噴Trillek用C++的話...那我認為使用C++而不是C#/Java會增加開發的難度和工作量.由於JIT的存在,C/C++對C#/Java的優勢只剩下內存使用效率,而大部分開發者都是想new就new,想malloc就malloc...咳咳...況且,如果遊戲做不出來的話,語言的優勢再大也是白搭...

技術

顯然遊戲是使用Java編寫,採用JME引擎,圖形接口使用OpenGL.

曾經開發者在Exoverse的官博上發過不少有意思的內容,可惜現在都被刪掉了...艹.

程序

Exoverse的電腦是Virtual 8086 Computer,看上去它使用的彙編語言也應該是8086彙編了.

除此之外...沒有更多的信息了.

==============================================================================

一人之力

Megastage

"我們仍然眷顧着天堂,
即使我們應游弋在群星間"

前兩個項目都是團隊合作的產物,但即使是這樣,一個勉勉強強才開發出勉強能看的雛形,另一個則直接關門跑路了,但Megastage卻是出自一個人之手,而且已經有些樣子了,真是狠抽前兩組人的臉...

項目主頁:無...就把github頁當主業吧
Github地址:https://github.com/orlof/megastage

Megastage由orlof在13年的12月發起,作者將其稱為"一個使用DCPU,能夠建造太空船的多人太空歌劇",他稱"Trillek開發進度太慢,Exoverse又不使用DCPU",於是決定自己開發一個類0x10c遊戲.

雖然Megastage開發時間比前兩者短,參與人數也是最少的(獨自一人...),但其完成度卻比前兩者要高.你可以在這裡下載到已經構建好的二進制文件.

解壓好遊戲後,Windows下運行full.bat就能啟動遊戲了.如果啟動不了的話,就編輯它,刪掉:
set JAVA_HOME="%~dp0jre7"

2014-07-14 22_38_57-Display Settings for Megastage

啟動器.

2014-07-14 22_34_25-Megastage

進入遊戲後,玩家位於一個飛船上,前頭有一台電腦終端.

2014-07-14 22_34_33-Megastage

遙望隔壁的飛船

2014-07-14 22_34_38-Megastage

謎の甜甜圈...好吧,要發揮點科幻精神,應該是傳感器什麼的.

2014-07-14 22_34_45-Megastage

木塊...其實是對應XYZ三個方向的螺旋儀.

2014-07-14 22_35_00-Megastage

遠處的恆星.

2014-07-14 22_35_19-Megastage

然後就該研究研究電腦怎麼用了,左鍵點擊屏幕就能控制.

2014-07-14 22_35_44-Megastage

各種軌道信息...但都沒有輸入正確的數據源.

2014-07-14 22_35_54-Megastage

2014-07-14 22_36_04-Megastage

2014-07-14 22_36_07-Megastage

看起來遊戲採用了牛頓力學,沒法像FL那樣做各種極限機動了呢...

2014-07-14 22_36_10-Megastage

飛船鍵位綁定界面,忘了/不知道如何操作的可以看一眼.

2014-07-14 22_36_14-Megastage

硬件界面,只能連接8個硬件嗎 ;w;

2014-07-14 22_36_50-Megastage

飛船確實可以開的,這完成度...足以讓Trillke汗顏啊.

2014-07-14 22_37_42-Megastage

和隔壁的船撞了一下,一陣火花後就爆炸了...

2014-07-14 22_47_46-Megastage

點了一下後面的"抽屜"(其實是磁碟機),發現居然可以給電腦換程序,那個Admira是什麼?原來作者曾為DCPU寫過一個Admiral-16語言,採用解釋執行.這個似乎是一個Admiral的Shell.

2014-07-14 22_48_00-Megastage

2014-07-14 22_48_05-Megastage

2014-07-14 22_52_20-Megastage

遊戲里還可以為飛船建造/拆除磚塊,這不科學的引擎...

2014-07-14 22_52_41-Megastage

2014-07-14 22_52_54-Megastage

還有更不科學的...激光炮?

遊戲里遠遠還能望見2個行星,但我沒試過飛過去...看world.xml里的數據,估計即使是星球距離玩家最近的情況下(星體也是遵循牛頓力學,在繞恆星轉動的),也有50000格的距離...目測玩家的飛船最快也就5格每秒...而且能不能追上還是個問題.

另外遊戲支持聯機,但第一個玩家進去後記得要把飛船開走,因為似乎每個玩家進入遊戲時都會在固定位置出生並獲得一個飛船,兩個玩家同時進遊戲的話他們的船就瞬間卡爆了.

技術

Megastage用Java寫成,採用JME引擎,圖形接口使用OpenGL.物理引擎使用JBullet.

使用Java而不是C/C++的另一個優勢又體現出來了,就是有很多現成的庫可以使用...包括遊戲的磚塊系統都是使用Cubes庫的.

程序

Megastage使用的就是DCPU-16,也就是之前我一直說的DCPU.

==============================================================================

平面的逗比

Trillek2D

第一次看到它時我愣了一下,以為是Trillek出了同人作,或者是製作組覺得壓力太大了,換成2D來做.後來發現是一個完全無關的人做的遊戲,僅僅只是名字借了Trillek...哦對了,這個項目已經死了.

項目主頁:無

就在0x10c被宣布無限期擱置後不久,一個傢伙啟動了自己的項目,決定寫一個使用DCPU的2D動作遊戲.3個月後他發布了他的成果.你可以從這裡下載到遊戲.

2014-07-15 00_04_08-Trillek2D 遊戲主菜單...

2014-07-15 00_04_27-Trillek2D

這個...洛克人嗎.

2014-07-15 00_04_55-Trillek2D

遊戲還有Bug,站在門上關門會被卡出地圖.

2014-07-15 00_05_05-Trillek2D

遊戲內的計算機,只有一個文字界面.

2014-07-15 00_05_13-Trillek2D

2樓謎の雷達.

2014-07-15 00_05_40-Trillek2D

還有一個更加意義不明的裝置.

2014-07-15 00_06_00-Trillek2D

遊戲倒是可以建造房間...不過沒什麼意思.

技術

Trillek2D用C#寫成,遊戲框架使用XNA,圖形接口使用DirectX.

程序

也是使用DCPU-16.

==============================================================================

文明的餘輝

Comatose - 1990

當冬眠倉事故在公眾中激起軒然大波後,Nya Elektriska公司很快便沒落了,但其他公司仍沒有忘記計算機的巨大潛力,在經過他們不懈的開發和改進後,1989年,就在Nya Elektriska破產後不久,DCPU-32被發布了.它被宣傳為下一代的計算機,並且號稱100%安全 - 儘管仍與16位的冬眠艙不兼容.在這個DCPU-32橫行的亂世,你可以選擇成為一個無名的黑客,或者成為下一個Nya Elektriska公司.

時間到了1990年.在災難發生後的兩年間.全世界的第一世界政府都在竭力聚集他們的權力維持穩定,暴民和劫掠者擊垮了脆弱的警察和政府武裝,許多大城市淪為了鬼城.

被建造用於源源不斷地發送移民的24個太空港全部採用核反應堆來供能,這種危險的設備在近些年間十分流行,不光是空間站,所有的太空船也都使用它來驅動.當騷亂持續數月乃至數年之後,暴民們開始組成民間武裝,擁有了有組織地襲擊的能力.大多數軟弱的政府只能勉強壓制那些民兵,而沒有能力徹底摧毀他們.到了90年代中葉,超過一半的太空港被民兵攻擊.由於缺乏適當的控制,大多數核反應堆都很快融解了,14個被攻佔的太空港中只有2個在民兵的控制下扔保持運作,其餘的都變成了核廢墟.剩下的10座仍被政府控制的太空港被嚴密地防護着.曾經的世界上最強大的國家將他們僅剩的力量集中於此,建立了固若金湯的防線.

雖然世界上大部分人的生活都被戲劇性地改變了,那些沒有被野心勃勃的民兵瞄上的城市卻倖存了下來,那裡的居民也得以盡量地恢復正常的生活.平民們學會了如何在政府與民兵的零星衝突中求生,並與雙方保持着平衡的關係.

政府雖已疲憊不堪,但離被擊垮仍尚早,況且在舊世界的斷壁殘垣中,新的文明即將浴火重生.

翻譯完了背景設定後,我有兩個感受,一個是我又tm想到東方夢神歸了,另一個是要麼我4級掛定了,要麼作者不是英語國家的人...

Comatose - 1990(以下簡稱Comatose)是一個使用Html5+Js編寫的網頁遊戲,然而它仍處於非常早期的開發階段,而且至今仍無成品,並且我感覺它已經被棄坑了...

項目主頁:無

因為這個遊戲既沒有成品,也沒有視頻或截圖,所以我完全無法介紹...大家就想象一個"能在大多數現代瀏覽器上玩的0x10c"吧...

技術

Comatose使用Html5和JavaScript編寫,圖形應該是Html5的Canvas或WebGL,我猜的...

程序

Comatose使用DCPU-32,一個32位版的DCPU,這裡也有個模擬器(勉強算是個成品?),裡面也包含了規範和文檔.

==============================================================================

於是,5個和0x10c血緣比較近的同人遊戲便介紹完了,其中最看好的我覺得還是Trillek,其次是Megastage,其餘的?都已經停更了...

然而,這些遊戲(包括0x10c)都無一例外地陷入一個怪圈:遊戲的真正遊戲性是什麼?

或許Notch是意識到這個問題,所以才棄坑的,這個遊戲能供玩家玩什麼?一台彙編計算機?只有極客才會玩吧.一個真實比例的太空?恐怕只有太空迷才會在浩瀚的宇宙中一邊與牛頓力學做對抗,一邊尋找如蚊子般大小的敵人.

不光是0x10c,任何擁有真實比例的太空以及可進入的行星大氣層的遊戲,都必然面對一個問題,就是玩家玩什麼,目前我見過唯一一個處理好這個問題的是Rodina,它通過合理地規劃玩家飛船的飛行速度,以及星球的尺寸,讓玩家得以即流暢地索敵-接敵-交戰,又能快速地在星球間穿梭.遺憾的是,這個遊戲仍處在早期開發中,並且它並非是開放性沙盒,而是一個線性劇情的遊戲.(雖然遊戲也提供了沙盒模式和和平模式,允許玩家無限制地隨意穿梭在Zorica星系中)

嘛,想說的就這麼多了,滾去對UU擼管去咯