2009-02-01 124 views

回答

-1

我爲這些遊戲推薦Actionscript

3

原始的nethack是用C語言編寫的,如果您想了解一下它是如何編寫的,以及您可能會發現的挑戰,這可能是開始選擇語言的好方法,您可以使用source is available

-1

你可以考慮Silverlight。

它位於C#和.Net之上,因此它們不需要擔心內存管理。使用SL,您將構建支持場景圖形類型渲染 - 剔除不在屏幕上的東西,鍵盤,鼠標事件,對象的點擊等。

有初始學習曲線,但我覺得它是一個很好的環境工作英寸

+0

你有沒有可能有更多信息的鏈接? – 2009-11-23 21:08:34

6

嗯,我已經在C做了一對夫婦roguelikes,花費相當長的時間在roguebasin,這是一個偉大的網站與任何有關roguelike發展的任何事情。

至於您應該使用哪種語言,我並不認爲它會產生巨大的差異。我選擇C是因爲可移植性,許多庫可以很好地工作。但面向對象的語言可以清理一些你可能不想跟蹤的東西。

我認爲沒有任何語言比roguelikes的其他語言更具體。如果你使它成爲圖形化的,你可能更喜歡那些內置的東西,比如flash/silverlight。但即便如此,還有其他語言的圖書館在這方面給他們帶來了相同程度的困難。

所以我說把你懂得的語言和喜歡,或者說你不知道,想了解..

9

我使用的語言(我嘗試過創建roguelike)是Python的,因爲:

  • 它是高層次的編程語言,我不需要一直考慮內存分配等問題,而是緊記算法。
  • 幾乎所有的東西都有很多有用的庫。最近我發現了TDL/libtcod它可以用於roguelike發展。
  • 使用綁定,您可以輕鬆使用C/C++庫,甚至可以在C/C++中編寫幾個關鍵函數並使用它們。
  • 這是我見過的最具可讀性的編程語言。
  • 在Python中編程時,我學會了使用內部文檔。這非常有幫助,幾個月後我剛剛閱讀了我的代碼,我仍然知道它在做什麼。
3

我的第一個問題是遊戲是否會有一個基於Web的用戶界面,或者是像原來的Rogue類遊戲那樣的控制檯/窗口事件?如果前者我會說任何你熟悉的語言都是不錯的選擇。 Ruby on Rails,Python/Django,PHP/CakePHP等都會很棒。

但是,如果答案是後者,那麼這是一個您希望人們可以在本地下載和安裝的遊戲,我將使用Java。這是一個偉大的語言,沒有內存管理,可供您處理。由於即時編譯和優化,它實現了非常高的性能,並且它有一個非常豐富的庫來幫助你處理數據結構,Swing使一些非常漂亮的UI,2D庫允許最豐富的跨平臺在PostScript之外進行渲染。它還具有跨Windows,Mac OS X和Linux的可用性,您無法從其他選擇中獲得該功能。

最後,您的應用程序的發佈也很容易通過Java Web Start進行,所以人們只要點擊幾下鼠標就可以下載並安裝遊戲,只要他們擁有Java並將它保持在機器上運行,只要他們喜歡。

8

這是一個非常個人的選擇一如既往:-)

我寫我Roguelike遊戲(暴君)在Java中,原因如下:

  • 非常便攜(甚至圖形)
  • 垃圾收集/內存管理
  • 許多優秀的免費/開源庫可用(有助於算法,數據結構和操作保存遊戲文件等)
  • 這是一個靜態類型語言 - 這有我判斷是值得的額外的編碼複雜度
  • 我想更廣泛地磨練我的Java技術用於其它項目

編輯性能和穩定性的好處:對於那些有興趣的是它是開源的,所有的代碼都可以在SourceForge

4

這些答案大部分都很好,但是對於面向對象的東西和可以在C++中濫用的低級命令的綜合功能有些東西要說。如果你正在尋找一些靈感,NetHack的C源代碼已經被廣泛使用並且記錄得很好,你可以肯定地學習一些東西。也就是說,這是一個數十年來一直在增長的巨大項目,並不是每件事都像你想爲自己的項目想要的那樣乾淨 - 不要因爲你在NetHack中發現的東西而陷入糟糕的設計選擇。

雖然誠實地說,根據您使用的內容,它可能根本無關緊要 - 儘管我強烈建議使用OO語言。有很多垃圾可以在roguelike中處理(真的,任何CRPG),OOP是保持理智的最簡單方法。

0

作出任何遊戲,任何語言將是正確的,如果:

  1. ,你可以用它(你可以使用它,通過知識或者如果它是很容易,現在學習爲您或您的團隊)
  2. 它生成在客戶端計算機上運行的應用程序
  3. 它可以輕鬆生成足夠滿足遊戲需求的應用程序。

我認爲對於類似盜賊的人來說,任何你知道的語言都會是正確的,只要它運行在你的目標上。在這種遊戲中,表演並不是真正的問題。如果你的世代真的很複雜,世界一代可能需要高性能...

0

只是去處理一些將處理你的低級細節。無論你知道應該工作。

嘿,他們可以在javascript中編寫一個。