找回密码
注册

QQ登录

独立游戏 >
独立动画 >
独立音乐 >

MipMap

Mipmap技术有点类似于LOD技术,但是不同的是,LOD针对的是模型资 ...

如何评价暴雪游戏《守望先锋》及其场景和美术设计? ...

【一开始问的时候没想到会有这么多人答 真的好涨专业姿势啊 批量 ...

版号审批开放释放利好 中小游戏公司“抢人”备战

(图片来源:互联网资料图) 上周游戏版号审批即将开放的消息传 ...

unity 模型锯齿,阴影不正常,阴影不出现终极解决办法

本文作者使用的是2017.3.0版unity 一.阴影不显示, 1.打开平行 ...

苏州赞歌招聘啦,快来点进来看看

2D游戏动作师 5k~12k 岗位职责: 1. 根据项目要求,负责游戏项 ...

Unity3D自带功能:地形(Terrain)

Unity3D中的地形类似于Maya中使用置换贴图来变形高段数的多边形 ...

苏州赞歌急求3D手绘角色,3D动作,资深次时代,资深原画

我们是谁? 我们来自“上有天堂下有苏杭”的苏州,是苏州手绘3D ...

Adobe Photoshop CC2018 已停止工作

点击桌面PS图标-右击-打开文件位置(PhotoshopCC2018的安装目 ...

外媒:突然凉凉的《行尸走肉》开发商给同行的5个教训

9月底的时候,美国加州的剧情向游戏公司Telltale突然裁员90%以上 ...

作者: 九艺网
查看: 119|回复: 0
搜索

more +最新主题Download

more +社区更新Forums

more +随机图赏Gallery

MipMap
如何评价暴雪游戏《守望先锋》及其场景和美
版号审批开放释放利好 中小游戏公司“抢人

more +文章更新News

DOS游戏编程二十一条

[复制链接]
九艺网 发表于 2017-3-10 17:02:23 | 显示全部楼层 |阅读模式
查看: 119|回复: 0

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
[table=560]
     [table=560][tr][td=1,1,6][/td][td=1,1,748][table=98%][tr][td=1,1,10]

                               
登录/注册后可看大图
[/td][td=1,1,728]

                               
登录/注册后可看大图
[table=98%][tr][td=2,1]DOS游戏编程二十一条[/td][/tr][tr][td=2,1][/td][/tr][tr][td=2,1][/td][/tr][tr][td=2,1]<span id="lblContent">我在一家游戏公司多年,现就自己的编程经验谈一点体会,希望能对大家有点帮助,本文中所有例子均在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、尽量少用乘除法、浮点数,必要时使用移位乘法。这里给一个移位乘法的例子,大家可以参考:
/*-------------------------------------------------------------------------------*/
//XiaoGe Made under WATCOM C/C++ 10.6
/*-------------------------------------------------------------------------------*/
int count_offest(int _width,int x,int y) //移位乘法计算显示偏移值
{
int mode[17]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536};
int i,offest=0;
for (i=16;i>=0;i--)
{
if (_width>=mode<i>)
{
offest+=(y
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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