同时开发两款H5的ARPG游戏的设计和实践

"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

同时开发两款H5的ARPG游戏的设计和实践 - 弃天笑的程序世界
- 博客频道 - CSDN.NET

弃天笑的程序世界

专注于游戏开发。AS3、JavaScrirpt/TypeScript、Java服务端、持续集成,自动化流程

【活动】2017 CSDN博客专栏评选

&nbsp

【5月书讯】流畅的Python,终于等到你!
   &nbsp

CSDN日报20170522 ——《从个人习惯到真正的好方法》

   &nbsp

如何看待 Kotlin 成为 Android 官方支持开发语言?

同时开发两款H5的ARPG游戏的设计和实践

标签:
H5ARPG双项目手机游戏设计实践

2017-05-21 14:24
132人阅读
评论(0)
收藏
举报

本文章已收录于:

.embody{
padding:10px 10px 10px;
margin:0 -20px;
border-bottom:solid 1px #ededed;
}
.embody_b{
margin:0 ;
padding:10px 0;
}
.embody .embody_t,.embody .embody_c{
display: inline-block;
margin-right:10px;
}
.embody_t{
font-size: 12px;
color:#999;
}
.embody_c{
font-size: 12px;
}
.embody_c img,.embody_c em{
display: inline-block;
vertical-align: middle;
}
.embody_c img{
width:30px;
height:30px;
}
.embody_c em{
margin: 0 20px 0 10px;
color:#333;
font-style: normal;
}


分类:

Html5(5)

作者同类文章X

版权声明:本文为博主原创文章,转载必须声明出处和作者。地址:http://blog.csdn.net/sujun10 作者:弃天笑

前话

这里主要是想记录一下自己的想法,以及一些设计思想,然后在实际开发过程中,是否会遇到一些自己所想不到的事情,以及怎么的解决过程。事实上,写这种文章,远比写技术性的文章难多了,个人感觉还很难写好。这里写也仅是自己的观点,一种想法和思考,不代表完全正确,共勉而已。

一、开发背景

两款ARPG游戏,一款相对简单一些,偏挂机的ARPG游戏,另外一款是比较类似传统的ARPG页游。跟传统的项目换皮再上线还是有比较的的区别的。

1. 确定战斗系统的机制是一致的,其他细节的功能会有所区别

2. 已有AS3的回合制以及ARPG项目和相关开发经验

3. 多页游积累的相关工具以及流程

4. H5的arpg demo已经实现了基本的角色、地图和基础简单的战斗系统(前期做的技术预研)

5. 几乎要重新开发全部客户端Html5的代码(基于TypeScript,但可移植部分之前AS3代码)

6. 服务端相对好点,上个页游也是用Java写的,所以服务端可以进行比较好的迁移。

二、两项目之间复用代码的设计思考

由于几乎是同时开发两个类似项目,又没有一个比较接近项目进行换皮。再者项目开发进度也紧,人力也有限。为了最大限度提高开发项目效率,节省资源。对两个项目进行整合,尽量复用代码,最好也最快的解决方案。下面是一些考虑执行的方案。

基础通用设计

最基础的,和具体的业务逻辑没有关系的代码和设计放到这里,不用考虑和纠结的。基础也大量移植原有AS3的代码,在稳定性和实用性都有一定的保障。

非代码类

1. 保持代码结构一致(代码包名等等)

2. 保持游戏资源目录结构一致(ui、场景、角色、物品等等)

3. 保持动画格式、ui编辑、动作编辑器等工具保持一致

4. 保持各种目录结构、ftp、持续集成服务器一致

5. 其他开发流程,相关规则保持一致

6. 项目配置、编译参数、编译工具(Egret Wing IntelliJ IDEA)

7. 通讯协议、策划数据尽量采取类似或者通用的方案

具体的版本管理图:

代码库

1. 自研基础代码库(通用类、工具类、mvc框架类……)主要移植和编写基础代码,跟具体的游戏类型没有关系的通用逻辑代码。

2. 第三方代码库(Json,MsgPack等等……)

3. 游戏引擎包(场景、地图、角色体系……)这里算是指定是开发游戏用的,但是这里还是根据可以做到不跟具体游戏类型。保留通用的游戏机制的代码库。

4. 战斗系统。战斗系统是引用前面3条的代码库,这里做得只能是arpg的战斗系统。这里会处理两个项目通用的战斗逻辑。以及面向接口开发,部分具体的实现是在不同的项目里开发的。

项目代码设计

1. 通过基础库和core库的分离设计,项目集中在写自己的项目,core库不能引用具体的项目代码

2. UI布局和逻辑分开。每个项目UI布局肯定不一样,但是部分逻辑是通用的,所以重点是这方面的设计。提取出公共的UI接口,然后项目分别实现。根据项目类型来不处理某些接口(单个项目独有),如图:

会有专门存放接口的包名(其实应该放在core里,然后实现类放在具体的项目),UI结构示意图

UI的接口和实现

另外一种情况,就是UI功能变化比较大的时候如何处理呢?假如有一半一样一半不一样

这里可以采用共享LoginView基类了,在这里处理公共逻辑,具体的子类处理不同的UI逻辑。如果要更多的

重用,就得把基类的粒度做得更加细一些,当然做太多其实反而是浪费精力,应该根据项目具体的情况来决定使用什么的设计技术。

3. 功能模块之间采用事件派发,这样只需要处理事件,不具体处理项目,可以做到逻辑共享了。 这里分几种事件机制:core事件、cmd事件、mvc事件,项目独有事件。做了细致的分离,根据不同的功能使用不同的事件,提高开发和运行效率。

非技术方面

1. 两个项目都会指定负责人,希望项目进度和管理能够及时跟进

2. 两个项目的开发人员会交叉开发,类似和相同的功能模块,尽量同一个人开发,节省人力资源

比如背包、登录、创角、聊天等一些功能。

3. core库只能有1,2个人才能维护,其他人只有使用权,没有修改和提交权。不同项目还会开分支,同步到主干之后,还需要两边项目都调通。

4. 策划层会也会尽量沟通,除去玩法之外的一些功能模块,也会互相探讨,尽量做到至少是在数据结构上可以保持一致。比如技能、地图、角色设置等一些通用的设置

三、实践

刚开始基本上是按照前面的设计来进行的。挂机类aprg(见现在到处跑的传奇世界H5类型)先进行开发了半个月,所以这半个月首先是开发一些最基础和最通用的功能,同时也是完善角色场景以及战斗体系。

先做基础功能主要也是为了第二个项目也能够使用这些开发好的模块。

半月后同时进行第二个项目,刚开始其实还是蛮顺利,大部分也按照开始的设计来进行。只是后来因为项目原因,工作量也大,开始出现了一些问题了。比如因为项目赶,有部分功能没考虑设计,使用了简单粗暴的移植法。虽然快速做好了,但是有bug的时候,就必须在两个之间进行修复了。

另外就是core库的战斗系统设计得不够严谨,会修改得比较多,一不小心就会造成另外的项目跑不起来了。

所以在一些系统稳定前,总会踩下这些坑,得小心翼翼了。

人员的不足,不是每个模块都能按照之前设计那样,两个类似的模块同一个人维护,所以有时难免要维护或者移植别人开发的模块。

后面也是有陆续根据项目的具体情况调整一些方案,以及陆续补充core库的代码。

四、后记

其实这blog的内容一个多月前就开始了,结果直到现在才算是勉强写好。双开的结果就是连写blog的时间都没有,一天至少是当1天半来使用,写这个文章的热情也淡下来了。好在之前也写得差不多了,现在也没做太大的修改,有些设计和想法还是挺好的,在实践中也得到验证。总体有这种想法和设计,对于团队后面的工作展开还是有很大帮助的。

最后团队这种高压下,进步也是挺大的。同时也看到了团队强大的应变能力以及开发能力。

双开的很多的,发现真的很难用一些言语来描述,跟换皮做项目是两回事。不过总体还算顺利,虽然有些坑,不过也后续中慢慢填补上来,尤其是招到了足够的人手后,很多问题都得以解决了。

时间: 2024-08-08 21:07:38

同时开发两款H5的ARPG游戏的设计和实践的相关文章

分享两款好玩的单机游戏^_^

时空幻境 下载链接:https://pan.baidu.com/s/10M3WyN5pDqR8OcAYnjod2g,提取码:zk3q 狙击精英V2 下载链接:https://pan.baidu.com/s/18QiZ53RfDDH5FkGDD7Rf_Q,提取码:kxn2 P.S. 启动游戏时若提示缺失d3dx9_43.dll,安装DirectX便可解决 原文地址:https://www.cnblogs.com/buyishi/p/10667406.html

我想开发一款小程序,怎样才能快速上手并上线?

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 2017 年 1 月 9 日,微信正式发布了小程序应用.之后,我们陆续收到了一些开发者留言和反馈.这里面,问最多的就是: 我是做开发的,但我没做过小程序开发,现在,我想快速开发一款的小程序,怎么办? 直到如今,类似这样的问题还在不断地涌现. 为此,本期云+社区技术沙龙,邀请来自腾讯云.微信.NOW直播.有赞等行业顶级技术专家,于4月28号首赴上海,从技术实战的角度,分享最全面的微信小程序设计思路以及开发方案,将你领进「小程序开发」的大门

关于h5房卡棋牌平台搭建,如何开发一款游戏

Q1446595067官网:h5.haozibbs.com关于如何开发一款自己的游戏项目(目前只说客户端),就说说自己的个人观点,自己YY的,不喜勿喷.. 首先,要做一款游戏,如果你要做一款有网络的游戏,有用户数据保存的,那么首先就要有一个服务器,然后我们才能基于unity开发的这个客户端去跟服务器通信,(如果是做单机,那么就请忽略这第一步)我们使用unity跟服务器通信这个机制,叫做网络通信,一款游戏刚开始时,会定好准备使用的是什么网络协议,基于什么网络协议,一般来说都是socket通信,然后

使用Cocos开发一款简单的3D VR抓钱游戏

使用Cocos开发一款简单的3D VR抓钱游戏 最近VR成为了一个新兴的热点,很多以前从事游戏开发的团队都在关注这个方向.如何在VR时代来临之际快速的掌握开发VR游戏的方法,这对于很多中小团队来说,是一个要考虑的问题. 目前市面上有很多3D引擎已经开始支持VR功能.特别是虚幻,Unity等引擎对于VR这个领域都非常重视,但是国内这几年有大量的手游团队在使用Cocos2d-x来开发游戏项目,现有人员的的经验对于游戏开发非常宝贵,更何况目前VR领域并未出现很好的CP盈利案例.短期内贸然转型,放弃现有

[Android游戏开发]八款开源 Android 游戏引擎 (巨好的资源)

初学Android游戏开发的朋友,往往会显得有些无所适从,他们常常不知道该从何处入手,每当遇到自己无法解决的难题时,又往往会一边羡慕于 iPhone下有诸如Cocos2d-iphone之类的免费游戏引擎可供使用,一边自暴自弃的抱怨Android平台游戏开发难度太高,又连个像样的游 戏引擎也没有,甚至误以为使用Java语言开发游戏是一件费力不讨好且没有出路的事情. 事实上,这种想法完全是没有必要且不符合实际的,作为能和苹果iOS分庭抗礼的Android(各种意义上),当然也会有相当数量的游戏引擎存

Unity3D ARPG游戏开发《最初的幻想》之GUI背包系统实现

昨天做了角色暴击…GUI浮动提示栏.现在的话,终于该继续前天被残忍打断的物品栏之类的GUI界面了! 首先还是把“属性”.“物品”.“技能”.“系统设置”几个按钮放上去罢. 我是这样设计的: 美工方面确实不是俺的长处,资源也都是用的DaikonGUI自带的. 新建一个Panel,用于盛放这几个按钮,Anchor设置为Right和Bottom即可. 然后再将这个Panel命名为“MyBottomBar”,在这个Panel中新建四个按钮,放上相应的图标即可.如果为了好看点,还可以设置Havor状态的显

Unity3D ARPG游戏开发《最初的幻想》之第一张地图与跳跃的改善详解

前面我们终于实现了人物动画.相机控制及昼夜系统,现在继续吧,为了方便继续编写的敌人之类的脚本,所以打算今天先把第一张地图画个大概.结果,画了我好久的地图….. ≡(▔﹏▔)≡ 我对美术方面的天赋简直是惨不忍睹了…..加之地图中途画的差不多的时候Unity又崩溃了一次….忘了保存(ㄒoㄒ).于是又忙活半天….这个地图完全靠临时发挥了,第一张地图我画了好几次了,基本上每次画出来的地形之类的都完全不一样,所以就不多解释了,就上一张大概的场景图吧: 看起来好简单吧?唉……开启编辑器,这时侯如果在场景中转

Unity3D ARPG游戏开发《最初的幻想》之强化敌人AI,折腾的GUI

 昨天搞了死亡的完善与提示栏的工作.今天的话,首先再升级一下敌人的Ai吧.毕竟在玩家在敌人身后使劲攻击的话,这敌人也都不会有反应的,太不合理了. 打开Enemy脚本,在最前面"变量"标签中,先定义一个计数器,因为必须考虑到被同类"误伤"的情况: private int m_attackMeCount=0;//被一个同类对象攻击的次数 然后再在最下面的WaitForAttack函数中将自己的对象传入自己的攻击对象,以作判断: m_damageTarget.m_ch

移动应用和游戏开发两个阶段在线视频培训的未来计划

在51CTO学院开线上视频课程已经3个多月了,也上了不少课.不过发现还有很多课没有开.现在就将未来的开课计划公布一下.计划分为两个阶段.第一阶段主要是Cocos2d-x和Cocos2d-js的游戏开发培训.涉及到了<征服C++ 11>.<从零开始掌握Cocos2d-x 3.x>(共12季).<Cocos2d-x 3.x项目实战:仿微信飞机大战>.<Cocos2d-x 3.x项目实战:星空大战>,这是目前已经发布的4个课程,正在逐步更新中... 未来还会发布&