Подтвердить что ты не робот

Были ли какие-либо классические игры NES открытыми?

Я только что сыграл в бейсбол RBI в окне браузера.

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

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

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

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

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

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

Например:

  • Они использовали объектно-ориентированное программирование?
  • Использовали ли они шаблоны проектирования, чтобы поддерживать код в рабочем состоянии?
4b9b3361

Ответ 1

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

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

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

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

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

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

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

Ответ 2

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

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

Ответ 3

Если вы заинтересованы в программировании NES, вы должны проверить Эпизод 91 - Круглый стол Tengen Reunion Retronauts. (Обратите внимание, что это эпизод 91 первоначального запуска подкаста, более новые эпизоды можно найти @http://www.retronauts.com/)

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

Ответ 4

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

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

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

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

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

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

Ответ 5

Я бы рекомендовал посмотреть nesdev.com, если вы заинтересованы в разработке игр NES. Они имеют подробную документацию.

Ответ 6

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

http://www.bestdamnpodcastever.com/millerblog/?p=72 через "The Wayback Machine"

Ответ 7

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