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


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 相关文章推荐
如何对PHP程序中的常见漏洞进行攻击
Oct 09 PHP
在WIN98下以apache模块方式安装php
Oct 09 PHP
PHP字符转义相关函数小结(php下的转义字符串)
Apr 12 PHP
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
Jun 21 PHP
PHP中的替代语法简介
Aug 22 PHP
Fedora下安装php Redis扩展笔记
Sep 03 PHP
php图片水印添加、压缩、剪切的封装类实现
Apr 18 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
Feb 14 PHP
php cookie 详解使用实例
Nov 03 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
Mar 14 PHP
PHP实现提取多维数组指定一列的方法总结
Dec 04 PHP
PHP+ajax实现上传、删除、修改单张图片及后台处理逻辑操作详解
Feb 12 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
索尼SONY ICF-SW7600GR电路分析与改良
2021/03/02 无线电
给多个地址发邮件的类
2006/10/09 PHP
模板引擎正则表达式调试小技巧
2011/07/20 PHP
Codeigniter控制器controller继承问题实例分析
2016/01/19 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
php处理复杂xml数据示例
2016/07/11 PHP
URL编码转换,escape() encodeURI() encodeURIComponent()
2006/12/27 Javascript
js将long日期格式转换为标准日期格式实现思路
2013/04/07 Javascript
jQuery操作checkbox选择(list/table)
2013/04/07 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
2013/12/10 Javascript
DOM基础教程之事件对象
2015/01/20 Javascript
jQuery替换textarea中换行的方法
2015/06/10 Javascript
jQuery实现div拖拽效果实例分析
2016/02/20 Javascript
javascript 动态样式添加的简单实现
2016/10/11 Javascript
原生javascript实现图片放大镜效果
2017/01/18 Javascript
Angular.js实现动态加载组件详解
2017/05/28 Javascript
js+html5实现复制文字按钮
2017/07/15 Javascript
浅谈针对Vue相同路由不同参数的刷新问题
2018/09/29 Javascript
微信小程序日历效果
2018/12/29 Javascript
jQuery 判断元素是否存在然后按需加载内容的实现代码
2020/01/16 jQuery
JS实现图片懒加载(lazyload)过程详解
2020/04/02 Javascript
python实现sublime3的less编译插件示例
2014/04/27 Python
使用Python写一个贪吃蛇游戏实例代码
2017/08/21 Python
pyqt5自定义信号实例解析
2018/01/31 Python
django 发送邮件和缓存的实现代码
2018/07/18 Python
Python判断一个三位数是否为水仙花数的示例
2018/11/13 Python
Python unittest 简单实现参数化的方法
2018/11/30 Python
Python 3 判断2个字典相同
2019/08/06 Python
python 爬虫爬取京东ps4售卖情况
2020/12/18 Python
澳大利亚领先的睡衣品牌:Peter Alexander
2016/08/16 全球购物
波兰最大的宠物用品网上商店:FERA.PL
2019/08/11 全球购物
英国儿童设计师服装和玩具购物网站:Zac & Lulu
2020/10/19 全球购物
写自荐信的七个技巧
2013/10/15 职场文书
学校党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
财务工作失职检讨书
2014/11/21 职场文书
上市公司财务总监岗位职责
2015/04/03 职场文书