webgame开发简明教程

webgame开发简明教程 webgame开发简明教程(1)研究所有点缺乏资料啊。讨论的问题怪怪的。只有很少是能用到的。一、简单的程序框架。webgame程序构成:三大部分。第一是数据流程。第二是程序。第三是美术。其中,数据流程包括了功能。也只有在功能中才能体现数据流程。数据流程相当的麻烦,后面再讨论。比如最简单的卖买产品。要实现这个功能。那么需要有产品基础表、产

大家好,又见面了,我是你们的朋友全栈君。

 
webgame开发简明教程(1)
研究所有点缺乏资料啊。讨论的问题怪怪的。只有很少是能用到的。

一、简单的程序框架。

webgame程序构成:

三大部分。

第一是数据流程。第二是程序。第三是美术。

其中,数据流程包括了功能。也只有在功能中才能体现数据流程。

数据流程相当的麻烦,后面再讨论。

比如最简单的卖买产品。

要实现这个功能。

那么需要有产品基础表、产品详细表、商店表、背包表。如果扩展性更强,相应的双表是少不不了的。

表的问题都简单了。关键是这个物品有什么用。这样物品的来源,一大堆数据,物品的走向,又是一大堆数据。

最后,这些数据得绕成一个圈。

绕圈是一件困难的事情。特别是功能和道具多了起来的时候。难度是2的n次方。

美术:

UI。简洁漂亮的界面总会有好处。

小图标。道具,地图,装备。一类至少10个吧?大体上百把个是需要的。

程序分5个部分:

服务器定时器。(C语言或自己设定服务器)定时循环执行某一段代码。而这段代码主要是根据数据库的数据进行更新。这个可以找个C语言程序员来做。对于C语言程序员来讲,这个功能是相当的简单。当然,具体的处理数据的判断和操作数据库,需要你自己写。让C语言程序员给你段标准代码就行了。完全支持sql语句的。

功能页面、功能函数。主要就是数据存取,判断,数据走向。

ajax函数。(可选)某些需要伪即时的功能要用到。

javascript函数。(可选)模拟客户端的数据计算。也就是webgame的与时间相关的数据。分为两部分。一部分是真实数据,是由服务器端的定时器计算的。另一部分是只有初始值,客户端显示用的。不需要即时同步,仅仅需要模拟同步就行。

webgame开发简明教程II(游戏模式)

一、游戏模式。

目前webgame游戏模式大体上可以分为以下四类:

1、玩家拥有一个城市,不断的升级城市内建筑,建筑可以自动获得物资,可以生产Army,Army之间进行对比数值的战斗。这里我简单的称为Ogame模式。

比较优秀的代表:战神世界II,Travian,Ogame,武林三国,纵横天下,领主online,乱舞春秋,热血三国,方便面三国等等。

这是一个比较成熟的模式, 但正因为成熟。因此,玩家接触到这类游戏比较的多,除非你能超过这些优秀的代表,否则就只是简单的重复开发。

对玩家来说:

优点:Ogame模式模拟一个君主,发动一系列战争。满足君主的成就感。

缺点:玩Ogame模式的游戏需要足够的耐心。当然有钱也行。

对开发者来说:

优点:有相当多的地方可以参考。甚至有源代码参考。(Ogame的源代码)

缺点:不管名字怎么改,策划怎么策划。本质没有变化。换汤不换药,玩家不是傻子。

Ogame模式所获得的成功,就像传奇刚出来的时候。不是因为这个模式非常好,而是因为暂时还没有更强的模式超过他。所以,如果你想做网页游戏赚钱,而不是好玩,或者仅仅为了架设一个自己的服务器。那么请从新开发一种新模式。

2、游戏的核心就是战斗,不断的战斗,不断的完成任务。这里我简单的称为Ebs模式。

比较优秀的代表:EBSII,web幻想(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

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

6)NPC表

id

NPC名字

NPC图片

NPC对话

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

5、公会系统。

公会是一个类似虚函数的东西。

公会说,进攻某个地方。

这时候,如果有多个公会玩家去进攻某个地方。从1v1,形成了貌似Nv1。

公会本身,不用管玩家到底如何进攻法。

公会系统和任务系统结合。能够产生很强大的游戏成就感。

6、地图系统。

网页游戏的地图系统,其实跟网站导航很类似。

不同的是,网站导航可能只需要几个连接就行了。

地图系统会复杂一些。可能有图片,连接更多,有的还需要自动生成。

有的是XXX*XXX个点(图片或连接)组成。

个人觉得看成是模板就行了。最简单的就是地图系统(不同于网络游戏,还需要检测碰撞、寻路,一大堆算法)。当然,你要做成跟网络游戏很类似的地图,那也没办法。找本游戏开发的书看,都有讲。

总结:

经济系统、消耗系统、消息系统是基础。

任务系统、公会系统是升华。

地图系统是容器。

三、如何分析网页游戏的优缺点

站在开发者的角度:

分析网页游戏,就是分析它的六大系统如何。分析网页游戏的核心,就是分析它的消耗模式。

Ogame模式的游戏:

经济系统:中级,生产场所自动生成。没有单人打工。有商店,拍卖行不健全。道具不丰富。

消耗系统:出兵战斗,等待时间,返回战斗结果。

      发现敌人有进攻,转移资源。

附加型的英雄模式,对出兵战斗有一定影响。

消息系统:初级,站内短信息。有的加个简单聊天室,大部分是通过论坛。

任务系统:中级,修建任务,获得道具任务,战斗掠夺任务(实质还是获得道具)。

公会系统:中级,集合多人兵力的兵营。没有公会任务。公会内简单的消息发布。

地图系统:中级,有的有图片,有的是数字和列表。表现了一定的距离关系。

Ebs模式的游戏:

经济系统:初级,通过战斗获得道具和资源。没有打工,没有生产。有商店,拍卖行不健全。道具不丰富。

消耗系统:战斗。继续战斗。

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

任务系统:初级,不断的战斗。

公会系统:初级,简单的玩家集合。没有公会任务。公会内简单的消息发布。

地图系统:初级,没有地图。或者地图就是几个连接。没有距离关系。

mmRPG模式的游戏:

经济系统:初级,通过战斗获得道具和资源。没有打工,没有生产。有商店,拍卖行不健全。

消耗系统:战斗、合成。

      附加型的人物养成。

消息系统:中级,站内短信息,局部聊天室,全局聊天室。

任务系统:中级,战斗任务,传递任务,合成任务,升级任务(其实也是战斗任务)。

公会系统:初级,简单的玩家集合。没有公会任务。公会内简单的消息发布。

地图系统:中级,有地图。有距离关系。地图关系比较复杂。

经营类模式的游戏:

经济系统:中级,有生产场所自动产生资源。有打工,有生产。有商店,拍卖行。

消耗系统:比赛任务、生产场所获得更好效率。

            附加型的人物养成模式。

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

任务系统:中级,比赛任务,传递任务。

公会系统:初级,简单的玩家集合。没有公会任务。公会内简单的消息发布。

地图系统:初级,简单地图。有的有距离关系,有的是简单的图片连接。

上面写的等级,只是一个大概的概念,仅作参考。

个人观点是,初级的系统有可能在投入较少的情况下,获得质的提升。

中级的系统,很难获得更高的提升。当然,牛叉的人例外。

四、完善旧有模式,开发新的模式

Ogame模式的游戏,从系统的角度看,能获得提升的地方不多了。因此都是在比美术,比运营。

还没听说哪个小公司,因为运营ogame模式的游戏盈利颇多的。盈利的都是大公司,一年几百万,上千万的都有。

(注:最近的数据,可能充值量更高的都有。)

Ebs模式的游戏,能获得提升的地方满多的。但是都不是核心的消耗系统的提升。而是其他系统的提升。

消耗模式不断的打怪。本身有一定的硬伤。游戏的平衡很难保证和保持。但如果小公司运营,还是有可能盈利的。包括无心宠物,EBSII,做好了。只是广告收入都很可观的。运作得好,一年10万20万,问题不大。但是不能跟大公司运营的Ogame模式游戏比。

mmRPG模式,提升空间很大,投入很大。竞争对手很强大。竞争对手,就是有客户端的网络游戏。这也是mmRPG模式网页游戏的硬伤。

收益上,看平台本身够不够大,够大的话,能维持。平台小了。等着倒闭。不推荐个人或小公司介入。不过还是那句话,牛叉的人除外。

经营类模式,有一定提升空间。(其他不太清楚也不太懂)

再回头看看六大系统。

经济系统 消耗系统 消息系统 任务系统 公会系统 地图系统

其中,区别最大的是消耗系统。其他5个系统都有一定程度上的雷同。

因此,个人开发者,以及小开发团队或小公司。

五、要想在竞争中脱颖而出,可以向着三个方向发展。

一、通过策划,让原有的系统的模式产生新的游戏感受。

如:
www.webgame.com.cn   的web航海。对Ogame模式的修改值得借鉴。虽然是航海游戏,但核心模式没变。比较巧妙的把Ogame模式转化为了探险类的游戏。

这类修改,将6个系统重新进行了一定的包装。对新玩家有较强的吸引力。但对老玩家,效果不一定好。因为模式并没有改变。

这个方向,需要策划相当的强悍和敏锐。

二、开发新颖的消耗系统。或者说游戏性较高的小互动游戏。

比如:七日工作室开发的病毒游戏。(该连接有一定时效性,最新连接在
http://www.zhwebgame.com 上。七日工作室群:70996701)

因为一个扩展性良好的消耗系统,可以很方便的放入到已有的游戏中。并且其自身也可以演化出很多新的消耗系统。

比如病毒游戏,通过它的模式,可能演化为,房地产抢土地的游戏;战争中,争夺至高点的游戏等等。

三、开发除了消耗系统外的其他系统。或者说叫做网页游戏框架。

因为不管你消耗系统如何新,如何好玩;始终需要其他系统支持。而其他系统的功能,可以说很难有较大的突破。

能突破的就是:

如何方便数据的管理修改;

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

如何留好合适的接口,以方便的与消耗系统结合。


小结:

选好一个方向,并做到比较高级的水平。这是网页游戏开发者比较实际的方向。

如果能够把这六大系统都做到新颖、实用、高扩展性、代码简单易懂。那么可以预见,一个成功的网页游戏必然出现。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/133796.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • layer执行父窗口ajax方法,layer 弹出层 回调函数调用 弹出层页面 函数

    layer执行父窗口ajax方法,layer 弹出层 回调函数调用 弹出层页面 函数1、项目中用到layer弹出层,定义一个公用的窗口,问题来了窗口弹出来了,如何保存页面上的数据呢?疯狂百度之后,有了结果,赶紧记下。2、自己定义的公共页面方法:layuiWindow:function(options){vardefaults={title:’添加菜单’,width:’100px’,height:’100px’,url:”,shade:0.3,btn:[…

  • 最火的C语言编程软件,适合编写C语言代码的编程软件有哪些

    最火的C语言编程软件,适合编写C语言代码的编程软件有哪些C语言基本上是大学计算机及其相关专业在大一上学期就会开的一门课程,但是很多学生就是在大一上学期期末的时候很着急,因为自己完全没有学好C语言,感觉一学期白学了,其实究其主要原因,还是因为你在上课认真听了,也做了课堂作业,但是却没有在课后好好的自己去主动敲代码,笔者不能让你有多主动去自己实践,但是笔者可以给你介绍几款更好的写代码的软件(手机电脑都可以)。C语言作为一门起源比较早的编程语言,可以编程的手…

  • Java集合Stream类filter的使用

    Java集合Stream类filter的使用之前的Java集合中removeIf的使用一文写了使用removeIf来实现按条件对集合进行过滤。这篇文章使用同样是JDK1.8新加入的Stream中filter方法来实现同样的效果。

  • Hibernate学习笔记:hibernate二级缓存攻略

    Hibernate学习笔记:hibernate二级缓存攻略
     hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级缓存就失效了。
    二级缓存是SessionFactory级别的全局缓存,它底下可以使用不同的缓存类库,比如ehcache、oscache等,需要设置hibernate.cache.provider_class,我们这里用ehcache,在2.1中就是
    hibernate.cache.provider_class=

  • LDC1314和LDC1312的使用

    LDC1314和LDC1312的使用一、检测原理LDC1314的每个测量通道会连接一个LC谐振器,然后LDC1314驱动谐振器产生震荡,在LC谐振器的电感中会通过交流电,进而会产生电磁场。往这个电磁场中放入导体,导体表面会感应出涡流,涡流的大小与导体的大小、构成、与电磁场的距离有关。导体中的涡流也是交流,进而会产生它自己的磁场,并且与LC谐振器的电感产生的磁场相反,进而影响LC谐振器的震荡频率。LDC1314会不…

  • python和java哪个更值得学_java和python「建议收藏」

    python和java哪个更值得学_java和python「建议收藏」从去年到现在IA人工智能热度一直都是上升,而且很多有经验的程序员也打出“2018年不学习Python还能学习哪种编程语言“的口号,可对于初学者来说,Python相对比较简单。Python的语法类似于伪

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号