遊戲慧聚:微信小遊戲是如何誕生的?

微信自從有了 “跳一跳” 後微信小遊戲就開始迅速火爆起來,為跟上這股潮流,相信很多開發者都想探一探微信小遊戲是如何開發的。下面我就從技術的角度說說一下微信小遊戲如何開發的。

相關技能

拋開表面看本質,揭開微信小程序這件外套,從代碼層面上來看,其實質就是一些 HTML5、css3 和 JavaScript 代碼。所以微信小遊戲既不是原生遊戲(只能運行在微信中),也不完全等同H5遊戲。其實質確是面向的H5遊戲的開發者。可以說小遊戲是使用HTML5技術搭建,具有原生體驗的微信內遊戲產品。

實現一個單人版的微信小遊戲,比如俄羅斯方塊這種,主要的技術就是用jQuery原生JavaScript(實現遊戲邏輯)、CSS3(控制遊戲畫面)、加上一點DOM操作;

比如HTML5版本的傳奇世界。是基於H5遊戲引擎實現的。其主要技術:JavaScript 、H5遊戲引擎、瀏覽器API、網絡通信等。

- 開發語言

微信小遊戲只支持 JavaScript,所以遊戲邏輯相關的開發那就是JavaScript, 不過也可以使用可以編譯成JavaScript的TypeScript。

- 遊戲庫API

主要包含 HTML5的 Canvas 2D API和 WebGL API 使用任何一種API都可以完成遊戲最重要的渲染功能。

- 網絡模塊

實現網絡對戰是需要一定的網絡編程基礎,熟悉網絡通信相關協議,同時還要自己搭建聯網的服務器來維護小遊戲客戶端之間的通信。

遊戲開發

總的來說開發一款小遊戲分為兩種情況,第一種是不引用遊戲渲染引擎,遊戲聯網引擎,使用常規的開發方法,自己實現場景渲染和網絡對戰開發。第二種是使用遊戲渲染引擎和遊戲聯網引擎。

完全自主研發

第一步:擬定遊戲開發方案,設計遊戲UI圖片。遊戲開發方案就是確定要開發什麼樣的遊戲,達到什麼樣的效果。設計遊戲UI圖片可以使用相關軟件如PS/CAD等。

第二步:搭建遊戲前端框架遊戲場景畫面渲染架構設計。使用HTML5和CSS3設計遊戲場景的架構,封裝好UI層處理的接口,待遊戲邏輯開發時,只需要調用接口即可操作UI顯示效果。

第三步:遊戲邏輯處理架構設計和實現。常用的軟件設計模式都是MVC模式,就是UI、業務邏輯和數據控制都是分開來的,使用JavaScript實現遊的邏輯控制和遊戲數據存儲。設計一套框架,同樣以接口的形式調用,在設計一套把UI和遊戲邏輯聯繫在一起的程序。

第四步:遊戲網絡對戰服務器搭建和服務器程序架構設計與實現。上一步把基本遊戲邏輯都實現了,但是畢竟是互動遊戲,要實現網絡通信那還得設計一套服務器通信程序,用於遊戲實現網絡對戰功能。服務器程序開發有多重選擇,這裡就根據開發者自己決定。

第五步:遊戲客戶端與服務端聯調。開發好服務模塊,要確保遊戲運行的穩定性和邏輯的正確性,需要花一定的時間進行聯調工作。

使用引擎工具

第一步:擬定遊戲開發方案,設計遊戲UI圖片,這裡和前面的一樣。

第二步:使用遊戲渲染引擎開發工具開發遊戲邏輯。不需要開發者關心遊戲的界面是如何渲染的,開發者只要關心遊戲實現的邏輯,對應遊戲畫面渲染可直接調用引擎接口來實現畫面效果。

第三步:遊戲聯網聯調。

以Matchvs為例,開發者不需要自己搭建服務器和編寫服務器網絡通信程序,直接調用聯網引擎的接口,簡單易用。

下面舉例說明:

先調用註冊接口registerUser獲取用戶信息。

登錄用戶:一個login 請求接口,一個loginResponse回調接口檢查是否登錄成功。

加入房間只要調用JoinRoom接口,然後就會返回JoinRoomResponse 回調,接口參數會告訴你現在有哪些人在房間和一些房間的信息等。還包括主動創建房間、踢人、斷線重連功能。所有接口使用方式都是一樣的。

總結

選擇通過什麼樣的方式開發微信小遊戲,主要根據自身的情況來定。完全自主研發的話會比較費時費力,(對網絡通信協議不是特別熟悉得自行購買服務器)如果前端開發初學者或者想快速上線一款遊戲的話,建議還是你藉助引擎工具,可以減少開發時間和資金開銷。

當然,以上的步驟只是一個大致的流程,如果對自主研發或是引擎使用感興趣的,以後我再找個時間給大家詳細說說。


分享到:


相關文章: