微信自從有了 “跳一跳” 后微信小游戲就開始迅速火爆起來丑孩,為跟上這股潮流,相信很多開發(fā)者都想探一探微信小游戲是如何開發(fā)的。下面我就從技術(shù)的角度說說一下微信小游戲如何開發(fā)的。
附:本文適合有開發(fā)經(jīng)驗的人同波,關(guān)于如何創(chuàng)建微信小游戲賬號和使用微信小游戲開發(fā)工具就不再贅述,不了解的可以到微信小游戲開發(fā)者后臺閱讀相關(guān)文檔叠国。
相關(guān)技能
拋開表面看本質(zhì)参萄,揭開微信小程序這件外套,從代碼層面上來看煎饼,其實質(zhì)就是一些 HTML5、css3 和 JavaScript 代碼校赤。所以微信小游戲既不是原生游戲(只能運行在微信中)吆玖,也不完全等同H5游戲。其實質(zhì)確是面向的H5游戲的開發(fā)者马篮≌闯耍可以說小游戲是使用HTML5技術(shù)搭建,具有原生體驗的微信內(nèi)游戲產(chǎn)品浑测。
實現(xiàn)一個單人版的微信小游戲翅阵,比如俄羅斯方塊這種,主要的技術(shù)就是用jQuery原生JavaScript(實現(xiàn)游戲邏輯)迁央、CSS3(控制游戲畫面)掷匠、加上一點DOM操作;
比如HTML5版本的傳奇世界岖圈。是基于H5游戲引擎實現(xiàn)的讹语。其主要技術(shù):JavaScript 、H5游戲引擎蜂科、瀏覽器API顽决、網(wǎng)絡(luò)通信等。
- 開發(fā)語言
微信小游戲只支持 JavaScript导匣,所以游戲邏輯相關(guān)的開發(fā)那就是JavaScript, 不過也可以使用可以編譯成JavaScript的TypeScript才菠。
- 游戲庫API
主要包含 HTML5的 Canvas 2D API和 WebGL API 使用任何一種API都可以完成游戲最重要的渲染功能。
- 網(wǎng)絡(luò)模塊
實現(xiàn)網(wǎng)絡(luò)對戰(zhàn)是需要一定的網(wǎng)絡(luò)編程基礎(chǔ)贡定,熟悉網(wǎng)絡(luò)通信相關(guān)協(xié)議赋访,同時還要自己搭建聯(lián)網(wǎng)的服務(wù)器來維護小游戲客戶端之間的通信。
游戲開發(fā)
總的來說開發(fā)一款小游戲分為兩種情況,第一種是不引用游戲渲染引擎进每,游戲聯(lián)網(wǎng)引擎汹粤,使用常規(guī)的開發(fā)方法,自己實現(xiàn)場景渲染和網(wǎng)絡(luò)對戰(zhàn)開發(fā)田晚。第二種是使用游戲渲染引擎和游戲聯(lián)網(wǎng)引擎嘱兼。
完全自主研發(fā)
第一步:擬定游戲開發(fā)方案,設(shè)計游戲UI圖片贤徒。游戲開發(fā)方案就是確定要開發(fā)什么樣的游戲芹壕,達到什么樣的效果。設(shè)計游戲UI圖片可以使用相關(guān)軟件如PS/CAD等接奈。
第二步:搭建游戲前端框架游戲場景畫面渲染架構(gòu)設(shè)計踢涌。使用HTML5和CSS3設(shè)計游戲場景的架構(gòu),封裝好UI層處理的接口序宦,待游戲邏輯開發(fā)時睁壁,只需要調(diào)用接口即可操作UI顯示效果。
第三步:游戲邏輯處理架構(gòu)設(shè)計和實現(xiàn)互捌。常用的軟件設(shè)計模式都是MVC模式潘明,就是UI、業(yè)務(wù)邏輯和數(shù)據(jù)控制都是分開來的秕噪,使用JavaScript實現(xiàn)游的邏輯控制和游戲數(shù)據(jù)存儲钳降。設(shè)計一套框架,同樣以接口的形式調(diào)用腌巾,在設(shè)計一套把UI和游戲邏輯聯(lián)系在一起的程序遂填。
第四步:游戲網(wǎng)絡(luò)對戰(zhàn)服務(wù)器搭建和服務(wù)器程序架構(gòu)設(shè)計與實現(xiàn)。上一步把基本游戲邏輯都實現(xiàn)了澈蝙,但是畢竟是互動游戲吓坚,要實現(xiàn)網(wǎng)絡(luò)通信那還得設(shè)計一套服務(wù)器通信程序,用于游戲?qū)崿F(xiàn)網(wǎng)絡(luò)對戰(zhàn)功能灯荧。服務(wù)器程序開發(fā)有多重選擇凌唬,這里就根據(jù)開發(fā)者自己決定。
第五步:游戲客戶端與服務(wù)端聯(lián)調(diào)漏麦。開發(fā)好服務(wù)模塊客税,要確保游戲運行的穩(wěn)定性和邏輯的正確性,需要花一定的時間進行聯(lián)調(diào)工作撕贞。
使用引擎工具
第一步:擬定游戲開發(fā)方案更耻,設(shè)計游戲UI圖片,這里和前面的一樣捏膨。
第二步:使用游戲渲染引擎開發(fā)工具開發(fā)游戲邏輯秧均。不需要開發(fā)者關(guān)心游戲的界面是如何渲染的食侮,開發(fā)者只要關(guān)心游戲?qū)崿F(xiàn)的邏輯,對應(yīng)游戲畫面渲染可直接調(diào)用引擎接口來實現(xiàn)畫面效果目胡。
第三步:游戲聯(lián)網(wǎng)聯(lián)調(diào)锯七。
以Matchvs為例,開發(fā)者不需要自己搭建服務(wù)器和編寫服務(wù)器網(wǎng)絡(luò)通信程序誉己,直接調(diào)用聯(lián)網(wǎng)引擎的接口眉尸,簡單易用。
下面舉例說明:
先調(diào)用注冊接口registerUser獲取用戶信息巨双。
登錄用戶:一個login 請求接口噪猾,一個loginResponse回調(diào)接口檢查是否登錄成功。
加入房間只要調(diào)用JoinRoom接口筑累,然后就會返回JoinRoomResponse 回調(diào)袱蜡,接口參數(shù)會告訴你現(xiàn)在有哪些人在房間和一些房間的信息等。還包括主動創(chuàng)建房間慢宗、踢人坪蚁、斷線重連功能。所有接口使用方式都是一樣的镜沽。
總結(jié)
選擇通過什么樣的方式開發(fā)微信小游戲迅细,主要根據(jù)自身的情況來定。完全自主研發(fā)的話會比較費時費力淘邻,(對網(wǎng)絡(luò)通信協(xié)議不是特別熟悉得自行購買服務(wù)器)如果前端開發(fā)初學(xué)者或者想快速上線一款游戲的話,建議還是你借助引擎工具湘换,可以減少開發(fā)時間和資金開銷宾舅。
當然,以上的步驟只是一個大致的流程彩倚,如果對自主研發(fā)或是引擎使用感興趣的筹我,以后我再找個時間給大家詳細說說。