Unity2D项目-平台、解谜、战斗! 0.2 序言:团队在线协作方案、基线控制
各位看官老爷们,这里是RuaiRuai工作室,一个做单机游戏的兴趣作坊。
本文跟大家聊一下笔者团队中所使用的在线协作的诸多工具,以及使用这些工具的目的和所记录的内容,希望这些内容在大家团队工作中有所帮助。
文档管理
笔者团队中主要记录了以下文档:
游戏设计文档
玩法及机制文档
剧情文档
关卡设计文档
创意点文档
程序设计文档
版本说明文档
模块设计文档
类说明文档
文件头注释及内部注释
项目管理文档
长期进度规划
短期任务规划及任务分解
bug列表
会议记录文档
这些文档中,有些文档是需要随着进度的定期更新的,如关卡设计文档、版本说明文档等,这些文档一般有专人负责维护,在笔者的小团队中,一般是谁负责这个模块谁负责写该模块的文档;有些文档是实时更新的,比如bug列表、短期任务规划,一般来说这些文档是随着工作的推进随时可能更新的,而且任何团队成员都有可能对这些文档进行随时修改;还有些文档是一经编写、核验便在整个项目中不会变动或极少变动的,比如长期进度规划文档、软件需求规格说明书(游戏项目中比较少见)等,这些文档在整个项目中起到参照、引导方向的作用,故需要谨慎编写、反复核查。
根据这个分类,笔者团队中采用不同的方法管理这些文档:
对于需要定期更新的,文档名以及文档头会根据当前项目的版本号自行扩展文档版本号,采用版本迭代的方式进行管理,比如
当前项目的版本为0.1.2,那么相关玩法设计的文档可能为0.1.2.1\0.1.2.2等。主策划负责维护这个文档版本系列,并将以往的所有文档保存在文档管理工具中。
对于实时更新,任何人都可能编写的,我们采用在线文档的方式进行管理,一般这样的文档只需要一个文件即可。文档内容实时保持当前工作进度的最新进展,已经完成的任务项或是已经失去时效性的信息便会放在文档末尾的历史记录中留存。
对于一经编写,极少变动或者不会变动的文档,在团队公开文档中只需要留存一份只读文件即可,改写权在项目组的项目经理或组长手中。
在文档方面,不管使用使用何种管理工具,我们只要找到一种合理的方案就可以,笔者团队中使用群文件管理变动较少的文档,使用git版本控制管理与版本有关的文档,使用群在线文档管理实时更新文件。
设计图管理
在团队搭建伊始,大家都没有协作经验,只是简单地搜集了一下信息就决定使用ProcessOn来管理和协作各种设计图。在大佬的指导下,我们了解到了draw.io开源工具,我们才将所有的设计图搬运到了draw.io下面。
(英文不好的小伙伴记得切换中文界面噢,吹爆draw.io
版本控制
当然首推git,但是在使用git进行版本控制中我们也遇到了相当多的问题,比如.gitignore配置不正确导致的vs项目同步失败问题,美术资源导致的带宽过小问题,场景数据和prefab数据的merge问题。在此我们只是对每个遇到的问题做一个解决思路上的概括,不做过多的细节描述,对于上述问题的细节解决方案已经存在很多博客可以参考。
.gitignore配置不正确导致的vs项目同步失败问题
首先,.gitignore文件中记录了git在本地仓库文件夹中中不予追踪和同步的子文件夹、文件格式等一系列文件。而在unity中(默认使用vs进行C#开发),我们只需要对项目结构中的部分文件进行同步和版本控制,比如Assets文件夹下的资源文件和脚本文件、package文件夹下的资源包插件包等。其他的诸如vs本地化配置文件\文件夹等则不需要进行同步,这部分文件我们需要在.gitignore文件夹中指名,否则如果这些文件通过远程仓库进入了其他机器,会造成路径丢失、配置冲突等本地化问题。
在这里建议在github中搜索.gitignore,在官方给出的unity.gitignore中做一些针对自己项目的改动(如果不确定你在做什么,直接使用官方的.gitignore就好!)

美术资源过大导致同步速度难以接受问题
用其他工具进行资源同步吧!我们没有做过多思考和调查,简单地使用一个群文件+版本号进行控制,当然这种随意的控制方式可能会有潜在的风险,希望有相关经验的朋友不吝赐教!
场景数据和prefab数据的merge问题
首先我们需要将unity的文件储存形式配置为可序列化而不是二进制文件,这样做就允许了git比对不同版本的场景\prefab数据文件的差异,从而进行自动merge操作,当无法自动merge时,便在序列化的文件中做出标记,指示我们进行手动merge。我们顺着这个思路,便可以将存在merge conflict的序列化文件以文本格式打开,像手动合并代码一样merge这些文件。
实时交流方案
我们是游戏团队所以当然开发了一套最先进的AR全息会议来实现实时交流啦
我在想批次.jpeg
笔者团队经历了时长越2个月的线上协作,这段时间给笔者的最大感受就是:需要像问小朋友要作业一样问你的组员要成果...
确实,线上协作的距离感无可避免地带来了管理上的困难,这就需要项目负责人花很多心思在凝聚这个团队上,在保证团员的紧迫感和摸鱼带来的心理压力之间找到一个可以忍受的平衡(我是哲学家吗2333)。当然,团队管理并不是今天的主要话题,那么回到主线,在这种情况下如何进行有效的在线实时交流呢?
笔者团队采用的方案是不定期在线会议+每周工作汇报+1h内找必回制度,即
1. 根据工作进度和团队成员的状态不定期(约1~3天)开一次短会,主要是工作进度分享、工作任务分解、问题讨论、团队氛围建设(瞎b聊天)等内容。
2. 每周进行一次较为正式的定期会议,每个人口头汇报工作内容、工作状态、问题反馈等内容,并每周安排一名组员进行激动人心的游戏安利环节,同时安排另一名组员进行会议记录。
3. 1h内找必回制度,即在工作群中,若有相关工作的问题交流,对应模块的负责人必须在1h内予以接洽,否则进行惩罚(0.0我是被罚最多的)(是因为我负责模块最多啦)a
在这套方案的使用过程中,笔者认为所谓张弛有度还是可以保证的,即让队员有一个较为轻松愉快的讨论氛围,又不至于影响工作效率,或者说流于形式。当然,在具体实施管理交流方案中最重要的还是项目经理和项目成员的各方面能力和性格,所谓人定胜天。
小结
笔者本想通过本文介绍一些工具的使用方法和技术上的问题的阐述,没想到说着说着有感而发,逻辑就顺道了团队管理的经验上去,不过这也是我最想和大家分享得内容吧。本文我们介绍了笔者团队所应用的文档管理办法、设计图管理工具、git的使用经验和在线交流和团队管理经验,希望这些内容能够对已经阅读到这里的你有所帮助,特别是关于团队管理方面的心得。
感谢您阅读到这里!那么今天的分享就是这些,欢迎访问:
整个项目原型github地址:
www.gitHub.com/yunshiyue/elementgame
最后,这里是RuaiRuai工作室,一个做单机游戏的兴趣作坊,希望你对我们的项目能提出各种意见和想法,也欢迎各种合作!
下期再见!

Unity2D项目-平台、解谜、战斗! 0.2 序言:团队在线协作方案、基线控制的更多相关文章
- Unity2D项目-平台、解谜、战斗! 0.1 序言:团队、项目提出、初步设计、剧情大纲
各位看官老爷们,这里是RuaiRuai工作室(以下简称RR社),一个做单机游戏的兴趣作坊. 本文跟大家聊一下社团内第一个游戏项目.算是从萌新项目组长的角度,从第一个里程碑的结点处,往前看总结一下项目之 ...
- pythonchallenge 解谜 Level 0
解谜地址: http://www.pythonchallenge.com/pc/def/0.html 这题没什么难度,意思就是得到2的38次方的值,然后,替换 http://www.pythoncha ...
- Unity2D项目-平台、解谜、战斗! 1.2战斗组件Defence、Attack
各位看官老爷们,这里是RuaiRuai工作室,一个做单机游戏的兴趣作坊. 接上文,我们定义了两个分别具有"攻击"和"被攻击"语义的组件CanFight和CanB ...
- Unity2D项目-平台、解谜、战斗! 1.1战斗底层组件CanFight-CanBeFighted
各位看官老爷们,这里是RuaiRuai工作室,一个做单机游戏的兴趣作坊. 本文对该2D项目中战斗底层组件的开发及设计思路做一个总结,希望各路同行多多交流,各路大佬多多指点. 实例特征分析 首先对于各个 ...
- Unity2D项目-平台、解谜、战斗! 1.5 Player框架、技能管理组件
各位看官老爷们,这里是RuaiRuai工作室,一个做单机游戏的兴趣作坊. 前文提到,凡是有"攻击"语义的对象,在游戏中,我们给予其一个"CanFight"组件予 ...
- Unity2D项目-平台、解谜、战斗! 1.3移动组件
各位看官老爷们,这里是RuaiRuai工作室,一个做单机游戏的兴趣作坊. 在这一篇中,我们将会自顶向下地讨论本2D游戏中主角不可或缺的一个功能--移动控制. 首先我们简单分析一下2D游戏中主角与移动相 ...
- [转帖](整理)GNU Hurd项目详解
(整理)GNU Hurd项目详解 http://www.ha97.com/3188.html 发表于: 开源世界 | 作者: 博客教主 标签: GNU,Hurd,详解,项目 Hurd原本是要成为GNU ...
- eclipse里面构建maven项目详解(转载)
本文来源于:http://my.oschina.net/u/1540325/blog/548530 eclipse里面构建maven项目详解 1 环境安装及分配 Maven是基于项目对象模 ...
- Redis 配置文件 redis.conf 项目详解
Redis.conf 配置文件详解 # [Redis](http://yijiebuyi.com/category/redis.html) 配置文件 # 当配置中需要配置内存大小时,可以使用 1k, ...
随机推荐
- 星盟全球投资副总裁DENIEL SOIBIM:如何激发创造力
丹尼尔·索比姆毕业于加州理工大学,2005年通过创建投资俱乐部对潜力公司进行天使投资,获得了美国Blue Run高层的重视,任营收专家评估师,为Blue Run项目提案做风险评估,09年与泰勒·亚当斯 ...
- Win10安装VSCode并配置Python环境 完整版超详细简单【原创】
我们分为三个步骤进行: 一.下载VSCode 二.配置Python环境 三.测试Python 一.下载VSCode 1.打开国内镜像vscode下载地址,即可自动下载:https://vscode.c ...
- [Python] Matplotlib 图表的绘制和美化技巧
目录 在一张画布中绘制多个图表 加图表元素 气泡图 组合图 直方图 雷达图 树状图 箱形图 玫瑰图 在一张画布中绘制多个图表 Matplotlib模块在绘制图表时,默认先建立一张画布,然后在画布中显示 ...
- JDK源码阅读-FileOutputStream
本文转载自JDK源码阅读-FileOutputStream 导语 FileOutputStream用户打开文件并获取输出流. 打开文件 public FileOutputStream(File fil ...
- HQYJ嵌入式学习笔记——C语言复习day2
1.计算机的数值表示 数值类型和非数值类型 二进制 0,1 (0b1001) 八进制 0~7 (0146) 十进制 0~9 十六进制 0~f (0x3f) 八进制转二进制-->一位八进制数换 ...
- openwrt编译加载龙尚U9300模组上网
硬件平台:MT7628A openwrt版本:MTK_SDK 1.添加模组信息 /build_dir/target-mipsel_24kc_musl/linux-ramips_mt76x8/linux ...
- Qt+opencv亲自配置教程
了别人的配置,总是无法配置成功,自己慢慢摸索配置成功.我失败的原因是在于自己本机的环境变量和他们不同,特此记下,分享给有相同问题的朋友. 一.需要软件 1.cmake 3.11.3(版本无所谓) 2. ...
- 181. 超过经理收入的员工 + join + MySql
181. 超过经理收入的员工 LeetCode_MySql_181 题目描述 方法一:笛卡尔积 # Write your MySQL query statement below select e1.N ...
- POJ-2387(原始dijkstra求最短路)
Til the Cows Come Home POJ-2387 这题是最简单的最短路求解题,主要就是使用dijkstra算法,时间复杂度是\(O(n^2)\). 需要注意的是,一定要看清楚题目的输入要 ...
- CCF(317号子任务)-35分:Dijikstra算法
317号子任务 201903-5 为了过前60分,想使用dijikstra优化算法的,但是最后还是只过了35分.这里的思路只需要先将所有的行星据点进行一次dijikstra,分别存储所有点到行星的最短 ...