2010-12-04 98 views
3

我正在嘗試創建一個古老的文本冒險遊戲。我有點卡住創建世界地圖和房間。爲文字冒險遊戲設計和建築忠告

房間描述應該作爲源代碼的一部分還是應該分離出來?我正在考慮將所有這些描述和房間屬性放在MySQL數據庫中,然後讓代碼來組織每個房間的邏輯;把每個房間的描述與實際的源代碼放在一起似乎有點不整潔。

這是在冒險遊戲中組織描述的首選方法嗎?我也在想,這可能會更好,因爲我可以查詢數據庫以查找有關數據的公共屬性。

任何意見,將不勝感激。

回答

6

不,請勿在代碼中包含級別/房間描述,這種方式不是動態的。

許多開發框架現在傾向於將代碼與數據分離。因此,對於通常的情況,我們會將遊戲室數據放入文件中,並讀取這些數據以構建關卡,並可能使用戶自行構建新關卡,並最終創建一個新文件來攜帶房間數據。

4

我在一家制作遊戲的公司工作,他們的房間與代碼分開,他們在mysql中。實際上,每個房間的物品都放在一張桌子上,還有一張桌子,上面寫着哪個房間在哪個房間。 除此之外,如果你想擴大你的遊戲或者做統計數據,用數據庫做得更好。

0

我會構建一個這樣的遊戲作爲一個解讀器,讀取房間數據,並根據房間數據,允許一組有效的命令(移動,取,放,改...)。對於移動,你將有一個預先建立的圖,其中節點是房間和邊緣被允許移動。

3

我會在這裏解決兩個問題。首先,將遊戲定義的數據遠離將要使用它的引擎是正確的。這使得你不必重新編譯所有東西,以便在基於文本的遊戲的情況下修復打字錯誤等。

其次,但我只是質疑使用MySQL。如果你正在製作一個安裝在人們系統上的dos類型的遊戲,你不希望pre-req是'安裝MySQL',呵呵。這裏有一個用C語言編寫的小程序,可以讓所有人免費使用稱爲SQLite的程序,它可以更好地滿足您的需求。如果在另一方面,網絡是這個基於文本的遊戲的發佈媒介,那麼必須在它:)

1

如果房間的描述是源代碼的一部分,還是應該 被分離出來?

分開。

嘗試使用Prolog語言。

  • 它具有類似的數據庫,以SQL(實際上是邏輯謂詞)
  • 隨着一些技巧您可以檢查是否經過一些變化是你的冒險最終處理。
  • 如果你不介意它是非常「電腦般的」,你可以通過一些邏輯謂詞輕鬆地創建這個描述。

您可以看到examples of Prolog text adventures in simple Google search

0

我將從代碼中分離出描述,擁有一個對象Room,它擁有一個對象通過某個Facade調用「數據庫」的描述,以便您可以使用文件或數據庫或任何您希望的內容。它最終還會允許你爲房間本身添加一些腳本,比如描述中的對象具有行爲。

2

您可以使用像ADRIFT這樣的系統,那麼您只需要擔心的是描述和邏輯。

1

我建議使用已經有一個充滿活力的社區周圍的引擎。這樣,你的源代碼就是這樣;遊戲的源代碼。我會去TADS 3Inform 7