网页游戏开发入门教程二(游戏模式+系统)


Posted in PHP onNovember 02, 2009

一、游戏模式
目前webgame游戏模式大体上可以分为以下四类:
1
、玩家拥有一个城市,不断的升级城市内建筑,建筑可以自动获得物资,可以生产军队,军队之间进行对比数值的战斗。这里我简单的称为Ogame模式。

比较优秀的代表:战神世界IITravianOgame,武林三国,纵横天下,领主online,乱舞春秋,热血三国,方便面三国等等。
这是一个比较成熟的模式, 但正因为成熟。因此,玩家接触到这类游戏比较的多,除非你能超过这些优秀的代表,否则就只是简单的重复开发。

对玩家来说:
优点:Ogame模式模拟一个君主,发动一系列战争。满足君主的成就感。
缺点:玩Ogame模式的游戏需要足够的耐心。当然有钱也行。
对开发者来说:
优点:有相当多的地方可以参考。甚至有源代码参考。(Ogame的源代码)
缺点:不管名字怎么改,策划怎么策划。本质没有变化。换汤不换药,玩家不是傻子。
Ogame
模式所获得的成功,就像传奇刚出来的时候。不是因为这个模式非常好,而是因为暂时还没有更强的模式超过他。所以,如果你想做网页游戏赚钱,而不是好玩,或者仅仅为了架设一个自己的服务器。那么请从新开发一种新模式。
2
、游戏的核心就是战斗,不断的战斗,不断的完成任务。这里我简单的称为Ebs模式。
比较优秀的代表:EBSIIweb幻想(wog),无心宠物(论坛插件)。
Ebs
模式也是成熟的模式。
对玩家来说:
优点:只管不断的战斗,完成任务,PK
缺点:只能不断的战斗,完成任务,PK
对开发者来说:
优点:有相当多的地方可以参考。甚至有源代码参考。
(wog
web幻想)的源代码,无心宠物的源代码)
缺点:收益到底如何呢?
3
mmRPG模式游戏。
猫游记、英雄之门、昆仑(昆仑不应该算网页游戏了)。
模拟具有客户端的网络游戏。本身这个想法非常好,但是,谁来玩是一个问题。
对玩家来说:
优点:类似有客户端的网络游戏。
缺点:画面、游戏性等等都比不过客户端网络游戏,要玩mmrpg,有必要玩网页游戏吗?对开发者来说:
优点:模式清晰,参考众多。(大部分网络游戏都可以作为参考)
缺点:策划难度高,技术难度高。

4、经营模式游戏。
武林足球经理、XBA篮球经理。
经营类游戏在游戏消耗上,和成就感上比较难处理。毕竟不是单机的经营游戏。
如果策划够强,经营类游戏是很好的选择。
那么,作为开发者来说,选择哪一类入手呢?
从程序的角度上来说,不管哪一类,都需要六个系统。

二、网页游戏六大系统

1、经济系统。
经济系统包括:商店、拍卖行、生产或打工场所、道具和资源。

生产或打工场所通过 玩家 消耗时间 产生道具和资源
商店 让玩家和系统进行道具和资源的交互。
拍卖行 让玩家和玩家之间进行道具和资源的交互。
2
、消耗系统。(战斗、战争、比赛系统。)
不论是哪一类网页游戏。都是以下12个模式中选择某几个组合。
1玩家vs 1 NPC
N
玩家 vs 1 NPC
N
玩家 vs N NPC
1
玩家vs 1玩家
N
玩家 vs 1 玩家

N 玩家 vs N 玩家
1
团队 vs 1 NPC

N团队 vs 1 NPC
N
团队 vs N NPC
1
团队 vs 1团队
N
团队 vs 1团队

N团队 vs N团队
比如,无心宠物,就包括了
1玩家vs 1 NPC
1
玩家vs 1玩家
比如,战神世界,就包括了
1
玩家vs 1 NPC
1
玩家vs 1玩家
1
团队 vs 1团队
N
团队 vs 1团队
3、消息系统。
短信息,系统通知,游戏内邮件等等。
4
、任务系统。
任务系统是对以上系统功能的集合。有了功能,自然就有了任务发挥的空间。
5
、公会系统。
游戏始终是人跟人玩。所以公会系统是重中之重。
6
、地图系统。
虚拟的世界环境。可以是复杂的图片地图,也可以只是几个数字。

分析6类系统到底是做什么
1、经济系统。
相信大多数开发者都做过电子商务类型的网站吧,要不商店类型的网站做过吧。

再不然,一个产品列表总做过吧。
ok,
网页游戏中的商店跟一般的网站商店非常类似,而且可能更简单,因为你不需要购物车。

拍卖行,如果你用过淘宝、易趣的拍卖功能,你就知道是怎么回事了。
经济系统的难点是:
生产或打工场所道具和资源
生产或打工场所
你至少需要完成一个计时器,一个生产类,一个打工类。
生产类和打工类都只需要有:
开始() 过程() 结束()
开始():数据初始化。如判断体力是否够啊。材料是否够啊之类的。
过程():可以什么都不做。
结束():产生了什么产品。
计时器用来配合处理什么时候执行开始(),什么时候执行结束()
道具和资源:
道具最好整合到一个表里。加上如itemtype(道具类型),itemaddtype(道具增加属性类型),itemaddpoint(道具增加点数)之类的字段。
你可以很好的处理装备、药品等等。

2、消耗系统。
消耗系统比经济系统复杂。因为它涉及到一个个具体的功能模型。

比如1玩家vs 1 NPC的模型。
你可以通过纯js处理,也可以通过ajax配合后台编程语言处理。
比如一个完整的过程:
1
、获得初始数据。开始计时。
2
、模型过程。比如攻击一次,攻击XX个回合。
  
判断,循环模型过程,或模型结束。

3、模型结束。返回数据。
难点在模型过程。当然,你可以简单的,提交模型数据后,等待多少分钟,返回另一堆数据。目前很多网页游戏就是这样处理的。
你也可以做得很复杂。比如做成即时的回合模型。(例如无心宠物的商业版玩家战斗模型)
甚至你够牛叉的话,你做成战棋类模型。当然,这个对策划,对程序都是严峻的考验。

最大的问题是:一个模型往往不够,可能需要多个模型。
获取数据、返回数据都是比较简单的。模型功能本身,比较复杂和繁琐。

因此,我强烈建议,模型最好做得具有开放性以及方便扩展。多写几个虚类,多写几个接口,可能会很有好处。

我也参考了一些网页游戏的代码。但是,纯函数的写法,纯过程的写法,写出的模型。。真的好难用。没办法直接用。数据和模型交杂在了一起。Ogame是这样,无心宠物是这样,wog也是这样。

没有足够扩展性的模型,还不如自己写。修改花的时间更多,而且非常不好用。

3、消息系统。

参考一般论坛的短消息功能。很简单。
游戏内邮件,如果可以邮寄物品,那么会困难一些。但是只要前面的道具类完成好了。增加一两个字段不是大问题。

4、任务系统。
整合前面的功能。形成任务链。
大概需要几个表:
1
)任务基础表

id

位置id

任务类型一(打怪/寻宝/等等)

任务类型二(单一任务/连续任务开始/连续任务过程/连续任务结束)

任务进行状态(开始/中断/取消/未接/完成)默认:未接

任务开关文字(连接文字或图片,点击触发)

任务开关图片。

任务文字描述。(说明任务的具体内容)

是否一次性任务。

是否有前置任务。

前置任务id

是否有后置任务。

后置任务id

任务开始NPC

任务结束NPC

2)任务完成条件

id

任务id

任务完成类型 (无条件/需要物品/需要属性/都需要/等)

物品id

物品数量

玩家属性

玩家属性达到值

3)任务完成奖励

id

任务id

物品id

物品数量

玩家属性

玩家属性增加值

任务完成开关文字

任务完成开关图片

4)任务记录表 (记录只能执行一次的任务)

id

角色

任务id

任务进行状态(开始/中断/取消/未接/完成)默认:开始

5)任务临时表

(记录可以多次执行的任务,开始即写入,完成即删除或备份。)

(连续任务,当全部完成时再删除或备份。)

id

角色

任务id

任务进行状态(开始/中断/取消/未接/完成)默认:开始

6NPC

id

NPC名字

NPC图片

NPC对话

任务系统是对前3个系统功能的总结和升华。对游戏性和易玩性相当重要。

5、公会系统。
公会是一个类似虚函数的东西。

公会说,进攻某个地方。

这时候,如果有多个公会玩家去进攻某个地方。从1v1,形成了貌似Nv1
公会本身,不用管玩家到底如何进攻法。
公会系统和任务系统结合。能够产生很强大的游戏成就感。

6、地图系统。
网页游戏的地图系统,其实跟网站导航很类似。
不同的是,网站导航可能只需要几个连接就行了。
地图系统会复杂一些。可能有图片,连接更多,有的还需要自动生成。

有的是XXX*XXX个点(图片或连接)组成。
个人觉得看成是模板就行了。最简单的就是地图系统(不同于网络游戏,还需要检测碰撞、寻路,一大堆算法)。当然,你要做成跟网络游戏很类似的地图,那也没办法。找本游戏开发的书看,都有讲。
总结:
经济系统、消耗系统、消息系统是基础。
任务系统、公会系统是升华。

地图系统是容器。

三、如何分析网页游戏的优缺点
站在开发者的角度:
分析网页游戏,就是分析它的六大系统如何。分析网页游戏的核心,就是分析它的消耗模式。
Ogame模式的游戏:
经济系统:中级,生产场所自动生成。没有单人打工。有商店,拍卖行不健全。道具不丰富。
消耗系统:出兵战斗,等待时间,返回战斗结果。
         
发现敌人有进攻,转移资源。

附加型的英雄模式,对出兵战斗有一定影响。
消息系统:初级,站内短信息。有的加个简单聊天室,大部分是通过论坛。
任务系统:中级,修建任务,获得道具任务,战斗掠夺任务(实质还是获得道具)。
公会系统:中级,集合多人兵力的兵营。没有公会任务。公会内简单的消息发布。
地图系统:中级,有的有图片,有的是数字和列表。表现了一定的距离关系。
Ebs
模式的游戏:
经济系统:初级,通过战斗获得道具和资源。没有打工,没有生产。有商店,拍卖行不健全。道具不丰富。
消耗系统:战斗。继续战斗。
消息系统:初级,站内短信息。
任务系统:初级,不断的战斗。
公会系统:初级,简单的玩家集合。没有公会任务。公会内简单的消息发布。
地图系统:初级,没有地图。或者地图就是几个连接。没有距离关系。
mmRPG
模式的游戏:
经济系统:初级,通过战斗获得道具和资源。没有打工,没有生产。有商店,拍卖行不健全。
消耗系统:战斗、合成。
         
附加型的人物养成。
消息系统:中级,站内短信息,局部聊天室,全局聊天室。

任务系统:中级,战斗任务,传递任务,合成任务,升级任务(其实也是战斗任务)。
公会系统:初级,简单的玩家集合。没有公会任务。公会内简单的消息发布。
地图系统:中级,有地图。有距离关系。地图关系比较复杂。
经营类模式的游戏:
经济系统:中级,有生产场所自动产生资源。有打工,有生产。有商店,拍卖行。
消耗系统:比赛任务、生产场所获得更好效率。

              附加型的人物养成模式。

消息系统:初级,站内短信息。

任务系统:中级,比赛任务,传递任务。
公会系统:初级,简单的玩家集合。没有公会任务。公会内简单的消息发布。
地图系统:初级,简单地图。有的有距离关系,有的是简单的图片连接。
上面写的等级,只是一个大概的概念,仅作参考。
个人观点是,初级的系统有可能在投入较少的情况下,获得质的提升。
中级的系统,很难获得更高的提升。当然,牛叉的人例外。
四、完善旧有模式,开发新的模式
Ogame模式的游戏,从系统的角度看,能获得提升的地方不多了。因此都是在比美术,比运营。
还没听说哪个小公司,因为运营ogame模式的游戏盈利颇多的。盈利的都是大公司,一年几百万,上千万的都有。
Ebs
模式的游戏,能获得提升的地方满多的。但是都不是核心的消耗系统的提升。而是其他系统的提升。
消耗模式不断的打怪。本身有一定的硬伤。游戏的平衡很难保证和保持。但如果小公司运营,还是有可能盈利的。包括无心宠物,EBSII,做好了。只是广告收入都很可观的。运作得好,一年1020万,问题不大。但是不能跟大公司运营的Ogame模式游戏比。
mmRPG
模式,提升空间很大,投入很大。竞争对手很强大。竞争对手,就是有客户端的网络游戏。这也是mmRPG模式网页游戏的硬伤。
收益上,看平台本身够不够大,够大的话,能维持。平台小了。等着倒闭。不推荐个人或小公司介入。不过还是那句话,牛叉的人除外。
经营类模式,有一定提升空间。(其他不太清楚也不太懂)
再回头看看六大系统。
经济系统 消耗系统 消息系统 任务系统 公会系统 地图系统
其中,区别最大的是消耗系统。其他5个系统都有一定程度上的雷同。
因此,个人开发者,以及小开发团队或小公司。
五、要想在竞争中脱颖而出,可以向着四个方向发展。
一、通过策划,让原有的系统的模式产生新的游戏感受。
如: web航海类游戏。基本上都是对Ogame模式的修改值得借鉴。虽然是航海游戏,但核心模式没变。比较巧妙的把Ogame模式转化为了探险类的游戏。

这类修改,将6个系统重新进行了一定的包装。对新玩家有较强的吸引力。但对老玩家,效果不一定好。因为模式并没有改变。
这个方向,需要策划相当的强悍和敏锐。
二、开发新颖的消耗系统。或者说游戏性较高的小互动游戏。
比如:七日工作室开发的病毒游戏。(该连接有一定时效性,最新连接在http://www.zhwebgame.com/ 上。七日工作室群:70996701)
因为一个扩展性良好的消耗系统,可以很方便的放入到已有的游戏中。并且其自身也可以演化出很多新的消耗系统。
比如病毒游戏,通过它的模式,可能演化为,房地产抢土地的游戏;战争中,争夺至高点的游戏等等。
三、开发除了消耗系统外的其他系统。或者说叫做网页游戏框架。
因为不管你消耗系统如何新,如何好玩;始终需要其他系统支持。而其他系统的功能,可以说很难有较大的突破。
能突破的就是:
如何方便数据的管理修改;

如何方便组合这些功能达到策划目的;

如何留好合适的接口,以方便的与消耗系统结合。
四、整合现有的游戏系统。比如RPG+SLGRPG+模拟经营、RPG+SNS等等。
比如凤天工作室的《铁血英雄》
整合了rpg+slg+模拟经营+sns。游戏内容庞大。但实际上是通过对单类系统的巧妙组合达到的。
小结:
选好一个方向,并做到比较高级的水平。这是网页游戏开发者比较实际的方向。
如果能够把这六大系统都做到新颖、实用、高扩展性、代码简单易懂。那么可以预见,一个成功的网页游戏必然出现。

体">地图系统
其中,区别最大的是消耗系统。其他5个系统都有一定程度上的雷同。
因此,个人开发者,以及小开发团队或小公司。
五、要想在竞争中脱颖而出,可以向着四个方向发展。
一、通过策划,让原有的系统的模式产生新的游戏感受。
如: web航海类游戏。基本上都是对Ogame模式的修改值得借鉴。虽然是航海游戏,但核心模式没变。比较巧妙的把Ogame模式转化为了探险类的游戏。

这类修改,将6个系统重新进行了一定的包装。对新玩家有较强的吸引力。但对老玩家,效果不一定好。因为模式并没有改变。
这个方向,需要策划相当的强悍和敏锐。
二、开发新颖的消耗系统。或者说游戏性较高的小互动游戏。
比如:七日工作室开发的病毒游戏。(该连接有一定时效性,最新连接在http://www.zhwebgame.com/ 上。七日工作室群:70996701)
因为一个扩展性良好的消耗系统,可以很方便的放入到已有的游戏中。并且其自身也可以演化出很多新的消耗系统。
比如病毒游戏,通过它的模式,可能演化为,房地产抢土地的游戏;战争中,争夺至高点的游戏等等。
三、开发除了消耗系统外的其他系统。或者说叫做网页游戏框架。
因为不管你消耗系统如何新,如何好玩;始终需要其他系统支持。而其他系统的功能,可以说很难有较大的突破。
能突破的就是:
如何方便数据的管理修改;

如何方便组合这些功能达到策划目的;

如何留好合适的接口,以方便的与消耗系统结合。
四、整合现有的游戏系统。比如RPG+SLGRPG+模拟经营、RPG+SNS等等。
比如凤天工作室的《铁血英雄》
整合了rpg+slg+模拟经营+sns。游戏内容庞大。但实际上是通过对单类系统的巧妙组合达到的。
小结:
选好一个方向,并做到比较高级的水平。这是网页游戏开发者比较实际的方向。
如果能够把这六大系统都做到新颖、实用、高扩展性、代码简单易懂。那么可以预见,一个成功的网页游戏必然出现。

PHP 相关文章推荐
第十三节 对象串行化 [13]
Oct 09 PHP
开发大型PHP项目的方法
Oct 09 PHP
source.php查看源文件
Dec 09 PHP
php下实现一个阿拉伯数字转中文数字的函数
Jul 10 PHP
php中日期加减法运算实现代码
Dec 08 PHP
PHP循环结构实例讲解
Feb 10 PHP
php获取指定日期之间的各个周和月的起止时间
Nov 24 PHP
wamp服务器访问php非常缓慢的解决过程
Jul 01 PHP
PHP中调用C/C++制作的动态链接库的教程
Mar 10 PHP
php图形jpgraph操作实例分析
Feb 22 PHP
PHP数组去重的更快实现方式分析
May 09 PHP
详解PHP神奇又有用的Trait
Mar 25 PHP
初学CAKEPHP 基础教程
Nov 02 #PHP
PHP+MySQL 制作简单的留言本
Nov 02 #PHP
PHP+XML 制作简单的留言本 图文教程
Nov 02 #PHP
php 调用远程url的六种方法小结
Nov 02 #PHP
PHP 程序员应该使用的10个组件
Oct 31 #PHP
基于HTTP长连接的"服务器推"技术的php 简易聊天室
Oct 31 #PHP
php UTF8 文件的签名问题
Oct 30 #PHP
You might like
关于拼配咖啡,你要知道
2021/03/03 咖啡文化
PHP制作图形验证码代码分享
2014/10/23 PHP
PHP文件读写操作相关函数总结
2014/11/18 PHP
将FCKeditor导入PHP+SMARTY的实现方法
2015/01/15 PHP
php版微信公众平台入门教程之开发者认证的方法
2016/09/26 PHP
thinkPHP多语言切换设置方法详解
2016/11/11 PHP
PHP实现文件下载【实例分享】
2017/04/28 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
Javascript的IE和Firefox兼容性汇编(zz)
2007/02/02 Javascript
jQuery 插件 将this下的div轮番显示
2009/04/09 Javascript
JS中eval函数的使用示例
2013/07/21 Javascript
JavaScript获取onclick、onchange等事件值的代码
2013/07/22 Javascript
用js实现in_array的方法
2013/11/05 Javascript
javascript日期操作详解(脚本之家整理)
2015/09/05 Javascript
jQuery验证插件validate使用方法详解
2020/09/13 Javascript
webpack+vue.js实现组件化详解
2016/10/12 Javascript
AngularJS辅助库browserTrigger用法示例
2016/11/03 Javascript
JS中from 表单序列化提交的代码
2017/01/20 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
2017/08/29 jQuery
jQuery实现表单动态加减、ajax表单提交功能
2018/06/08 jQuery
谈谈IntersectionObserver懒加载的具体使用
2019/10/15 Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
2020/03/07 Javascript
Python3安装Pymongo详细步骤
2017/05/26 Python
Python中的默认参数实例分析
2018/01/29 Python
详解Python self 参数
2019/08/30 Python
vscode 配置 python3开发环境的方法
2019/09/19 Python
Python如何定义接口和抽象类
2020/07/28 Python
python爬虫scrapy图书分类实例讲解
2020/11/23 Python
Python排序函数的使用方法详解
2020/12/11 Python
详解通过HTML5 Canvas实现图片的平移及旋转变化的方法
2016/03/22 HTML / CSS
html5实现多图片预览上传及点击可拖拽控件
2018/03/15 HTML / CSS
加拿大国民体育购物网站:National Sports
2018/11/04 全球购物
2014年圣诞节促销方案
2014/03/14 职场文书
承诺书格式范文
2014/06/03 职场文书
2014年财务工作总结范文
2014/11/11 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书