Geek
图形计算器上重建游戏《传送门》[v]
[-]
《传送门》(Portal)是一款由Valve所开发的第一人称射击游戏以及逻辑思考游戏,于2007年与《半条命2:第二章》、《军团要塞2》等游戏一起装置于《橙盒》游戏包上市,续作《传送门2》于2011年4月18日推出。
一名20岁的大学生在一个图形计算器上重建了2007年 Valve 推出的经典游戏《传送门》。上周日,名叫 Alex Marcolina 的大学生在一个游戏论坛和 Reddit 上分别贴出了自己版本的《传送门》,甩出之前在图形计算器上运行的《超级玛丽》和《俄罗斯方块》几条大街。由于 TI-83/84 计算器的资源限制,它们的最大代码量为16KB,所有 Marcolina 花了整整3年时间重建游戏的物理引擎。
最初 Marcolina 想要着手在 TI 图形计算器平台上重建《传送门》时,他只有17岁。20岁的他现在在加州圣克鲁兹大学(UC-Santa Cruz)主修电脑游戏设计专业。他的专业是纯电脑方向的,不过他一直以来就喜欢鼓捣“计算器游戏”,因为他认为“为一个本来就不支持游戏的平台设计游戏是很大的挑战。”
TI-83/84 的原生语言叫做 TiBasic。不过在设计游戏时,Marcolina 使用了一种叫 Axe 的语言——它是由游戏论坛 Omnimaga 上的一名用户开发的。谈到这种语言时,Marcolina 指出,“Axe 的语法非常松散,但从代码到汇编的翻译它又很容易进行优化。”
为了展示传送门之间的穿越,Marcolina 告诉 Ars Technica 的记者说他需要设定两组不同的变量:x 和 y(常规二次空间),另一组为 i 和 j (“传送门空间”)。当玩家穿越进一个传送门时,“i”代表玩家在传送门内的深度和位置,而“j”则代表传送门间点对点的“穿越”。
整个游戏的源代码都是可以被免费下载到的(猛击我下载),但 Marcolina 在这里还是给大家 highlight 了游戏源代码中的物理学部分:
:2
:While →θ
: If R
: H→{L1+30}r
: GO()
: 1-I→I
: RO()
: Pt-On({L1+22}r,{L1+24}r,Pic2+r1)
: !If I-1
: E-(O*256/5)→{L1+28}r
: {L1+22}r→{L1+16}r*256/5+1→D
: {L1+24}r→{L1+18}r*256/5+1→E
: M()
: End
: End
: Exch(oN,oS,10)
: θ-1
:End
[-]
[-]
本文译自 : Ars Technica ,由 keep_beating 编辑发布。