逝去的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撸管去咯