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


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 表单提交给自己
Jul 24 PHP
simplehtmldom Doc api帮助文档
Mar 26 PHP
PHP swfupload图片上传的实例代码
Sep 30 PHP
Yii查询生成器(Query Builder)用法实例教程
Sep 04 PHP
深入理解php printf() 输出格式化的字符串
May 23 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
Oct 10 PHP
Thinkphp5.0自动生成模块及目录的方法详解
Apr 17 PHP
php简单读取.vcf格式文件的方法示例
Sep 02 PHP
PHP进阶学习之垃圾回收机制详解
Jun 18 PHP
Laravel等框架模型关联的可用性浅析
Dec 15 PHP
PHP const定义常量及global定义全局常量实例解析
May 28 PHP
PHP7 windows支持
Mar 09 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
基于Snoopy的PHP近似完美获取网站编码的代码
2011/10/23 PHP
php使用exec shell命令注入的方法讲解
2013/11/12 PHP
php实现的通用图片处理类
2015/03/24 PHP
PHP静态成员变量
2017/02/14 PHP
PHP 布尔值的自增与自减的实现方法
2018/05/03 PHP
一个选择最快的服务器转向代码
2009/04/27 Javascript
javascript 计算两个整数的百分比值
2009/12/26 Javascript
javascript中的注释使用与注意事项小结
2011/09/20 Javascript
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
在Google 地图上实现做的标记相连接
2015/01/05 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
2015/07/28 Javascript
JavaScript面试题大全(推荐)
2016/09/22 Javascript
JavaScript中Promise的使用详解
2017/02/26 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
2017/05/31 Javascript
vue 中使用 watch 出现了如下的报错的原因分析
2019/05/21 Javascript
jQuery实现弹出层效果
2019/12/10 jQuery
JS实现商品橱窗特效
2020/01/09 Javascript
Vue实现手机扫描二维码预览页面效果
2020/05/28 Javascript
[02:31]《DAC最前线》之选手酒店现场花絮
2015/01/30 DOTA
[52:00]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs Optic
2018/04/02 DOTA
Python基本数据类型详细介绍
2014/03/11 Python
Python 的 Socket 编程
2015/03/24 Python
Python 12306抢火车票脚本 Python京东抢手机脚本
2018/02/06 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
2019/02/19 Python
python使用requests.session模拟登录
2019/08/09 Python
对python中UDP,socket的使用详解
2019/08/22 Python
Python列表list常用内建函数实例小结
2019/10/22 Python
django 简单实现登录验证给你
2019/11/06 Python
Pyspark读取parquet数据过程解析
2020/03/27 Python
浅谈pandas dataframe对除数是零的处理
2020/07/20 Python
利用css3-animation实现逐帧动画效果
2016/03/10 HTML / CSS
StudentUniverse英国:学生航班、酒店和旅游
2019/08/25 全球购物
会计系毕业个人自荐信格式
2013/09/23 职场文书
应届毕业生自荐书
2014/06/18 职场文书
Nginx域名转发https访问的实现
2021/03/31 Servers
SQL Server数据库查询出现阻塞之性能调优
2022/04/10 SQL Server