”
“停学?”戴辅导员闻言并没有多大的惊讶,他从林鸿身上,从来就没有看到过一个学生的模样。“这样也好。你停学之后打算做什么?”
“我和朋友一起办了一个公司,以后会将主要的精力放在公司上面。”
“难怪……”
戴辅导员点点头:“辍学创办公司。这样的事情在国外很常见,比尔盖茨当年就是这样。不过,辍学之后,实际上他们并没有停止过学习,我希望你也能这样,就算是停学,也不要忘记继续给自己充电。只有这样,你以后才能走得更远。”
“谢谢!我知道。”林鸿点点头。
停学手续的办理有点麻烦,不但需要辅导员同意,并且还要报送院里面以及教务处审批,一两天内肯定是下不来。
林鸿填好了停学申请表格之后,就离开了辅导员的办公室。回到了604寝室。
来到寝室的时候。正好看到吴东正要出去。
“老大!”吴东看到林鸿之后,顿时大喜,“你终于回来了!”
“呵呵,你这是去上课?”
“不是,正想去图馆查查资料。我上午已经没课了,刚上完。”
见到林鸿回来,吴东也就放弃了去图馆的打算。他可是有很多话要跟他说。
林鸿给他们布置的虚拟机项目的那些任务,他们已经提前完成,上次问起他接下来该做哪一步,林鸿并没有给出明确的说法,说见面再谈。
两人聊了一会儿之后,话题便转移到了虚拟机项目上。
“老大,我让你你看看我们的成果。”
吴东说着,便打开了电脑。然后运行了一个类似于终端界面的程序。
这就是虚拟机的终端仿真界面,林鸿坐在电脑前。敲入了他们之前预设好的一个debug命令,便进入了编程模式。
这个模式下。就相当于是一个汇编编译器,直接输入cpu的指令,便可以进行执行。
林鸿输入了几个常见的cpu指令,包括mov,add,mul,shl,shr,or等等,执行完毕之后,他便直接将cpu的那些寄存器的内容直接dump了出来。
显示的结果是正确的,完全是按照8086cpu的技术参数来实现的,包括指令格式和寻址方式都完全和8086一致。
整个程序,就相当于是一个计算机硬件,直接用文件来模拟cpu的寄存器以及内存结构。
在里面所执行的程序,不会对外面的操作系统产生任何影响,最多只是那个文件里面的内容发生了改变。
林鸿接下来查看了一下他们编写的源代码,所有内容都是用c语言编写的。
后面的实现代码编写得非常不错,无论是实现方法和执行效率,看得出来都经过了特别的优化,看来那个新加入的计算机老师果然不愧是在这一行研究了这么久,实现这种东西来,简直有些得心应手的感觉。
林鸿笑道:“那个老师果然不愧是教计算机组成原理的。”
吴东点头道:“是啊,他说他教这门课程好几年了,天天照着课本给同学讲枯燥的理论知识,大家根本没有任何概念,刚考完试转眼就把所有的内容都还给他了。他看到我们这个项目之后,高兴地不得了,认真研究了两天就说要加入我们,然后他将接下来的那些指令实现任务全包了下来,不到一周的时间就全部实现了。”
要想将这个做出来,如果不对cpu的结构以及运行原理完全掌握,肯定是完成不了的。就拿8086的寻址方式来说,就有好多种实现方式,这可不是寄存器到寄存器这么简单,还得考虑直接寻址和间接寻址,其中间接寻址又分好其中情况。
吴东继续说道:“还有,那个郭老师还问我这个项目是不是基于开源协议,他想要用这个项目改造一下,专门为他的课程定制,以后教学的时候,就分步骤让自己的学生去分别实现,从而让他们真正掌握这些知识。”
“这个没问题,他想用就用,反正这个项目也主要是用于学习。”
“老大,我们接下来该做什么?”吴东又问起了这个问题。
林鸿:“当初让你做这个项目,主要是让你理解一下cpu的基本原理,现在看来,这个目的已经达到了,相信你对底层的编程也有了足够的认识。按照我原来的计划,做到这一步,这个项目就可以停了。”
“停了?”吴东闻言不由一愣,“就这样停了,也太可惜了?现在我们这个项目小组好不容易组建起来,还没做什么东西呢,就这样停了?”
这个项目,是吴东做的第一个比较大的项目,同时也是投入时间和精力最多的一个东西,可以说已经有了感情,说停就停的话,实在是有点难以接受。
林鸿道:“这是原来的计划,我原先也没想到你会因此而组建一个项目小组。现在看来,可以让这个项目继续发挥余热,我已经想好了,接下来,将这个项目改造一下,将其打造成一个游戏平台。”
“游戏平台?”吴东闻言眼睛顿时一亮,但是同时又有些疑惑,这个东西怎么会和游戏联系在一起?
在他的印象中,游戏都是非常复杂的程序,涉及到比较复杂的图形化的界面和运算。他们现在编写出来的这个东西,说白了,完全就好像是个玩具一样,根本不具备任何实用价值,也不具备任何趣味性,只有学习这个专业的人才会对其有点兴趣。
而现在林鸿告诉他,要将这个项目进行改造,将其打造成游戏平台,这不由让他感到非常奇怪。
林鸿没有回答,而是问道:“你听过磁芯大战么?”
“磁芯大战?”吴东摇摇头,“没有听过。一个游戏?”
“是的,一个流行与黑客和计算机科学家内部的游戏,也是病毒的始祖。”
林鸿说着,打开了自己的电脑,然后运行了自己的电脑中的一个程序。
吴东完全被林鸿的话给震了一下,病毒的始祖,这名头实在够大。他连忙凑上前去,查看林鸿运行的那个程序。
之间显示器中,出现了一个黑色的方框,方框中则出现了两个不停闪动的两点。
两个两点都在开始移动,不过它们的方式并不相同,其中一个颜色为红色,它犹如一条小蛇,一步一步地朝前前进,而另外一个则为黄色,它似乎长了腿,直接跳跃式前进,他们经过的地方都留下了自己的颜色,方框中的格子不断地被它们侵蚀着。
“这个程序叫做达尔文。”林鸿介绍道,“是几十年前,由一位叫做麦耀莱的工程师在贝尔实验室中编写的……”
1959年,贝尔实验室的三个二十多岁年轻人发明了一个名为“磁芯大战”的游戏,将十年前电脑先驱者冯*诺依曼在他的论文《自我繁衍的自动机理论》中所描述的病毒变为现实,这三个人分别是麦耀莱、维索斯基以及莫里斯。
“……这个莫里斯,就是后来鼎鼎大名的莫里斯蠕虫的作者罗伯特*莫里斯的父亲。”林鸿继续介绍道,“这个红色的战士,叫做爬行者,每一次执行都会自动生成一个副本,也就是将自己复制一份,它就是通过这个简单的机制不断地吞噬着里面的内存。在当时,磁芯就是内存。”
吴东听着听着也有些明白了。
眼前这个游戏虽然看上去没有什么趣味性,但是底层所代表的机制却不简单。
一红一黄两个战士在里面抢着内存资源,不停地互相吞噬,谁能最后将所有内存给抢占,谁就能获得胜利。
“老大,我明白了!你的意思是,我们将虚拟机平台改造成为类似于达尔文这样的平台?然后让大家编制战士程序,在里面玩游戏。是不是这样?”(未完待续。。)超脑黑客
第415章 RobTank
> 磁芯大战是贝尔实验室里面的三个年轻人在业余时间折腾出来的一个小东西,他们将冯”诺依曼的理论变为了现实,让程序实现了自我复制和传播。
但是,这种复制和传播只是局限在类似于“达尔文”这样的虚拟机平台中,里面的所有资源,都是已经限定好了。
这个游戏虽然是病毒的鼻祖,但实际上它并没有创造病毒,充其量仅仅只是一个流行于程序员这个小圈子内的小游戏而已,大家通过一种名为redcade的汇编语言编写代码,按照自己的算法制造战士。
不过,这个游戏,却启发了不少人,他们觉得,这些程序,可以不用仅仅局限在这个平台上,而是可以直接运行于真实的操作系统和硬件平台中。这其中,就包括莫里斯的儿子,罗比特”莫里斯,他编写了著名的莫里斯蠕虫,一举摧毁了无数号称安全无比的计算机系统。
而林鸿也是从磁芯大战这个游戏得到启发,觉得可以直接将吴东他们编写的这个虚拟机转为这样的平台,让他们直接在里面编写游戏程序,然后在里面运行。
这样一来,他们编写的这个虚拟机平台也有了用武之地,让他们在玩游戏的同时又锻炼自己的编程能力。
当然,在林鸿看来,“磁芯大战”整体来说还是太原始了一点,不但界面原始,可使用的编程语言也原始。
他对吴东说:“磁芯大战毕竟是几十年前计算机技术刚刚萌芽阶段的游戏,用于现在的话,过于简陋了点,也没有什么趣味性。我的意思是仿照它的原理和思想,打造一个全新的更为复杂一点的游戏。”
按照林鸿的意思,程序员的游戏,就应该像磁芯大战这样,和普通的游戏完全不同游戏的角色,需要自己通过编程来产生,包括这些角色的动作和应对。
“等等,我拿纸币记录下来。”
东吴听到林鸿的构想,眼神越来越亮,他生怕会忘记任何一个细节,立刻找来笔记本和笔,快速地将林鸿的想法给记录在本子上。
要是在之前林鸿直接跟他说要打造这样的一个可以让程序员自己编写“战士”的对战游戏平台,他肯定会觉得这实在是太复杂了,根本完成不了。
可是,在听说了“磁芯大战”这个游戏之后,他已经对这个游戏的基本原理有了一定的了解,心中已经有一定的底气。
林鸿继续说道:“磁芯大战的目的是争夺内存资源,它们就像是一个饥饿的贪婪者,不停地进行着吞噬这个设定有点过于简单了,表现形式也很单一,缺乏趣味性。我们可以变通一下,既然是战士进行对战,那就干脆设定为常见的对战模式,角色也不再是简单的两个小方块而是可以引入更为形象具体的图形。”
“类似于拳皇那样的格斗游戏吗?”吴东一边记录一边问道。
“嗯,后期倒是可以考虑这样。”林鸿点点头,“不过前期的话最好是再简化一点,拳皇这样的格斗模式有点过于复杂了。
拳皇游戏的格斗,完全是在真实格斗的基础上进行了精简,将主要的一些攻击和格挡动作给抽离,建立模型。
这样的游戏如果能做成功,的确有很大的趣味性但是这样一来,对于吴东他们来说的确过于复杂了点其中的变量和参数太多,只能将其作为后期的一个发展方向。
林鸿之前也只是一个大概的想法,现在也是边思考边说。
“这样……攻击方式简化一下,不要分什么手、脚攻击,直接将攻击手段抽象成一种,也不要分什么重拳轻拳,所有的攻击威力都只有一个标准。”
“如果只是你一下我一下的对打的话,这也没什么意思吧?”吴东停下笔抬起头问道。
这时,林鸿已经心中已经有了新的想法,他脸上露出笑容,道:“不一定要肉搏,可以做为射击游戏,这样就有意思了。”
“对哦,射击游戏的攻击方式比较单一,也很有趣!”吴东恍然大悟。
接下来的思路就比较清楚了。
他们两个一个问,一个答,就相当于是在进行一场头脑风暴,渐渐地将这个新的游戏给完善了起来。
最终设计好的游戏是一个坦克对战平台,甲乙两方分别是两辆坦克,刚开始出现在战场的时候,拥有一定量的血槽,相互之间可以进行发炮对射,如果被击中的话,就扣掉一定血量,如果持续中弹,血槽耗尽便爆炸,输掉比赛。
坦克可以在战场上随意进行移动,大炮的方向也可以随时进行调整。
坦克就相当于是磁芯大战中的战士,需要大家对其进行编程,给它指定合理的攻击策略和闪躲策略,谁的策略最科学最合理,谁最终就可以赢得比赛。
也就是说,这个平台以后的比赛,涉及到的主要是算法的比拼,以及对算法的实现能力。
为了让参加这个游戏的人更多,林鸿觉得应该支持多种语言,将常见的c和java都要包括进去。
吴东:“老大,这个游戏叫什么名字好?坦克大战?这个名字好像太普通了,容易和其他的坦克游戏混淆。”
“是啊,坦克大战虽然是个很好的名字,不过这个名字已经被很多游戏使用过。为了区别,就叫机器人坦克吧,英文名rabatank在刚开始的时候,就做好国际化的工作,让国外的高手也能够加入这个游戏中来。”
编程本身就是一个非常国际化的工作,程序员之间的沟通基本没有语言障碍,能够编写出优秀的程序,其英文水平也不低,至少其英文阅读和撰写能力不会低。
这是没办法的事,因为计算机领域的著作和资料,大部分都是英文版的,例如英特尔cpu的技术文档,pdf格式的,一个个都是几十上百兆的大小,这些文档,很少有人会有专门会去做翻译,因为其中涉及的专有名词和原理太多,非业内人士翻译不了,而业内人士觉得既然你都已经达到了要看这些文档的地步了,那么你阅读这个文档也就没有障碍。
之前吴东他们做这个项目的时候,一本十几斤重的技术文档翻来覆去不知道翻了多少遍。当然,也不是整个全部看,只是在其中查找需要的资料。
现在还只是将rabatank的框架给设定好,要想真正让这个游戏实现可玩性,还有一段很长的路要走。好在对cpu的模拟工作已经完成,接下来的事情倒也不复杂,主要有两个方面的工作。
首先是图形化,实现画图函数,需要将坦克以及炮弹攻击这些元素全部用图形显示出来。
其次便是跨平台的编译器。最终编译的坦克文件代码,要能够直接被虚拟机给读取并执行。
不过这些工作对林鸿来说都不是问题,不过他自己却不会亲自做这些,都要交给吴东他们自己去做。他只负责提出需求和框架,细节方面的实现他不管,留给吴东他们练手。
当然,关键的地方,林鸿还是会负责帮忙搞定,至少这个项目要能够继续下去。
林鸿之所以对这个项目这样热心,一方面是为了帮吴东,另外一方面也有自己的一点私心,他希望能够积极推动这个游戏在国内高校流行起来,从而能够发现一些这方面的人才。
不过,暂时他还比较忙,先将公司的事情忙完之后,再来做这个事情。
吴东见林鸿又列出了一个长长的列表,将整个项目分割成好多步骤让他们去实现,不由想起他今天来学校的事情,于是问道:“老大,你这次回来,辅导员那边去过了没?”
“嗯,已经去了,刚刚提交了停学申请。”
“停学?”吴东一愣。
“是啊,暂时不上了,以后如果有时间有心思的时候,再看吧。”
林鸿也有些舍不得他们这几个室友,在这里虽然只有短短的一段时间,但是他去却体验到了大学生活的真挚无瑕,也交到了几个好朋友好兄弟。
“那你打算去哪里?”吴东追问道。
林鸿笑笑:“以后很长一段时间我都会在上沪市,如果你们去那里玩,直接打我电话,我把我的新联系方式留给你们。对了,还有我网络上的联系方式。
你们有没有玩oicq?”
“对啊,直接使用oicq就可以在网上即时地进行联系了!
Back to home |
File page
Subscribe |
Register |
Login
| N