游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1082|回复: 0

[原创] HTML5游戏开发过程中的二三事之模块化开发的重要性

[复制链接]

0

主题

4

帖子

24

积分

注册会员

Rank: 2

积分
24
发表于 2019-3-6 21:09:26 | 显示全部楼层 |阅读模式
说到开发这个词,会有一种既陌生有熟悉的感觉。陌生是因为在日常工作中开发经常是程序做的事情,而熟悉则是因为作为游戏策划,我们在工作中又无时不刻的在接触一些开发的一些工作。其实为了项目的研发效率和成品质量,有部分开发的工作还是要策划去考虑的。比方说我们今天要讲的主角——模块化开发
对于策划岗来说,“设计”这个词远比“开发”来的亲切,因为在我们的工作中总是在不停的做设计,包括系统设计、玩法设计、UE设计等等。那么我们如果在“模块化开发”后加上“设计”一词会怎么样呢?很显然,这个词就变成了“模块化开发设计”,这样看起来是不是亲切了许多?
如果你对模块化开发产生兴趣了,那么就请继续往下看吧。
一、何为模块化开发
模块化开发顾名思义,就是将我们在策划案中设计的功能进一步拆解,然后将关系紧密,能组织到一块的功能从系统中剥离出来,进行单独开发。独立实现模块内的功能,并留有对外的接口。其实和面相对象的设计思路是一样的。
比如下面这张图,表示的是一个角色头像显示框:
图片1.png
在这个头像显示框中,包括了边框、底纹、角色Icon、角色名、角色等级等5个元素,当我们的界面中用到角色头像显示时,就需要用到这里面的一个或者多个元素。
我们把这个头像框视为做一个模块的话,只需要第一个制作该功能的程序实现一次该模块的功能,然后留出修改边框、修改头像、修改名称等接口。当其他界面再次使用到角色头像相关的功能时,就可以直接使用该模块,而不需要制作该功能的程序再写一遍同样的代码。
模块化开发有很多好处,这个我们在文章后面单独说明。
二、如何进行模块化开发
要进行模块化开发,首要的事情肯定是先设计要开发的模块。设计模块要求策划能够全面了解项目中的每个系统,包括一些细节上的规则。在了解项目的情况下,将一些复用率高的功能作为模块从系统中剥离出来单独实现。同时还需要设计具有一定的前瞻性,模块中将来可能会经常用到的规则也要提前考虑到,并留有一定的扩展空间(注意:不一定要马上实现)。
比如说上面的头像框的功能可能足够满足项目早期的需求,但是随着项目进度的推移,可能会增加变更名字颜色、在头像右上角增加VIP图标、在头像左上角显示在线状态等需求。如果毫无规划的增加,难免会出现部分规则冲突的问题。比如当vip图标和在线状态均设计在头像右上角显示,他俩如果同时显示就会出现重叠的情况。
我们设计并实现了头像框还不够,因为团队其他成员并不知道这个头像框功能已经实现了。所以在团队协作的时,我们需要建立一个模块对照表,便于团队成员快速查找需要的模块。同时在设计文档中最好能标明已有模块在对照表中的检索id,这样便于程序快速定位。
模块化开发不是一个人的事情,而是整个团队的事情。所以从设计到实现,再到后期的修改,都需要经过沟通,留下记录。以免出现为了改A系统的功能而影响B系统的功能的问题。
三、模块化开发的优势
之所以提倡模块化开发,是因为模块化开发具有以下优点:
1、提高开发效率
具体提高的效率根据项目的情况有所不同,如果项目中有大量复用率很高的模块,那肯定可以极大的提高项目开发效率。试想,一样的功能让不同的程序在实现系统时都去写一遍,无疑是走了很多冤枉路。况且同一个表现效果,由于每个人的习惯不同,可能导致最终写出的代码相差甚远,对后期维护产生了一定阻碍。
2、便于后期维护
回到上面举的头像框的例子,如果采用了模块化开发的思想,那么后期想要统一修改边框显示样式,就只需要对模块进行修改,简单高效。假使没有使用模块化开发的思想,每个界面上的头像框都是单独拼上去的,那工作量就会成倍增加。同时一旦出现BUG,则也需要修改多处地方,效率低不说,还容易出现BUG。
让我们回归到HTML5游戏上来,为什么说模块化开发是重中之重呢?因为HTML5游戏在追求简单,降低学习成本的同时还要求游戏具有一定的规模(RPG类),有足够多的系统和玩法支撑。这就导致了游戏中大量采用复用系统、玩法规则进行换皮的方式,并且绝大部分情况下,即使两个系统存在差异,但是他们仍然会有部分功能是复用的。例如进阶升级模块,在坐骑系统、宠物系统、助战系统中均会用到。此时如果将这3个系统交由不同的程序实现,那无疑每个实现该系统的程序都会写一套系统内的与升级相关的功能,极大的影响了项目的开发效率。
在这种情况下,将系统功能拆分为模块功能可以大大缩短研发周期,并且有利于后期的调整和维护。所以请使用模块化开发的思想设计系统,为你的团队插上翅膀吧。



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-4-19 18:22

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表