开心自走棋:使用 Laf 云开发支撑数百万玩家

news2024/11/15 7:24:31

先介绍一下开心自走棋

开心自走棋是一款剑与魔法的烧脑自走棋游戏。以著名的魔幻世界观为蓝本,采用了轻松可爱的画面风格,精致细腻的动画和特效来还原魔兽之战。

现在市面上自走棋游戏多是 PvP 玩法为主,而开心自走棋是以 PvE 玩法为主的,让玩家享受轻快沉浸的游戏体验的同时,不失挑战性和趣味性。

大家都了解,无脑的推图是很无聊的事情,在开心自走棋中你会忍不住的打开脑洞排兵布阵,记得我在刚玩的时候,偶然的一次尝试,用几个低级别的女妖轻松通过 BOSS 关卡时,那种以少胜多、出奇制胜的成就感,那一刻宛如当世诸葛亮。

开心自走棋才上线仅半年,就有了几百万玩家,日活更是达到了 20w+。

开心自走棋是七伍 (北京) 数字科技有限公司的大作,成立于2022年,团队仅不到 10 人,本文给大家分享一下我们如何使用 Laf 云开发快速上线和迭代开心自走棋的。

原文链接:https://forum.laf.run/d/1158

怎么了解到 Laf 云开发的

首先,我们团队初期没有完备的后端基础,就想找一个简单快速的后端的开发方案,不用花费大量时间和资源来构建和维护后端基础设施,加速开发周期,使我们能够更快地将产品推向市场,这对于在竞争激烈的市场中脱颖而出至关重要。

同时,我们对性能和高并发的应对能力非常关注,如上面所介绍的,开心自走棋在上线数月就迎来几百万用户,我们的团队尚没有完备的应对这种大规模并发和吞吐的经验。

可伸缩性对于我们的项目也是至关重要的。我们希望我们的游戏能够应对未来的增长和变化,而不会面临性能或扩展性问题。

最先是调研的腾讯云开发和阿里云开发,上来就被复杂的控制台劝退了,上手使用也异常繁琐,也就没有深入下去,随后就在知乎上搜 “好用的云开发”,翻到一篇标题为《云开发中的战斗机 Laf,让你像写博客一样写代码》,看到标题的瞬间,感觉有戏

我在看完 Laf 的介绍文章后,深叹这个 Laf 简直就是为我们团队量身定做的产品!同时惊讶 Laf 团队也太了解开发者的需求了,Laf 的作者一定和我们有过同样的需求和痛处。

简单翻了一下 Laf 的文档,看到有一个微信登陆的示例,随手填个 Key 进去,在线点个运行按钮就跑通了,此值深夜,直接睡意全无,我已然决定要深度了解 Laf 云开发。

下面给大家详细分享一下我们对 Laf 的调研和考虑~

“laf 是开源的云开发平台,提供云函数、云数据库云存储等开箱即用的应用资源。让开发者专注于业务开发,无需折腾服务器,快速释放创意。”

为什么决定使用 Laf 云开发

先给大家分享一下我们比较看重的 Laf 云开发的几个方面:

开箱即用

开箱即用的云函数、云数据库、云存储、域名、HTTPS 证书、网关,提供开箱即用的应用资源是 Laf 最核心的价值,我们不用再 “购买服务器、配置 nginx、解析域名、签发 https 证书、部署数据库、备份、购买对象存储服务、运维” 等等,省去诸如此类的繁琐工作,做为开发者,我们过去都重复这些琐碎事务上百次,浪费时间和精力。

受益于这些开箱即用的开发体验,我们可以专注的快速上线和迭代开心自走棋。

完全开源

Laf 是完全开源的项目,做为开发者,天然会对开源的开发方案更有好感,尤其在经历过腾讯云开发涨价、字节轻服务停服下线等事件之后,我们在技术方案选型时也有深深的担忧。Laf 的开源协议使用的 Apache-2.0 license,而且是整个云平台的代码都开源,在 GitHub 上已经有 6K stars (上半年我们调研的时候是 4K stars),并且从提交记录上可以看到每天都在更新,社区非常活跃。

开源的项目和活跃的社区,给我们技术选型决策很大的信心。

1C2G 支撑数万日活业务

Laf 的运行时是 Node.js 常驻实例,单实例可以支撑非常高的 QPS,开心自走棋初期只使用 1 核 2G 规格的应用,便可支撑数万日活的业务。并且随着业务负载增加,可以非常方便的扩展应用规格,并且在升级规格期间 Laf 可以做到热更新不中断业务请求。尤其是本月初,Laf 作者对运行时又做了一次非常大的性能优化,QPS 直接翻了 4 倍,同时应用的负载水位反而下降 2 倍!

实践出真知,现在开心自走棋的应用,以很低的负载水位,轻松支撑超 20 万日活的业务!!

弹性伸缩

Laf 的实例支持根据负载情况自动水平扩展和收缩,开心自走棋在白天和晚上的请求量最大,凌晨 2 点到早上 6 点请求量不足白天的三分之一。开启弹性伸缩后,Laf 会根据实例负载水平,白天请求量大的时候,自动水平扩展实例数,在凌晨玩家下线睡觉时,自动收缩实例的数量,闲时可以节约成本。

Laf 允许我们根据需求进行扩展,无需担心硬件或基础架构的限制。这意味着我们可以灵活地应对用户数量的变化,而无需重新设计或更改应用程序。

原生长连接支持

Laf 天然支持标准的 WebSocket,长连接对大多数小游戏来说是刚需,在开心自走棋中聊天系统就是使用 WebSocket 来实现的。值得一提的是,我们在 Laf 上仅用了一个 1 核 2G 的规格的单实例应用,就能轻松应对 10K+ 的实时在线用户

在做压力测试时更是支撑高达 100K 的长连接。

请求无冷启

Laf 的运行时是常驻内存的,云函数的请求是没有冷启动时间的,HTTP 请求可以做到 20 毫秒响应。而市场上的同类产品,几乎都是采用的有冷启的函数计算方案,请求的冷启时间动辄 200 毫秒以上

不得不再说一遍,Laf 团队是真的了解开发者的需求!

总的来说,选择 Laf 云开发是出于对快速开发、跨平台支持和可伸缩性的需求,以满足我们的项目要求。它为我们提供了一个强大的工具,使我们能够专注于游戏的开发和用户体验,而不必担心底层基础设施的维护。这为我们提供了一个竞争优势,并支持我们实现长期的项目目标。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1365757.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

刷了四百道算法题,我在项目里用过哪几道呢?

大家好,我是老三,今天和大家聊一个话题:项目中用到的力扣算法。 不知道从什么时候起,算法已经成为了互联网面试的标配,在十年前,哪怕如日中天的百度,面试也最多考个冒泡排序。后来,…

VTK将二维图像向三维空间中无参数化的曲面表面进行纹理映射(含代码)

实现纹理映射主要是建立纹理空间与模型空间、模型空间与屏幕空间之间的映射关系(见图 6-28): 其中纹理空间可以定义为u-v 空间,每个轴标范围为 (0.1)。其中对于一个纹理图像,其左下角 v 标为 0.0),右上角标为 1.1)。而对于简单的参…

假设与灵敏度分析

灵敏度分析 关系究竟有多敏感,就要进行灵敏度分析 如果你改变了系统参数后,引起这个模型(公式)输出的变化的程度不大,则说明你的模型稳定性较强(即灵敏性较差),反之则反&#xff01…

【Python期末】动态爬取电影Top250数据可视化处理(有GUI界面/无数据库)

诚接计算机专业编程作业(C语言、C、Python、Java、HTML、JavaScript、Vue等),10/15R左右,如有需要请私信我,或者加我的企鹅号:1404293476 本文资源:https://download.csdn.net/download/weixin_47040861/88713693 目录…

简析云能耗管理系统在某高校建筑系统平台的设计与应用

叶根胜 安科瑞电气股份有限公司 上海嘉定 201801 摘要:根据本项目,依托某学院电能计量管理系统、供水计量监督系统、供热计量管理系统等基础平台,制定了高校建筑能耗综合管理系统平台应用的总体框架和方案。该系统可以实时监控、统计能耗和…

https配置证书

HTTPS 基本原理 https 介绍 HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer),其实 HTTPS 并不是一个新鲜协议,Google 很早就开始启用了,初衷是为了保证数据安全。 国内外的大型互联网…

STM32CubeMX教程20 SPI - W25Q128驱动

目录 1、准备材料 2、实验目标 3、实验流程 3.0、前提知识 3.1、CubeMX相关配置 3.1.1、时钟树配置 3.1.2、外设参数配置 3.1.3、外设中断配置 3.2、生成代码 3.2.1、外设初始化调用流程 3.2.2、外设中断调用流程 3.2.3、添加其他必要代码 4、常用函数 5、烧录验…

互联网干洗店洗鞋店搭建一套私域小程序有哪些优势?

在快节奏的现代生活中,我们常常面临衣物堆积如山、时间却捉襟见肘的困境。 干洗店在中国各大城市随处可见,假如每位顾客每月都需要一套干洗服务,那么一个50万人口的城市每月就有50万套干洗需求。若每家店日均处理100套衣物,那么至…

AE (4)_ 直方图调整的理论

#灵感# 在短暂的高通平台调试中,很看重直方图调整的理解。后来其它平台,不怎么调整这个了。但还是记录一下。 我个人还是倾向 招式简单,但应用到极致。 绝大部分内容来自:刘斯宁,Image Enhancement - CLAHE - 知乎 (z…

图论算法(数学建模)算法以后更新

无权值,无向,当成1就行 有向 有向赋权 顶点度的概念 Dijkstra算法 Dijkstra算法能求-一个顶点到另一-顶点最短路径。它是由Di jkstra于1959年提出的。实际它能出始点到其它所有顶点的最短路径Dijkstra算法是一种标号法:给赋权图的每一一个顶点记一个数&a…

特斯拉难挽倒退?比亚迪为中国汽车市场改写历史

对于电动汽车这个新兴产业,特斯拉长期以来一直处于领头羊的位置,近年来也面临诸多测试。去年底欧洲报道特斯拉在瑞典遭遇罢工冲击,运营陷入诸多困扰,实在出人意料。更让人讶异的是,年终宣布新王者比亚迪在全球销量首次…

【前端设计】文字聚光灯

欢迎来到前端设计专栏&#xff0c;本专栏收藏了一些好看且实用的前端作品&#xff0c;使用简单的html、css语法打造创意有趣的作品&#xff0c;为网站加入更多高级创意的元素。 案例 文字聚光灯效果可以用于网站标题 html <!DOCTYPE html> <html lang"en&quo…

Unity组件开发--短连接HTTP

1.网络请求管理器 using LitJson; using Cysharp.Threading.Tasks; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Networking; using UnityEngine.Events;using System.Web; using System.Text; using Sy…

SSM框架学习笔记01 | 注解开发

文章目录 1. 注解形式定义bean2.纯注解开发3.bean管理4. 依赖注入5. 第三方bean管理总结 1. 注解形式定义bean Compoenet ControllerServiceRepository 配合代码块 <context:component-scan /> 使用 2.纯注解开发 Configuration ComponentScan AnnotationConfigApplicati…

【开源】基于JAVA的教学过程管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 教师端2.2 学生端2.3 微信小程序端2.3.1 教师功能如下2.3.2 学生功能如下 三、系统展示 四、核心代码4.1 查询签到4.2 签到4.3 查询任务4.4 查询课程4.5 生成课程成绩 六、免责说明 一、摘要 1.1 项目介绍 基于JAVAVu…

国科大计算机体系结构期末考试——更新中

题型一、第二章的画图 给一个逻辑表达式&#xff0c;画出晶体管级别的电路图 cmos电路的基本电路&#xff1a; 与非门的功能是对多个输入信号进行逻辑与操作&#xff0c;然后对结果进行取反。 或非门的功能是对多个输入信号进行逻辑或操作&#xff0c;然后对结果进行取反。 …

链表:两个一组,反转链表

1、针对单链表&#xff0c;当我们进行操作时&#xff0c;如果需要进行反转或者进行其他操作时&#xff0c;有链表断开的情况&#xff0c;不妨考虑下使用辅助指针来记录断开后的链表位置&#xff0c;将需要处理的数据处理好后&#xff0c;可以使用此辅助指针找到链表的位置 #in…

服务器故障与管理口与raid

一&#xff0c;服务器常见故障 1&#xff0c;系统不停重启进入不了系统 排查是否是硬件故障&#xff0c;系统盘是否损坏&#xff08;硬盘灯红色&#xff0c;黄色&#xff0c;绿色&#xff09; 查看系统第一启动项是那种方式(硬盘 网络网卡 光驱 U盘) bios 是否双系统&#x…

使用命令行方式搭建uni-app + Vue3 + Typescript + Pinia + Vite + Tailwind CSS + uv-ui开发脚手架

使用命令行方式搭建uni-app Vue3 Typescript Pinia Vite Tailwind CSS uv-ui开发脚手架 项目代码以上传至码云&#xff0c;项目地址&#xff1a;https://gitee.com/breezefaith/uniapp-vue3-ts-scaffold 文章目录 使用命令行方式搭建uni-app Vue3 Typescript Pinia V…

C# ReaderWriterLock类学习

前言 今天这篇文章我们来学习一下ReaderWriterLock类&#xff0c;ReaderWriterLock类定义了实现单写程序和多读程序语义的锁。这个类主要用于文件操作&#xff0c;即多个线程可以读取文件&#xff0c;但只能用一个线程来更新文件。使用ReaderWriterLock类时&#xff0c;任意数…