設計下降遊戲的正確方法
假設我正在設計一個多人遊戲,玩家可以在不同的戰鬥中互相戰鬥。作為每場戰鬥的結果,玩家會得到一個標點符號。假設我正在使用側鏈。哪一種應該是分散遊戲的財產方式?
a) 戰斗在伺服器中計算,只有每個玩家的最終標點符號儲存在側鏈的智能合約中
b) 戰斗在智能合約中計算,遊戲參數的所有其他變化也在智能合約中計算(在側鏈中)
最後,按照等離子協議,我有規律地將壓縮數據保存到乙太坊主網……
我會選擇 a) 戰斗在伺服器中計算,只有最終結果儲存在智能合約中。;-)
使用智能合約記錄必須聲名狼藉的事實。這將簡化為:
權威伺服器 (Oracle) 宣布 Alice 在第n場比賽中以**x 到 y的比分擊敗 Bob,導致 Alice 獲得一些東西(例如託管中的積分或資金)。
您可能希望將契約的範圍擴展到遊戲本身,例如創建一個可證明公平的投注遊戲。“Battles”聽起來計算密集,不適合以區塊鏈的方式進行確認。這聽起來也有些主觀。由於這些原因,我傾向於將游戲玩法留給伺服器集群。
進一步擴展這個想法,必須超出聲譽的事實包括玩家可能能夠隨身攜帶的可消費代幣,即離開遊戲並在其他地方消費。這對於私有鍊是不可能的,但它可以在主網上執行。如果將獎金標記化不是目標,您可能會發現將區塊鏈添加到您的記分過程中會使事情變得相當複雜,而且沒有任何意義。
希望能幫助到你。
我嘗試添加一個一般性考慮:什麼時候在區塊鏈中編寫有用,什麼時候在離線伺服器上本地解決有用?
答案很簡單:每當您的闡述結果具有重要的經濟價值,並且可能會因將來某人的行為而被撤銷和/或無效或損壞時,您應該明確地使用區塊鏈。
如果它們應該成為未來進一步高價值加工的起點,也是如此。
相反,如果您的交易在此時此地關閉,無法恢復、無效或損壞,您仍然可以評估是否使用區塊鏈,以防您需要維護一些流程跟踪以供將來檢查任何真實的理由。
如果沒有,請立即下鏈。
以你的遊戲為例,如果你將所有遊戲動作的效果總結在最終結果中,而單個動作的真實經濟價值可以忽略不計,你就可以脫鏈。
另一方面,如果遊戲結果的價值可能很大,那麼能夠向他們展示將游戲帶到結果的所有單個動作以使最終的索賠無效會很有用。
所以這是必須針對單個案例進行評估的東西,不存在任何是/否自動規則!
當然,這適用於您可以計劃壓縮並發送到區塊鏈的數據。