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