Z 學院元宇宙 Unity 開發班Week4心得 — 存檔與資料庫

SharKevin
The Z Institute
Published in
Jun 26, 2023

在遊戲開發的世界裡,有個避不開的重要功能就是能夠有效地保存和儲存玩家的數據。這些數據包括遊戲進度、最高分數、解鎖的關卡等等重要的變量。Z 學院元宇宙這堂課在數據存儲方面使用兩個主要的選項:PlayerPrefs和Firebase實時數據庫。

本地儲存 PlayerPrefs

PlayerPrefs是Unity內置的功能,提供了一種簡單方便的本地數據存儲方式。開發者可以使用鍵值對的方式保存和讀取數據。這種方法適用於小規模項目,可以快速地保存和加載數據。PlayerPrefs非常適合存儲遊戲偏好設置、玩家設定或其他不需要復雜結構的數據。只需幾行代碼,開發者就能輕鬆保存和讀取數據。此外PlayerPrefs在各個平台上都可以使用,不受平台限制,玩家可以在不同的設備上訪問保存的數據,提供了無縫的遊戲體驗。

以下代碼簡單實現如何存檔位置資料,以及讀取位置資訊:

public static Point GetStartPoint()
{
return new Point( PlayerPrefs.GetInt("PointX", 0), PlayerPrefs.GetInt("PointY", 0));
}

public static void SaveStartPosition(int pX, int pY)
{
PlayerPrefs.SaveInt("PosX", px);
PlayerPrefs.SaveInt("PosY", pY);
}

然而,PlayerPrefs也有一些限制。由於數據存儲在玩家設備的本地,所以可能會受到篡改或刪除的風險。此外,如果玩家卸載遊戲,與之相關的所有PlayerPrefs數據都將丟失。在商業產品中用到的存檔技術也更加複雜,除了Client端加密解密以外,Server還會根據設備資訊近一步進行驗證來避免玩家作弊。

雲端存檔 Firebase

對於需要強大的數據存儲或多人遊戲功能的遊戲來說,需要一個更可靠和可擴展的解決方案。Firebase是Google提供的一個平台,提供了與Unity無縫集成的基於雲端的數據庫服務,這意味著玩家可以從任何設備訪問他們的遊戲進度,無論使用哪個平台,都能提供一致的遊戲體驗。此外,Firebase提供了強大的安全功能,包括用戶身份驗證和授權,確保玩家數據得到保護。

Firebase的另一個優勢是實時同步功能。這個功能除了可以讓開發者查看目前資料變化,還可以讓多個玩家同時交互操作相同的數據。例如,在多人遊戲中,玩家可以實時看到對手的分數或位置更新。這為遊戲體驗增添了新的參與度和競爭性。

在課堂上我們使用Firebase的Realtime Database API,Unity可以快速的在runtime時間以json格式創建玩家資料。比起筆者工作常用的SQL 關聯式資料庫,開發起來簡易又可以快速在雲端condole進行資料驗證。在Gamejam以及概念開發使用場景中,PlayerPrefs與Firebase在於存檔功能的實作已經相當足夠。

--

--