65.9K
CodeProject 正在变化。 阅读更多。
Home

Birthright 战役管理器

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2012 年 1 月 31 日

CPOL

7分钟阅读

viewsIcon

19687

Birthright 战役管理器是一款开源的角色扮演电脑辅助工具,用于 Dungeons & Dragons 的战役设定 Birthright。

您的应用程序(或扩展)是做什么的?它解决了什么业务问题?

screen1.PNG

Birthright 战役管理器(http://brmanager.codeplex.com/)是一款开源的角色扮演电脑辅助工具,用于 Birthright(http://en.wikipedia.org/wiki/Birthright_(campaign_setting)),这是《龙与地下城》的一个战役设定。Birthright 与普通角色扮演游戏不同之处在于,玩家不仅扮演角色,他们的角色还统治着王国、盗贼公会、魔法学院……游戏的“策略”部分需要大量的记账工作:税收、法律、商业、贸易路线、陆海军事力量……玩家跟踪自己的王国并进行更新并不难,但游戏主持人通常需要处理几个周边王国,作为玩家的朋友或敌人,这会很快变得令人抓狂。此外,玩家也很难查阅周边王国的信息,因为游戏主持人必须维护两份不同的表格:一份是给玩家的公开信息(这个省份很富裕,凯撒是这里的最高统治者),另一份是私有的确切信息(这个省份产出 8 根金条,凯撒拥有 90% 的统治权)。

当游戏在桌边进行,有 4-6 个朋友一起玩时,有耐心的游戏主持人可以使用纸张解决这些问题。但 Birthright 通常也在论坛上以邮件游戏的形式进行,通常有 50 到 100 名玩家。如果没有电脑辅助工具,根本不可能跟踪如此多的玩家、军队、行动……

Birthright 战役管理器可以部署为桌面工具,用于小团体朋友的游戏,也可以作为网络工具,用于邮件游戏。该工具扮演两个截然不同的角色:

  • 游戏主持人:可以添加、编辑和查看所有数据。
  • 玩家:只能查看属于自己的真实数据(自己的王国、角色、军队……)。可以对自己的数据进行少量编辑。可以查看其他玩家数据的近似值。

通常,一个正常的游戏是这样的:

  • 一个回合开始,玩家互相以及与游戏主持人互动,为他们想做的事情做准备。在这个过程中,他们会检查自己和其他玩家的数据。
  • 游戏主持人宣布“回合”即将结束,玩家们声明他们的行动:我将把我的军队移到这里,我将建造一座新城堡,我将对贸易征收新税……
  • 游戏主持人关闭回合,然后根据行动更新所有王国。他将不得不决定哪些行动成功,哪些失败,更新收入,解决战斗……
  • 新一回合再次开始。

Birthright 战役管理器在第一个版本中帮助游戏主持人维护所有数据,并向每个用户呈现正确的信息。下一个主要计划版本还将自动完成大部分游戏主持人工作:收入收取、建筑、部队移动……路线图(http://brmanager.codeplex.com/wikipage?title=Roadmap&referringTitle=Documentation)包含更详细的信息。

这个应用程序有多少屏幕和实体?

screen2.PNG

45 个实体 - 一些实体,如种族或法术,非常简单,但另一些,如领域、角色或省份,是巨大的庞然大物,拥有大量字段、计算值、关系……

68 个屏幕 - 一些屏幕非常相似,因为游戏主持人或玩家视图的大多数基本实体非常相似:一些字段不显示,另一些字段的计算方式不同,并且玩家在大多数地方缺乏编辑功能。

还有许多模态屏幕用于查看或编辑简单数据。通常用户会打开多个屏幕来查阅不同的信息,因此该工具使用模态屏幕来查阅简单数据,以避免同时打开过多的选项卡。该应用程序只有用于添加和编辑非常复杂实体数据的专用窗口:军队、角色、领域、省份和回合。这些实体非常庞大,以至于它们的屏幕通常有子选项卡,在每个子选项卡上显示其具体方面。例如,在省份中,一个选项卡用于商业信息,另一个选项卡用于军事信息……

如果您没有 LightSwitch,这个应用程序还会被构建出来吗?如果会,用什么构建?

screen3.png

在 LightSwitch 出现之前,我尝试了多次构建这个应用程序。首先使用 Winforms,然后采用 WPF+MVVM+WCF+EF 的完整方法。问题在于我厌倦了进展缓慢的速度。构建视图、视图模型、绑定所有东西……通常是一个机械但缓慢的过程。我将这个应用程序作为业余时间的副项目,那种快速进展、取得成果的感觉对我保持动力和专注非常重要。这一切都要归功于 LightSwitch。

此外,另一个非常重要的点是,我对 Web 编程了解很少,想到必须为该工具设计一个 ASP.NET/HTML5+JS/其他前端就非常令人气馁。LightSwitch 能够作为桌面或 Web 工具使用,这是一个非常有帮助的附加功能。

这个应用程序支持多少用户?

它已经测试过五到十个用户,但它是为正常的邮件游戏设计的,通常有五十到一百名玩家。我正在尝试设置一个模拟游戏,以便在更真实的情况下进行测试。

使用 LightSwitch 构建此应用程序实际花了多长时间?

screen4.PNG

该应用程序在大约四个月内完成,我在业余时间(不多,平均每天 2 小时)进行开发。我有一个非常基础的版本是在 LS Beta 1 中完成的,我重新使用了它来更快地开始。我将 LS Beta 1 保存在一个修改了日期的虚拟机中,这样我就可以打开旧项目并复制实体和屏幕,因为项目无法升级到 Beta 2 和最终版本。

此应用程序是否使用任何 LightSwitch 扩展?如果使用,是哪些?您自己编写过这些扩展吗?如果编写过,是否公开发布?在哪里?

screen5.PNG

该工具曾使用 Excel Importer 扩展一段时间,因为导入数据对于项目来说几乎是强制性的。想象一下,在正常游戏中,游戏主持人需要输入大约 200 个省份、角色和领域,以及数十个其他相关记录。手动输入所有这些可能需要几天时间,但如果从文件导入,则只需几分钟(安装程序随附默认 Birthright 信息的原始数据文件)。而且手动编辑 Excel 或 .csv 文件比在 LightSwitch 中进行这些编辑要快得多。

但是,当接近 1.0 版本发布时,我放弃了这个扩展,并决定自己编写。Excel 导入器有点太不灵活,而且存在一些问题和错误。我没有试图找出它们的解决方法,而是开始研究导入器代码,并构建了我自己的 .csv 导入器,可以针对我的每个实体进行自定义,从而总体上实现了更好的导入过程。

LightSwitch 如何让您的开发人员生活更好?与您考虑过的其他选项相比,构建速度是否更快?

它以一种简单的方式让我的生活变得更轻松:它让我能够达到一个可以向社区发布该项目的地步。我喜欢为角色扮演游戏制作电脑辅助工具,但我没有多少空闲时间,而我尝试过的其他选择需要太多时间来构建简单的东西。也许是因为我不够熟练,也许是因为它们就是比较慢,我不确定,但我有很多未完成的项目。

LightSwitch 让我能够利用我在开始新项目时的初始力量,这样,当我开始感到疲倦时,我已经非常接近终点,我可以利用额外的动力并进行最后的努力来完成它。

© . All rights reserved.