如何開發一款小游戲 如何自己編程做游戲

首先為大家介紹一下什么是小游戲:小游戲特指微信小游戲 , 是小程序的一個子類目 , 可在微信內被便捷地獲取和傳播 , 即點即玩 , 具備出色的用戶體驗 。 在開發的視角來看 , 小游戲是一個基于Canvas/WebGL + 微信社交開放能力的新平臺 。 在框架上看分為三層 , 是一個典型的分層架構 。 微信中有一個小游戲的Runtime去運行小游戲 , 而OS本身可能會涉及到不同類的設備 。
如果放大小游戲的Runtime可以看到很多的細節 , 第一就是游戲邏輯 , 也就是與平臺無關的游戲邏輯的開發 。 第二部分是游戲引擎 , 大部分會用到一些引擎的工作流、一些各種系統封裝好的高層的API 。 第三部分是weapp , 小游戲的框架是參考了webview的框架 , 但其實它的底層不是webview , 而是webview精簡優化過的平臺 , 小游戲有的只是與核心相關的一些渲染的API 。 這里的weapp-adaper是把小游戲的能力適配到與webview更接近的環境 , 讓更上層的游戲或引擎本身能夠更快速地集入到平臺中 。

如何開發一款小游戲 如何自己編程做游戲

文章插圖

小游戲Runtime
微信的Runtime對外暴露的都是微信的API , 所有的能力都是通過微信API發布出去的 。 底層最基本的能力是渲染相關的 , 即Canvas 2d和WebGL 。 其他一些微信相關的能力是另外一部 , 所以小游戲在架構上和小程序是有差別的 , 但用戶體驗起來沒有太大的區別 。 小游戲是沒有頁面概念的 , 在實現上也不完全是webview , 其中不必要的部分已經被去掉了 。
總的來說小游戲的入口為game.js , 游戲可以利用底層的一些能力將游戲的整個界面繪制出來 。 配置文件為game.json主要用來配置小游戲是橫屏還是豎屏 , 小游戲的全局對象game Gobal類似于webview中的window對象 , 同時支持javascript語言 。 但是小游戲有一個重要的一個限制是禁止動態執行代碼 , 開發者必須先提交審核 , 在審核通過后才可以上架給普通用戶 。 另外 , 小游戲包括引擎的代碼量比較大 , 所以限制大小比小程序要大 , 首包限制大小為4M 。
下面來說一下Webview Adapter , 它的初衷是為了讓游戲開發者更好地熟悉我們的平臺 , 所以我們的平臺在能力上會盡可能地與webview做一些適配 , 其實這個適配也是很簡單的一層 。 比如說我們在瀏覽器里面使用image對象創建一個圖片 , 而在小游戲里是通過wx.createimage來創建的 , 在代碼中需要做一個簡單的適配 。 比如說Canvas、Document都是在Adapter中實現的 , 大家可以研究鏈接中的代碼 。 其中有一些優化的版本 , 之后官方不會繼續維系這個Adapter , 因為我們會更專注于底層能力的建設 。 如果大家已經比較熟悉這個平臺的話 , 就會比較容易地開發游戲 。 比如Document這個對象在小游戲框架本身中跟普通對象是沒有區別的 , 它是Adapter做的一個簡單的適配 。
小游戲能力概覽
小游戲的社交開放能力現在已經對外開放了 。 其中最重要的一個能力是開放域 , 將微信的好友關系列開放出去 , 給開發者一起使用 , 但也存在著一些限制 。 因為小游戲去中心化的特點 , 分享這一部分也是非常重要的 , 開發者要考慮如何將這個能力利用起來 。 在代碼方面 , 因為首包限制是4兆 , 但部分小游戲的代碼量可能比較大 。 我們最近也在規劃一個分包的能力 , 異步加載代碼 , 但這個代碼是一定要經過我們審核的 。
龍源科技是杭州市IT行業的領先企業 。 服務類別涵蓋Internet服務領域 , 主要包括網站建設 , 小程序商城 , 小程序定制開發 , 游戲開發 , APP定制開發和推廣服務 。 龍源科技致力于為大多數需求者解決各種實際需求問題 , 并提供全方位的創意服務
如何開發一款小游戲?
那么如何開發一款小游戲?因為我本人也只是開發過一些簡單的游戲 , 并不是專業進行游戲開發 , 所以接下來我會更多地介紹一下如何利用微信的能力來開發小游戲 。
選擇小游戲引擎
首先在開發游戲時要選擇引擎 , 我們與引擎商也有著比較密切的合作 , 開發小游戲的引擎一定要是適配的 。 比如在底層 , 一開始引擎可能只支持原生的游戲 , 在微信小游戲上就要做一些適配 , 依賴瀏覽器特有的能力 。 Cocos Creator、Egret Engine、LayaAir Engine這三個引擎已經支持了小游戲的開發 , 網上也有相應的文章介紹如何發布到微信小游戲的平臺 。

推薦閱讀