二十年前是怎样开发游戏的

知乎上有人问:“贴吧都是十五六岁就用引擎写游戏的天才,大家怎么看?”,感觉现在做游戏真实一件幸福的事情呀,不尽想起当年开发游戏的各种艰辛。

现在做游戏很简单,大把代码给你参考,大把框架给你使用,Windows帮你作完了大部分事情。我们那个年纪写游戏时,家里还没有Internet,什么资料都查不到,什么开源引擎都没有,95年左右你要写一个游戏,你起码面临:

同显卡打交道,显卡著名的 ModeX显示模式,估计现在没几个人听过了吧,直接写显卡端口,N多trick才能初始化成功。

直接访问显存,记得当年有个优化是,((char)0xa0000L)[x + (y << 8) + (y << 6)]=c,把y两次左移相加代替y 320。

用调色板绘图,256色的调色板,建立若干索引表,来快速索引两个颜色混色的结果。

保护模式编程,自己初始化GDT和LDT,后来找到 dos4gw,牛逼的 watcom c++。

自己实现线程,编程8254时钟控制器,给CPU的IRQ0发中断,来调度不同最多32个任务,到时间靠一条IRET指令实现切换。

自己控制声卡,通过220端口控制声卡(估计也没几个人用过吧),再用DMA传送音频,实现声音播放。

自己实现混音,同时播放多个音源时,需要重采样成声卡格式,并且每次DMA中断时混音后给声卡。

自己播放音乐,利用声卡338端口的 FM Synth合成器来播放MIDI音乐里面不同音轨的乐器音符,并用之前实现的线程系统,在后台线程运行。

大量汇编代码,图形拷贝,图块缩放,RLE,显卡控制,多边形填充,键盘中断接管。

自己绘制字体,HZK16,估计听过的人也没几个了。

自己读取图片,GIF,PCX, BMP。

自己播放视频,自己实现解码播放 animator, 3ds输出的 FLC视频格式的视频。

自己实现脚本,没有LUA,没有PYTHON,但是你需要给你的游戏实现脚本来描述一些简单的剧情,没见过其他游戏是怎么做的,没有任何参考代码的情况下,意识到开发游戏需要靠脚本来提高效率,然后自己实现一套脚本系统。

凭空实现游戏,从来没见过任何一款游戏代码的情况下,自己想想状态机应该怎么写,游戏对象应该怎么同时移动,图像前后遮挡该怎么做,游戏各种逻辑该如何写。

学习美术设计,虽然没有美术功底,但得熟练应用当时常用的animator,3ds,等软件,自己制作一些简单的界面和角色,自己能对其他图片进行二次加工,画像素图,合并调色板。

记住,当初你没网络,没有现在那么多开源软件,书店里书基本都是C语言调用BGI绘图的,偶尔一两本讲显卡原理的,偶尔一两本讲声卡原理的,你就算捡到宝了,《电脑报》《编程技巧与维护》上面,谁发一篇文章教你FLC格式的视频动画格式原理,你可以欣喜弱狂了。

记住,当初你没网友,没有朋友可以交流,很多东西都考仔细观察,猜测和反复试验来完成,我记得95年我看到仙剑奇侠时很惊讶它的效果,根本不知道斜 45度图像该如何现实,如何处理遮挡关系,身边没有问不了任何人,然后左思右想,发现远来可以靠 (x+y)进行对象排序,自己一实验,果然成了。我记得92年小学时,写第一个游戏,以前编程都是从头到尾一件事情一件事情的干,想不通十多量飞机怎么能 同时飞,当时又没多任务,我也还没实现模拟任务系统,绞尽脑汁,有一天在书上看到介绍UNIX分时系统的逻辑是每个任务运行一小段然后切换,顺着这个思路 想下去,终于想通所谓状态机模型,每帧处理每架飞机时根据当前的状态移动一小步,然后更新状态,再处理下一辆飞机。然后兴奋的跑到电脑面前,编码一整天, 终于实现。然后拉着同学来自己家玩,看到她们玩的那么兴奋的样子,突然感觉创造游戏,是一件多么令人愉快的事情呀。

当年做款游戏都快要写出半个操作系统来了,整个城市就你一个人在研究这些,老师只会教NOI,书本上只会教你用BGI绘图,没有任何一本游戏开发相 关书籍出版,关键是你还在读中学,什么组成原理编译原理,计算机图形学你都没学过,全靠书店几本破书,杂志上的零零碎碎和自我领悟。比起今天的小 孩,windows都帮她们做了那么多的事情了,自己买本书,照着书上实现下三角形绘制,模型导入,场景管理,碰撞检查,不懂可以问知乎,不行可以随便上 gamedev.net,游戏写不来可以看人家的代码照着抄,脚本可以用lua,python。简直是生在天堂里呀,有什么值得称道的地方呢?

行业总是要发展的,我也从《编程技巧与维护》《VGA显示原理》。。。和各种杂志上获取了不少知识,当年写这些文章的人,和身边搞计算机的,都比我 大很多,我幼小的心灵里总有一份冲动,冥冥之中觉得将来自己肯定能超过他们,这不是因为我看不起她们,异或我狂妄自大,而是只有这样,站在她们肩上,才能 对得起大家共同爱好的这个行业,大家共同追求的事业。

而今天,我会尽量利用业余时间,于各处培训游戏开发,帮助大家该如何实现各种东西,目的也只有一个,让今天的小孩将来有一天能够超过我,不是因为她 们狂妄自大,异或我妄自菲薄,而是因为只有这样,让她们站在我的肩上,才能对得起大家共同爱好的这个行业,大家共同追求的这个事业。

文章转载自 开源中国社区 [http://www.oschina.net]

时间: 2024-11-02 10:36:40

二十年前是怎样开发游戏的的相关文章

奥巴马启动国家计划鼓励青少年开发游戏

编者按:自从上次"psp在智利勇救矿工造下浮屠"之后,"游戏"再次得到极高的尊重--美国总统启动一项国家计划(请注意这个高度),鼓励青少年开发游戏.不知天朝专家们听此消息,会不会悲愤死?!但我知道,他们肯定不会羞愧死的--脸皮太厚常年处于满血满防御无敌状态,羞不死啊! 多玩网讯(编译/于子将)美国总统奥巴马今日宣布,一项名为"视频游戏挑战"的国家计划将正式启动,这项活动旨在促进和支持学生开发原创游戏并从中学习到科学.技术.工程.数学等知识. &q

爸爸陪儿子玩网游自主开发游戏玩出全国大奖

李波一家老小围坐在电脑前,测试他才开发的一款小游戏. 儿子痴迷网络小游戏.父亲无法扑灭儿子的"游戏瘾",便开始陪儿子玩游戏,并摸索游戏背后的东西.这一玩一摸索,就玩出了名堂---在全国游戏开发大赛上获了个大奖. 玩游戏捧回全国大奖 昨下午,江北区洋河花园逸景楼,李波一家都围坐在一起,对着电脑耍起他开发的新游戏"炫点渔夫". 这款游戏正是38岁的李波参加由国际著名软件企业Adobe公司主办的"闪创未来"Adobe Flash平台应用开发大赛的作品.

奥巴马宣布游戏挑战计划鼓励青少年开发游戏

编者按:自从上次"psp在智利勇救矿工造下浮屠"之后,"游戏"再次得到极高的尊重--美国总统启动一项国家计划(请注意这个高度),鼓励青少年开发游戏.不知天朝专家们听此消息,会不会悲愤死?!但我知道,他们肯定不会羞愧死的--脸皮太厚常年处于满血满防御无敌状态,羞不死啊! 多玩网讯(编译/于子将)美国总统奥巴马今日宣布,一项名为"视频游戏挑战"的国家计划将正式启动,这项活动旨在促进和支持学生开发原创游戏并从中学习到科学.技术.工程.数学等知识. &q

汪延:新浪开发游戏能力很差 可以和盛大合作

6月1日,新浪首席执行长兼总裁汪延来到济南,带着网络歌手推广新浪网的"2005网络歌曲排行榜".汪延的穿着优雅得体,白色衬衫配黑色西裤,1米88的挺拔个头让他无论走到哪里回头率都很高. "平易近人",随行助手这样评论他们的汪总.果然,原定6:00开始的采访,他提前到了10分钟.助手递给汪延一份采访提纲,汪延瞅了一眼说:"不用了,我还是自己扯吧."浑厚的男中音,京味十足. 出身名门的上帝宠儿 "你好!"见到记者,汪延微微向前一欠

谈前后端分离开发模式

前后端分离的开发模式,原本觉得没什么稀奇的玩艺,在最近参与的一个大型项目中,让我有了更深的理解. 前后端分离的开发模式:系统分析阶段,系分和前端开发人员约定好页面上所需的逻辑变量,进入功能开发阶段,前端开发人员进行前台页面结构,样式,行为层的代码编写,并根据约定好的变量,逻辑规则,完成不同情况展示不同的表现.而后端开发人员,只需要按照约定,赋予这些变量含义,并提供前后端交互所需要的数据即可. 以前自己在php上玩过mvc开发框架,但是没有在这么大型的项目中实践过,所以过程中暴露出一些问题,也说明

如何用HTML 5 Audio API开发游戏音乐

介绍 音频在很大程度上使得多媒体体验非常引人注目.如果你曾经尝试在关闭声音的情况下看电影,你就很可能 已经注意到了这一点. 游戏也不例外!我最喜爱的视频游戏的回忆里包含了音乐和声效.在二十年后的今天,大多 情况下,当玩我最爱的游戏时,我仍然不能把"塞尔达"里近藤浩二的乐曲和马特大气的暗黑配乐从我的头脑里驱逐掉.这 同样适用于音效,例如魔兽里单位实时点击的响应,以及任天堂的经典例子. 游戏的音频提出了一些有趣的挑战. 要创建令人着迷的游戏音乐,设计人员需要调节潜在的不可预知的状态.实际上

利用十大最佳游戏开发工具开发游戏

游戏无疑是最神奇的和有趣的休闲活动.每个人都喜欢玩游戏,所有年龄组的人喜欢玩游戏但游戏的类型可能会有所不同.有些人可能喜欢玩动作游戏,有些人喜欢玩关卡类游戏.而我只喜欢玩扫雷. 人们非常喜欢游戏,有时候会想自己能否也做一个游戏出来,但这个过程非常的复杂.不过现在的技术已经如此先进,利用这些技术可以容易的使你的梦想变为现实.今天我们为你介绍 10 个最棒的游戏开发工具. 1) Game Maker GameMaker是世界上最广泛使用的游戏开发产品,已经被下载超过1000万次.这个需求持续增加,每

c++-C++如何开发游戏服务端?

问题描述 C++如何开发游戏服务端? 对于动作类.格斗类游戏,有一个很大的问题,就是需要做碰撞检查和寻路. 如果是单机游戏,客户端有非常非常多的引擎,例如unity3d等. 但如果是网游对战游戏,如果都是客户端判断的话,容易不同步,也容易作弊. 我想请问,服务端做碰撞检查的话,有没有类似的引擎? 如果没有,一般该如何处理? 解决方案 你没有了解过游戏开发.根本不需要将这种表现同步. 动作类游戏,每个目标在服务端就是一个点,二点之间有攻击距离,在攻击距离内就可以攻击,否则不能,客户端发起攻击请求然

html5能开发游戏,不需要其它语言吗?

问题描述 html5能开发游戏,不需要其它语言吗? 权html5就能开发游戏吗?不需要其它语言?不需要js等其它辅助语言就能开发游戏? 解决方案 广义的html5包括css3和js.怎么能不用js呢?另外,如果游戏要实现一些复杂的功能,还是需要服务器端的. 解决方案二: jChartFX,Html5,Css3,SVG 解决方案三: HTML和css是连体的般一起用,再加上js就可以实现一些很炫酷的功能,无论你用他们来开发网页还是干其他的.光用HTML就像盖楼房光用砖不用钢筋一样 解决方案四: j