我正在嘗試創建一個古老的文本冒險遊戲。我有點卡住創建世界地圖和房間。爲文字冒險遊戲設計和建築忠告
房間描述應該作爲源代碼的一部分還是應該分離出來?我正在考慮將所有這些描述和房間屬性放在MySQL數據庫中,然後讓代碼來組織每個房間的邏輯;把每個房間的描述與實際的源代碼放在一起似乎有點不整潔。
這是在冒險遊戲中組織描述的首選方法嗎?我也在想,這可能會更好,因爲我可以查詢數據庫以查找有關數據的公共屬性。
任何意見,將不勝感激。
我正在嘗試創建一個古老的文本冒險遊戲。我有點卡住創建世界地圖和房間。爲文字冒險遊戲設計和建築忠告
房間描述應該作爲源代碼的一部分還是應該分離出來?我正在考慮將所有這些描述和房間屬性放在MySQL數據庫中,然後讓代碼來組織每個房間的邏輯;把每個房間的描述與實際的源代碼放在一起似乎有點不整潔。
這是在冒險遊戲中組織描述的首選方法嗎?我也在想,這可能會更好,因爲我可以查詢數據庫以查找有關數據的公共屬性。
任何意見,將不勝感激。
不,請勿在代碼中包含級別/房間描述,這種方式不是動態的。
許多開發框架現在傾向於將代碼與數據分離。因此,對於通常的情況,我們會將遊戲室數據放入文件中,並讀取這些數據以構建關卡,並可能使用戶自行構建新關卡,並最終創建一個新文件來攜帶房間數據。
我在一家制作遊戲的公司工作,他們的房間與代碼分開,他們在mysql中。實際上,每個房間的物品都放在一張桌子上,還有一張桌子,上面寫着哪個房間在哪個房間。 除此之外,如果你想擴大你的遊戲或者做統計數據,用數據庫做得更好。
我會構建一個這樣的遊戲作爲一個解讀器,讀取房間數據,並根據房間數據,允許一組有效的命令(移動,取,放,改...)。對於移動,你將有一個預先建立的圖,其中節點是房間和邊緣被允許移動。
我會在這裏解決兩個問題。首先,將遊戲定義的數據遠離將要使用它的引擎是正確的。這使得你不必重新編譯所有東西,以便在基於文本的遊戲的情況下修復打字錯誤等。
其次,但我只是質疑使用MySQL。如果你正在製作一個安裝在人們系統上的dos類型的遊戲,你不希望pre-req是'安裝MySQL',呵呵。這裏有一個用C語言編寫的小程序,可以讓所有人免費使用稱爲SQLite的程序,它可以更好地滿足您的需求。如果在另一方面,網絡是這個基於文本的遊戲的發佈媒介,那麼必須在它:)
如果房間的描述是源代碼的一部分,還是應該 被分離出來?
分開。
嘗試使用Prolog語言。
您可以看到examples of Prolog text adventures in simple Google search。
我將從代碼中分離出描述,擁有一個對象Room,它擁有一個對象通過某個Facade調用「數據庫」的描述,以便您可以使用文件或數據庫或任何您希望的內容。它最終還會允許你爲房間本身添加一些腳本,比如描述中的對象具有行爲。
您可以使用像ADRIFT這樣的系統,那麼您只需要擔心的是描述和邏輯。