1.定义 MMORPG,是英文Massive(或Massively)Multiplayer Online Role-PlayingGame的缩写,即大型多人在线角色扮演游戏. 2.技术与知识 在这系列的文章中,所提及的技术与知识为游戏设计中的基本知识与常用问题.文章中存在的问题,是不可避免的,希望读者能够见谅与理解. 3.开发环境 服务器选择linux和windows环境,客户端选择在windows上. 4.开发语言 在游戏开发中,有着许许多多的开发语言,如服务器开发语言有c++.lua.pyt…
接下来一段时间,这些文件可能不再更新,期间我会学习和掌握一些前端知识.虽然我非常欣赏剑侠网络版叁和九阴真经的画面,但是那是一个庞大的游戏引擎,一般人是无法窥伺的,除非你是天才而且要拥有机器毫无中断的毅力.我也很羡慕国外诸如刺客信条系列.古墓丽影系列,因为在画面和操作方面都做到了世界级水平,这也正是我想研究其实现原理的原因之一.况且那些大型游戏,在中端机器上运行的都比较流畅,也是我很想弄明白的.至于虚幻引擎,这是给那些大型公司,诸如腾讯拿去折腾的,个人根本用不起,那么只能选择开源了.UI我选择了C…
核心这个词来的是多么的高深,可能我们也因为这个字眼望而却步,也就很难去掌握这部分的知识.之所以将核心放在最前面讲解,也可以看出它真的很重要,希望朋友们不会错过这个一直以来让大家不熟悉的知识,同我一起进步.同时在讲解这方面的知识时候,博主也在学习好算法相关的知识,每天进行两个实例的讲解,有兴趣的朋友们不妨了解一下,大家千万不好死记硬背. 一张截图 描述 核心作为重要的地位,就是因为它掌握了最核心的东西:数据,也就是说核心就是数据的处理中心. 析构方法(construct) 主要是创建核心对象.基础…
我们在玩游戏的时候,我们进入游戏后第一眼往往都是看到游戏世界中的场景,当然除了个别例外,因为那些游戏将游戏场景隐藏了起来,如文字游戏中的地点一样.既然我们接触了游戏世界的核心,那么作为核心的场景又包括哪些内容呢? 一张截图 场景组成 这里以天龙八部/武侠世界作为参考,其组成主要为核心.事件.区域.聊天管道.搜索机.寻路器.副本.掉落. 核心 每个系统都有自己的核心部分,核心一般作为整体的控制的作用,在场景中数据逻辑的处理便放在核心部分,比如场景中的所有对象以及每个对象的数据,网络的同步等等. 事…
脚本模块是游戏设计中争论比较多的话题,那是因为作为脚本本身所带来的利弊.其实这都无关紧要,取舍是人必须学会的一项技能,如果你不会取舍那么就让趋势给你一个满意的答复.自从魔兽世界以及传奇(世界)问世以来,它们都伴随着脚本(LUA)配置,想一想为什么会用到脚本,其根本的原因在于脚本比较方便,改动的时候也无需考虑过多.个人一直坚持使用脚本就在此,另一方面是因其他高级语言,特别是C/C++与它的基本上是无缝的耦合所带来的便利,也成为我选择它的重要原因. CODE 文件environment.h /**…
无论在何处在什么地方,我们都或多或少的接触到数学知识.特别是在客户端中,从打开界面的那一刻起就有太多与数学扯上的关联,如打开窗口的大小,窗口的位置,窗口里面的元件对象,以及UI的坐标等等.而在进入游戏之后,不仅有这些坐标,还有了世界的坐标,以及场景坐标,还有粒子对象的各种属性值.但为什么要扩展ogre的数学库呢?就让我们看看有哪些类型的吧. CODE 文件math/base.h /** * PAP Engine ( -- ) * $Id math.h * @link -- for the can…
这一部分需要向大家介绍的是服务器的select以及收发包的具体流程,从核心代码功能上分析网络交互具体过程. 首先大家要看第二部分(part2 of net)的代码结构图,因为在接下来的流程过程中会用到其中模块的名称,若是不知道大致的功能那么接下来的解说可能就成为天书了. 总体流程为:服务器管理器初始化并创建主套接字连接,进入主循环等待新连接(select),如果有新的连接则将新连接加入连接管理器.不管有没有新的连接,循环会依次处理连接的异常->输入流->输出流->命令处理.其中异常即连接…
在游戏中的交互过程中输入是一个必不可少的过程,比如登陆的时候需要用户输入用户名与密码,就算是单机游戏很多时候也要求用户输入一个用户名作为存档的依据.网络游戏中没有了输入,只用鼠标来交互是不切实际的,因为用户总会为单一的操作而觉得厌烦.资源提供系统,是将游戏中各种的资源加载到内存中以供使用,比如说一张图片,一张数据表等等.在cegui和ogre中都自己封装了输入与资源管理的类,本次设计中自然是在它基础上扩展封装.那么,就让我们看看这两块提供了哪些方法吧. CODE 模块resource 文件pro…
网络模块的设计,是大型多人在线游戏中比较重要的一部分.我之所以将网络模块放到最前面,是因为许许多多的开发者面对这一块的时候充满了疑惑,而且也觉得很神秘和深奥.这些我们面对到的困难,其实是由于我们对这方面了解的不足以及太过陌生. 本次设计中参考到了天龙八部/武侠世界的网络模块的设计,进行了封装调整,而且天龙八部其实也参考了韩国经典网游的设计,所以在稳定这方面还是有一定的积累. 在前面的构架中,大家可以看到一次交互的大致流程图,玩家登陆.创建角色.删除角色.选择角色等都由登陆服务器(login)进行…
一件事如果没有规范.章法,那么做这件事起来往往会遇到许多难题,特别是在多人协作的时候,没有到规范通常让每个人多多少少都面临着头疼的困难.举个例子,多个人要做一桌美味的饺子,有买材料.做面皮.弄肉(菜)馅等.如果没有分工,做面皮的人也可以去弄肉馅,买材料的人也可以由弄肉馅去,这样一来可能导致这一桌香喷喷的饺子做的极慢,而且很可能导致这几个人各怀意见.所以如果规定了谁去做某件事,则大家都无异议,效率上也就不言而喻了. 1.目录规范 不同的语言有着不同的目录结构设计,但是一定要记住:区分模块功能.目录…