Open source 有任何经典的NES游戏是开源的吗?

Open source 有任何经典的NES游戏是开源的吗?,open-source,Open Source,我刚刚在浏览器窗口中玩了一场RBI棒球赛 这本身就让我觉得很神奇。当我年轻的时候,NES是一个神奇的盒子,能够为全世界的孩子们提供数小时的享受 几十年后的今天,我成了一名程序员。我很欣赏几十年前用更原始的硬件开发的游戏中的编程。事实上,我完全希望有一天,这些游戏中的一些代码会被载入史密森学会 我的编程问题: 有经典的NES游戏(如RBI)吗 棒球)是开源的,如果是,我在哪里可以找到代码来学习 如果没有,是否有任何NES游戏的源代码可供研究 我认为值得向他们学习 例如: 他们使用面向对象编程吗

我刚刚在浏览器窗口中玩了一场RBI棒球赛

这本身就让我觉得很神奇。当我年轻的时候,NES是一个神奇的盒子,能够为全世界的孩子们提供数小时的享受

几十年后的今天,我成了一名程序员。我很欣赏几十年前用更原始的硬件开发的游戏中的编程。事实上,我完全希望有一天,这些游戏中的一些代码会被载入史密森学会

我的编程问题:

有经典的NES游戏(如RBI)吗 棒球)是开源的,如果是,我在哪里可以找到代码来学习

如果没有,是否有任何NES游戏的源代码可供研究

我认为值得向他们学习

例如:

  • 他们使用面向对象编程吗
  • 他们是否使用设计模式来保持代码的可维护性

没有。至少我所知道的没有(我一直在搜索)

1983年电子游戏崩盘后,NES就出现了,市场崩盘的主要原因是坏游戏泛滥,导致客户一个游戏也不买,因为没有办法知道什么游戏好

因此,任天堂在推出NES(以及当时的所有其他游戏机,如世嘉的Master System)时,决定只发布经批准的游戏,任何开源游戏都将被处以重罚,这是因为如果不发布公共API,它将成为“homebrews”更难涌入市场

如今,任天堂在允许游戏方面要容易得多,看到Wii上充斥着糟糕的游戏,但仍然没有控制台允许你使用他们的“真实”API,为了避免泛滥,甚至有人在Wii上使用GPL引擎(ScummVM),造成麻烦,因为为任天堂系统发布游戏源代码违反了合同,GPL要求发布源代码,在这种情况下,游戏被从货架上撤下

不,XNA和PS3Linux并不是真正的控制台API,它们都对控制台的功能施加了严重的限制

也许你可以找到自制的或者反向工程的游戏。但我猜这不是你问的


此外,有时还可以找到翻拍和端口的来源,但它们不使用控制台API。

您可能找不到原始游戏的来源,但有大量的自制软件和相对成熟的工具链。正如最喜欢的答案一样,谷歌是你的朋友。但为了让您开始学习,这里有一个相对不错的教程:


我从来没有在视频游戏行业工作过,但我读过很多关于视频游戏的文章,我还不时与从事视频游戏行业的朋友交谈,因此我将尝试解释游戏和其他应用程序在编程方法上的不同之处

首先要了解的是,游戏是一次性产品。它不像电子表格或文字处理器,您可以在其中发布新版本,以改进和扩展以前的代码库

第二件事,你需要尽快发布游戏。通常,你在游戏中花费的时间越多,与当时的其他游戏相比,情况就越糟。对于PC游戏来说,这一点基本上是正确的,在PC游戏中,硬件的发展速度比控制台世界快得多,但在很大程度上仍然适用(即使开发了更好的工具和算法,使用相同的硬件,游戏也会继续变得更好)

第三件事是,游戏通常需要将硬件推向极限。因此,如果让代码运行得更慢,那么就不要使用那些优雅的模式,它们会使代码更漂亮,更易于维护

因此,在剖析一个旧的NES游戏源代码之后,我所期望的只是意大利面代码,大部分代码都是在汇编中编写的,有大量与机器架构紧密相连的低级黑客


我希望我的答案对你有用。

据我所知,NES游戏是用汇编语言开发的,我想经过这么多年,源代码已经丢失很久了。
无论如何,拥有汇编程序源代码与机器代码并不遥远,因此它可能不像C或Java代码那样具有太多的启示性。

关于面向对象和设计模式,同样是汇编程序和80年代的,不要期望任何这些。

也许你已经发现了这一点,但是Metroid(最初用于NES/Famicom)已经被反汇编,代码(漂亮的ASM)发布在Romhacking.net上


如果您对NES编程感兴趣,请退出。(请注意,这是播客最初运行的第91集,可以找到更新的集@)


这基本上是一群前NES程序员在回忆系统(和其他复古系统)上的游戏开发。他们偶尔会接触一些技术性的东西,这些东西真的很吸引人。

如果你对NES游戏开发感兴趣,我建议你看看。他们有详细的文档。

我会感到惊讶。我怀疑任天堂的授权可能会强烈地阻碍为该平台开发的开源游戏,如果它不彻底阻止它的话。如果关闭,我将投票支持开放。要求为你感兴趣的东西提供开放源代码,听起来与我的编程非常相关。@fortran:Ya-我同意你的观点;但即使他们没有使用OOP和设计模式,我也希望了解他们的代码结构,看看他们是如何组织和维护的。传奇《波斯王子》的作者已经发布了Apple II原始版本的源代码以及技术文档。它可以在GitHub上获得:这个游戏被移植到了NES platrofm。虽然不是一个经典的游戏,但是《孤独家园2》的源代码和工具已经发布:我怀疑它是否有问题