繁体
FightMoniton,即斗兽场,则负责利用
作系统的图形显示功能在FighSe女en中显示虚拟场地。FighSe女en可以同时和多个FightMoniton相连,这样,大家就可以在多个显示
上同时显示生死斗游戏的情况。
游戏中的“角斗士”是一个
象的数据模型“他”由着自己的一些属
:运动和战斗。运动有“走”、“跑”、“加速”、“减速”、“转
”…等等等等,许毅设计得很详细,基本是
照一个人的实际情况来的。战斗模型许毅则简化了,只有“拳击”、“脚踢”这两
攻击以及相应的防御动作而已。其实这个设计并不难,
照面向对象的设计思想,将“角斗士”
象成一个对象,其他的都是他的属
,而属
也还可以是对象,也就是说属
也可以有属
,依此类推…
许毅编写的这个工程有
大,可以说是他第一次独自一人开发这么大的项目。给颜玉编写的那个“超级黑客
装”虽然貌似看起来很大,但那些
件都是一些独立的小
件组成的难度并不是很大。而他现在编写的这个“生死斗”就不同了,整
联系非常,他不但要编写整个仿真系统,而且还制定游戏规则,最要命的是要将这些游戏规则整合程序当中去。所以他才
那么大的时间来
行构思和设计,因为如果以后游戏规则有所变动,那么
件也要
行相应修改,非常麻烦。
当然,绝大多数黑客的代码编写习惯在正统的程序员
中都不怎么好,他们对程序效率的追求近乎苛刻,于是,他们的作品当中往往会
现一些生涩难懂的代码,这些代码是那么的奇怪,以至于那些规规矩矩的程序员想破
也百思不得其解。他们往往会发
这样的
叹:“这样也行?”、“变量怎么可以这么用?”、“天!这个算法太巧妙了,他到底是怎么想到的?”…这
可以从Linux编写的Linux源代码中找到实例。
整个工程是非常庞大的,所以许毅在开始的时候并没有急着动手编写,而是仔细反复地思考、补充。不但从全局考虑其整
结构,还得注意以后要添加新的功能。毕竟,现在他的构思相对来说,还比较
糙,还有很多细节没有考虑到,到时候肯定会要升级。作为一个大的项目,这些因素都是必须考虑的。需求分析,可行
分析…这些都是
件工作听知识,没有参与过大型的项目开发的人是
会不到这些步骤的重要
的。次等的程序员通常是想到什么就立刻动手,准备工作什么都不
,就这么编下去,碰到问题再临时解决,到最后甚至还会加上一些令人难以接受的代码。于是,最终编写
来的源代码已经是“惨不忍睹”甚至隔了一段时间之后连他自己都读不懂这些代码了。这
凭自己的
觉编写
件的方式在应付小
件的时候通常不会
什么问题,就算
了问题,从
再编写就是了,不用
多少时间。但遇到大型
件的时候,这
开发方式往往能够
人去撞墙。编写小
分都得
上几个月的时间,哪有这么多时间让你去从
开始?真正有经验的程序员都知
“磨刀不误砍柴工”的
理,他们首先会仔细规划,整个程序会分为几个
分,估计以后将要
行那些功能的补充等等…他们将这些经验提取
来,然后经过科学研究,
象
件工程学这门学科。
实际上可以说是仿真系统服务端包
两个程序:FighSe女en和FightMoniton。
…
提供一个虚拟场地-FighSe女en,也叫“斗兽场”所有参加角斗的角斗士的外在图形表示都是在这个斗兽场中
行角斗。
FighSe女en负责“角斗士”的移动、与客
端(Client)
行通信、
照一定的规则控制游戏的
程。
有服务端,自然必有客
端(Client)。生死斗的客
端(FighSe女en)是由游戏参与者编写。它相当于“角斗士”的大脑,指挥着角斗士的运动和动作。客
端和服务端的通信是通过UDPip协议
行信息
互的,所以,游戏者可以实用支持UDPip协议的任何程序系统。通过这
信息
互,客
端发送指令去控制斗兽场中的角斗士,同时,角斗士还可以反馈一些信息给服务端。