tft每日頭條

 > 遊戲

 > 開發一款小遊戲需要什麼

開發一款小遊戲需要什麼

遊戲 更新时间:2024-09-27 16:10:40

我是代長新,來自上海享物說,主要負責遊戲客戶端研發。

開發一款小遊戲需要什麼(如何不用服務器來開發一個小遊戲)1

享物說是一個大家可以互相贈送物品,有趣、不花錢的社區平台。為了創造更好的社區氛圍,我們決定通過小遊戲來增加社區的趣味性和互動性。

《樂享花園》是我們在小遊戲領域的第一個實踐。這個遊戲,從立項到做完,準确的說是客戶端做完,我們一共用了3天的時間。

但是,當時我們種花澆花、領水滴任務都是通過浏覽器緩存實現的,如果要上線還要等服務端人員到位,否則玩家清理一下手機,自己種的花就沒了。但等我們服務端人員到位,再到遊戲上線,就是幾周以後的事情了。

小遊戲開發之痛:無法擺脫對服務端的依賴

相信,這也是大部分小遊戲開發時會遇到的問題 —— 功能很簡單,但就是擺脫不了對服務端的依賴。如下圖:

開發一款小遊戲需要什麼(如何不用服務器來開發一個小遊戲)2

具體來說,小遊戲對服務端的依賴主要有以下兩個方面:

1、微信接口隻支持在服務端調用

這就意味着,我們必須為這些接口架設一個中轉服務器。如果沒有這個中轉服務器,我們就沒法做用戶登錄,沒法獲取用戶頭像、名稱信息,也拿不到access_token,更沒有辦法調用其他微信接口,如内容審查。

2、遊戲功能實現需要服務器開發

對于很多小遊戲來說,我們唯一用到服務端的地方就是,儲存當前的關卡進度,展示一個世界排行,就可以了。而想要實現這麼一個簡單的需求時,你會發現,隔行如隔山。

如何用雲開發解決小遊戲在服務端痛點?

1、雲函數實現微信接口調用

曾經,我想過繞開服務器,直接通過客戶端請求微信接口,結果踩了一個坑。

當時做的是聊天功能,需要對玩家發送的消息進行内容審查。我看完了接口文檔,就跑過去跟服務器同學說,内容審查我這邊全部做掉就可以,他那邊不需要做額外的處理。

開發一款小遊戲需要什麼(如何不用服務器來開發一個小遊戲)3

等我們調通,上了體驗版,一打開報錯,我才想起來,這個接口文檔的上面,有一行小字,而且顔色是灰色的,上面寫着:此接口應在後端服務器調用。

第一次看到這句話,還以為它隻不過是一個警告,所以根本沒把它放在心上,哪知道它居然是一個error!而在這之前,我還特意做了一些我認為比較人性化的設計,比如使用這個接口需要一個密鑰,這個密鑰是有有效期的,當密鑰過期的時候,我會把玩家發送的内容保存起來,向後端拉取新的密鑰後,再發送出去,這樣對于玩家來說,整個過程是無感知的。而現在則意味着所有這些都要服務器去實現了。

後來,我通過雲開發來實現多有接口調用,事情就簡單多了。

開發一款小遊戲需要什麼(如何不用服務器來開發一個小遊戲)4

就拿登錄來說吧。

由于雲函數具有微信天然鑒權的能力,可以直接返回openid,這一點對做登錄确實很方便。樂享花園需要和享物說平台打通小紅花積分數據,所以需要用戶的unionid信息,這一步也是在雲函數中實現的。

還有access_token,就是剛才用到的密鑰,為什麼要單獨說這個密鑰呢?因為它會用到雲函數特别有意思的功能,那就是定時觸發器。由于這個密鑰是有兩個小時有效期的,我們設定一個小時間隔定時刷新,保存到數據庫中,用的時候直接從數據庫中取出來就可以了,這樣可以保證密鑰永遠是不過期的。

開發一款小遊戲需要什麼(如何不用服務器來開發一個小遊戲)5

通過雲開發,為微信接口準備的中轉服務器就不需要了;更重要的是,服務端與微信接口分離,無需關心客戶端場景。不管這個客戶端,是來自h5遊戲,還是來自小遊戲環境,對于服務端來說,都是一樣的,再也不需要為客戶端提供這樣那樣的權限接口。

2、雲函數 數據庫,實現全局排行榜功能

正如前面提到的痛點,小遊戲開發對服務端的另一個依賴是遊戲功能的實現。對于大部分小遊戲來說,我們唯一用到服務端的地方就是:保存用戶數據,展示一個世界排行榜。而如果用傳統服務器實現這些功能的話,你會發現需要了解的後端架構知識非常龐大。

有次,我到服務端同學的旁邊,原本是打算diss他的,因為我功能已經寫完了,他還不知道在忙些什麼東西。這時我看到他在做什麼呢 —— 一邊寫dockfile文件,一邊寫linux命令,一邊打開Postman調試,完了後發郵件給運維說要執行幾個mysql語句。

而所有這些都還沒有涉及到他要開發的遊戲功能!

所以說,一門後端語言從會寫,到可以放到生産環境中,是兩個完全不一樣的概念。

雲開發提供了數據庫、雲函數、雲存儲,通過這些能力,我們完全可以取代服務器來實現遊戲功能。

在《樂享花園》裡,我們通過雲開發實現了全民成語接龍這個遊戲功能,并且隻用了2個雲函數就實現了我們對服務器的全部需求。這裡簡單介紹一下這兩個雲函數:

第一個雲函數是用來展示世界排行榜。由于雲函數拉取數據庫的條目是有限制的,最大是100條,其實這個已經足夠滿足需求了;當然了,你要說我們的客戶端很牛,性能不是問題,數據什麼的先給我來個2000條,也不是不可以,這裡做個處理就可以了。

另外在檢索數據庫數據時,這個過程會很慢,一定要記得,在後台添加數據庫索引,可以把這個過程理解為通過磁盤換取CPU計算。這樣速度會快很多。

開發一款小遊戲需要什麼(如何不用服務器來開發一個小遊戲)6

第二個雲函數是用來上報玩家數據。這個比較簡單,一行代碼搞定。

開發一款小遊戲需要什麼(如何不用服務器來開發一個小遊戲)7

就這樣從微信接口調用,到遊戲功能開發,一款不需要服務器的小遊戲就全部開發完成了。

小結

其實,雲開發可以使用的業務場景,還有很多,比如,

繞過微信https域名請求限制

存放遊戲的全局設置

保存玩家的個性化數據

。。。

作為開發者,也希望雲開發未來,可以提供更多的業務場景支持,比如

websocket,剛才說的聊天服務器,就可以省掉了;

幀同步,實時對戰類遊戲的實現,就不再有壓力;

日志服務,方便統計,和排查玩家的行為,方便遊戲疊代優化;

大數據統計分析,可以做一些事件漏鬥等等~

這樣小遊戲的研發門檻,就降得很低很低了!

如果你有關于使用雲開發TCB相關的技術故事/技術實戰經驗想要跟大家分享,歡迎留言聯系我們哦!

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关遊戲资讯推荐

热门遊戲资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved