让我们来制作一个游戏!


关于本教程

本教程是免费和开源的,所有代码都使用 MIT 许可证 - 所以你可以随意使用它。我希望你喜欢这个教程,并制作出伟大的游戏!

如果你喜欢这个教程并希望我继续写作,请考虑支持我的 Patreon

Hands-On Rust


到目前为止,本教程分为三个部分:

  1. 制作一个骨架游戏,展示如何制作一个非常简约的 roguelike 游戏。
  2. 向游戏中添加一些必要的类型特征,使其更有趣。
  3. 构建大量的地图,这是制作有趣的 roguelike 游戏中非常重要的一部分。

现在我们将开始一个系列文章,从我们的框架中实际制作出一个有凝聚力的游戏。它不会很大,也不太可能挑战“史上最佳 Roguelike!”的地位 - 但它将探索将技术演示转变为一个有凝聚力的游戏的过程中会遇到的试验和磨难。

柏林诠释 (The Berlin Interpretation)

这个游戏将紧密贴近该类型,几乎没有突破性的创新。所以我们将拥有一个幻想背景、地下城探险和有限的进程。 如果你熟悉柏林诠释(一种尝试在游戏世界中使用该名称来编纂什么才算作 roguelike 的尝试!),我们将努力紧密坚持重要的方面:

高价值目标

  • 随机环境生成 (Random Environment Generation) 是必不可少的,我们已经介绍了很多有趣的方法来做到这一点!
  • 永久死亡 (Permadeath) 定义了该类型,所以我们将采用它。我们可能会偷偷加入游戏保存/加载,并研究如果这是你想要的,如何处理非永久死亡 - 但我们将坚持这一原则,及其含义,即你应该能够在不死的情况下通关 roguelike 游戏。
  • 回合制 (Turn-based) - 我们肯定会坚持回合制设置,但会引入不同的速度和先攻权 (initiative)。
  • 网格化 (Grid-based) - 我们肯定会坚持网格化系统。
  • 非模态 (Non-modal) - 我们可能会打破这一条,通过设置一些系统将你从常规的“所有内容都在一个屏幕上”的游戏系统带走。
  • 复杂性 (Complexity) - 我们将努力实现复杂性,但尽量保持游戏的可玩性,而不是成为硕士论文的课题!
  • 资源管理 (Resource management) - 我们已经通过饥饿时钟和消耗品获得了一些,但我们肯定希望保留它作为一种定义特征。
  • 砍杀 (Hack'n'slash) - 绝对的!
  • 探索与发现 (Exploration and discovery) - 当然!

低价值目标

  • 单人角色 (Single player character) - 在本节中我们不太可能引入队伍,但我们可能会引入友好的 NPC。
  • 怪物与玩家相似 (Monsters are similar to players) - ECS 有助于实现这一点,因为我们以与 NPC 相同的方式模拟玩家。我们将坚持基本原则。
  • 战术挑战 (Tactical challenge) - 始终值得努力的目标;没有挑战的游戏有什么意义?
  • ASCII 显示 (ASCII Display) - 我们将坚持使用这个,但可能会在稍后找到时间引入图形 tiles。
  • 地下城 (Dungeons) - 当然!它们不一定必须是房间和走廊,但我们已经努力拥有良好的房间和走廊!
  • 数字 (Numbers) - 这一点更具争议性;不是每个人都想在每次揍地精时看到一大堆数学计算。我们将尝试取得一些平衡 - 因此会有大量的数字,大部分是可见的,但它们对于玩游戏来说不是必不可少的。

因此,看起来很有可能在这些约束下,我们将制作一个 真正的 roguelike 游戏 - 一个几乎符合所有要求的游戏!

设定 (Setting)

我们已经决定了幻想-伪中世纪 (fantasy-faux-medieval) 的设定,但这并不意味着它必须 完全 像 D&D 或托尔金!我们将尝试在我们的设定中引入一些有趣和独特的元素。

叙事 (Narrative)

在下一章中,我们将致力于在设计文档 (design document) 中概述我们的总体目标。这将必然包括一些叙事,尽管 roguelike 游戏并非以深刻的故事而闻名!

...


版权 (Copyright) (C) 2019, Herbert Wolverson.