关于游戏排行榜设计开发的一些总结
前言
不管是手游还是端游,貌似都离不开排行榜,没有排行榜的游戏是没有灵魂的游戏,因为排行榜可以让用户分泌多巴胺,这样日活才会上来,有了用户就有钱赚。产品想方设法的让用户留存,设计各种排行榜:个人段位排名、个人积分或金币排名、全球榜单实时排名。如果用户量少的话,直接用mysql一张表存储着用户跟某个段位或者积分,然后查的时候再从高到低order by排序下。当然用户量很少的话是可以的,但随着用户量猛增,达到千万、亿级的话,这个肯定行不通了。你可能说我加索引、再多的话分库分表总行了吧。思路是没错的,但这不是很好的方案,排行榜实时更新,亿级用户这io想象都怕。
常用方案和对比
在游戏中,经常会有当玩家的某一个属性,或者多个属性发生变化的时候会根据一个加权公式来计算score,根据score来动态调整排名,查看前top N的排名用户。那么针对这种需求,我们经常会使用如下一些方案:
方案一:
利用MySQL来实现,存放一张用户积分表user_score,结构如下:
取前top N,自己的排名都可以通过简单的sql语句搞定。
select * from user_score order by score limit 0,10;//查询前10名
算法简单,利用sql的功能,不需要其他复杂逻辑,对于数据量比较少、性能要求不高,可以
关于游戏排行榜设计开发的一些总结相关推荐
- nie题目-游戏排行榜设计
一个mmorpg游戏,玩家众多,需要对玩家战斗力进行排行,并且战斗力变化时需要及时刷新.需要设计一个这样的排行榜. 关于海量数据排行榜的做法,云风在他的博客里给过思路,谈谈陌陌争霸在数据库方面踩过的坑 ...
- 基于心理学视角论述游戏排行榜设计
在投币式街机电子游戏的全盛时期,没有什么比看到我们的名字出现在游戏高分榜单上更令人雀跃.看到名字掉出榜尾位置,自己被不过是积分多些的用户角色取代,是个郁闷过程.友善对手促使我们持续在<打气人&g ...
- 如何使用redis来实现常见的游戏排行榜
前言 前面几篇文章给大家聊了下目前的常用的排行榜做法. 关于游戏排行榜设计开发的一些总结 游戏排行榜-跳表实现原理分析 那么这篇文章将给大家带来如何使用redis来实现常见的游戏排行榜功能. 为什么使 ...
- [附源码]JAVA+ssm网上游戏商店设计(程序+Lw)
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- Unity常用模块设计 : Unity游戏排行榜的制作与优化
游戏排行榜是一个很重要的功能,在弱联网的单机游戏与网络游戏中排行榜都是非常重要的,今天我们来详细的讲解游戏排行榜的制作方案,主要有4个点: 对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交 ...
- 开发笔记:基于积分的游戏排行榜实现方式探讨
竞技场往往是游戏中不可缺少的系统,根据不同的需求类型,竞技场排行榜的类型可以有如下划分: 1.按照排名更新的方式划分:依靠积分进行排行的竞技场,当玩家完成挑战后根据一定的规则进行双方积分的增减,依据新 ...
- 微信小游戏的设计和开发
微信平台不但承载了聊天相关的基础属性,同时也有公众号的媒体属性.小程序的工具属性和支付的金融属性,是一个大而全的平台.因此越来越多的开发者基于小程序进行游戏开发,简单易用,支付方便,也是游戏开发者一个 ...
- android教育游戏设计方案,基于Android平台的儿童教育游戏的设计与开发
摘要: 在通讯技术和信息技术的不断发展时代,智能手机(平板电脑)等移动终端的普及和功能的不断强大,基于移动终端的移动学习的理念渐渐深入人心且被广大的学习者所青睐,逐渐成为一种新的学习方式.学习者在面对 ...
- 手机吞吃蛇游戏的设计与开发
为什么80%的码农都做不了架构师?>>> J2ME(Java 2 Micro Edition) 是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术. ...
最新文章
- JavaScript判断图片是否加载完成的三种方式
- js获取元素提示信息
- C语言知识总结——宏,枚举
- MATLAB的GUI如何清空坐标轴的图像
- android禁用应用组件,Android彻底退出(关闭)应用程序.docx
- [20180123]测试SQLNET.EXPIRE_TIME参数.txt
- cannot remove `libtoolT’: No such file or directory
- W,b的初始化和几种激活函数
- eyoucms使用入门 三
- 1931CIE基础知识
- 文件监控(二) 代码
- LOJ#2833 「JOISC 2018 Day 1」帐篷 dp
- [渝粤教育] 重庆城市管理职业学院 脑洞大开背后的创新思维 参考 资料
- 大数据分析界的“神兽”Apache Kylin初解
- assign 组合逻辑和always@(*)组合逻辑的区别
- 【Sublime Text 3】Sublime Text 3 - cracked 3086
- html显示已知范围标量,【单选题】下列哪个HTML5元素用于显示已知范围内的标量测量...
- JDK 8 新特性之接口详解
- MATLAB设置坐标轴颜色
- gbrl参数_GRBL介绍
热门文章
- wince中BIB文件的详细介绍
- 程序员找工作那点事儿
- layui 怎么设置点击图片放大_layui等比例放大/缩小图片
- python 读取outlook_如何用 Python 读取 Outlook 中的电子邮件
- android 蒙版图片带拖动_推荐一个好用小巧的Android引导蒙版(浮层)库
- maven springboot 除去指定的jar包_SpringBoot的运行机制
- arcgis点按角度生成固定长度线
- 【转】DICOM图像像素值(灰度值)转换为CT值
- 一步步编写操作系统 77 内联汇编与ATT语法简介
- linux服务器cc防御,Linux下简单的防止CC攻击