我们在玩游戏的时候,我们进入游戏后第一眼往往都是看到游戏世界中的场景,当然除了个别例外,因为那些游戏将游戏场景隐藏了起来,如文字游戏中的地点一样.既然我们接触了游戏世界的核心,那么作为核心的场景又包括哪些内容呢? 一张截图 场景组成 这里以天龙八部/武侠世界作为参考,其组成主要为核心.事件.区域.聊天管道.搜索机.寻路器.副本.掉落. 核心 每个系统都有自己的核心部分,核心一般作为整体的控制的作用,在场景中数据逻辑的处理便放在核心部分,比如场景中的所有对象以及每个对象的数据,网络的同步等等. 事…
游戏世界中我们拥有许多对象,常见的就是角色自身以及怪物和NPC,我们可以见到怪物和NPC拥有许多的行为,比如说怪物常常见到敌对的玩家就会攻击一样,又如一些NPC来游戏世界中走来走去,又有些怪物和NPC有的时候还会发出一些奇怪的谈论.我们都知道物体是死的,没有生命的,程序其实就是一种物体,它本身是不会进行任何的操作的,比如场景中的角色我们不操作则傻站着一样.但是NPC和怪物似乎有自己的判断力,谁该打谁不该打,还会排队行走,这些不是有生命的才能实现的吗?这就是AI,全称为Actificial Int…
场景的内容讲解到今天算是暂时划上一个句号了,接下来为大家讲解的是AI部分(大型AI),如果有兴趣的朋友不妨持续关注这些文章,大家一起学习和进步.动态场景和副本是场景中特殊的类型,副本在这里想必已经是无人不知无人不晓的,那么动态场景又是什么样的呢? 游戏截图 副本(管理器) 1.初始化(init) 副本管理器数据初始化. 2.数据选择(select scene) 根据传入的数据获得副本的创建者,并判断副本创建者关联的场景数据是否正确,再根据场景类型加入到副本场景节点列表中. 3.放入场景节点(pu…
核心这个词来的是多么的高深,可能我们也因为这个字眼望而却步,也就很难去掌握这部分的知识.之所以将核心放在最前面讲解,也可以看出它真的很重要,希望朋友们不会错过这个一直以来让大家不熟悉的知识,同我一起进步.同时在讲解这方面的知识时候,博主也在学习好算法相关的知识,每天进行两个实例的讲解,有兴趣的朋友们不妨了解一下,大家千万不好死记硬背. 一张截图 描述 核心作为重要的地位,就是因为它掌握了最核心的东西:数据,也就是说核心就是数据的处理中心. 析构方法(construct) 主要是创建核心对象.基础…
今天第星期天,知识是永远是学习不完的,所以今天这部分算比较轻松,同时也希望大家会有一个好的周末.场景事件即场景的回调,和别的事件一样是在特定的条件下产生的,前面也介绍过场景的各种事件,今天详细的说一说这些事件的具体作用. 游戏截图 场景事件 一个完整的对象一般都拥有事件,至于什么是事件在这里就不多解释了.在场景中的事件在天龙/武侠世界中的事件包括场景初始化.场景定时器.场景退出.玩家进入场景.角色升级.角色死亡.角色重生.场景通知.任务接受检查.NPC对话默认事件.NPC事件列表事件. 1.场景…
1.定义 MMORPG,是英文Massive(或Massively)Multiplayer Online Role-PlayingGame的缩写,即大型多人在线角色扮演游戏. 2.技术与知识 在这系列的文章中,所提及的技术与知识为游戏设计中的基本知识与常用问题.文章中存在的问题,是不可避免的,希望读者能够见谅与理解. 3.开发环境 服务器选择linux和windows环境,客户端选择在windows上. 4.开发语言 在游戏开发中,有着许许多多的开发语言,如服务器开发语言有c++.lua.pyt…
脚本模块是游戏设计中争论比较多的话题,那是因为作为脚本本身所带来的利弊.其实这都无关紧要,取舍是人必须学会的一项技能,如果你不会取舍那么就让趋势给你一个满意的答复.自从魔兽世界以及传奇(世界)问世以来,它们都伴随着脚本(LUA)配置,想一想为什么会用到脚本,其根本的原因在于脚本比较方便,改动的时候也无需考虑过多.个人一直坚持使用脚本就在此,另一方面是因其他高级语言,特别是C/C++与它的基本上是无缝的耦合所带来的便利,也成为我选择它的重要原因. CODE 文件environment.h /**…
游戏截图 场景事件 一个完整的对象一般都拥有事件,至于什么是事件在这里就不多解释了. 在场景中的事件在天龙/武侠世界中的事件包含场景初始化.场景定时器.场景退出.玩家进入场景.角色升级.角色死亡.角色重生.场景通知.任务接受检查.NPC对话默认事件.NPC事件列表事件. 1.场景初始化(scene init) 场景初始化事件,负责副本场景的数据维护.负责副本定时器的开启.负责城市入口的挂接.调用脚本初始化函数. 2.场景定时器(scene timer) 负责定时器数据的处理,通常会调用到脚本的对…
地图的数据以及区域的信息是场景的重要组成部分,这些数据同时存在客户端和服务器,而且都是由编辑器生成的.那么保存的文件数据结构是怎样的?一张3D的场景地图又是怎样处理这些数据的?同时告诉大家这里同样只是讲的理论与设计,理论和设计往往都很空洞,但是却很灵活,需要靠每个人怎么运用. 一些图片 区域和格子 从上面的截图可以看出游戏场景其实是由格子来区分的,不管是矩形的格子还是其他形状的格子也好,一张地图不可能只有一个点(即多点组成一张地图).在3D场景中似乎格子的位置总伴随着高度信息,所以让人感觉有些迷…
多线程在随着cpu发展应用的是越来越多,游戏场景因为其在服务器所占的数据量与逻辑复杂度的原因必须依赖于它.为什么场景要采用多线程?场景的线程是怎样的?场景的线程又是如何创建的?场景的线程又是怎样管理的?在这里同时对可以指正错误的朋友们说声谢谢,虽然是小错误,也希望大家能够勇于纠正这些错误. 游戏截图 采用理由 上面的两张截图分别在不同的场景,试想一下如果一个线程只能先处理其中一张图的数据,后果会怎么样? 单线程往往需要等待,就好像我们到银行窗口办理业务的时候,以前的时候很多网点只有一个窗口,所以…