返回
首页

大文学移动版

m.dwxdwx.com

第100章 生死斗
上一章 返回目录 下一章

许毅的那个精简版的小虚拟机核心在他回来后的几天内很快就完成了。虚拟机模拟的是计算机的硬件相当于人的身体但还没有灵魂也就是计算机的软件。虚拟机是操作系统中的计算机而在虚拟机中运行的软件则是软件中的软件了。由于这是精简了的虚拟机只能支持少数的一些机器指令所以编写虚拟机能够运行的程序时也得注意只用到这些指令的功能否则就会报错说指令不能识别。

现在完成的这个虚拟机核心就相当于一个cpu许毅接下来要做的就是给这个光秃秃的cpu加上其他硬件资源例如加入图形化的输入输出接口加上虚拟内存等。

再经过几天时间这些七七八八的组建总算完成了最后将他们很好地组合起来集成在一个大软件中最后许毅还在外面加上了两层加密性能绝好的“壳”。许毅有美术功底所以他特地还进行了一下界面美化。根据许毅原来的构思他将这个游戏命名为“达尔文生存”。

游戏编写好之后他自己没怎么玩因为在他看来这实在是太简单没意思。然后他把这个游戏传给周松让他试试。周松确实对这个表现出很大的兴趣。于是获得许毅同意之后他将这个游戏放到了论坛上。结果令许毅大为失望对这个游戏感兴趣的人并不多而且这些人也只是玩个新鲜而已等知道怎么回事了他们就将其抛弃了。周松做了调查大家一致认为这个游戏实在是太缺乏趣味性程序编写之后几个小黑点在显示器上移动然后就这么等着。看他们慢慢爬动接着结果就出来了……太无聊了!

这个时候他们提出最好能够将这个游戏复杂化例如动作多样性、更具挑战**更加热血等等……

倒!许毅看到他们的回帖之后真想抽他们。他辛辛苦苦把这个东西编写出来结果没人欣赏失策啊!许毅这次“寓教于乐”的尝试就这样胎死腹中。

不过。许毅还是没有放弃这些人的建议给了他灵感连他自己都对他们提出的这个游戏感兴趣起来。许毅接下来的很长一段时间都化在那个黑客游戏的构思和设计当中按照他的构想如果这个游戏编写成功。极有可能形成一个大型地赛事……

许毅现在上课不睡觉了。取而代之的是趴在课桌上呆有时候又会突然拿起笔在稿纸上记录着什么。颜玉看得奇怪多次询问许毅是不是出了什么事情。她也看过许毅纪录在稿纸上的东西都是一些框图或者代码之类的她一点都看不懂。

许毅考虑到把代码完全放到虚拟机中执行这个方法现在还没有条件实现。因为虚拟机编写的工程难度实在太大同时需要很长的时间和极大的精力。另外他编写这个游戏地目的是用来增加大家学习编程的兴趣提高编程水平所以他改变了起初的想法不再去编写一个完整的虚拟机。而是仿真系统代码还是交给实际地计算机去执行没有必要重新编写一个虚拟机。

仿真顾名思义模仿真实。也就是用一定地手段去建立相关模型。模仿现实生活中的一些具体存在的东西。例如某个小区的整体规划模型就是一种实物模型仿真属于实物建模用实物把想要表现的东西用模型做出来。另外还有一些抽象的仿真例如虚拟现实仿真和纯粹的数学仿真等。虚拟现实是用计算机技术把现实地东西做成动画(二维、三维)的形式这里计算机及软件就是用来仿真的工具;纯粹的数学模型则是纯抽象的概念没有形象的表现方式用数学函数来表示系统数学函数就是它地工具。

许毅所采用的方式就是虚拟现实仿真以二维的动画形式表现出来。经过几周的构思和设计他终于将整体框架大致完成。他将这个游戏命名为“生死斗”正如其名这个游戏的主要行为就是各个“角斗士”进行生死角斗不论是单打独斗还是进行大混战目的就是要杀死对方赢得角斗。

整个游戏最重要的是仿真系统的服务端-Fighsenven全部的数据和指令都是Fighsenven当中处理并运行的它就相当于游戏的心脏游戏者并不能看到它只是在底层运行。当然Fighsenven提供一个虚拟场地-Fighsenven也叫“斗兽场”。所有参加角斗的角斗士的外在图形表示都是在这个斗兽场中进行角斗。

实际上可以说是仿真系统服务端包含两个程序:Fighsenven和Fightmoniton。

Fighsenven负责“角斗士”的移动、与客户端()进行通信、按照一定的规则控制游戏的进程。

Fightmoniton即斗兽场则负责利用操作系统的图形显示功能在Fighsenven中显示虚拟场地。Fighsenven可以同时和多个Fightmoniton相连这样大家就可以在多个显示器上同时显示生死斗游戏的情况。

有服务端自然必有客户端()。生死斗的客户端(Fighsenven)是由游戏参与者编写。它相当于“角斗士”的大脑指挥着角斗士的运动和动作。客户端和服务端的通信是通过udp/ip协议进行信息交互的所以游戏者可以实用支持udp/ip协议的任何程序系统。通过这种信息交互客户端送指令去控制斗兽场中的角斗士同时角斗士还可以反馈一些信息给服务端。

游戏中的“角斗士”是一个抽象的数据模型“他”由着自己的一些属性:运动和战斗。运动有“走”、“跑”、“加”、“减”、“转身”……等等等等许毅设计得很详细基本是按照一个人的实际情况来的。战斗模型许毅则简化了只有“拳击”、“脚踢”这两种攻击以及相应的防御动作而已。其实这个设计并不难按照面向对象的设计思想将“角斗士”抽象成一个对象其他的都是他的属性而属性也还可以是对象也就是说属性也可以有属性依此类推……

…………

整个工程是非常庞大的所以许毅在开始的时候并没有急着动手编写而是仔细反复地思考、补充。不但从全局考虑其整体结构还得注意以后要添加新的功能。毕竟现在他的构思相对来说还比较粗糙还有很多细节没有考虑到到时候肯定会要升级。作为一个大的项目这些因素都是必须考虑的。需求分析可行性分析……这些都是软件工作听知识没有参与过大型的项目开的人是体会不到这些步骤的重要性的。次等的程序员通常是想到什么就立刻动手准备工作什么都不做就这么编下去碰到问题再临时解决到最后甚至还会加上一些令人难以接受的代码。于是最终编写出来的源代码已经是“惨不忍睹”甚至隔了一段时间之后连他自己都读不懂这些代码了。这种凭自己的感觉编写软件的方式在应付小软件的时候通常不会出什么问题就算出了问题从头再编写就是了不用花多少时间。但遇到大型软件的时候这种开方式往往能够逼人去撞墙。编写小部分都得花上几个月的时间哪有这么多时间让你去从头开始?真正有经验的程序员都知道“磨刀不误砍柴工”的道理他们先会仔细规划整个程序会分为几个部分估计以后将要进行那些功能的补充等等……他们将这些经验提取出来然后经过科学研究抽象出软件工程学这门学科。

当然绝大多数黑客的代码编写习惯在正统的程序员眼中都不怎么好他们对程序效率的追求近乎苛刻于是他们的作品当中往往会出现一些生涩难懂的代码这些代码是那么的奇怪以至于那些规规矩矩的程序员想破头皮也百思不得其解。他们往往会出这样的感叹:“这样也行?”、“变量怎么可以这么用?”、“天!这个算法太巧妙了他到底是怎么想到的?”……这点可以从Linux编写的Linux源代码中找到实例。

许毅编写的这个工程有点大可以说是他第一次独自一人开这么大的项目。给颜玉编写的那个“级黑客套装”虽然貌似看起来很大但那些软件都是一些独立的小软件组成的难度并不是很大。而他现在编写的这个“生死斗”就不同了整体联系非常他不但要编写整个仿真系统而且还制定游戏规则最要命的是要将这些游戏规则整合程序当中去。所以他才花那么大的时间来进行构思和设计因为如果以后游戏规则有所变动那么软件也要进行相应修改非常麻烦。

上一章 返回目录 下一章
热门小说
我只有两千五百岁五胡之血时代反叛的大魔王你老婆掉了奸夫是皇帝终末忍界信息全知者盖世双谐绝对一番玄尘道途
相邻小说
重生八零之极品亲戚都爱我黑客霸主超级黑客心灵黑客巅峰黑客从商二十年私人订制大妖王混在异界当猛将三国之猛将雄兵海贼之大将赤犬