【问题标题】:Building a Roguelike in Silverlight (or WPF)在 Silverlight(或 WPF)中构建 Roguelike
【发布时间】: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


【解决方案1】:

这是迄今为止我见过的唯一一个在 .NET 中完成的流氓 - 看起来基于 WPF

http://roguedotnet.com

【讨论】:

    【解决方案2】:

    WPF 应该能够很容易地处理这个问题。

    Silverlight 可能会工作,但它没有 WPF 提供的相同硬件加速,因此性能会更低。

    实际实施有很多选择。您可以使用画布并自己渲染。或者,如果您遇到更新问题,画布网格(仅根据需要更新那些)可能会帮助保留模式渲染系统更好地执行,但我怀疑,使用标准屏幕分辨率,您会遇到任何问题WPF 中的文本量。

    【讨论】:

      【解决方案3】:

      您应该使用 Silverlight 的 XNA 库轻松完成。它们应该允许您以可用于游戏的良好速度制作至少 2D 图形。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-03
        • 2011-03-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多