Chainlink服務幫助去中心化遊戲避避生態鏈的遊戲可以輕鬆實現,並為玩家創造更深入、更廣泛的Chainlink體驗。 Cozy Reef Labs在Chainlink 2021鬆鬆的項目中多個項目集成服務到他們的第一款遊戲Slingshot Sailers,其中包含使用鏈環守護者進行去中心化遊戲狀態管理,使用Chainlink VRF作為可證明的隨時性,以及使用Chainlink外部在本文中,我們將深入了解Cozy Reef 的幕後故事,並了解他們的團隊如何利用不同的Chainlink 服務來構建高級遊戲dApp。
文 舒適珊瑚礁實驗室
歡迎來到Cozy Reef
Cozy Reef Labs的成立是為了利用區塊鏈技術的獨特功能創造基於社區的深度體驗遊戲。
團隊中的每個成員都在視頻遊戲中擁有豐富的經驗,並希望組織、領導的玩家參與一個組織工作。為了完成這件事,勃勃的目標:這些遊戲玩家可以輕鬆地學習但同時掌握生態系統,探索遊戲體驗的廣闊世界,並且在和玩家的同時擁有的操作和提供獎勵。
在上鍊遊戲的這些遊戲中,我們可以幫助我們建立更多的鏈接,甚至可以幫助我們提供培養的技術,同時實現我們的目標,實現一個完整的遊戲環境。通過將公與Chainlink服務的生態系統結合,能夠建立一個顯露我們遊戲體驗上的去中心化鏈的平台。
Cozy Reef 發布拍賣系統的形式,推出Cozy Reef 主辦方作為參與平台的未來參與者。競爭並獲得獎勵。
Chainlink Keepers 驅動核心遊戲循環
彈弓水手是舒適的礁石第一季的第一場比賽。玩家必須從五個不同屬性的劇本中選出一個,將自己從追擊的舒適的礁石那裡的殺手的發射者越過它,獎勵和發射機會就多。但彈弓中的玩家也將增加發射錯誤的遊戲,從而避免對其進行攻擊。舒適的礁石幾個,玩家風險回報,並在接下來的幾個遊戲中,對其他玩家的決定進行了階段性的反應。
- 運動 | 移動——能夠選擇上哪條彈弓。一個彈弓上的改變彈弓發射成功或發射失敗玩家的玩家,並影響乘數。
- 鎖定 | 鎖定——不再能夠選擇彈弓啟動。時間是為了達到一定的確定區塊鏈的最終一致,確保阻止對黑客機VRF的搶奪以及區塊的劃分等。
- VRF_REQUESTED | VRF 請求–向Chainlink VRF 請求一個隨時弓數,這決定了每個彈的結果。
- VRF_RECEIVED | VRF接收輪允許隨時有數字被成功處理,本輪結果被計算出來。我們創建了這個額外的狀態,因為每次計算出VRF調用中超過的最大gas量(200,000gas)。注意:開發者可以在向Keepers註冊他們的dApp時配置最大gas。
在基於時間段的智能轉換中,由於我們還通過監控中心的環境檢查器,它需要外部允許調用一個調用來調用連接的階段轉換。 `checkUpKeep`函數來檢查是否需要將游戲轉移到下一個階段,這主要是由`block.timestamp`驅動的。
function checkUpkeep(bytes calldata) external view override returns (bool, bytes memory) { bytes memory empty; return (canTick(), empty); } function canTick() public view returns (bool) { return state.game.phase != Phase.NONE && state.game.phase != Phase.END && block.timestamp >= state.game.phaseScheduledEnd; }
當“checkUpKeep”函數返回“true”時,Keepers始終調用UpKeep“來將游戲過渡到下一個階段。
function performUpkeep(bytes calldata) external override { tickState(false); } function tickState(bool force) public { if (!(force || canTick())) return; if (state.game.phase == Phase.LOCKOUT) { require(LINK.balanceOf(address(this)) >= vrfState.fee, "Not enough LINK"); requestRandomness(vrfState.keyHash, vrfState.fee); } if (state.game.phase == Phase.VRF_RECEIVED) { sweepLanes(state.game.random); state.game.sweep++; state.game.lastRandom = state.game.random; } Phase previous = state.game.phase; state.gotoNextState(); emit StateUpdated(previous, state.game.phase); return; }
`tickState函數中,會根據遊戲階段觸發不同的動作,如果該階段會根據當前狀態觸發一個不同的動作,如果該階段會觸發一個狀態的請求。例如,在VRF_REQUES更新狀態,立即發布,將變為VRF_REQUES。合約發布的“狀態”事件,玩家的瀏覽運行會根據更新的合約狀態器調用查看函數來響應。為了節省遊戲和成本,遊戲合約原始的遊戲事件(彈弓發射,玩家的移動瀏覽器)。這些,併計算玩家在屏幕上看到的遊戲狀態(這個過程在下載鏈接有更全面的描述)。 彈弓水手 的完整遊戲合約將在遊戲的第一個實例啟動後不久公開。我們也鼓勵社區在他們參考自己的遊戲項目中的這個合約!
Chainlink VRF實現了玩家的互動
玩家圍繞風險管理決定決定,他們認為有最佳回報(發射機會、距離倍數)與風險(發射失敗機會、距離懲罰)的彈弓。根據和其他玩家的行為決定。彈弓水手的核心性能點。 Chainlink VRF 允許決定以去往以生成可通過顯示我們的全球數字,以驅動每輪中心的特殊結果的方式。失敗還是什麼都做不了。
如上節所述,從階段從`過渡到`VRF_REQUE,`請求函數`被調用,ST`LOCK時`隨機傳出值的費用。將通過隨機性`當遊戲和隨後返回一個實時的數字示。
function fulfillRandomness(bytes32, uint256 randomness) internal override { state.game.random = randomness; state.gotoNextPhase(); } function gotoNextPhase(State storage self) public { … } else if (self.game.phase == Phase.VRF_REQUESTED) { self.game.phase = Phase.VRF_RECEIVED; self.game.phaseScheduledEnd = uint48(block.timestamp); } … self.game.phaseStart = uint48(block.timestamp); } function tickState(bool force) public { … if (state.game.phase == Phase.VRF_RECEIVED) { sweepLanes(state.game.random); state.game.sweep++; state.game.lastRandom = state.game.random; } Phase previous = state.game.phase; state.gotoNextState(); emit StateUpdated(previous, state.game.phase); return; }
函數會設置正常,並觸發下一個階段的變化,由Chainlink Keeper最終更新,調用“tickState”函數,並通過“sweepLanes”確定該數據的結果。
鏈環外部實現了多鏈生態系統
玩家不應該是為了玩我們的上場遊戲的成本。而通過我們的成本來衡量我們在開發Cozy Retime 時的成本高昂。下載鏈接)在Polygon的側鏈上,水手們比在以太坊的主玩要便宜77倍以上。實際上,5000000000倍,我們在網上玩這樣的話題,以太坊主網還是在結算的鏈上。
我們是在以太坊主網上鑄造創世NFT,並在Polygon上運行遊戲。為了解決方案並允許玩家進入遊戲,我們利用函數視圖外部建立了一個證明服務。在以太坊的網上商店主擁有Cozy Reef NFT 的玩家使用多邊形上的驗證器,驗證代幣的並允許玩家進入實例遊戲的方法。比喻。
- 所有的合約調用都是在側邊上進行的,這比玩家要在以太坊主網上通過合約調用進行鏈接要便宜。
- 臨時和針對每個遊戲實例的驗證消除了跨鏈遊戲不同步的主要挑戰。
- 使用支持NFT 橋,而不是由證件來管理NFT 的安全風險。
- 側鏈的代幣幣可能很低,Cozy Reef Lab 的地段使用收入來源可以給玩家,以連續代幣鏈接接和代幣性和懸吊代幣性。
NFT證明的原型和技術劃分可在GitHub上。找到未來的發展將包括通過使用Chainlink DON 為協議提供動力來進一步分配該組件。
未來開發規劃
我們將在Cozy Reef 加入一個更重要的鏈上成長賽,並為我們舉辦了一個更重要的活動,並邀請倖存者“殺手”。隨著Cozy Reef 的第一個更廣泛的遊戲平台,我們將需要建立一個更廣泛的遊戲平台多的基礎設施。我們很高興能夠繼續利用Chainlink Keepers 的能力,使整個生態系統完全去中心化。
遊戲調度——彈弓水手將在每個遊戲週期中以固定的開始和結束時間為基礎。我們打算在循環的基礎上重新運行未來的遊戲,讓玩家繼續並獲得未來的遊戲獎勵。 Chainlink Keepers 是一個很好的活動者,可以以可預測和可靠的方式調度遊戲。
Chainlink Keepers 是一個優秀的工作代工作中心,可以擴展去化的方式管理遊戲後的處理,如獎勵分配。
和押寶管理為Cozy Reef 和我們的質幣鏈創造機會,將他們押在鏈上,並支持我們的獎學金項目。
Cozy Reef 第一季的推出該團隊能夠希望拓展區塊鏈遊戲領域的方方面面。使我們能夠以一種透明的、社區的、更廣泛的遊戲接觸到的方式。 ,將正式上線。
了解更多
如果您是智能合約的開發者,並將您的智能合約連接到區塊鏈開發以外的現有數據和基礎設施,請在這裡聯繫或訪問開發者文檔。