先介绍一下开心自走棋

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

现在市面上自走棋游戏多是 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 云开发是出于对快速开发、跨平台支持和可伸缩性的需求,以满足我们的项目要求。它为我们提供了一个强大的工具,使我们能够专注于游戏的开发和用户体验,而不必担心底层基础设施的维护。这为我们提供了一个竞争优势,并支持我们实现长期的项目目标。

开心自走棋:使用 Laf 云开发支撑数百万玩家的更多相关文章

  1. 云开发中的战斗机 Laf,让你像写博客一样写代码

    各位云原生搬砖师 and PPT 架构师,你们有没有想过像写文章一样方便地写代码呢? 怎样才能像写文章一样写代码? 理想的需求应该是可以在线编写.调试函数,不用重启服务,随时随地在 Web 上查看函数 ...

  2. FEDay会后-Serverless与云开发,可能是前端的下一站

    进化本身是生物体与环境之间持续不断的信息交换的具体表现. -- 摘自<信息简史> 很荣幸在9月21号成都举办的第五届FEDay上作为讲师为大家分享腾讯云在近两年推出的云开发相关的技术和知识 ...

  3. 聚焦“云开发圆桌论坛”,大前端Serverless大佬们释放了这些讯号!

    4月14日,由云加社区举办的TVP&腾讯云技术交流日云开发专场,暨"腾讯云-云开发圆桌论坛"在北京.深圳两地同步举行. 当天下午,一场主题为"基于大前端和node ...

  4. 【小程序云开发入门】quickStart

    开发者可以使用云开发开发微信小程序.小游戏,无需搭建服务器,即可使用云端能力. 云开发为开发者提供完整的云端支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现 ...

  5. 重磅!微软发布 Visual Studio Online:Web 版 VS Code + 云开发环境

    北京时间 2019 年 11 月 4 日,在 Microsoft Ignite 2019 大会上,微软正式发布了 Visual Studio Online (VS Online)公开预览版! 如今发布 ...

  6. Web开发者的10个最好的云开发环境

    1. Cloud9 IDE cloud9 Cloud9是我最喜欢的一个最好的云开发环境,它可以让我在任何时间任何地点进行代码编写.运行和调试.Cloud9对Node.js 和 JavaScript代码 ...

  7. Cloudera Manager、CDH零基础入门、线路指导 http://www.aboutyun.com/thread-9219-1-1.html (出处: about云开发)

    Cloudera Manager.CDH零基础入门.线路指导http://www.aboutyun.com/thread-9219-1-1.html(出处: about云开发) 问题导读:1.什么是c ...

  8. Android高效率编码-第三方SDK详解系列(二)——Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能

    Android高效率编码-第三方SDK详解系列(二)--Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能 我的本意是第二篇写Mob的shareSD ...

  9. 【微信小程序云开发】从陌生到熟悉

    前言 微信小程序在9月10号正式上线了云开发的功能,弱化后端和运维概念,以前开发一个小程序需要申请一个小程序,准备一个https的域名,开发需要一个前端一个服务端,有了云开发只有申请一个小程序,一个前 ...

  10. 小程序云开发--云函数上传文件或图片 base64

    云函数开发遇到的问题 在微信云开发环境当中,普通的用户并没有往云存储内写入文件的权限 所以普通用户想要使用wx.cloud.uploadFile显然是不现实的 但是我们同时也知道,云函数是后台服务端, ...

随机推荐

  1. mysql8安装踩坑记

    背景:已安装mysql5.7版本 问题一:默认的3306端口被占用 进入mysql5.7的my.ini文件,更改port为3307或者其他未被占用的端口 问题二:Install/Remove of t ...

  2. Netty集成HTTP的GET和POST通讯

    核心就是ChannelInitializer的实现使用http 消息解码器 package com.coremain.handler; import io.netty.channel.ChannelI ...

  3. Python 列表操作指南1

    Python 列表 mylist = ["apple", "banana", "cherry"] 列表用于在单个变量中存储多个项目.列表是 ...

  4. C++在HotSpot VM中一种巧妙的内存管理方式

    在HotSpot VM中定义了一个Relocation类及相关的子类,可以通过这些类操作不同的重定位数据,如在CodeCache中读写这些数据.这些类需要的内存很小,但是不同的类需要的内存大小又不一样 ...

  5. centos7安装node-v18版本真是难呢

    背景 背景就是上一篇文章提到的,部署gitbook这个文档中心的话,是需要先安装node,然后,如果你的node版本过高的话,一般会报错,此时,网上很多文章就是降node版本解决,但其实用高版本也是有 ...

  6. nginx虚拟机及热部署(在线升级)

    实现热部署(在线升级): 热部署方案一 (有弊端,不利于回滚) 查看nginx版本及源编译差数: /usr/local/nginx/sbin/nginx -V 预编译/ 编译/ 安装:在预编译之前,先 ...

  7. 如何正确执行 DORA 指标

    DevOps 研究与 DORA 评估指标可帮助我们深入了解软件开发和交付流程的性能和效率.这些指标包括部署频率.变更交付时间.变更失败率和平均恢复时间等方面.DORA 指标对于管理开发团队(从团队领导 ...

  8. iOS性能优化之内存分析

    成功之前我们要做应该做的事情,成功之后我们才可以做喜欢做的事情.   从苹果的开发者文档里可以看到内存分类如下所示,其中 Leaked memory和 Abandoned memory 都属于应该释放 ...

  9. CTA策略介绍

    CTA策略更多的时候是一种投资方法,更准确的说,主要投资于衍生品的.比较系统化规则化的投资方法都可以称作CTA投资,它并不拘泥于量化或是主动,其具有相当的生命力,会长期存在. CTA策略的收入来源是多 ...

  10. linux防火墙使用及配置

    Linux防火墙使用及配置 介绍 防火墙是网络安全的重要组成部分,它帮助保护服务器和计算机免受未经授权访问.恶意攻击和各种网络威胁.在Linux系统中,有一些工具和技术可用于设置和配置防火墙,其中最常 ...