代码之家  ›  专栏  ›  技术社区  ›  Jim G.

有没有开放源代码的经典网游?[关闭]

  •  44
  • Jim G.  · 技术社区  · 16 年前

    我刚在浏览器窗口玩了一场RBI棒球游戏。

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

    现在,几十年后,我成了一名程序员。我也能欣赏到几十年前用更原始的硬件开发的游戏中的编程。事实上,总有一天,我完全期待这些游戏的代码会被供奉在史密森学会。

    我的编程问题:

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

    如果不成功,有吗 任何 NES游戏有哪些源代码可供学习?

    我认为从他们的例子中学习是值得的。

    例如:

    • 他们使用了面向对象编程吗?
    • 他们是否使用设计模式来保持代码的可维护性?
    7 回复  |  直到 9 年前
        1
  •  26
  •   alex    13 年前

    不,至少我不知道(而且我一直在找)。

    NES出现在1983年的电子游戏崩溃之后,市场崩溃的主要原因是糟糕的游戏泛滥,引发了消费者不购买单一游戏,因为没有办法知道什么游戏是好的。

    因此,任天堂在推出Nes(以及所有其他游戏机,如SEGA的Master System)时,决定只有经过批准的游戏才会发布,并且让任何开源游戏都成为违反合同的重罚,其原因是,如果不发布公共API,将使“家庭酿造”更难淹没M。阿基特。

    如今任天堂在允许游戏方面要容易得多,在Wii上可以看到大量的蹩脚游戏,但是仍然没有一个游戏机允许你使用他们的“真”API,为了避免洪水泛滥,甚至有人在Wii上使用GPL引擎(scummvm)会引起麻烦,因为为任天堂系统发布游戏源是一个breac。H的合同,和GPL的要求源发布,在这种情况下,游戏是从货架上拉下来的。

    不,XNA和PS3Linux并不是真正的控制台API,它们都对您可以使用控制台做什么施加了严重的限制。

    也许你可以找到自制的,或者逆向工程的游戏。但我想这不是你要的。

    此外,有时还可以找到重新生成和端口的源,但这些源不使用控制台API。

        2
  •  12
  •   James McMahon    15 年前

    也许你已经找到了这个,但是metroid(原版,为nes/famicom)已经被反汇编,并且代码(在漂亮的asm中)发布在romhacking.net上。

    Direct link.

        3
  •  12
  •   James McMahon    9 年前

    如果你对NES编程感兴趣,你应该去看看 Episode 91 - Tengen Reunion Roundtable 属于 Retronauts . (注:这是播客最初运行的第91集,可以找到更新的集@ http://www.retronauts.com/ )

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

        4
  •  7
  •   fortran    16 年前

    我从来没有在电子游戏行业工作过,但是我读过很多关于它的文章,我经常和朋友们讨论这个问题,所以我会或多或少地解释一下游戏和其他应用程序在编程方法方面的区别。

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

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

    第三件事是游戏通常需要将硬件推向极限。因此,拧掉所有优雅的模式,如果它们使代码运行速度变慢,那么这些模式将使代码更加美观和可维护。

    因此,在分析了一个旧的NES游戏源代码之后,我希望看到的只是意大利面代码,其中大部分代码都是用汇编语言编写的,其中有许多低级的黑客与机器的体系结构紧密相连。

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

        5
  •  3
  •   mani1986    14 年前

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

        6
  •  2
  •   Petruza    16 年前

    NES游戏是在汇编程序中开发的(据我所知),我想在这么多年之后,源代码早就丢失了。
    无论如何,拥有汇编程序源代码并不是机器代码,所以它可能不像C或Java代码那样显示太多。
    关于对象方向和设计模式,同样,它是汇编程序,80年代,不要期望任何那样。

        7
  •  2
  •   Michael Burr    15 年前

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

    http://www.bestdamnpodcastever.com/millerblog/?p=72 via "The Wayback Machine"

    推荐文章