如何开发一个小游戏?其中有什么难点
如果僅僅針對個人開發者來講,要獨立開發一款大型游戲幾乎無可能,更大成功的可能還是開發一款類似《羊了個羊》這樣洗腦的小程序游戲。
所以這里主要論述小游戲開發的情況,也就是小程序游戲,首先從小游戲的開發流程來看:主要分為游戲策劃、UI設計、音效制作、代碼編程和測試上線幾個大的流程,中間也會穿插關卡設計、規則設計、人物設計等環節,可以看到其實小程序開發是一個工程量較大的項目。
但從整個流程和其中的環節來看,小游戲開發需要開發人員具備以下幾點能力:
1.有一定的編程基礎,例如 JavaScript、TypeScript
2.至少熟悉一種游戲開發引擎,比如 Cocos、Unity等
3.對游戲機制、游戲系統有一定的理解
4.有一定的 UI 界面審美
5.能夠開腦洞、有創意能力
一、基本的理論
1、小游戲的內核是什么?
小游戲是小程序的一個類目,所以關鍵是需要掌握小程序技術,小游戲是微信開放給小程序的更多的能力,讓小程序開發者有了開發游戲的能力。小游戲沒有WXSS、WXML、多頁面等內容,但加了一些渲染、文件系統以及后臺多線程的功能。
微信小游戲只支持 JavaScript,當然可以編譯為 JS 的 TypeScript 以及 CoffeeScript 都可以作為開發語言使用。
其次是小游戲所支持的游戲庫 API,主要包含 HTML5 的 Canvas 2D API 和 WebGL 1.0 API,使用任何一種 API 都可以完成游戲最重要的渲染功能,不過不能夠混用,除此之外,只有 WebGL 渲染模式可以支持 3D 渲染。
2、游戲引擎有什么作用?
游戲引擎是游戲研發的主程序接口,它為開發者提供了各種開發游戲的的工具,即可編輯游戲系統和實時圖像系統的核心組件,其目的就在于讓開發者可以快速的做出游戲而不必從零開始。
從理論上講小游戲開發是可以直接使用 Canvas 2D 或 WebGL 的,但是門檻非常高,也非常費時費力的一件事。所以使用小游戲游戲引擎其實是非常明智的選擇,引擎封裝出的高層接口可以大大降低開發者的開發門檻,縮短項目周期。
目前國內的三家主流引擎 Cocos、Egret、Laya 均已支持小游戲發布,Phaser.js、Three.js 等國外 HTML5 引擎雖然并沒有支持直接發布,經過一些定制也是可以成功運行在小游戲環境中。
3、插件對小游戲的玩法有什么幫助?
微信小游戲還提供了豐富的微信內部插件供開發者調用,使用這些接口可以完成用戶登錄、轉發、排行榜等常規可以進行裂變的社交功能。也可以用到例如地圖、表單等插件,豐富小游戲的能力,以最簡單的辦法讓小游戲的玩法和效果持續得到強化。
二、上手開發小游戲
如果你有了比較好的想法和較成熟的游戲機制,并能夠完成UI界面圖的實現,就可以著手開始小程序游戲的開發了。
在這里我僅做初略方法的介紹,因為微信開放平臺已經有非常細致的介紹了,細致到完全可以一步一步跟著進行操作:詳情可以查閱
step 1 :注冊一個小游戲賬號
需要到微信開放平臺完成小游戲賬號的注冊。
step 2:安裝并啟動開發者工具
包括最上方的工具欄,包含最重要的編譯、預覽和配置詳情;左邊是模擬器窗口用來展示游戲運行效果;右上方是代碼編輯器,可以查看項目中的文件列表,編輯文本文件;下方是調試器窗口。
step 3:微信小游戲配置和入口文件
在微信小游戲項目中,project.config.json 和 game.json 配置文件是大家首先需要添加的,其中 project.config.json 可以定義你的小游戲 appid、游戲名、配置等。而 game.json 主要用于指定游戲朝向和網絡超時時間。
step 4:編譯和預覽
微信開發者工具會自動監聽腳本和配置的變動,發生變動時會自動更新,你也可以通過頂部的編譯按鈕觸發重新編譯。當你需要在手機上預覽小游戲的效果時,需要點擊預覽按鈕來生成二維碼,掃碼即可進入小游戲。
三、開發過程中的難點
小游戲開發和 H5 版游戲開發區別并不大,但是小游戲支持的庫較少,并且大部分 H5 版開發所使用的到的庫是不支持的。另外就是 H5 版游戲的實現方式選擇性更多,比如跳一跳原版是使用 createjs 開發,而小游戲版并不能支持所有的引擎,只能通過上面的幾個引擎改造適配。
此外整個開發過程中比較典型的困難環節還包括 SDK 能力挖掘、調試、資源管理、第三方庫的移植。
1、開放的各種 SDK 接口能力挖掘
小游戲提供的接口能力包括到用戶登錄接口、轉發接口、支付系統、網絡接口、文件系統等一些列的接口,這些接口可以極大的豐富小游戲的可玩性,但是如何去發揮他的潛在價值是值得開發者們深入研究的。例如通過轉發接口引導用戶分析小游戲到聊天窗口引導好友聯機;通過游戲的轉發邀請獲得額外的獎勵等等。
2、小游戲的調試
調試是游戲開發的必經階段,一個好的調試環境和調試工具也會大大提升開發效率。同事能夠提高頁面加載速度,減少游戲運行中的卡頓,使動畫看起來更流暢,游戲的流暢程度及畫面直接影響了用戶體驗。
盡管開發者工具比較好用,但是我們必須面對它的一大問題,它的模擬器運行環境和微信小游戲的真機運行環境可能并不完全相同。也就是說,有可能出現真機環境中的 bug 在模擬器環境中無法重現的問題。
3、資源的管理
小游戲環境和瀏覽器環境的另一大差異就是資源管理了,小游戲中會首先下載你提交的完整游戲包,再運行 game.js 來啟動游戲。所謂完整游戲包,也就是開發者在微信開發者工具中所導入的資源,不管你是否需要這些資源,在玩家打開你的小游戲時,都會被完整下載。所以我們會盡可能減小自己的小游戲包體,將可以按需加載的資源,放在遠程服務器上,用腳本進行加載。
4、第三方庫的移植
目前部分第三方庫已經發現有很多不兼容小游戲環境了,這里可以分享一個判斷原則,如果是純 JS 庫,那么是沒問題的,但是如果第三方庫使用到了 DOM API,多半是無法支持。
當然通篇主要研究的內容是微信小游戲,目前還有字節小游戲、百度小游戲、阿里小游戲、FinClip小程序游戲等。當我們開發了微信小程序后,我們也可以適配其他的小游戲平臺,讓自己的小游戲能夠觸達最廣闊的用戶群體,實現最大的價值。
最后
整理了75個JS高頻面試題,并給出了答案和解析,基本上可以保證你能應付面試官關于JS的提問。
有需要的小伙伴,可以點擊下方卡片領取,無償分享
總結
以上是生活随笔為你收集整理的如何开发一个小游戏?其中有什么难点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 身份证号验证工具类
- 下一篇: vant 解决tab切换插件标题样式自定