Какие-либо классические игры NES были открыто получены? [закрытый]

Я просто играл в игру Бейсбола RBI в окне браузера.

Это в и себя кажется мне просто удивительный. Когда я был молод, NES была волшебным полем, способным к обеспечению часов удовольствия маленьким детям во всем мире.

Теперь, несколько десятилетий спустя, я - программист. И я могу ценить программирование, которое вступило в игры, которые были разработаны с более примитивными аппаратными средствами только несколько десятилетий назад. На самом деле когда-нибудь я полностью ожидаю, что код от некоторых из этих игр будет храниться в Смитсоновском институте.

Мой вопрос о программировании:

Имеют какие-либо классические игры NES (как Бейсбол RBI) открыто полученный, и если так, где я могу найти, что код учится?

Сбой этого, там какие-либо игры NES, для которых исходный код доступен исследованию?

Я думаю, что стоило бы извлечь уроки из их примера.

Например:

  • Они использовали объектно-ориентированное программирование?
  • Они использовали шаблоны разработки для хранения кода удобным в сопровождении?
44
задан Jim G. 25 June 2014 в 20:56
поделиться

5 ответов

Возможно, это перебор, но Mingle by Thoughtworks делает то, что вам нужно?

(Я на самом деле не пользователь Mingle, но это звучит как то, что он бы сделал.)

-121--3414182-

Чтобы отменить маскировку объектов HTML/XML, используйте Apache Commons Lang StringEscapeUtils или home egrow one .

-121--2463653-

No. По крайней мере, ничего из того, что я знаю (и я искал).

NES появился сразу после краха видеоигр 1983 года, главной причиной крушения рынка был поток плохих игр, побуждающий клиентов не покупать ни одной игры, потому что не было пути узнать, какая игра была хорошей.

Итак, Nintendo при внедрении NES (и всех других консолей с тех пор, как Master System от SEGA), решил, что только одобренные игры когда-либо будут выпущены, И сделать что-либо с открытым исходным кодом когда-либо нарушением контракта с большими штрафами, причина этого в том, что, не выпуская публичный API, это сделает «homebrews» труднее наводнить рынок.

Сегодня Nintendo гораздо проще с точки зрения разрешения игр, увидеть поток дрянных игр на Wii, но все же ни одна консоль не позволяет использовать их «истинный» API, чтобы избежать затопления, есть даже проблема, когда кто-то использовал GPL движок (ScummVM) на Wii, вызывая проблемы, потому что выпуск источника игры для системы Nintendo является нарушением контракта, и GPL требует, чтобы источник был выпущен, в этом конкретном случае игры были сняты с полок.

И нет, XNA и PS3 Linux на самом деле не являются API консоли, оба накладывают жесткие ограничения на то, что вы можете сделать с консолью.

Возможно, вы найдете домашние игры или игры с обратной конструкцией. Но я думаю, что это не то, что вы просили.

Также иногда можно найти источник ремейков и портов, но они не используют консольный API.

26
ответ дан 26 November 2019 в 22:13
поделиться

Вы вряд ли найдете исходники для оригинальных игр, но существует множество домашних игр и относительно зрелый инструментарий. Как уже было сказано, google - ваш друг. Но чтобы начать, вот относительно приличный учебник:

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

2
ответ дан 26 November 2019 в 22:13
поделиться

Я никогда не работал в индустрии видеоигр, но я довольно много читал об этом и время от времени разговариваю с друзьями, которые работают, поэтому я постараюсь более или менее объяснить, в чем разница между игрой и другим приложением в отношении методологий программирования.

Первое, что нужно понять, это то, что игра - это разовый продукт. Это не похоже на электронную таблицу или текстовый процессор, где вы можете выпускать новые версии, улучшающие и расширяющие предыдущую кодовую базу.

Во-вторых, вам нужно как можно скорее выпустить игру. Обычно чем больше времени вы проводите в игре, тем она хуже по сравнению с другими играми того времени.Это в основном верно для компьютерных игр, где оборудование развивается намного быстрее, чем в мире консолей, но все еще применяется в значительной степени (игры продолжают улучшаться даже с тем же оборудованием, поскольку разрабатываются более совершенные инструменты и алгоритмы).

В-третьих, обычно в играх требуется максимально использовать оборудование. Так что к черту все элегантные шаблоны, которые сделают ваш код красивее и удобнее в обслуживании, если они заставят его работать медленнее.

Итак, то, что я ожидал после анализа исходного кода старой игры NES, - это просто спагетти-код, большая часть которого написана на ассемблере с множеством низкоуровневых хаков, тесно связанных с архитектурой машины.

Надеюсь, мой ответ будет вам полезен.

7
ответ дан 26 November 2019 в 22:13
поделиться

Игры для NES разрабатывались (насколько мне известно) только на ассемблере, и я полагаю, что исходный код давно утерян после стольких лет.
В любом случае, исходный код на ассемблере не так уж далек от машинного кода, поэтому он может быть не слишком показательным, как код C или Java.
Что касается объектной ориентации и шаблонов дизайна, опять же, это был ассемблер и 80-е, не ожидайте ничего подобного.

1
ответ дан 26 November 2019 в 22:13
поделиться

Возможно, вы с тех пор нашли это, но Metroid (оригинал, для NES/Famicom) был дизассемблирован, а код (в красивом ASM) размещен на Romhacking.net.

Прямая ссылка.

13
ответ дан 26 November 2019 в 22:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: