好像這更是一個工作 的一個數據庫
如此,儘管「數據庫」並不一定意味着「關係型數據庫」。大多數現有的MUD都將所有數據存儲在內存中,並從純文本數據格式的平面文件中讀取。我不一定會推薦這條路線,只是指出傳統數據庫絕不是必要的。如果你想要走關係路線,Python的最新版本會附帶sqlite,這是一個輕量級的嵌入式關係數據庫,具有良好的SQL支持。
使用關係數據庫與您的代碼可能會很尷尬。對遊戲邏輯類的任何更改都可能需要對數據庫進行並行更改,並更改爲讀取和寫入數據庫的代碼。出於這個原因,良好的規劃將會幫助你很多,但是如果沒有經驗,很難規劃好數據庫模式。至少首先計劃你的實體類,然後圍繞它建立一個數據庫模式。閱讀normalizing a database並理解其中的原則將有所幫助。
你可能想要使用一個'對象關係映射器',它可以爲你簡化很多這個。 Python中的示例包括SQLObject,SQLAlchemy和Autumn。這些隱藏了很多複雜的因素,但結果可能會隱藏一些重要的細節。我建議直接使用數據庫,直到您更熟悉它爲止,並且考慮將來使用ORM。
我正在考慮在數據庫中爲每個 實體存儲一個字典 對象。通過這種方式,我可以在 的數據庫中簡單地將新屬性添加到數據庫中,而不必更改數據庫的列。那 聽起來合理嗎?
不幸的是沒有 - 如果你這樣做,你浪費了數據庫的99%的能力,並有效地使用它作爲榮耀的數據存儲。但是,如果您不需要上述的數據庫功能,如果您使用正確的工具進行工作,則這是一條有效的路線。標準的shelve模塊非常值得爲此尋找。
我應該存儲在 相同的數據庫,但在不同 表或在不同的數據庫中的不同實體(敵人 和房間)的所有信息。
一個數據庫。每個實體類型的數據庫中有一個表。這是使用關係數據庫(如MySQL,SQL Server,SQLite等)時的典型方法。
我知道這將是蠕蟲, 一罐但什麼是一個好的 數據庫一些建議嗎? MySQL是不錯的選擇?
我會建議堅持使用sqlite,直到你更熟悉SQL爲止。否則,MySQL是PostGreSQL的免費遊戲數據庫的合理選擇。
Google搜索「泥漿數據庫模式」的頂級結果是專家交流。這裏希望在幾天後它將成爲StackOverflow! – DVK 2009-10-09 19:23:25
另外,我想親自歡迎您來到MUD開發的絕妙地獄。比我玩沉默的東西更多的樂趣,從我記得的我的不良MUD過去(我編寫了一個C MUD,我的朋友跑過) – DVK 2009-10-09 19:25:51
我喜歡一些MUD,但我認爲開發一個會很有趣。 – samoz 2009-10-09 21:27:19