Я задал похожий вопрос о разработке для DOS некоторое время назад и получил отличный ответ: Каким был типичный набор инструментов для разработки игр для DOS?
Теперь мне интересно, как развивалась игра на Apple II в конце 70-х - начале 80-х годов. Я в основном заинтересован в ранних: II и II +, но я хотел бы также получить ответы о IIe и т. Д.
Итак, вот мои вопросы:
Какие языки были использованы?
Я предполагаю, 6502 ассемблер, но бейсик был в комплекте и, вероятно, тоже много. Можете ли вы вспомнить популярные игры, написанные на бейсике? Как насчет C?
Каково было развитие 6502 ассемблера?
Я заметил, что вы можете вводить коды операций напрямую, если вы запускаете системный монитор, и вы даже можете запускать ассемблер напрямую с помощью мини-ассемблера. Но я не могу представить, что игры были написаны так, были ли редакторы / IDE? Как программы хранились на дисках / лентах?
Как развивалась BASIC?
Интерпретатор Apple II BASIC не так уж и плох, я думаю, вы можете написать там полные программы. Это также позволяет вам сохранять / загружать программы, я полагаю, диск / лента. Но не было ли визуального редактора?
Были ли какие-либо API или Middleware?
Или нужно было все время разговаривать напрямую с оборудованием, если вы хотите что-то нарисовать или воспроизвести звук? Были ли библиотеки вообще?
Что-нибудь еще отличается от сегодняшнего дня?
Я был бы рад услышать любые другие различия, например, какие форматы изображения / аудио использовались. Учитывая, что на самом деле не было концепции файлов, если я правильно понимаю, мне интересно, как это работает. Приходилось ли печатать графику и звуки на ассемблере? Как это работает в бейсике?
Ответы:
Я много программировал на Apple (не профессионально, но это то, чему я научился), а также на Applesoft BASIC и ассемблере, где это было для любителей. Были доступны другие языки - логотип был распространен, Паскаль был написан повсюду, но я не знаю никого, кто использовал его, я не знал, что C используется на любой платформе Apple до Orca C для Apple IIGS, был Forth переводчик с графикой в стиле черепахи (или назовите ее в стиле логотипа) тоже плавает вокруг.
Я отвечу на некоторые ваши вопросы, а затем основные идеи:
Много общего программного обеспечения было написано на BASIC, не только Applesoft BASIC, но и Integer BASIC (который, как следует из названия, не имел чисел с плавающей запятой). На ум приходит серия Eamon, но я не могу думать о многих других. Кроме того, большая часть программного обеспечения, написанного Beagle Bros., была сделана на бейсике (в основном утилиты, а не игры).
Я считаю, что большинство коммерческих программ написано на ассемблере.
Я использовал Merlin Assembler, чтобы назвать его IDE, возможно, это растягивало, но это работало просто отлично. Как вы сказали, вы можете зайти на системный монитор, ввести коды операций и запустить оттуда. У Мерлина был способ вернуться к нему с системного монитора (чего я сейчас не помню).
Был сторонний инструмент, который немного улучшил среду Applesoft и позволял вам использовать стрелки для прокрутки экрана и вносить изменения, такие как визуальный редактор (вам все равно приходилось нажимать клавишу возврата в конце строки или изменения не будут придерживаться). Я не могу вспомнить, что это было, я использовал это совсем немного.
На Apple II + / IIe / IIc вы в основном говорили только с аппаратным обеспечением. В ПЗУ было несколько программ, которые вы могли использовать, но они были очень ограничены, и обычно вам требовалось ПИК и ПОКРЫТЬ различные области памяти, чтобы изменить регистры, чтобы делать то, что вы хотели, например, изменить графические режимы, нажать 49152 для запуска динамика и т. Д. ,
На Apple IIGS ROM поставлялся с набором библиотек, аналогичных тем, что были в Macintosh, для создания необычных графических интерфейсов и тому подобного. ПЗУ со временем обновлялись, и если вы загрузили системный диск, на котором использовались более новые библиотеки, они читали бы с диска, а не с ПЗУ, в результате чего время загрузки становилось ДЕЙСТВИТЕЛЬНО МЕДЛЕННЫМ. Было ROM 01, 02 и 03, и 02 -> 03 было бесплатным обновлением, и был выпуск до 01, который они также сделали бы бесплатное обновление до 01.
Были файлы, я не уверен, что вы подразумеваете под этим, и ProDOS не меньше поддерживал каталоги (более ранняя DOS не имела, но все еще имела концепцию файла, который вы могли бы распознать). Я использовал растровые изображения и .pcx. Я не помню никаких аудиофайлов в сериях II + / IIe / IIc, но это было потому, что было трудно сделать какие-либо шумы более причудливыми, чем вспышки видеоигр и шлейфы. Были некоторые хаки, которые издавали причудливые звуки (в частности, у меня был диск с игрой Gun N 'Roses), но это почти всегда делалось грамматически.
По сравнению с современной средой это было совершенно примитивно. Но помните, что не было поддержки для одновременного запуска нескольких программ, поэтому ваш компилятор фактически должен был быть и вашим редактором - вы не могли спорить о преимуществах vi по сравнению с emacs, поэтому независимо от того, что дал вам ваш компилятор, ты научился использовать. Я действительно думаю, что это было намного проще, чем использовать библиотеки, сложенные на библиотеках, и есть много хитростей, если вы работаете с оборудованием и знаете, что это такое. Например, общей реализацией «паузы на мгновение» было «для (int i = 0; i <1000; i ++)» (в BASIC это отличается), которое никогда не используется сейчас, потому что аппаратное обеспечение настолько быстро, что вы потребовалось бы огромное количество, и даже если бы это было не так, оно было бы запущено на разных типах машин, поэтому это была бы другая пауза для разных людей (II +, IIe,
Это все из памяти, я не смотрел ни одной ссылки, когда писал это, поэтому я прошу прощения, если моя память неисправна, и я сказал вам что-то не так. Но я надеюсь, что это даст вам немного вкуса и ответит на несколько ваших вопросов.
источник
Какие языки были использованы?
6502 для большинства, редко C (Aztek), много бейсика, немного Паскаля (Apple Pascal).
Каково было развитие 6502 ассемблера?
Для 6502 было несколько довольно аккуратных сборщиков и инструментов: Orca / M, Merlin, плюс в последующие дни стало возможно разрабатывать на ПК и последовательную связь с Apple для удаленной отладки. Давайте не забудем утилиты Beagle Bros. Edit + compile + run, мир никогда не меняется ;-)
Как развивалась BASIC?
Нет визуального редактора, только консоль, которая позволяет вам взаимодействовать с базовым буфером в начале. Тем не менее, у Beagle Bros. было несколько волшебных утилит, которые заставили большую часть боли уйти. А позже появились оболочки, которые, по крайней мере, действовали бы как линейный редактор для вашего письма. Существовал инструмент (Expediter 2), который мог преобразовать ваш BASIC в двоичный файл сборки, который работал намного быстрее (поездка в один конец).
Были ли какие-либо API или Middleware?
Были некоторые, но в основном очень узкие рамки, ничего похожего на то, что вы бы назвали SDK сегодня. Давайте будем честными, в 48K вы не можете позволить себе API общего назначения. В последующие дни было два или три SDK специального назначения, которые появились для увлекательных приключенческих игр, игр на основе тайлов,
Что-нибудь еще отличается от сегодняшнего дня?
Все и ничего. Практика осталась прежней, инструменты стали лучше.
источник
Native Basic Interpreter: Когда вы пишете программу, вы должны нумеровать каждую строку, вводить код и нажимать ввод. Основная программа выглядит так: 10: ДОМ 20: ПЕЧАТЬ "HELLO WORLD"
В этом примере HOME очистите экран, если вам нужно, вы должны ввести промежуточную строку, например:
15: ПЕЧАТЬ "ПОЗДРАВЛЕНИЯ"
В качестве вывода он должен очистить экран, показать приветствия Hello World
Команда LIST покажет ваш код (без паузы!). В некоторых режимах нет заглавных букв (только заглавные буквы), нет специальных символов. В BASIC не было написано ни одной про-игры, потому что из-за производительности вы могли видеть, как ваша программа рисует линии.
Только звуковые эффекты, было трудно воспроизводить музыку, у нас есть только динамик с ОДНЫМ битом (без шуток). Пик 49152 меняет его состояние, да, вы должны контролировать даже частоту, и она была прямоугольной формы.
сходить на сборку CALL -151
Вы должны вручную написать код на мониторе, не IDE, ввести адрес и свой код (HEXA)
источник