Metaverse Coin 元宇宙虛擬代幣交易平台

元宇宙虛擬代幣交易平台的技術文件,玩家可以在支援的遊戲使用虛擬代幣,遊戲中獲得的代幣可以儲存到自已的錢包。

快速連結 [ 虛擬代幣伺服器 ] [ 遊戲端設定 ] [ 獎勵機制 ]

其架構類似大型機台的遊樂場,玩家進入遊樂場需要先將現金兌換成代幣,再使代幣投入機台遊玩。

當玩家達成遊戲中的特定條件,例如擊倒敵人或過關,即可獲得虛擬代幣,再存回虛擬代幣伺服器。

 

使用者需要自行註冊帳號,目前的設計是以手機號碼註冊帳號。

使用者先以手機註冊帳號,操作伺服器可能造成系統安全問題。

註冊後將獲得初始的虛擬代幣,管理者可設定初始代幣的金額。

管理者可以為使用者儲值,而使用者可在自已的手機查詢帳號。

為了讓玩家連結到虛擬代幣交易平台,伺服器需透過網路連結。

運作於區域網路可請使用 IPCONFIG 查詢 IP 位址供玩家連結。

 


第1章 虛擬代幣伺服器

使用 Apache 架設網站伺服器、安裝 MySQL 資料庫與 phpMyAdmin 管理資料庫。

支援 XAMPP 架設伺服器,開啟控制面板,按下 Start 啟用網站伺服器與 MySQL 資料庫。

開啟 C:\xampp\htdocs 資料夾,這是網站主目錄,刪除原本的檔案,然後放入系統檔案。

開啟瀏覽器輸入網址 http://127.0.0.1 或 http://localhost 連結架設的網站伺服器。

網址輸入 http://127.0.0.1/phpmyadmin/ 可以進入資料庫管理網頁。

 

網頁功能

元宇宙代幣平台使用 PHP 網頁,包含以下網頁:

index.php 首頁
game-list.php 遊戲列表(管理遊戲、設定扣除代幣、遊玩獎勵、過關獎勵)
coin-add.php 儲值代幣(包括儲值、遊玩獎勵、過關獎勵)
coin-minus.php 扣除代幣
coin-test-ok.php 資料插入成功後的前往頁面
coin-test-ng.php 資料插入失敗後的前往頁面
user-list.php 使用者列表
user-register.php 使用者註冊
transaction-list.php 使用者的虛擬代幣交易列表

 

資料庫結構

元宇宙代幣平台的資料儲存於 db_metaverse 資料庫,包括使用者資料、商品資料、交易資料…等。

 

使用者資料表

tb_user 使用者(記錄玩家ID、帳號、密碼、)

user_ID SMALLINT ID(主索引)
user_name VARCHAR 玩家名稱
user_pass VARCHAR 登入密碼
user_nickname VARCHAR 玩家暱稱
register_date DATE 註冊日期

 

儲值資料表

tb_coin_add 儲值交易記錄(只記錄玩家儲存、金額、交易日期)

>>> transaction_ID, user_id, coin, transaction_date

 

扣點資料表

tb_coin_add 扣點交易記錄(只記錄玩家扣點、金額、交易日期)

>>> transaction_ID, user_id, coin, transaction_date

 

 


 

第2章 遊戲端開發

 

 

coin-add.php 網頁,負責接收來自遊戲的儲值,程式碼如下:

coin-minus.php 網頁,負責接收來自遊戲的扣點,程式碼如下:

 

UnityWebRequest-user.php 提供遊戲端連結 透過傳送 user_name 查詢 user_ID 功能(因為後續操作需要 user_ID)。

UnityWebRequest-coin-add.php 提供遊戲端連結 進行儲值功能的網頁(需要傳遞 user_id)

UnityWebRequest-coin-minus.php 提供遊戲端連結 進行扣點功能的網頁(需要傳遞 user_id)

使用範例 http://192.168.0.100/UnityWebRequest-coin-minus.php?user_id=8

 

 

匯入資料庫

本系統在更新或還原先前備份的資料庫時,需要匯入資料庫的 SQL 檔,操作步驟如下:

開啟 phpMyAdmin > 匯入 > 匯入到目前伺服器 > 匯入的檔案 > 選擇檔案 > 執行 > 完成匯入 db_metaverse

 

遊戲端設定

虛擬代幣伺服器提供元宇宙遊戲儲值與扣點的功能,主要是透過 WebRequest 功能達成的,因此使用 Unity 或 Unreal 引擎開發遊戲皆可支援,無需擔心相容性問題。在遊戲中儲值連結 UnityWebRequest-coin-add.php 網頁,而扣點連結 UnityWebRequest-coin-minus.php 網頁,並且透過 URL 參數傳遞使用者 ID 與需要儲值或扣點的金額。

提供 MetaverseUserCoin.cs 腳本,套用到遊戲物件,設定 Server IP 與 User ID 後按下 Play 測試遊戲。

以下範例使用者儲值 100 元,扣點 30 元,計算後餘額 70 元,實際上是由虛擬代幣伺服器端進行餘額計算。

透過網路抓取資料會有延遲,需要使用協程與延時呼叫,確認取得需要的數據後再進行後續處理,程式碼如下:

 

訊息公告

訊息公告透過 WebRequest 從伺服器抓取最新的訊息。

 

獎勵機制

為了增加使用者參與遊戲的動機,設計了獎勵機制,包括「遊玩獎勵」與「過關獎勵」。

UnityWebRequest-game-award.php 遊玩獎勵,遊戲端連結此網頁並傳遞 game_id 後可查詢遊玩的獎勵。

UnityWebRequest-game-earn.php 過關獎勵,遊戲端連結此網頁並傳遞 game_id 後可查詢過關的獎勵。

 

 

購物功能

 

 

連結伺服器(開發用)

元宇宙遊戲的開發階段,主要的功能必須連結到交易平台伺服器,如果能夠申請 Domain name 網域名稱是比較方便。不過因為網域名稱需要申請並支付年費才能持續使用,此系統也可以透過連結 IP 位址的方式運作,但是對於遊戲需要設定連結、進行測試、重新發佈…等步驟,開發與後續維護的門檻是需要考量的問題。

為了解決這個未來將會遇到的問題,設計一個快速切換的操作方式,例如同時在左手與右手的 VR 控制器上按著按鈕不放,等待 10 秒後出現設定的操作畫面。

 

 

 

 

 

 

開發用檔案 WF U