序言
今天将开始一个新的专栏——Framework系列。之前一直在写一套自己的游戏框架,随着框架越写越多,希望通过文字的方式记录一下功能和自己编写时的思路想法,另外也和同学们分享交流一下。
起初是在开发小游戏,后来考虑到如果未来要陆续开发多个不同的小游戏,则需要创建多个不同的项目。为了创建新项目后能快速开始功能开发,则需要将一些通用功能提取出来形成一套通用的底层框架。
Framework的目的在于,第一是避免重复造轮子,将游戏中常用的功能、组件等模块提取出来。第二是形成统一的开发规范和开发流程,当一个人在开发多个项目时,可以无需过多熟悉如同开发一个项目,或者当有其他开发人员加入时,可以让多人开发如同一个人开发一样,大家有着相同的规范和流程。第三是在创建新工程时可以快速搭建环境,目标是只需导入Framework.unitypackage文件就可以快速构建起开发环境了。
Framework介绍
Framework并不只有一个工程项目,包括了Framework-Client(客户端框架)、Game-Client(游戏客户端)、Framework-Design(策划框架)、Framework-Resource(资源框架)、Framework-Server(服务器框架)。本人工作是做前端开发,所以Framework系列主要介绍Framework-Client部分,其他框架只在涉及到时稍作介绍。下面我们先来简单介绍一下这几个框架的作用和划分。
Framework-Client是用于客户端框架的开发的工程,Framework-Client并不直接用于游戏项目开发,而只开发框架功能。工程中主要包括框架代码,框架编辑器代码,以及框架提供的基本组件(如Prefab)等。Framework-Client会将框架源代码编译成dll文件在游戏项目中使用,最终会将框架导出成一个Framework-Client.unitypackage文件,其中包含框架dll、框架组件等。在开发新项目时只需导入Framework-Client.unitypackage,即可使用框架功能。Framework-Client还确定了目录结构,对项目开发中用到的代码、资源、配置、文件的摆放位置都做了规范。
Game-Client是游戏开发工程,在开始一个新项目时导入Framework-Client.unitypackage,就可以使用Framework-Client所提供的功能,同时也依照Framework-Client的开发规范进行开发。这样就可以在最大程度上确保不同项目间的统一和规范。
Framework-Design是策划用的工程项目,工程内包括功能文案、Excel配表、导表工具等。这里重点介绍的是导表工具,策划使用Excel进行数据配置,然后通过导表工具导出前后端各自所需的文件。导出的文件包括一个json文件,以及一个用于json解析的类文件。Framework-Design包含了导表工具的源码,而在开发游戏项目Game-Design时,导表工具会编译成exe文件提供使用。同样Game-Design目录结构也和Framework-Design保持一致,在开发不同项目时遵循同样的开发流程和规范。
Framework-Resource是美术用的工程项目,美术制作美术资源时并不直接在Game-Client工程上开发,而是在资源工程上制作完成后再导出到游戏工程上。Framework-Resource与Framework-Client的目录结构保持一致。
Framework-Server为服务器框架工程,服务器不重点讨论,核心思路还是统一开发流程和规范,让开发具有规范性。
关于Framework各个工程的功能后续会写博客详细介绍,尽请关注。
Gitee
下面是Framework的相关工程代码,欢迎小伙伴们学习交流。目前只上传了Framework-Client,其他工程后续会陆续上传。Framework工程仍处于不断开发阶段,所以工程项目会有少许测试代码,会有点草稿的味道,后续在发布时会整理完善再发布。
Framework-Client:https://gitee.com/huoyixian/release-framework-client.git