2009-12-10 11 views
3

我一直在玩弄使用Silverlight構建基於Web的Roguelike遊戲(或者也許只是使用WPF的桌面遊戲)的想法。在Silverlight(或WPF)中構建Roguelike

如果您不知道Roguelike是什麼,它是一種使用文本呈現圖形的圖形RPG。由於圖形引擎相對簡單,您可以花時間在遊戲中創建功能,並且可以讓一個人快速構建有趣的事物。

例如,一個典型的屏幕可能看起來像這樣(的@是玩家,#是一堵牆,其他人物像怪物,樓梯和物品的東西):

http://www.thangorodrim.net/graphics/dumps/dump2.gif

我是一名經驗豐富的ASP.Net開發人員,我剛剛開始使用Silverlight。我應該採取一種特殊的方法嗎?

爲了提供一些背景知識,在Winforms中,大多數標準方法太慢 - 文本最終會以可見的,醜陋的眨眼進行更新。我正在考慮與Canvas做些什麼可能是合適的,但更好的辦法是以某種方式將屏幕繪製到緩衝區中,然後立即將其轉到屏幕上,以便它立即可見。

但是我現在不想搞亂DirectX - 我希望WPF可以讓我到我需要的地方,而沒有很大的學習曲線。

有什麼想法?

更新:所以這原來是相當具有挑戰性的。我嘗試了很多不同的方法,終於能夠實現足夠快的渲染速度,但是我認爲要讓它快速發展,你應該建立一個你想使用的字體的Sprite貼圖,試圖使用任何內置的字體渲染的東西。我沒有那樣做。

當我完成了核心渲染引擎後,我最終得到了一些與字體渲染怪癖有關的令人討厭的工件(甚至固定寬度的字體有時也是寬度很大的...),當我最終解決了這個問題時,我發現libtcod,這是一個非常令人印象深刻的roguelike引擎,有一個C#包裝。這都是基於控制檯的。我玩了一下,我被吹走了。

從1.5.1開始,我在libtcod中觸及的所有東西除了鼠標輸入和鍵盤輸入模式之外(我認爲它們最近都放棄了)很有效,但是製作roguelike所需的一切是在那裏,包括幾個視線,尋路,甚至地牢生成算法。視覺上非常先進。你有沒有見過這樣的RL?

http://doryen.eptalys.net/files/screenshot0014.png

簡而言之,它可以建立與Silverlight的一個roguelike,但我不會指望它很容易,除非你已經有了一個強大的Silverlight或遊戲開發背景去。你將重新發明一些嚴肅的車輪,即使有一個強大的工具包,可以專注於遊戲玩法,也不乏可做的事情。

+0

這究竟是怎麼去?你是谷歌的排名第一的搜索結果:silverlight roguelike – ashes999 2011-09-13 20:56:58

+1

@ Ashes999這就是網絡近300個視圖。 :)我會做一個更新。 – 2011-09-13 23:43:15

+0

太棒了。我可以儘快做一個。 – ashes999 2011-09-14 03:46:16

回答

1

WPF應該能夠很容易地處理這個問題。

Silverlight可能會工作,但它沒有WPF提供的硬件加速,所以性能會更低。

實際執行有很多選項。您可以使用畫布並呈現自己。另外,如果你遇到更新問題,一個畫布網格(只根據需要更新)可能會幫助保留模式渲染系統性能提高一點,但我懷疑,使用標準屏幕分辨率,你會遇到任何問題這是WPF中的文本量。

1

你應該用Silverlight的XNA庫很容易地做到這一點。他們應該允許你以適合遊戲的速度至少做2D圖形。