【问题标题】:develop a game for an old system为旧系统开发游戏
【发布时间】:2018-10-16 05:48:30
【问题描述】:

我有一个学校编程项目,只要我们展示我们的编程技能,该主题是免费的,我有一个 amiga 500,我想知道我是否可以为它制作一个游戏?也许没什么复杂的,我知道系统有多么有限,但是是否可以在带有模拟器的 Windows 10 电脑上制作/测试它,然后再将其刻录到磁盘上?还有可能我把一个comodore disquette放在一个USB磁盘阅读器中来阅读代码吗?还是它“过于编译”而无法从中学到任何东西?谢谢!

【问题讨论】:

  • 我打算投票结束这个问题,因为它太宽泛了,但是有足够的问题让我建议你宁愿选择一个技术基础(当前的计算机+语言),它有足够的Stackoverflow 上的社区可以在您提出更具体的问题时回答他们。
  • 对于这样的学生项目,现代嵌入式系统板更合适。我建议使用带有显示屏和按钮的基于 cortex-m 的板。花费不多。

标签: amiga


【解决方案1】:

Amiga 是(曾经)一台不错的编程计算机。 根据您的时间预算,从头开始学习和编写游戏可能会非常耗时(除非您已经熟悉 68000 汇编语言)。

虽然有很多替代方案,可以在这台计算机上使用各种语言进行编程:

C 编程 将 C 与 GCC 或 VBCC 以及专用(但非常简单和紧凑)的游戏引擎一起使用,例如 ACE:https://github.com/AmigaPorts/ACE

Amiga 带有一个内置的图形和音频功能库(甚至是老式的 A500),可能帮助您以完全操作系统友好的方式开发游戏。结果会很慢,但您将能够使用硬件的每个部分(blitter、copper、bob、sprites...):http://amigadev.elowar.com/read/ADCD_2.1/Includes_and_Autodocs_2._guide/node040D.html

基本 Amiga 有多个版本的 Basic 语言,其中大多数实现了一套相当全面的命令,以充分利用其硬件规格(精灵、鲍勃......) 你可以试试AMOS Basic,最著名的一个:https://www.ultimateamiga.co.uk/index.php/page,16.html

作为替代方案,Blitz Basic 可能是这台机器上第二受欢迎的基础:https://www.amigafuture.de/downloads.php?view=detail&df_id=3663&sid=661dbda78c2a180a20715f7467a95708

68K 组装 如果你真的需要在超接近金属的同时充分利用 Amiga,并且几乎从零开始,那么你可能想看看 Photon 的视频教程:https://www.youtube.com/watch?v=p83QUZ1-P10&list=PLc3ltHgmiidpK-s0eP5hTKJnjdTHz0_bW 这些教程相当面向演示场景,但游戏开发项目的视觉方面与您在演示场景项目中发现的大部分相似(使用 bobs、sprite、blitter、copper list、播放 ProTracker 模块......)

我唯一的建议是,无论您家里是否有合适的硬件,您的大部分工作都应在模拟器中完成。 WinUAE 是一个近乎完美的精确仿真器。您还将受益于所有用于编辑/版本代码的现代工具(Visual Studio Code、Git...)。

除了 Amiga,我会推荐 2 台老式机器(截至 2018 年):

  • SEGA Megadrive/Genesis,可以在超级 使用优秀的 SGDK 库的友好方式: https://github.com/Stephane-D/SGDK
  • Pico-8,一个可以(必须)在 Lua 中编程的虚拟老式控制台。 Pico-8 可以理解为一个从未存在过的 8 位游戏机的模拟器。不过,它的社区非常活跃。可以在这里找到:https://www.lexaloffle.com/pico-8.php

同样,关于 Megadrive,模拟器可能是你最好的朋友。

一旦您的作品值得在真机上进行测试,并且如果您需要在软盘上“刻录”(复制)您的作品,我的建议是购买带有 PCMCIA/CompactFlash 适配器的 Amiga 1200。使用 Gotek(USB 到软盘适配器)可能是一种更便宜的替代方案,它也可以在您的 A500 上使用(但请不要将您的 Amiga 用于安装 Gotek)。

现在,Megadrive 提供了一个不错的选择,这要归功于 Everdrive SD 卡适配器,它允许您在真正的控制台上启动您自己的任何 ROM 文件。

【讨论】:

  • Mega Drive 非常棒,甚至为它构建了我自己的开发套件,请参阅我的博客,我在其中写了 30 年前我是如何做到的 nestenius.se/2022/01/18/…
  • 如果你走 AMOS 路线,请使用专业版 - 即使按照现代标准,编辑器实际上也相当不错(没有语法突出显示,但正确的撤消/重做、宏、插件、过程折叠、步骤 -通过调试器等)。按照当时的标准,最初的 AMOS 甚至都不是很好。专业版还附带了一个演示 X-Out 风格的射击游戏。
【解决方案2】:
  1. 使用 WinUAE 在 Windows 上运行/测试您的 Amiga 东西:http://www.winuae.net/

  2. 您几乎可以使用您喜欢的任何编程语言,但可能最好支持 C(许多编译器、官方文档),而汇编程序(摩托罗拉 MC68000 CPU)让您可以完全控制硬件以获得精美的效果和超级高效编码(快速图形,...)。还有(或多或少)Amiga 特定语言,例如AMOS 或 BlitzBasic/AmiBlitz,(或多或少)旨在处理 Amiga 特定的内容或简化内容(屏幕处理、精灵、音乐、硬件访问......)

  3. 如果你想使用 C,那么最好使用 Amiga 的“官方”编译器,如果可能的话:SAS-C(以前:Lattice-C)。如果您找不到,请尝试 vbcc、gcc、DiceC、...(此 CD 包含完整的 gcc/POSIX 开发环境(以及更多):https://archive.org/details/cdrom-geek-gadgets-2

  4. 这里有很多 C 和 AmigaOS 编码文档:http://amigadev.elowar.com/

  5. PC 软盘驱动器无法直接读取或写入您的 Amiga 软盘,您需要一些额外的硬件,尝试使用谷歌搜索其中的一些:ADTWin、ADF-Copy / ADF-Drive , Disk2FDI, “Arduino Amiga 软盘读写器”

  6. nullmodem 电缆(例如,将 nullmodem-serial-USB-adapter 电缆连接到 PC 或 Linux 盒)是一种从 Amiga 传输文件/向 Amiga 传输文件的简单方法 - 尝试 google:“amiga SER: nullmodem”或“Amiga Explorer”(一个windows应用程序,也可以让您直接将.adf磁盘映像从PC写入Amiga的软驱)

  7. 嗯,当然你可以从软盘上的旧东西中学习,这取决于软盘的内容和你的专业知识。 ;-) 如果磁盘包含一些源代码,那很好。更有可能的是,意味着任何商业游戏等,它将包含由机器代码组成的可执行文件 - 用汇编程序编写,或从 C 代码编译,或其他 - 甚至是自定义加载程序(=非 AmigaDOS 磁盘,无 DOS 访问权限) ,为此您需要对 M68000 指令、Amiga 硬件,也许还有 AmigaOS (API) 有一定的了解。换句话说:它可能是“过度编译”,除非你是汇编大师,或者想成为一名。

注意:正如您所说,您想为您的 Amiga 500 编写游戏 - 这意味着我们正在谈论“经典”Amiga:m68k CPU、A500、A1200、A2000 等,Workbench/Kickstart 最高版本 3.9/ 3.1、软盘等,包括现代重新实现,如 MiniMIG、Vampire、M5 等 - 如果您对可能被称为“下一代”的非经典 Amiga 计算感兴趣,请尝试谷歌搜索其中的一些:AmigaOS4、AROS、MorphOS、AmigaONE

【讨论】:

    【解决方案3】:

    你也可以试试E编译器,见https://en.wikipedia.org/wiki/Amiga_E

    • 原版 Amiga E,作者 Wouter van Oortmerssen
    • CreativeE,作者 Tomasz Wiszkowski。
    • PowerD,作者 Martin Kuchinka。
    • YAEC,作者 Leif Salomonsson。
    • ECX,作者 Leif Salomonsson。
    • RE,作者 Marco Antoniazzi。
    • PortableE,克里斯托弗·汉德利(Christopher Handley)。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-17
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多