Cocos游戏设计心得(二)

哈喽大家好,我是妖妖,接着上期的我们继续说,游戏设计我的心得。

前面呢,我们已经提到过了游戏是使用分包设计的,每个包只包含游戏的部分内容,都是通过解压包的形式进行获取到包文件的,最后加载执行,那么每一个包要不要格式

统一点呢?答案是肯定的,这样主要的优点就是好看,哈哈哈!

我们暂时将每个游戏包定为这样:

 

<每个游戏包>
├─── initial     原始资源配置
├─── res        资源
└─── src        程序

原始资源目录 initial

这个目录可以存放一些当前游戏包的原始资源和配置表等,但是这个目录并不会算游戏的资源,仅做存放参与游戏开发时的一些东西,你可以认为他就是初始草稿文件夹,所以这个目录不会打包进包文件中。这个目录中可以存放一些如;

1. 游戏数据库配置文件,一般是使用ini,json,txt,csv,excel等根据个人而定,不过大多大型游戏都会使用csv,excel,因为策划配置的时候方便。
2. UI,特效与模型配置资源原始文件,这些你可以使用现成的工具导出,当然你也可以为了后期的发布方便着想,自己编写脚本使用的自动化工具(后期会与大家分享相关工具的制作)。
3. 也可以放网络协议文件,有可能你是用Protobuf进行的通信,有可能自定义的协议文件然后通过脚本转成不同语言版本的方式。4. 对于一些剧情较多的游戏来说行为树文件应该会有AI要用到。 
5. 一切认为与当前游戏包相关的东西都可以放在这里,当然最好目录清晰。

资源目录 res

 

<游戏包名:如(Fish)>
└─── res
┆   ├─── ...

有的同学可能会疑惑为什么res上还要有一层呢?这其实和游戏包加载后的游戏文件路径映射有关系。你可以试想一下,如果以后游戏多了不止一个游戏的话,在映射路径的时候都为res路径,加载游戏资源路径的时候会有什么后果,呵呵呵,完全不知道你找的是哪个res好嘛!所以在外侧再加一个也就成了避免包文件冲突的方式,虽然你可以采取其他方式,但是这个方法我认为是目前比较好的了。

程序文件目录 src

这个目录存放游戏的所有程序。当然程序也存在文件冲突的问题,所有也会有一层额外的包目录。目录结构大致如下;

 

src
└─── <游戏包名>       
┆   ├─── loader.lua   包加载器,可选内容可以自定义
┆   ├─── ui                 游戏ui控制模块
┆   ├─── logics         游戏逻辑模块
┆   └─── modules     游戏模块(不是每个游戏都要有,一般main包有一套就可以了)

loader.lua 当前包文件的加载器。每个包文件都有加载器,一般情况在解压游戏zip,加载完包文件后,会使用一个加载器处理loaderZipPack(zipName)做预加载一些资源配置,当然在完全不使用此包后,也可以使用加载loader.lua中的releaseZipPack(zipName)去卸载所有关于此包的内容;当然这个可选,如果没有则调用默认的加载器。
ui游戏UI控制,这是与游戏UI具体控件之间操作有关的东西,一般只专属于当前游戏。
logics 游戏逻辑,这是与游戏具体逻辑有关的程序集,一般属于当前游戏专有。
modules游戏模块,这是游戏的通用模块程序集,与具体游戏无关。

这里多提一下modules中的设计,一般会是这样设计一个Base.lua,一个Manager.lua文件进行配套使用,最终由Manager文件进行单例进行操作使用。如下

Cocos游戏设计心得(二)_第1张图片
在使用启动这些module时,可以在loader中集体初始化,如下:

这样我们可以方便很多的去书写我们相关的logic逻辑模块的内容了。

好了今天就到这里,你get到什么了吗?

(Cocos游戏设计心得(三)已经出炉请慢慢品尝)妖妖只为分享纯干货,谢谢!

其实这些设计理念也完全适用于Creator,有什么感觉说的不对的请各位大大们见谅。
最后留下博客以供学习使用妖妖:taoqy666.com

你可能感兴趣的:(Cocos2dx,游戏心得)