原文:《 RPG Building Basics - Encode Club Sui Series #5 》by SUI Foundation
編譯:SUI World
Sui Foundation 與Encode Club 合作提供了系列以開發者為中心的教育視頻,本系列視頻共計六則,範圍從Sui 的基礎知識到構建智能合約和使用Sui Move 中的對象的教程。往期視頻參照SUI World 推文。
本教程將給我們展示如何為角色扮演遊戲(RPG) 創建角色和道具,以及如何讓它們互動,千萬不要錯過!詳情點擊「閱讀原文」查看視頻。
學習亮點
由於Sui Move 的以對象為中心的編程模型及其可擴展性,Sui 有望成為第一個真正將web2 體驗交付到web3 的區塊鏈,這種體驗包括遊戲,遊戲的編程本質上都很複雜,並且需要強大的基礎設施來確保玩家的無縫體驗。得益於Sui Move 的以對象為中心的編程模型及其可擴展性,Sui 能夠應對挑戰。
讓我們看一下Sui Move 中鏈上RPG 的編碼示例。以下示例改編自Sam Blackshear 的hero.move 代碼。
https://github.com/MystenLabs/sui/blob/main/sui_programmability/examples/games/sources/hero.move?ref=blog.suifoundation.org
上面的代碼定義了我們的可玩角色。從它的領域可以看出,這個英雄可以與角色扮演遊戲中的其他角色相媲美,它具有生命值(HP)、經驗和庫存。
上面的代碼展示了我們英雄的劍,請注意,這把劍具有鑰匙和存儲能力。回顧一下本系列之前的課程,key 意味著它是一種可擁有的資產,可以存在於頂級存儲中。此類別中的Move 對像也可以從外部API 訪問,從而創造了Sui 在多個遊戲中使用項目的獨特可能性。而存儲意味著這個對像是可以自由包裝和轉移的。
上面,我們在遊戲中定義了野豬、不可玩角色(NPC) 或敵人,與該類型的其他遊戲類似,我們可以為我們的英雄創建NPC 來戰鬥和獲得經驗,或者購買物品和接受任務。
The Action
上面代碼中顯示的動作描述了slay函數。在高層次上,這個函數首先檢查以確保Hero和Boar都屬於同一個遊戲實例。然後英雄和野豬之間的決鬥發生,檢查以確保英雄的HP不能達到零。決鬥結束後,英雄獲得與野豬成比例的經驗值,英雄的劍的力量增加1(如果英雄使用劍)。最後,該函數發出一個事件BoarSlayEvent。 Sui Move中的事件讓索引器跟踪鏈上的動作,這是實現普遍認可的對象狀態的重要手段。
上面的代碼示例簡要摘錄了Sam 的hero.move 代碼。此代碼為Sui 上的遊戲開發者提供了寶貴的示例,並且由於它是開源的,請隨時Fork 並構建您自己的遊戲!