找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3803

积分

0

好友

521

主题
发表于 昨天 02:29 | 查看: 4| 回复: 0

谁是历史上最厉害的游戏开发人员?

是瑞典程序员Markus Persson吗?他开发了《我的世界》,以25亿美元的价格卖给了微软,成为了亿万富翁。

是美国程序员Eric Barone吗?他一个人干了一个游戏团队的活:策划,设计,编程,测试、美工、音乐,开发了《星露谷物语》,卖了2000万份。

是美国程序员John Carmack吗?他开创了第一人称射击游戏,开发了《Doom》《Quake》等经典游戏,发明了众多革命性技术,如“快速平方根算法”,卡马克反转,表面缓存等。

不,他们都不是。有史以来最厉害的游戏开发者,或许是苏格兰程序员Chris Sawyer,他独立开发了经典模拟游戏《过山车大亨》。

Chris Sawyer与《过山车大亨》游戏画面

为什么他这么厉害呢?

首先,他是一位独立的开发者,和Eric Barone一样,独自一人完成了一个庞大复杂游戏的策划、设计、编程和测试。在PC游戏时代,《过山车大亨》售出了超过1000万份,当时只有《模拟人生》的销量能超过它。

其次,更令人惊叹的是,他使用汇编语言开发了《过山车大亨》。这款游戏在1999年发布时,几乎将所有电脑性能都压榨到了极致,即便是当时配置最低的电脑也能流畅运行。

你没有看错,这款游戏99%的代码是用汇编编写的,只有极少量的C代码用于处理与MS Windows和DirectX的交互。

许多开发者习惯于使用高级编程语言编写应用层业务逻辑,可能很难体会用汇编写游戏意味着什么。一个简单的“Hello World”程序,在Python中只需一行:print("Hello World!")

但在汇编中,事情就变得复杂无比:

datasegment 
stringdb 'Hello,World!$'
dataends
codesegment 
assumecs:code,ds:data
start:
movax,data 
movds,ax 
movdx,offset string
movah,9
int21h
movah,4ch
int21h
codeends
endstart

你需要直接操作CPU的各种寄存器来设置参数,并通过调用系统中断来实现输出。这种直接与硬件打交道的方式极其底层和繁琐,没有对CPU和计算机体系结构的精深理解,根本无法上手。

汇编不仅编写困难,可读性也差。代码中没有变量名辅助记忆,逻辑复杂度相比高级语言呈指数级增长。除非你正在学习或从事编译器、操作系统或嵌入式系统开发,否则通常不会主动去碰它。

和许多技术大牛一样,Chris Sawyer从小就开始接触计算机和游戏。玩得不过瘾,他就自己动手写。16岁时,他就在Memotech MTX500计算机上使用Z80汇编语言编写游戏,甚至主动将游戏邮寄给Memotech公司发行,赚到了第一笔钱。

Memotech MTX500键盘

高中毕业后,Chris进入格拉斯哥斯特拉斯克莱德大学,学习计算机科学和微处理器技术。80年代PC时代来临,MS-DOS成为主流。他在一家游戏公司工作,负责将Amiga平台游戏移植到DOS系统,这段经历让他对底层编程,尤其是x86汇编,建立了极为深刻的理解。用他自己的话说:“我已经在x86汇编中编程了很长时间,很少需要翻手册查东西。”

1994年,受到《铁路大亨》的启发,Chris开发了《运输大亨》,游戏大获成功,版税成为他稳定的收入来源。之后,Chris在欧洲和美国旅行时,迷上了过山车。

过山车3D渲染图像

他走访了数百个游乐园,坐过700多次过山车!最疯狂的时候,他曾在两周内参观了美国14个不同的主题公园,只为了体验各种过山车。正是这份狂热的热爱,让他在制作《过山车大亨》时,考虑到了无数细节,力求为玩家带来身临其境的体验。

在游戏中,玩家扮演游乐园经营者,需要从零开始建造并运营整个主题公园。这包括改造地形、申请贷款、修建各类游乐设施——从木质到钢制的过山车、旋转木马、卡丁车、摩天轮、鬼屋、迷宫、电影院等等。

此外,玩家还需雇佣机械师维修设施、清洁工打扫卫生、保安维持秩序,甚至安排艺人穿着夸张服装表演,为排队的游客提供娱乐。连公园里洗手间的布局都需要精心规划,一切的核心目标就是让游客满意,乐在其中。

《过山车大亨》游戏截图

在技术选型上,Chris选择了汇编语言。因为1998年的个人电脑性能有限,而《过山车大亨》需要同时模拟成千上万名游客在公园中活动、多辆过山车在不同轨道上飞驰,以及多种音乐音效重叠播放以营造喧闹氛围。Java当时主要用于服务器端,显然不合适;C++虽然可行,但对Chris而言,只有汇编才能让他进行极致的性能优化。

《过山车大亨》游戏内场景

在苏格兰的一个小村庄里,Chris开始了漫长的开发工作。他配备了两台PC:一台高性能机器用于编码,另一台低配置电脑用于测试(游戏最终要求Intel Pentium 90MHz处理器和至少16MB内存)。他的办公室里还有一台点阵打印机、一台传真机、一本x86汇编袖珍指南和超过500页的参考书。

由于使用汇编,他缺乏现代化的集成开发环境(IDE),主要依靠微软宏汇编器(MASM)自带的编辑器进行编程。

汇编开发环境界面

《过山车大亨》是唯一用x86汇编编写的游戏吗?当然不是。在90年代中期以前,由于机器性能孱弱且没有专用GPU,使用汇编来提升性能是游戏开发的常见做法,例如《帝国时代》也大量使用了汇编代码。

《帝国时代》游戏截图

然而,那些游戏都是由团队协作完成的。唯有《过山车大亨》,是Chris Sawyer独自一人,用汇编语言一行一行敲出来的。

经过两年疯狂的编码和对性能的极致压榨,《过山车大亨》于1999年正式上市。它生逢其时——当年美国约有四分之一的家庭接入了互联网,人们通过电子邮件、即时通讯和论坛等新兴方式分享游戏体验。品质过硬、运行流畅的《过山车大亨》迅速吸引了大批狂热玩家,仅1999年就在美国售出了惊人的70万份!

最终,Chris从《过山车大亨》及其系列游戏中总计赚取了约3000万美元。

真正的热爱加上顶尖的技术,铸就了《过山车大亨》的巨大成功。Chris撰写的游戏指南长达60多页,其中经常引用现实中的过山车和游乐园案例。他对游乐园细节的执着,甚至体现在游戏里游客抱怨食物太贵或急需找洗手间的行为上。

如果Chris对过山车没有如此深沉的热爱,或许他仍然能做出一个模拟游戏,但绝无法赋予玩家那种无与伦比的沉浸感,自然也不会引发玩家的自发传播。而使用汇编语言,则确保了游戏能在几乎所有电脑上流畅运行,带来了最优异的性能表现。

有趣的是,后来有两位游戏爱好者用C语言开发了一个《过山车大亨》的开源实现(OpenRCT2),修复了原版的一些问题,并添加了多人游戏、高清支持、作弊代码等功能。感兴趣的朋友可以访问:https://openrct2.org/

这种对技术的极致追求和独立开发的故事,总是令人鼓舞。如果你对更多编程轶事、底层技术或游戏开发深度内容感兴趣,欢迎来云栈社区交流探讨。




上一篇:密码管理器安全漏洞分析:27种攻击揭示零知识加密风险与防护建议
下一篇:AI编程如何化解本质与偶然复杂性?从软件工程经典《人月神话》谈起
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-7 06:16 , Processed in 0.508851 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表