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

简介:

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

现在做游戏很简单,大把代码给你参考,大把框架给你使用,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,等软件,自己制作一些简单的界面和角色,自己能对其他图片进行二次加工,画像素图,合并调色板。

image

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

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

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

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

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

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

相关文章
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
炸裂全场!百度如流超级助理、Comate X两大黑科技全面开挂,工作生产力狂飙
用户只需要准确描述需求,在执行任务的过程中不需要或者仅需人类简单的确认操作,至于如何理解需求、如何整合系统、如何生成答复,都由AI自动去完成,很多冗长的过程被大模型的能力给“折叠”了。
125 0
|
8月前
|
程序员 图形学 C++
一个无知oier的娱乐——我的游戏开发经历
一个无知oier的娱乐——我的游戏开发经历
67 0
|
4月前
|
机器学习/深度学习 人工智能 安全
2023 Google 开发者大会:无障碍游戏体验升级、安卓开发人员生产力爆棚
2023 Google 开发者大会:无障碍游戏体验升级、安卓开发人员生产力爆棚
|
11月前
|
开发者
游戏要从简单做起
嗨!大家好,我是小蚂蚁。 做游戏要从简单做起,尤其是对于新手开发者,一定要从简单做起。如果在啥也不会的时候,一上来就想做个大而复杂的,那结果只能是以失败告终。 有目标是好事情,但是前提是目标要合理,登顶珠峰是一个好目标,但是对于一个从未登山的人来讲,很显然这不适合当作第一个目标。
62 0
|
人工智能 JavaScript 前端开发
元宇宙游戏链游开发丨元宇宙游戏链游系统开发(开发详情)丨元宇宙游戏链游系统源码部署
 GameFi operates the blockchain financial system in a more intuitive way by integrating the concepts of DEFI and NFT,and presenting them in the form of games.In specific chain game projects,GameFi's game rules,props,and derivatives are the operation mode of NFT products based on the logic of DEFI.
|
编解码 5G vr&ar
莫谈颠覆 做好VR产品才是王道
莫谈颠覆 做好VR产品才是王道
104 0
莫谈颠覆 做好VR产品才是王道
|
敏捷开发 运维 Cloud Native
把效能带到游戏里!仙峰红海蜕变突破之路
手游行业的蓝海与红海 传奇是2001左右的游戏产品,2014年当时国内很多大型公司在传统端游的海洋里干的热火朝天,难以抽身。随着移动互联网的爆发期到来,仙峰(全称:苏州仙峰网络科技股份有限公司)敏锐地察觉到手游的蓝海即将到来。其旗下自研产品包括《烈焰》系列等多款旗舰作,先后在市场上取得优异表现,成为传奇类手游细分领域的现象级作品。
597 0
把效能带到游戏里!仙峰红海蜕变突破之路
|
算法 搜索推荐 5G
张朝阳直播带货首秀,如何用新玩法抓住眼球?
6月8日晚7点,搜狐公司董事局主席兼CEO、搜狐视频CEO张朝阳在搜狐视频APP关注流中开启个人直播带货首秀。
|
区块链
游戏区块链进化史:从投机到玩法改良再到生态意识
区块链+游戏,被认为是第二个率先获得区块链落地应用场景的领域,其是否具有长期投资价值?其应用价值体现在哪些地方?
1151 0