NFT游戲開(kāi)發(fā)公司
時(shí)間:2023-05-27 00:57:01 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2023-05-27 00:57:01 來(lái)源:網(wǎng)站運(yùn)營(yíng)
NFT游戲開(kāi)發(fā)公司:
NFT 游戲開(kāi)發(fā)
在創(chuàng)建應(yīng)用程序時(shí),開(kāi)發(fā)游戲可能相對(duì)繁重。一項(xiàng)更具挑戰(zhàn)性的任務(wù)是為去中心化網(wǎng)絡(luò)開(kāi)發(fā)游戲。這是因?yàn)?Web3 開(kāi)發(fā)領(lǐng)域一直缺乏基本的開(kāi)發(fā)工具。然而,有了合適的工具箱,游戲開(kāi)發(fā)就不會(huì)那么困難了,對(duì)于Web3 開(kāi)發(fā)來(lái)說(shuō),最好的工具是Moralis。如果您對(duì)創(chuàng)建突破性的 Web3 游戲感興趣,請(qǐng)跟隨我們一起深入了解 NFT 游戲開(kāi)發(fā)并展示如何使用 Moralis 在短短幾分鐘內(nèi)構(gòu)建游戲應(yīng)用程序!Moralis 是用于為去中心化網(wǎng)絡(luò)開(kāi)發(fā)dApp(去中心化應(yīng)用程序)的第一大中間件。借助 Moralis 平臺(tái)提供的功能強(qiáng)大的開(kāi)發(fā)工具,我們可以大大縮短開(kāi)發(fā)時(shí)間。最重要的是,這不僅適用于 NFT 游戲,也適用于一般的 dApp 開(kāi)發(fā)。
該平臺(tái)為用戶提供了無(wú)限可擴(kuò)展的后端基礎(chǔ)設(shè)施,讓用戶專注于應(yīng)用程序的前端。因此,可以將開(kāi)發(fā)后端的繁重工作交給 Moralis。
該平臺(tái)還通過(guò)提供有價(jià)值的工具來(lái)促進(jìn)開(kāi)發(fā)過(guò)程。其中一些是Speedy Nodes、Moralis NFT API、Moralis Price API等等。在這種情況下,Moralis 是 dApp 和 NFT 游戲開(kāi)發(fā)的終極平臺(tái)。
所以,如果你想成為 NFT 游戲開(kāi)發(fā)者,第一步就是加入 Moralis!
什么是 NFT?
NFT 是 Non-Fungible Token 的縮寫,最近它們變得非常流行。人氣飆升的眾多原因之一是對(duì)藝術(shù)家的明顯好處。一方面,NFT 已被證明是藝術(shù)家從加密社區(qū)獲得財(cái)務(wù)支持的絕佳方式。然而,這些不可替代的代幣究竟是什么?
顧名思義,NFT 是代幣。這些數(shù)字代幣能夠代表一個(gè)獨(dú)特項(xiàng)目的所有權(quán)。借助這項(xiàng)技術(shù),幾乎可以對(duì)任何事物進(jìn)行代幣化,從藝術(shù)到房地產(chǎn)。部分價(jià)值源于這樣一個(gè)事實(shí),即只有一個(gè)人可以成為正式所有者。為確保這種所有權(quán),NFT 由以太坊等區(qū)塊鏈保護(hù)。這使得在不出售代幣的情況下無(wú)法復(fù)制 NFT 或修改所有權(quán)記錄。從本質(zhì)上講,NFT 可以充當(dāng)物理資產(chǎn)的數(shù)字所有權(quán)。
“不可替代”一詞是一個(gè)經(jīng)濟(jì)術(shù)語(yǔ),用于表示具有獨(dú)特屬性的商品/資產(chǎn),例如不同的歌曲或獨(dú)特的棒球卡。這些是不可互換的項(xiàng)目,因?yàn)樗鼈兙哂胁煌奶匦?。因此,例如,很難將房屋的價(jià)值與歌曲的價(jià)值進(jìn)行比較。不可替代的反面是可替代的。另一方面,這些是由值而不是它們的屬性定義的項(xiàng)目。因此,這使得可替代的代幣可以互換。
從傳統(tǒng)的角度來(lái)看,在數(shù)字世界中復(fù)制實(shí)物資產(chǎn)的屬性一直存在問(wèn)題。很難確保虛擬資產(chǎn)的唯一性、稀缺性和所有權(quán)證明。然而,有了區(qū)塊鏈技術(shù),現(xiàn)在有可能,NFTs 實(shí)現(xiàn)了一個(gè)新的資產(chǎn)互聯(lián)網(wǎng)。
如何使用 Moralis 構(gòu)建 NFT 游戲 — 前端
在本節(jié)中,我們將仔細(xì)研究創(chuàng)建我們自己的 NFT 游戲,以展示與 Moralis 合作的力量。使用大約 100 行代碼,我們可以創(chuàng)建一個(gè)功能齊全的 NFT 游戲,其中頭像由可以在 2D 環(huán)境中移動(dòng)的令牌表示。在這個(gè)例子中,我們將使用 Aavegotchi NFT。但是,任何其他 NFT 的邏輯都保持不變,這意味著我們不僅限于 Aavegotchis。
NFT 游戲開(kāi)發(fā)過(guò)程的一個(gè)很好的開(kāi)始是解釋我們將要?jiǎng)?chuàng)建的游戲的安全性。安全性是一個(gè)非常重要的問(wèn)題,因?yàn)?NFT 游戲有時(shí)會(huì)獎(jiǎng)勵(lì)真正的獎(jiǎng)品。因此,作弊是被禁止的,我們需要確保我們的應(yīng)用程序防止這種情況發(fā)生。
為了確保游戲環(huán)境沒(méi)有作弊的可能性,我們會(huì)將大部分游戲邏輯放在我們的后端代碼中。因此,前端的主要任務(wù)是詢問(wèn)服務(wù)器向某個(gè)方向移動(dòng)頭像是否有效。這意味著我們可以防止用戶在游戲中入侵應(yīng)用程序和作弊。
那么,您可能會(huì)問(wèn),僅用 100 行代碼怎么可能做到這一切?嗯,簡(jiǎn)短的回答是 Moralis。
Moralis 的 NFT 游戲開(kāi)發(fā)
為了實(shí)現(xiàn)更快、更輕松的Web3開(kāi)發(fā)過(guò)程,我們需要正確的工具。Web3 的最終開(kāi)發(fā)平臺(tái)是 Moralis。Moralis 使我們能夠輕松創(chuàng)建 NFT 游戲并顯著縮短開(kāi)發(fā)過(guò)程。Moralis 已經(jīng)為所有 dApp 找出了基本邏輯,作為平臺(tái)用戶,我們可以訪問(wèn)其所有功能。
我們 NFT 游戲的兩個(gè)非常重要的功能是實(shí)時(shí)警報(bào)和檢查NFT 余額的能力。我們將使用這些 Moralis 工具從區(qū)塊鏈中獲取實(shí)時(shí)數(shù)據(jù)并檢查用戶是否擁有任何 NFT。
此外,Moralis 還為 dApp 開(kāi)發(fā)提供了其他很棒的工具。一些示例是對(duì)IPFS 的本機(jī)支持、跨鏈兼容性以及對(duì)作為開(kāi)發(fā)人員的您的大力支持。該莫拉利斯博客還設(shè)有優(yōu)秀導(dǎo)游,為您檢查出并得到了什么是可能的莫拉利斯用戶更大的理解。
由于我們將在開(kāi)發(fā) NFT 游戲時(shí)使用 Moralis,因此第一步是立即注冊(cè) Moralis!
為 NFT 游戲開(kāi)發(fā)設(shè)置 Moralis
在我們?yōu)橛螒虮旧砭帉懘a之前,我們必須導(dǎo)入 Moralis SDK(軟件開(kāi)發(fā)工具包)并初始化 Moralis。此外,要初始化 Moralis,我們必須首先創(chuàng)建一個(gè)服務(wù)器。
- 創(chuàng)建 Moralis 服務(wù)器——我們要做的第一件事是使用 Moralis 設(shè)置服務(wù)器。使用 Moralis 創(chuàng)建服務(wù)器非常簡(jiǎn)單,只需幾分鐘。要初始化服務(wù)器,我們需要登錄 Moralis 并單擊“+創(chuàng)建新應(yīng)用程序”按鈕。單擊時(shí),將出現(xiàn)一個(gè)下拉菜單,其中包含三個(gè)選項(xiàng)。選擇哪個(gè)選項(xiàng)并不重要,但對(duì)于此示例,我們建議使用測(cè)試網(wǎng)。一旦您選擇了要啟動(dòng)的服務(wù)器類型,我們需要為我們的服務(wù)器提供一個(gè)名稱,選擇一個(gè)區(qū)域,然后選擇網(wǎng)絡(luò)。一旦我們完成了我們的選擇,我們可以簡(jiǎn)單地點(diǎn)擊“添加實(shí)例”按鈕來(lái)啟動(dòng)服務(wù)器。啟動(dòng)服務(wù)器可能需要幾分鐘時(shí)間,但很快就會(huì)啟動(dòng)并運(yùn)行。
- Moralis SDK — 我們可以通過(guò)幾行代碼輕松導(dǎo)入 Moralis SDK。這樣做的原因是為了讓我們能夠在我們的代碼中訪問(wèn)開(kāi)發(fā)工具包,以便在編程時(shí)訪問(wèn)庫(kù)和其他有價(jià)值的工具。導(dǎo)入 SDK 看起來(lái)像這樣:
- 初始化 Moralis——最后,我們還需要初始化 Moralis。為此,我們需要找到我們服務(wù)器的 URL 和應(yīng)用程序 ID。我們可以通過(guò)單擊相關(guān)服務(wù)器的“查看詳細(xì)信息”按鈕來(lái)找到這一點(diǎn)。代碼將與您的應(yīng)用程序 ID 和服務(wù)器 URL 類似:
驗(yàn)證用戶
當(dāng)我們游戲的玩家訪問(wèn)網(wǎng)站時(shí),我們需要讓他們能夠登錄并驗(yàn)證自己。此身份驗(yàn)證通過(guò) MetaMask 進(jìn)行,如果您不熟悉此擴(kuò)展,請(qǐng)查看 Metamask 的細(xì)分。這很簡(jiǎn)單,我們需要的只是一行代碼:
此外,使此功能出色的是 Moralis 集成。當(dāng)用戶登錄并執(zhí)行該行代碼時(shí),一個(gè)新用戶將添加到您的 Moralis 數(shù)據(jù)庫(kù)中。我們可以通過(guò)單擊相關(guān)服務(wù)器的三個(gè)點(diǎn)然后按“儀表板”來(lái)查看服務(wù)器數(shù)據(jù)庫(kù)中的所有用戶。
在儀表板界面的最左側(cè),我們將看到“瀏覽器”、“Webhooks”、“作業(yè)”等不同的選項(xiàng)卡。在“瀏覽器”選項(xiàng)卡下,我們找到了幾個(gè)不同的頁(yè)面。一個(gè)例子是“用戶”頁(yè)面,所有用戶的加密地址都會(huì)出現(xiàn)在這里。然而,對(duì)于本教程更重要的是,我們可以在“EthNFTOwners”頁(yè)面下看到我們用戶的所有 NFT。這非常了不起,只需一行代碼,我們就可以查看從用戶的加密地址到他們的 NFT 的所有內(nèi)容。
這展示了 Moralis 的魔力,這只是我們可以用大約 100 行代碼創(chuàng)建 NFT 游戲的眾多原因之一。此外,這展示了 Moralis 如何幫助加速加密 dApp 的開(kāi)發(fā)過(guò)程,從而使整個(gè)行業(yè)受益。
NFT 游戲圖形
我們游戲開(kāi)發(fā)過(guò)程的下一步是設(shè)置游戲的圖形。在此示例中,我們使用了一個(gè)名為Phaser的庫(kù),這是一個(gè)免費(fèi)、快速且開(kāi)源的 HTML5 游戲庫(kù)。這是一個(gè)出色的庫(kù),用于創(chuàng)建簡(jiǎn)單的繪圖,例如我們用于 NFT 游戲的繪圖。因此,要初始化 Phaser 游戲庫(kù),代碼示例如下所示:
此外,為了向您展示圖形的外觀,這里是游戲的打印屏幕:
NFT 游戲生命周期
接下來(lái),我們有游戲的生命周期。這是所有游戲都有的東西,從游戲加載一堆東西開(kāi)始。所以,這里的一個(gè)例子是我們可以使用一個(gè)名為“preload”的函數(shù)來(lái)加載我們的游戲背景:
如您所見(jiàn),我們只預(yù)加載了游戲的背景,但上面的打印屏幕上有一些頭像。但是,我們無(wú)法預(yù)加載頭像,因?yàn)樗鼈儗儆谕婕?,而且我們不知道玩家正在玩什么。因此,我們不知道在屏幕上放什么頭像。有關(guān)頭像的數(shù)據(jù)從區(qū)塊鏈中獲取并加載到應(yīng)用程序的另一部分中。
此外,正如您在代碼中看到的,我們還執(zhí)行了一個(gè)“ping()”函數(shù)。這很重要,因?yàn)槲覀冃枰_(kāi)始 ping 服務(wù)器。這樣做的原因是服務(wù)器需要知道此時(shí)此刻哪些玩家正在玩游戲。此 ping 功能每秒不斷重復(fù)。下面是這個(gè)函數(shù)的樣子:
控制和訂閱
創(chuàng)建游戲圖形的函數(shù)后,我們可以添加控件并設(shè)置對(duì) GameState 的訂閱。然而,這是什么意思呢?如果我們查看 Moralis 中的服務(wù)器數(shù)據(jù)庫(kù),我們會(huì)看到一個(gè)名為“GameState”的選項(xiàng)卡。GameState 告訴我們每個(gè)玩家/頭像在地圖上的位置。這意味著一旦 GameState 發(fā)生變化,訂閱就會(huì)更新每個(gè)客戶端。因此,每當(dāng)世界上有其他玩家移動(dòng)時(shí),我們都會(huì)收到警報(bào)。
使用 Moralis,可以避免使用 WebSockets 構(gòu)建復(fù)雜基礎(chǔ)設(shè)施、連接到 WebSockets 的邏輯、發(fā)送數(shù)據(jù)等所有麻煩;我們可以利用這個(gè)平臺(tái)。我們所需要的只是實(shí)現(xiàn)上面的訂閱代碼。這意味著我們只需要幾行代碼來(lái)確保我們的游戲知道地圖上每個(gè)玩家的狀態(tài)。
更新功能
一旦我們?cè)O(shè)置了對(duì) GameState 的訂閱并為我們的游戲建立了控件,我們還需要一個(gè)更新函數(shù)。此功能正在偵聽(tīng)按下了什么鍵,然后發(fā)送請(qǐng)求以將字符移動(dòng)到服務(wù)器。部分更新功能看起來(lái)像這樣,這是向上移動(dòng)我們的頭像的請(qǐng)求:
然而,這個(gè)片段的一個(gè)關(guān)鍵要點(diǎn)是我們不會(huì)立即移動(dòng)游戲中的角色;我們只是向服務(wù)器發(fā)送請(qǐng)求。這樣做的原因是服務(wù)器確定是否可以向該方向移動(dòng)角色。因此,不實(shí)際玩游戲是不可能移動(dòng)角色的,服務(wù)器禁止用戶作弊。
繪制狀態(tài)
最后,我們有一個(gè)繪制游戲狀態(tài)的函數(shù)。“drawState”函數(shù)的第一部分是關(guān)于新玩家的。如果播放器未知,該函數(shù)會(huì)從您的 Moralis 服務(wù)器獲取播放器 SVG,它直接從區(qū)塊鏈獲取。但是,在查看 NFT 游戲的后端代碼時(shí),我們將更深入地了解如何獲取 SVG。
如果不是新玩家,游戲只是在游戲環(huán)境中移動(dòng)玩家的頭像。本示例中的代碼如下所示:
因此,總而言之,只需實(shí)現(xiàn)少數(shù)功能即可讓玩家在 2D 環(huán)境中移動(dòng)。此外,代碼還需要訂閱 GameState 以向客戶端提供游戲中所有其他玩家的實(shí)時(shí)更新,我們用幾行代碼就完成了這項(xiàng)工作。
這一切都是為了前端,NFT 游戲開(kāi)發(fā)過(guò)程非常簡(jiǎn)單,具有編程和JavaScript的基本知識(shí)。這就是 Moralis 的力量,如果您有興趣,
http://Moralis.io 還提供了有關(guān)創(chuàng)建 ETH dApp和Polygon dApp 的出色指南。但是,我們還沒(méi)有完全完成,因?yàn)槲覀內(nèi)匀恍枰_(kāi)發(fā)應(yīng)用程序的后端。
如何構(gòu)建 NFT 游戲 – 后端
如果您發(fā)現(xiàn)應(yīng)用程序的前端易于開(kāi)發(fā),那么后端將更加簡(jiǎn)單,這要?dú)w功于 Moralis。在我們 NFT 游戲的后端,我們會(huì)發(fā)現(xiàn)更多的游戲邏輯和前端在有人玩游戲時(shí)調(diào)用的一堆函數(shù)。這里的第一個(gè)示例是用于移動(dòng)頭像的函數(shù)。
移動(dòng)功能
每當(dāng)玩家試圖通過(guò)按下他們的鍵盤鍵來(lái)移動(dòng)他們的頭像時(shí),前端就會(huì)調(diào)用這個(gè)移動(dòng)函數(shù)。此函數(shù)接收化身應(yīng)移動(dòng)的方向,然后更新應(yīng)用程序的狀態(tài)。
如您所見(jiàn),移動(dòng)函數(shù)還調(diào)用了“updateState”函數(shù)。這個(gè)函數(shù)移動(dòng)頭像,在這個(gè)例子中,它向玩家喜歡的方向移動(dòng)用戶五個(gè)單位。
但是,如您所見(jiàn),還有一條注釋說(shuō)明我們可以在此處添加更多邏輯。因此,我們可以添加化身可以撿起的物品或創(chuàng)建化身無(wú)法移動(dòng)的邊界/障礙物。服務(wù)器可以檢查玩家移動(dòng)的方向是否有障礙物,并在必要時(shí)限制移動(dòng)。
持久狀態(tài)函數(shù)
這個(gè)游戲中的另一個(gè)函數(shù)是“persistState”函數(shù),這是將 GameState 保存到我們服務(wù)器數(shù)據(jù)庫(kù)的地方。這個(gè)函數(shù)看起來(lái)像這樣:
保存狀態(tài)后,每個(gè)客戶端都將使用新的 GameState 進(jìn)行更新,這就是客戶端和服務(wù)器之間實(shí)時(shí)通信的方式。這是一個(gè)簡(jiǎn)潔的解決方案,只需不到十行代碼,結(jié)合前端的訂閱功能。
Ping 功能
在后端,我們還有一個(gè) ping 功能,它只是檢查用戶何時(shí) ping 服務(wù)器,然后將其保存到游戲狀態(tài)。
此外,我們還使用此函數(shù)從區(qū)塊鏈中獲取 SVG。我們?cè)谶@里做的第一件事是向用戶查詢他們的 NFT?;谶@些信息,我們可以從區(qū)塊鏈中獲取用戶的 SVG。
如您所見(jiàn),ping 函數(shù)代碼調(diào)用了另一個(gè)名為“getSVGString”的函數(shù),這就是我們從區(qū)塊鏈中獲取 SVG 的方式。乍一看,這個(gè)函數(shù)看起來(lái)很嚇人,因?yàn)?ABI 相當(dāng)可觀。但是,我們可以從 Aavegotchi 合約中復(fù)制和粘貼 ABI。
而已; 這些是我們創(chuàng)建第一個(gè) NFT 游戲所需的所有功能。我們已經(jīng)實(shí)現(xiàn)了從實(shí)時(shí)更新到與服務(wù)器檢查移動(dòng)是否有效的功能的所有內(nèi)容。它一點(diǎn)也不復(fù)雜,有了合適的工具,我們可以在幾分鐘內(nèi)制作出這款游戲!
但是,如果您對(duì) NFT 游戲開(kāi)發(fā)過(guò)程仍有疑問(wèn),我們建議您觀看來(lái)自Moralis YouTube 頻道的以下視頻。在本教程中,Ivan on Tech 將引導(dǎo)您完成整個(gè)過(guò)程,以更深入地解釋應(yīng)用程序的實(shí)際工作方式。此外,最后,Ivan 還提供了一些關(guān)于如何改善應(yīng)用程序用戶體驗(yàn)的建議。
NFT 游戲開(kāi)發(fā) — 總結(jié)
盡管游戲開(kāi)發(fā)被認(rèn)為是一個(gè)相當(dāng)復(fù)雜的過(guò)程,但并非必須如此。我們只需要合適的工具,而對(duì)于 Web3 開(kāi)發(fā),該工具就是 Moralis。我們展示了使用 Moralis 的魔力快速創(chuàng)建 NFT 游戲是多么容易。我們開(kāi)發(fā)了一個(gè)帶有簡(jiǎn)單前端和后端的 Aavegotchi 游戲,只花了我們幾分鐘。然而,這只是為了讓讀者更清楚地了解過(guò)程的一個(gè)例子,并且可以創(chuàng)建具有相同邏輯的其他游戲。因此,我們完全不限于 Aavegotchi。
但是,我們確實(shí)需要 Moralis 來(lái)使該過(guò)程更易于訪問(wèn)且速度更快。用不到十行代碼在客戶端和服務(wù)器之間創(chuàng)建實(shí)時(shí)通信的能力清楚地展示了 Moralis 的強(qiáng)大功能。如果您仍然不相信該平臺(tái)的便利性,請(qǐng)隨時(shí)查看使用 Moralis創(chuàng)建以太坊代幣和BSC 代幣是多么容易。
因此,如果您想進(jìn)入 NFT 游戲開(kāi)發(fā),那么您需要做的第一件事就是立即注冊(cè) Moralis!您不僅能夠創(chuàng)建著名的 NFT dApp,而且擁有像 Moralis 這樣強(qiáng)大的平臺(tái)的機(jī)會(huì)是無(wú)窮無(wú)盡的。