开发者网络

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 100|回复: 3

Unity游戏开发中排行榜的制作与优化

[复制链接]

3

主题

5

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2022-11-28 10:16:42 | 显示全部楼层 |阅读模式
游戏排行榜是一个很重要的功能,在弱联网的单机游戏与网络游戏中排行榜都是非常重要的,今天我们来详细的讲解游戏排行榜的制作方案,主要有4个点:


对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习unity的零基础小白,也有一些正在从事unity开发的技术大佬,欢迎你来交流学习。
游戏排行榜排序核心算法的实现
排序在游戏开发中是一种十分重要的算法,特别是对于海量的数据,高效的排序算法,是核心与关键,排行榜也是一样的,我们要对全服所有的排行榜的玩家做排序,每次玩家的数据有变化,就会引发排序,最终让我们把排行榜的排名拉取下来。排序算法的性能非常关键点,主流的排序算法都是非常成熟的,对于海量的服务器数据而言,排序算法也有核心的实现模块,这里我们是基于redis 来做排序,redis提供了一个有序列表的功能,内部实现了海量数据的排序,我们只要把数据提交给redis的有序集合, 然后redis就会给我们排序好,我们就可以拉排行榜前面的数据给客户端。排行榜的排序的核心算法全部由redis实现,我们直接用就可以了。


排行榜服务器如何制作
有了redis server来帮我们做排行榜内核,为什么我们还有搞一个排行榜服务器呢?不直接让客户端直接操作我们服务端的redis server呢?这个主要是有几个因素:
a; 每个游戏分区,可能不一样,所以我们用一个排行榜服务器来管理这个概念;


c: 如果排序受到一些性能影响,我们可以让排序服务器保存榜单的最小的分数,如果分数小于这个最小分数,那么新进来的分数就可以不用参与排行,来解决排行性能问题。
d: redis有序集合里面存放的可能是能表示玩家的唯一UID,客户端显示排行榜,可能还要其它的数据,比如用户头像等,所以需要一个服务器来根据UID来组合出客户端所需要的数据信息。


排行榜服务器提供协议接口给客户端使用,客户端根据协议来给排行榜服务器发数据,排行榜服务器检查验证游戏数据的真实性与安全性后再更新到redis server。
Unity如何优化排行榜UI性能
Unity如何要如何展示有200项排行榜数据的榜单,性能才会好呢?我们先来看一基本的排行榜展示的信息与数据内容,来简单分析一下,这个是某游戏的排行榜,如图所示:


我们从排行榜中截取一个排行榜记录来分析一下,它的UI组成。如下图:


UI元素组成:


5: 显示玩家的昵称节点;
6: 显示玩家的分数节点;
7: 显示一个玩家的礼物按钮节点,
从上面分析来看,每个排行榜的记录显示出来需要10~15个UI节点。
如果我这个排行榜要显示100项数据,那么我需要创建1500个UI节点出来,这样性能肯定差。那么我们如何优化一个游戏排行榜或大量数据的滚动列表呢?
分析了可能的问题后,我们一般考虑从一下几个方面找手优化:


b: 节约drawcall,尽量让这些大量的UI节点能在一个或少数几个drawcall下完成,比如我们把排行榜相关的资源都做到一个图集,这样增加Uidrrawcall合并的可能,同时我们做排行榜设计的时候,不要让文字label打乱drawcall 合批,UGUI会对文字渲染合批做优化,在不影响渲染效果的情况下调整文字的渲染顺序,把文字放一起渲染,能获得最小的drawcall, 这样,我们在组织界面设计的时候,就不要让图片盖到文字上,如果有某一样的图片盖到文字上,那么就会使得这个文字Label无法参与所有文字的合批,而这个文字Label还会打乱图片渲染的合批。
C: 对于UGUI来说,可以把排行榜都部署到一个根节点下,根节点搞一个UGUI的Canvas组件,减少大量合并计算的开销。
本节的Unity游戏排行榜制作与优化分享就到这里,关注我们获得更多的Unity的课程。
回复

使用道具 举报

1

主题

5

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2025-4-20 17:09:37 | 显示全部楼层
看帖要回,回帖才健康,在踩踩,楼主辛苦了!
回复

使用道具 举报

2

主题

6

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2025-4-23 15:38:37 | 显示全部楼层
我只是路过,不发表意见
回复

使用道具 举报

0

主题

4

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 昨天 23:40 | 显示全部楼层
为毛老子总也抢不到沙发?!!
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|开发者网络

GMT+8, 2025-6-7 16:37 , Processed in 0.087893 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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