服务器在保存玩家数据时的频次和触发机制怎么设计
思路
- 定时保存
定时保存可以通过设置定时器来实现,但也有两种方式:服务器定时、玩家定时。
- 离线保存
玩家下线后立即保存数据,保证玩家的数据被完整存档。
服务器在保存玩家数据时的频次和触发机制怎么设计
定时保存可以通过设置定时器来实现,但也有两种方式:服务器定时、玩家定时。
玩家下线后立即保存数据,保证玩家的数据被完整存档。
记一次 Cocos Creator3.x 的 Protobuf 使用
1 | $ npm i long |
1 | { |
因为客户端直连服务器会出现很多潜在的风险,比如暴露服务器 IP 地址导致被攻击等问题,所以增加一个网关服务器。
网关服务器是介于客户端与游戏服务器之间的服务,包含以下功能:
维护游戏客户端的连接。
负责将客户端的请求分配到空闲的游戏服务器。
检查协议格式,如有多协议服务器也可以做协议格式转换。
拦截非法请求,隐藏游戏服务器 IP 地址(避免 DDOS 攻击)。
想给小游戏做个时装功能,在游戏中一般来说换装分为两种:
整体时装
局部换装
2D 游戏中一般用到的骨骼动画 Spine 和 DragonBone(龙骨)。这里主要学习一下 Spine 换装的相关实现
因为之前设计的系统很粗糙,任务看起来很单调,比如 NPC 名称都是一成不变的,所以进行一些小改动。
思路很简单,预设字典库随机分配名称。
名字组成字典
1 | { |
记一次半吊子逆向工程的…艰难过程
在搞小游戏的过程中需要一些美术资源,从网上购买了一些不是很满意,所以准备对几个精品同类手游下手,捞一手美术资源。
一个某大话私服手游,解压安装包:
1 | ├── AndroidManifest.xml |
简单实现服务器不停机更新的机制
之前接触过某 moba 游戏,除了其丰富的游戏内容之外,对其服务器更新机制非常好奇。他们的服务器很少进行停机更新,大部分是不停机更新内容。这是如何实现的呢?
服务器更新场景,一般是业务代码迭代或者配置表需要重载。moba 游戏一般是一个服务器承载 1 或多个房间,所以热更新机制有可能是这样一个设计:
先停止接收新的请求,等待处理完已有的战斗后重启
有序重启,防止无服务器可用
当然,实现上肯定不是这么简单。如果按照上面的思路来实现,流程如下:
大部分游戏中都有排行榜的存在,既可以展示玩家分数之间的排名,也可以用于激发玩家的胜负欲。
排行榜的设计思路比较粗暴,谁的分数高谁在前,分数一致谁先达成谁在前。实现方式有多种,这里列举常见的2种:
通过任务定时查询数据库进行排序,然后储存在内存中。优点是逻辑简单,缺点是不能实时排名。
使用zset(有序集合)存储数据,利用score存储不同的指标来实现各种排行榜。优点是能实时查询,缺点是逻辑相对复杂。
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent:
meta: false
pages: false
posts:
title: true
date: true
path: true
text: false
raw: false
content: false
slug: false
updated: false
comments: false
link: false
permalink: false
excerpt: false
categories: false
tags: true