培养游戏设计与开发精英 网站地图 | 联系我们
首页 | 学校简介 | 课程设置 | 师资力量 | 权威认证 | 开班信息 | 在线服务 | 学员天地 | 就业广场 | 学院新闻 | 媒体关注 | 交通指南
招生办公告栏

报名/咨询热线:

027-87685520、67863577

点此浏览最新一期招生简章 点此直接在线报名
游戏课程体系
汇众益智游戏学院
v4.0专业课程设置
游戏策划课程
游戏美术设计
游戏程序设计
权威专业资格认证
最新开班信息
汇众益智所获荣誉
游戏课程相关
点此浏览汇众益智游戏学院简介
《学校简介》
点此浏览就业广场栏目
《课程设置》
点此浏览最新一期招生简章
《招生简章》
专题讲座
《专题讲座》
点此进入学员天地栏目
《学员天地》
点此浏览就业广场栏目
《就业广场》
你现在的位置:首页 >> 游戏策划 >> 正文 游戏策划
MMORPG开发杂谈(一):任务系统设计
发布:武汉游戏学院 来源:www.gamedu.org

最近一直在思考MMORPG的任务系统的设计。以下是需要达到的几个设计目标:
1. 任务逻辑与程序逻辑完全脱离;

2. 服务器端程序和客户端程序提供有限的功能之后,可以由脚本程序员完成任务编写;

3. 必须方便任务的更新。
当然,任务系统的具体实现受策划案的影响很大,我这里只是空想的一个一般的实现方案:
<场景编辑>:
场景数据文件和任务相关的主要是NPC和调查触发器(例如调查一个石碑)。当玩家与NPC谈话,或者调查某个物品时,需要开启某个特定的任务。某个对象可以开启哪些任务,以及开启任务的条件需要事先编辑到场景数据文件中。任务条件也可以写入任务脚本文件中。
<服务器端>:
1. 每个角色身上保存(最多)N个任务体(WOW是20个),任务体应该包括任务名称或编号,以及几个任务变量(供任务脚本使用,个数依策划而定,但不可太多);
2. 每个任务存储一个脚本文件,当游戏中特定的事件发生时,首先应该查询场景数据,看是否开启一个新的任务,然后逐个通知现有任务的脚本,每个任务的脚本来执行各自独立的任务逻辑,例如有某个任务脚本文件为Quest_001.script如下:
OnTalkNpc(string npcid)
{
if(npcid == “张三”)
{
if(GetQuestVar(0) >= 10)//杀够了
{
ShowDlg(“你这么快就杀了10只老虎?很厉害!”);
IncPlayExp(1250);//经验奖励
}
else
ShowDlg(“你好啊!”); //向客户端发送命令,显示对话框
}
}
OnKillMonster(int monsterID)
{
if(monsterID == 1000123)//是任务指定的怪物
{
IncQuestVar(0);//修改任务变量
}
}
3. 因为大部分任务是只能执行一次的,所以服务器还需要记录此角色完成了哪些任务。
<客户端>:
可以查询视野中对象可能开启哪些任务,玩家是否满足条件来给出一些提示,例如头顶放一个叹号;
当玩家与NPC对话或者调查某个物品时,发送通知给服务器;
接收服务器的消息,更新任务显示信息。

以一个典型的任务为例:玩家与张三谈话触发任务,杀十只老虎,回来交任务可以得到1250点经验。

  • 上一篇文章:
  • 下一篇文章:
  • 常用功能:[收藏本页] [在线咨询] [在线报名] [联系我们] [关于我们]

    联系电话:027-87685520 027-67863577 全省报名咨询电话(免长话费):400-811-8830

    地 址:武汉市洪山区广埠屯资讯广场B座6楼(华中师范大学北门) >> 详细交通指南

    版权声明:Copyright 2008© 汇众益智游戏学院武汉校区.All Rights Reserved