开心自走棋:使用 Laf 云开发支撑数百万玩家
先介紹一下開心自走棋
開心自走棋是一款劍與魔法的燒腦自走棋游戲。以著名的魔幻世界觀為藍本,采用了輕松可愛的畫面風格,精致細膩的動畫和特效來還原魔獸之戰。
現在市面上自走棋游戲多是 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 云开发支撑数百万玩家的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用Roslyn玩转代码之一: 解析与执行
- 下一篇: HTTP 代理服务器的设计与实现(C++