当前位置:网站首页>Unity游戏排行榜的制作与优化
Unity游戏排行榜的制作与优化
2022-08-11 05:48:00 【Clank的游戏栈】
前言
游戏排行榜是一个很重要的功能,在弱联网的单机游戏与网络游戏中排行榜都是非常重要的,今天我们来详细的讲解游戏排行榜的制作方案,主要有4个点:
对啦!这里有个游戏开发交流小组 里面聚集了一帮热爱学习unity的零基础小白,也有一些正在从事unity开发的技术大佬,欢迎你来交流学习。
游戏排行榜排序核心算法的实现
排序在游戏开发中是一种十分重要的算法,特别是对于海量的数据,高效的排序算法,是核心与关键,排行榜也是一样的,我们要对全服所有的排行榜的玩家做排序,每次玩家的数据有变化,就会引发排序,最终让我们把排行榜的排名拉取下来。排序算法的性能非常关键点,主流的排序算法都是非常成熟的,对于海量的服务器数据而言,排序算法也有核心的实现模块,这里我们是基于redis 来做排序,redis提供了一个有序列表的功能,内部实现了海量数据的排序,我们只要把数据提交给redis的有序集合, 然后redis就会给我们排序好,我们就可以拉排行榜前面的数据给客户端。排行榜的排序的核心算法全部由redis实现,我们直接用就可以了。
redis 添加一条记录: zadd table 权重 value, 往有序集合table里面添加一个带权重的数据,redis就会更具这个权重排序。
redis 获取排行榜的数据: zrang table start stop, 从有序集合中拉取从[start, stop]段的数据。还有反向排序等,原理一样。
排行榜服务器如何制作
有了redis server来帮我们做排行榜内核,为什么我们还有搞一个排行榜服务器呢?不直接让客户端直接操作我们服务端的redis server呢?这个主要是有几个因素:
a; 每个游戏分区,可能不一样,所以我们用一个排行榜服务器来管理这个概念;
c: 如果排序受到一些性能影响,我们可以让排序服务器保存榜单的最小的分数,如果分数小于这个最小分数,那么新进来的分数就可以不用参与排行,来解决排行性能问题。
d: redis有序集合里面存放的可能是能表示玩家的唯一UID,客户端显示排行榜,可能还要其它的数据,比如用户头像等,所以需要一个服务器来根据UID来组合出客户端所需要的数据信息。
排行榜服务器提供协议接口给客户端使用,客户端根据协议来给排行榜服务器发数据,排行榜服务器检查验证游戏数据的真实性与安全性后再更新到redis server。
Unity如何优化排行榜UI性能
Unity如何要如何展示有200项排行榜数据的榜单,性能才会好呢?我们先来看一基本的排行榜展示的信息与数据内容,来简单分析一下,这个是某游戏的排行榜,如图所示:
我们从排行榜中截取一个排行榜记录来分析一下,它的UI组成。如下图:
UI元素组成:
1: 要显示每一项数据的背景UI节点
2: 要显示排行数字的UI节点;
3: 显示玩家头像的一个或几个UI,还有mask等;
4: 显示玩家的等级节点;
5: 显示玩家的昵称节点;
6: 显示玩家的分数节点;
7: 显示一个玩家的礼物按钮节点,
从上面分析来看,每个排行榜的记录显示出来需要10~15个UI节点。
分析了可能的问题后,我们一般考虑从一下几个方面找手优化:
a: 减少显示的UI节点的数目,提升渲染性能。比如100项数据,其实我们滚动列表中能看到的也就只有10多项,所以我们可以做好数据分页,来做动态数据加载显示,比如每页10项显示的话,我们可以做30项,这样就可以做到动态加载,同时UI节点的数目可控。
C: 对于UGUI来说,可以把排行榜都部署到一个根节点下,根节点搞一个UGUI的Canvas组件,减少大量合并计算的开销。
本节的Unity游戏排行榜制作与优化分享就到这里,关注我们获得更多的Unity的课程。
边栏推荐
- 概念名词解释
- 强烈推荐一款好用的API接口
- A used in the study of EEG ultra scanning analysis process
- 抖音获取douyin分享口令url API 返回值说明
- HCIP experiments (pap, chap, HDLC, MGRE, RIP)
- OA项目之会议通知(查询&是否参会&反馈详情)
- Daily sql-seek the sum of successful investments in 2016
- 《Generative Adversarial Networks》
- Coordinate system in navigation and positioning
- HCIP实验(pap、chap、HDLC、MGRE、RIP)
猜你喜欢
空间金字塔池化 -Spatial Pyramid Pooling(含源码)
Taobao API interface reference
PIXHAWK飞控使用RTK
李沐d2l(十)--卷积层Ⅰ
HCIP Republish/Routing Policy Experiment
HCIP OSPF/MGRE Comprehensive Experiment
Multiscale communication in cortical-cortical networks
Cobbleland 博览会 基础系列 1
八股文之jvm
daily sql - query for managers and elections with at least 5 subordinates
随机推荐
求过去半年内连续30天以上每天都有1000元以上成交的商铺
拼多多API接口大全
Daily sql-seek the sum of successful investments in 2016
daily sql - user retention rate for two days
抖音API接口
会议OA项目之我的会议
MySQL01
torch.cat()用法
Monte Carlo
Spatial Pyramid Pooling -Spatial Pyramid Pooling (including source code)
抖音关键词搜索商品-API工具
损失函数——负对数似然
mysql视图与索引
HCIP实验(pap、chap、HDLC、MGRE、RIP)
radix-4 FFT 原理和C语言代码实现
Top20 bracket matching
JD.com product details API call example explanation
每日sql--统计员工近三个月的总薪水(不包括最新一个月)
HCIP MPLS/BGP Comprehensive Experiment
Douyin share password url API tool