重发老文:DOS游戏编程二十一条

这是我1999年写的一篇文章了,应该说,经过了这么多年的进步,文中很多与DOS相关的内容,现在看起来已经不合时宜了,不过,我认为里面的一些理念,到任何时候都不会过时。
最近看到tr110223网友的《C语言编写简单2D游戏》(http://282761713.blog.51cto.com/1495050/334024),对于里面的AND算法略有分歧,因此找出这篇老文来探讨。希望能对大家有所帮助。
有兴趣的朋友也可以了解一下,当年我们在DOS下,没有任何图形引擎的帮助下,是如何开发游戏程序的。
注:那个时侯我刚刚开始学习写文章没多久,呵呵,文中笔锋显得很粗糙、稚嫩,可读性并不是很好,请各位网友见谅。
DOS游戏编程二十一条(The 21 FAQ of PC DOS GAME)
     我在一家游戏公司多年,现就自己的编程经验谈一点体会,希望能对大家有点帮助,
本文中所有例子均在WATCOM C/C++ 10.6下调试通过。
    
1、找一种好的编程语言:
    当然,游戏可以用任何语言编写,这是可以肯定的,我就使用过Turbo Basic编写过
跑马机游戏,还用VB写过一个半成品的网络拱猪游戏,但是,一个好的编程语言能够达到
好的效果,这是毋庸置疑的。一个游戏程序员,梦寐以求的就是一个方便、完美、高速的
语言。
    汇编是一种高速语言,但不够方便,如果要方便,就必须大量使用宏,笔者就曾经在
6502汇编语言中大量使用FOR,NEXT,PRINT等语句,全部是宏,但是相应的内存开销,时间
开销都加大了,不划算。
    WATCOM C/C++是一种好语言,可以访问大内存,速度快,也够方便,但是调试不够方
便,只能用自己写的调试函数解决问题。还有每次运行必须调用DOS/4GW这个32位环境程序,
既累赘又不方便,还占地方。
    MSC7.0也不错,通过它的虚拟内存机制也可以访问大内存,但可惜是16位仿真的,速
度太慢。
    DJGPP也是很不错,关键它是共享的,同时还带有一个Alleg的共享游戏库,非常好用,
推荐使用,但它生成的程序代码太大,不够优化。
    作为游戏程序员,我们追求的就是快一点、快一点、再快一点,如果还有更快的语言,
希望大家介绍给我。
2、要写专有程序,不要写通用的,通用,意味着慢,哪怕下次重新来过,也不能为了下次
耽误这次。同理,凡是系统给你的函数,调用,要有坚决不用的思想准备,要自己写一套。
3、写出来的程序,每秒钟必须刷屏70次以上,再通过时钟限制在30次(不抖),剩下的时
间,就是运行你的游戏程序内容的时间,算一算,不多。
4、要有引擎的概念,引擎包含系统底层的程序,数据结构,调用方法等,这些直接限制你
以后的游戏好不好编,一般说来,我们做一个游戏半年时间,其中两个月编引擎,两个月编
游戏,剩下两个月调试,可见引擎的重要。永远记着,你写的程序,就计算机而言,就是在
搬数,把一堆数据提出来,处理一下搬到另外一块地方,就这么简单,那么,搬数的方法有
多重要,你知道了吧。
5、绝对不能用乘除法、浮点数,我在一个游戏中,15万行程序,没有使用一个乘除法和浮
点数,一直很自豪。在这之前,我经常因为程序中的一个乘法在梦中吓醒,直到有一天学会
使用移位乘法。另外记住,游戏只用整数,如果你用了浮点数,改你的程序。这里给一个移 <
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值