百家乐- 百家乐官方网站- APP下载Unity3D 游戏开发团队中各角色划分是怎样的?
2026-02-18百家乐,百家乐官方网站,百家乐APP下载,百家乐游戏平台,百家乐网址,百家乐试玩,百家乐的玩法,百家乐技巧,百家乐公式,百家乐打法,百家乐电子,21点,德州扑克,快三,pk10,时时彩,北京赛车
相比高度工业化的Unreal,不管是Unity的早期用户群还是今天的用户里,独立游戏开发者都占了相当大的比重。使用Unity的团队,能获得最佳用户体验的团队规模区间在1人-10人,20人靠上就必须要靠专门定制的工作流程和辅助工具来保证协作质量和效率。
Unity开发团队需要的角色,视项目的不同也有很大的区别。下面列出每个类型的团队成员和他们适用的项目范围。
逻辑实现者:工作是实现从游戏主循环到每个游戏元素的逻辑。在小团队里一般是唯一的一名程序员,在大团队里是GPP(Gameplay Programmer)。注意如果是独立游戏项目的话,借助第三方插件,非程序员也可以担任这个角色。
内容设计者(读作ce hua):在大团队里基本上就是策划职位,和传统策划的区别是因为Unity团队里负责这个任务的人基本上是一定要摆弄场景、制作prefab的,没有点动手能力光会写文档可不行。
美术:工作包括从游戏概念图的设计到模型动画等美术资源的设计制作。具体细分可以参考游戏工业标准,Unity团队也不例外。
交互设计和实现:界面设计、界面实现编程,由于Unity下有很多不错的UI插件,所以这份包括设计师和程序员的工作我给合并到了一起。在Unity下就算是由设计师自己来做交互实现编程也不会很难。
主程序/架构设计师:适用于大项目或大团队的高端职业,他们的主要任务不是生产用户能玩到的具体游戏性,而是为其他团队成员搭建一个可以沟通协作的框架或工具集。对大型Unity项目来说,如果团队里没有这么一个经验丰富思路清晰的高手,很快项目就会被各种突飞猛进(因为Unity开发新功能原型实在太快了,很容易让人忽略结构问题)的feature生产搞的累赘不堪,然后在没有人指导项目重构的情况下,生产效率从每周一个feature下降到每个月一个feature,还伴随无数难以修复的bug。
版本管理员:适用于大项目,最好精通Git或plastic scm这类分布式版本控制系统,好处是方便做branching而且可以拆分项目为多个子项目,Unity项目大了以后运行效率是很差的,拆分项目也有利于控制不同分工的团队成员的权限。
音效设计师:可选,推荐还是外包音效+内部实现的做法,因为Unity并没有一个完全封装好的音效中间件,如果音效设计师要进行实际调试,就要完全掌握Unity组件系统,在国内来说这个要求还是比较高的。怕麻烦的话拿到外包的文件然后让程序员或策划去导入和测试就好了。
和工业标准的游戏团队配置也差不多,不过可以注意到很多角色都打破了传统程序、美术、策划铁三角的分界线,更提倡全面发展。因为Unity的场景和组件系统决定了它很难像Unreal一样把工作流程完美封包然后让程序美术策划各负责流水线上的一环。场景里的一个重要物体,可能不同分工的团队成员都要掌握其配置方法,否则就无法单独对其进行修改和测试,这应该是Unity团队的最大不同吧。
实际项目经验证明,不懂游戏引擎的美术或策划,在Unity项目里连测试都要拜托别人,非常影响效率。所以看到这个答案的相关开发人员不妨多学点游戏编辑器知识。
一个做GUI,实现策划所设计的界面逻辑,比如【点击钻石跳转到充值界面】这样,还有就是界面动画。
原画:人设、武器、场景需要原画,一方面让建模人员好做出模型,一方面UI上也会用到一些;
排序在游戏开发中是一种十分重要的算法,特别是对于海量的数据,高效的排序算法,是核心与关键,排行榜也是一样的,我们要对全服所有的排行榜的玩家做排序,每次玩家的数据有变化,就会引发排序,最终让我们把排行榜的排名拉取下来。排序算法的性能非常关键点,主流的排序算法都是非常成熟的,对于海量的服务器数据而言,排序算法也有核心的实现模块,这里我们是基于redis 来做排序,redis提供了一个有序列表的功能,内部实现了海量数据的排序,我们只要把数据提交给redis的
然后redis就会给我们排序好,我们就可以拉排行榜前面的数据给客户端。排行榜的排序的核心算法全部由redis实现,我们直接用就可以了。
有了redis server来帮我们做排行榜内核,为什么我们还有搞一个排行榜服务器呢?不直接让客户端直接操作我们服务端的redis server呢?这个主要是有几个因素:
一般我们做游戏排行榜服务器会自己写一个服务端程序,这个服务端程序,作为redis-server的客户端来控制redis 有序集合的核心操作。让redis来帮助完成排序核心。然后游戏排行榜服务器就做好策略,比如最低权重机制,如果权重低于当前最小的权重,就不上榜,不上榜就不会有性能排序的开销等。
排行榜服务器提供协议接口给客户端使用,客户端根据协议来给排行榜服务器发数据,排行榜服务器检查验证游戏数据的真实性与安全性后再更新到redis server。
Unity如何要如何展示有200项排行榜数据的榜单,性能才会好呢?我们先来看一基本的排行榜展示的信息与数据内容,来简单分析一下,这个是某游戏的排行榜,如图所示:
如果我这个排行榜要显示100项数据,那么我需要创建1500个UI节点出来,这样性能肯定差。那么我们如何优化一个游戏排行榜或大量数据的滚动列表呢?
a: 减少显示的UI节点的数目,提升渲染性能。比如100项数据,其实我们滚动列表中能看到的也就只有10多项,所以我们可以做好数据分页,来做动态数据加载显示,比如每页10项显示的线项,这样就可以做到动态加载,同时UI节点的数目可控。
b: 节约drawcall,尽量让这些大量的UI节点能在一个或少数几个drawcall下完成,比如我们
,这样增加Uidrrawcall合并的可能,同时我们做排行榜设计的时候,不要让文字label打乱drawcall 合批,UGUI会对文字渲染合批做优化,在不影响渲染效果的情况下调整文字的渲染顺序,把文字放一起渲染,能获得最小的drawcall, 这样,我们在组织界面设计的时候,就不要让图片盖到文字上,如果有某一样的图片盖到文字上,那么就会使得这个文字Label无法参与所有文字的合批,而这个文字Label还会打乱图片渲染的合批。C: 对于UGUI来说,可以把排行榜都部署到一个根节点下,根节点搞一个UGUI的Canvas组件,减少大量合并计算的开销。


