我制作复古系统和复古风格游戏的图形

2021-03-17 02:29:41

游戏机,尤其是较旧的游戏机由其图形能力定义多于任何内容。系统的独特图形限制通常可以通过屏幕截图识别游戏控制台;例如,平均SNES游戏具有更多的颜色,但分辨率较低,而不是平均成因游戏。 NES有一个独特的调色板,这是一个独特的调色板。但这些限制也意味着您不能将BMP推入VRAM并称之为一天。这是我如何做事的过程。

不要害怕制作自己的工具!我要链接到我写的一些事情和代码。然而,这不是一个建议只是使用我所写的东西;写自己!叉矿如果你发现它有用,肯定。

我相信任何人都可以学习编程。然而,不是每个人都可以教导编程,以及学习为一个人的工作的方法可能无法为别人工作。制作一份工作的工具,只需要使用(当你这样做时,它崩溃了?不要这样做)是我尝试解决问题的好方法。一般来说,我将在这里谈论对我来说有什么作用 - 但最重要的是找到舒适的东西,所以你可以做到很多,练习。

如果您正在为旧控制台制作游戏,甚至只是针对旧控制台的外观,那就是这样做的方式是从ROM黑客场景中借一些工具。毕竟,这些将包括控制台内置的所有限制,通常将以可以在最终游戏中直接使用的格式保存文件。

这是YY-CHR;这是一个我使用的编辑,因为我是一个孩子搞乱的,并且有很多版本,这就是我用于宽松星星“n”。界面中有很多东西,但有些事情要指出:

调色板是可交换的。实际上,它允许您从NES调色板中选择,默认情况下加载它。

您可能会注意到控制台格式的下拉列表(“2bpp nes”)和图块布局(“fc / nes x16”)。这是针对NES的8x16精灵模式需要它的方式;您还可以更改为8x8 Sprite模式的“FC / NES X8”。宽高的星星“n”使用,所以这是宝贵的。

但是,ROM格式编辑器的主要缺点是它们不会包括调色板数据。截图中的调色板是默认的;您必须从单独的文件加载调色板。 adtitonally,如果您的目标只是制作复古游戏,您可能希望能够留下限制,然后留下局限性。

这样做的一种方法是使用更高价值的系统。例如,即使游戏大多使用NES样式,最初是以SNES格式绘制的宽高六2的图形。当然,这是不真实的,但通常并不重要。例如,宽松的星星2也是一个宽屏游戏,所以显然我们在这里没有严格。

就个人而言,我发现将单独的调色板和图像文件保持疼痛,所以我不建议这个大型项目,除了NE或其他调色板很小的控制台,你经常使用许多变体。

但即使您在其他地方编辑大部分图形,我建议在手头上使用这样的编辑器。它们对于检查您的工作和转换非常有用。

另一种方法是使用某种中间格式。使用您的首选项的编辑器,以包含调色板和图形数据的格式保存您的图形。此格式可能是PNG文件或任何其他常用格式。

无论您选择什么编辑,我都强烈建议它是一个调色样的编辑器。我的意思是什么?当您使用像BMP或JPEG这样的格式时,您将在每个点存储颜色。因此,对于未压缩的文件,每个像素具有用于R,G和B的三个数字。(并且可能是透明度的第四个)。更改一个像素的颜色不会改变其他像素。这些天大多数图形程序将默认为此,通常以24位模式为单位。 (24 = 8x3,SO 8位为红色,绿色和蓝色)

其他选择是有调色板。基本上,每个像素只有一个数字。该数字映射到调色板,例如,颜色0是黑色,颜色1可能是红色等等等。如果更改颜色1的值,则使用颜色1的所有内容将改变。当您为像PC引擎这样的系统制作图形时,每种颜色都在15色调位计数。

PNG,一种常见的格式,可以调查或不进行调色。 GIF总是调查。所以请确保您知道您的图形编辑器。例如,油漆店Pro 5可以加载调色板图像并将其用作调色板。

如果您使用通用图形编辑器,请务必非常小心对齐。像8x8界面的东西不会内置于您的图像中;你需要自己处理他们。

还有致力于像素艺术目的的编辑。例如,Aseprite似乎非常受欢迎,但我没有使用它。 Chibiakumas有AkusPrite,它针对他的教程支持的计算机和控制台进行了优化的输出。就个人而言,我使用terraformer,我自己写的错误和低特征编辑器。

Terraformer也许是有史以来最好的编辑器,但它有一个主要的好处,它是我想做的各种东西的优化。所以它是调色板,它模仿YY-CHR的界面(我最常用的是),并将其文件存储在JSON中,这是一种我熟悉的格式。它缺少很多功能,但它确实有了我知道它的工作原理。我自从幸福的火车以来已经用完了这一点!,对于JS游戏和家庭布莱克相似。

我建议你用它吗?哦,地狱不,我不想支持别人,它真的非常有限(你甚至无法改变图像大小,而是只添加“页面”,你需要从终端打开它)。但它适合我的需求。我把它作为一个例子说,如果你对你看到的任何编辑不满意,你可以自己写一个。对我来说至少,洒脚比编程更难。

所以你制作精灵,他们在文件中坐在漂亮。但是你如何让他们进入你的游戏?就像我说的那样,你不能只是将BMP倾倒入,例如,SEGA Genesis'VRAM并期望一切都要工作。

如果您正在使用ROM图形编辑器,这似乎很容易。例如,在宽松的星星“n”中,几乎任何教程都应该告诉你如何在游戏中包含CHR-ROM,这就是您所需要的。

但它与其他格式更加困难。你有一些选择。例如,Romhacking.net具有一些独立的实用程序,可以从图形格式转换为ROM格式。更灵活地,ASeprite具有详细的插件系统,我知道人们已用于导出正确的格式。

就个人而言,我发现自己最容易写下这些。这听起来很恐吓,但它真的不是。大多数Consoles您代码为Homebrew for for for for for digend指南,他们的格式如何工作,您可以使用像YY-Chr这样的ROM图形编辑器来检查您的工作。 Terraformer只能保存JSON文件,因为它铭记了这一点; Python非常擅长操纵JSON。但是,您也可以使用像枕头这样的库以获取更多熟悉的图像格式。

例如,采取上面的AVA的对话场景。它们以32x48块的行列布置规定,便于编辑。但在ROM中,它们存储如此,以便处理代码:

显然这只是一个对Space Ava 201有用的功能,所以唯一存在的方法是如果我这样写它。如果您愿意投入额外的编码时间,那么小的生活质量改善是写作自己方式的主要好处。当然,缺点是,如果你想改变工作的方式,你还需要重写你的工具。我不得不为我的Neo Geo项目编写一个全新的转换器。

我的书中最重要的是,是制作一个可以自动化的系统。在宽松之星2中,图形过程如下:

这是很多手动步骤!并肯定可能似乎不好,但看到图形“在行动中”是最好看他们真正看的最佳方式(特别是动画),这是一种努力做出小的变化。对我来说至少,获得良好的图形(或者至少是可容忍的图形)的最佳方法是能够不断调整调整并具有紧密的“反馈回路”。真的,它也是编码游戏的同样。

当然,由您决定最佳平衡是最佳的,最能重点关注您的时间。这种代码重的方法适用于我;它可能不适合你,这完全没事。但不要害怕尝试一下。

我真的没有进入如何在这里绘制精灵,因为好吧,我真的不知道自己。 我的策略是为了绘制很多随机的东西,并拯救了我的一切,即使这个项目死亡,即使项目也是如此。 这可能毫不奇怪,方面的脸上的面孔和太空AVA 201共享共同的祖先; 长长的NES风格的图形冒险。 所以我猜这是最重要的事情,即使它听起来很陈词滥调:尝试。 不要害怕失败,并不要删除你的错误。 是空间ava 201的高艺术作品吗? 不,但它存在! 这是某种东西。