【发布时间】:2019-05-19 09:05:34
【问题描述】:
我一直在考虑使用 Silverlight 构建基于 Web 的 Roguelike 游戏(或者可能只是使用 WPF 的桌面游戏)。
如果您不知道 Roguelike 是什么,它是一种使用文本渲染图形的图形 RPG。由于图形引擎相对简单,您可以花时间在游戏中构建功能,并且一个人可以快速构建一些有趣的东西。
例如,典型的屏幕可能看起来像这样(@ 是玩家,# 是墙,其他字符是怪物、楼梯和物品):
(来源:thangorodrim.net)
我是一位经验丰富的 ASP.Net 开发人员,我刚刚开始使用 Silverlight。我应该为此采取一种特殊的方法吗?
为了提供一些背景信息,在 Winforms 中,大多数标准方法都太慢了——文本最终更新为可见的、难看的闪烁。我在想与 Canvas 相关的事情可能是合适的,但更好的是以某种方式将屏幕绘制到缓冲区中,然后立即将其翻转到屏幕上,使其立即可见。
但我现在真的不想乱用 DirectX - 我希望 WPF 可以让我在没有大的学习曲线的情况下达到我需要的地方。
有什么想法吗?
更新:所以这变得非常具有挑战性。我尝试了很多不同的方法,我终于能够让它真正渲染得足够快,但我认为为了让它快速燃烧,你可能应该构建一个你想要使用的字体的精灵图并从中工作尝试使用任何内置字体渲染的东西。我没有那样做。
当我完成核心渲染引擎后,我发现了一些与字体渲染的怪癖相关的烦人工件(即使是固定宽度的字体有时也有点宽......),当我最终解决这个问题时,我发现libtcod,这是一个非常令人印象深刻的 Roguelike 引擎,它有一个 C# 包装器。这都是基于控制台的。我玩了一点,我被吹走了。
从 1.5.1 开始,除了鼠标输入和一种键盘输入模式(我认为他们最近放弃了)之外,我在 libtcod 中接触的所有内容都很好用,但制作 roguelike 所需的一切都在那里,其中包括几种视线,寻路,甚至地牢生成算法。它在视觉上相当先进。你见过这样的强化学习吗?
http://doryen.eptalys.net/files/screenshot0014.png
简而言之,使用silverlight 构建roguelike 是可能的,但除非你已经拥有强大的silverlight 或游戏开发背景,否则我不会认为这很容易。您将重新发明一些重要的轮子,即使有一个强大的工具包可以让您专注于游戏玩法,也不乏可做的事情。
【问题讨论】:
-
这是怎么回事?你是 google 中排名第一的搜索结果:silverlight roguelike
-
@Ashes999 这让我获得了近 300 次观看。 :) 我会更新的。
标签: c# .net vb.net silverlight roguelike