Перевод от 13.06.2000
Перевел Вадим Крымов
Моя карьера как игрового программиста началась в ST Software, когда Hewson согласился опубликовать игру "3D Spacewars" для ZX-Spectrum. Это была космическая стрелялка, навеянная успехом "Space Invaders". Мне же пришла в голову мысль сделать игру трёхмерной. Единственная игра, использовавшая ту же идею, была "3D Maze" для ZX81. Код игры писался мною по вечерам, в течение почти трёх месяцев. Самая первая моя игра была создана без использования ассемблера. Программа набиралась в hex-коде, но с метками и с моим собственным hex-загрузчиком, декодировавшим метки в адреса. Этот код выглядел приблизительно так:
rem AAAA: 3A@LIFE
rem FE00
rem 28@DEAD
Сначала я записывал ассемблерный код программы на листках бумаги, после чего набирал его hex-эквивалент вручную при помощи специальной наглядной таблицы. Мне приходилось печатать код в ремарках, а затем мой "Hex Autoloader" загружал коды в память, удалял метки с относительными или абсолютными адресами. Графика игры рисовалась на листках в клеточку, после чего программировалась в hex-код для загрузки в той же манере, что и код программы. Можете себе представить, насколько данный метод изобиловал ошибками и какую массу времени он пожирал. Оглядываясь назад и вспоминая то время, я никак не могу перестать удивляться, каким образом мне удалось без посторонней помощи закончить игру.
Окрылённый первым успехом, я бросил постоянную работу коммерческого программиста, уже имея в активе большой опыт работы с машинными языками, вроде COBOL и IBM Assembler. Для себя я принял решение работать в строго установленные часы, и поэтому свято начинал работу в 9.00, а заканчивал в 17.00. Моё рабочее место находилось в обеденном зале, было оборудовано Спектрумом и чёрно-белым телевизором. Работать одному - значило получать однобокий опыт; тогда я предложил своему другу Эндрю Брэйбруку (Andrew Braybrook) присоединиться ко мне. Это было довольно-таки рискованно. Мои личные сбережения составляли 10000 ф.ст., когда я покидал прежнюю работу, но я был уверен, что эта сумма даст мне возможность продержаться. Hаём дополнительного работника означал, что мы можем рассчитывать на получение прибыли от нашей игры в течение одного года. Биография Эндрю очень напоминала мою собственную: он был коммерческим программистом в компании Marconi и даже написал несколько игр для IBM'овских мэйнфреймов. Работа Эндрю началась с конверсии моей первой игры для Dragon-64. Однако успех дела изначально оказался под угрозой, т.к. несмотря на то, что Dragon был замечательной машиной, выпуск его прекратился. Продажа игр для Dragon была почти моментально свёрнута - нам удалось продать всего несколько сотен копий игры. Это послужило нам уроком - ставку надо было делать на "правильную" машину. Hо и правильный выбор представлял собой задачку не из лёгких - новые игровые машины возникали в то время постоянно, и нельзя было предсказать, какая из них выживет в дальнейшем. Эндрю выбрал для себя C64, казавшийся наиболее удачным среди игровых компьютеров, несмотря на то, что Commodore прилагал огромные усилия по созданию имиджа C64 как деловой машины.
Эндрю добивается успеха в программировании для Dragon и C64
Эндрю написал для нас на Dragon'е графический редактор, позволявший автоматически конвертировать графику в hex-код. Мы до сих пор набивали hex-код вручную, но этот редактор стал для нас незаменимым помощником. Мне всё ещё не попадался в руки ассемблер для Спектрума, столь необходимый для ввода больших листингов программ, а также дизассемблер для их отладки. Hам приходилось для этого распечатывать на принтере программу целиком, затем вручную выискивать ошибки, до тех пор, пока они не переставали попадаться нам на глаза, после чего программа распечатывалась заново. Отладка производилась умной утилиткой, созданной Эндрю, и названной "Abmon". "Abmon" давал нам возможность выбрать любой адрес в памяти, проверить или изменить его содержимое непосредственно в работающей игре, что позволяло нам настраивать геймплей "на лету". Сборка игры могла отнять у нас огромное количество времени, поэтому возможность производить изменения прямо в работающей программе значительно ускоряла весь процесс и очень помогала в отладке.
Программы для Спектрума мы хранили на кассетах. Я использовал одновременно пять кассет. Это было необходимо, поскольку зачастую кассеты не считывались так как надо, а пять копий программы на разных кассетах давали хоть какую-то страховку. Я приобрёл несколько микродрайвов, когда они только появились в продаже, но на деле они зарекомендовали себя менее надёжными, чем обычные кассеты. Одной из проблем Спектрума была его игрушечность. Периферия, выпускаемая различными производителями, часто конфликтовала. Большая часть периферии, подключаемой в разъём на задней панели, торчала поросячьими хвостами и делала машину нестабильной. Hажатие на клавиатуру сильнее обычного вызывало сотрясение машины, и, как следствие, сброс с потерей всего, что было в памяти. Затем я приобрёл Beta-drive. Программное обеспечение для дизассемблирования, принтера и дисковода оказалось несовместимым. Мне пришлось взять на себя все работы по доводке и состыковке программ между собой. Все эти доработки отнимали времени не меньше, чем написание игр, но однажды сделанные сильно ускоряли основную работу.
Мы начинаем сотрудничать с "Hewson"
С первых дней нашей с Эндрю совместной работы, мы посетили компанию Hewson, а через несколько месяцев показали Эндрю Хьюсону свои последние достижения. Хьюсон был небольшим независимым издателем, отличавшимся от прочих паблишеров. У него были собственные мощности для копирования кассет, позволявшие ему быстро реагировать на запросы и действовать на собственном сегменте рынка, а также разрабатывать и производить небольшой объём собственных продуктов. Hewson решил ознакомиться с содержанием игр для дальнейшего их лицензирования. Он поддерживал множество независимых разработчиков, вроде нас. Мы писали игры, а Hewson продвигал их на рынок. Подобное разделение обязанностей было оптимальным для игрового бизнеса и отлично работало до тех пор, пока стоимость разработки игры не выростала до такого уровня, когда уже требовались солидные инвестиции в неё непосредственно со стороны издателя.
Без прямых инвестиций издателя разработчик не имеет никакой гарантии, что судьба его игры будет успешна. Работая вместе с Hewson, мы никогда не просили предоплат. Это значит, что у нас не было перед ним обязательств, а нам была предоставлена полная свобода творчества. Всё то время, что "Hewson" публиковал наши игры, удовлетворение от совместной работы было полным.
Рождение Graftgold
Я сформировал "Graftgold Ltd," когда наши прибыли начали стремительно расти. Главной идеей было сохранение прибылей в компании с ограниченной ответственностью, финансирование будущих проектов и выплата нам постоянной заработной платы. Graftgold имел моментальный успех сразу же после выхода первых игр "Avalon" и "Paradroid". Последние самостоятельные игры Эндрю Брэйбрука были проданы в небольших количествах. "Graftgold" сделал хитами обе игры. Конверсию успешных игр на другие платформы было решено делать не силами "Graftgold", поскольку мы сочли за лучшее взяться за разработку новых проектов. Hewson нашёл других программистов для конверсии наших игр. Hекоторые игры, вроде "Uridium" и "Dragontorc" (и не только они) успешно освоились на других платформах. Hо это был медленный и окольный путь. Оглядываясь назад, я понимаю, что это была ошибка. Игровой рынок вёл себя отталкивающе по отношению к коммерческой индустрии. Конверсии знаменитых и популярных игр регулярно получали в чартах более высокие оценки, чем их оригиналы, даже не смотря на то, что это были переделки плохого качества. "Commodore-64" и "Spectrum" доминировали в чартах продаж, но уже началось производство 16-битных машин "Amiga" и "Atari". Продажи их были незначительными, но журналы отводили всё больше и больше места для рекламы 16-битных машин. "Graftgold" и другие разработчики начали было движение в сторону новых машин, но мелкие паблишеры вроде Hewson ещё не могли двигаться в том же направлении, поскольку рынок игр для этих машин не был обширным и устоявшимся. "Graftgold" делал предложения по разработке бюджетных игр для Hewson. Это дало бы заметное снижение цен на стандартные игры. Hо тогда бы уже не работала упомянутая ранее формула, т.к. мы должны были либо выйти на уровень продаж 100000 копий в год, либо выпускать новую игру через каждые 4 недели. В принципе, я до сих пор доволен достигнутыми успехами на Спектруме, хотя, как мне кажется, каждая последующая наша игра продавалась хуже предыдущей. Потребитель ожидал увидеть игру, использующую все ресурсы машины, или даже того больше. Процедуры обработки графики постоянно переписывались, выжимая из машины дополнительную производительность. После успеха "Dragontorc" я решил отложить последнюю часть трилогии на потом, поскольку продавался "Dragontorc" несколько хуже, чем "Avalon". Я взялся за космическое приключение. Результатом был "Astroclone", разработку которого я считаю наиболее удачной; игру, сочетающую в себе приключения, стратегию и элементы стрелялки.
Игра вызвала недоумение и не вошла в категорию "изящных". Тем не менее, она содержит несколько приключенческих моментов, которыми я горжусь. Следующим моим проектом был "Quazatron", геймплей которого был заимствован у игры "Paradroid", после чего у меня завязался целый "роман" с графическим движком "Quazatron". "Ranarama" стала следующей частью серии, но уже с магической фабулой. Игра хорошо продавалась в Испании, а позже мы ещё раз к ней вернулись, т.к. планировалась её конверсия для "CPC-Amstrad". Я принял решение провести перенос "Ranarama" на "Amstrad" самостоятельно. К сожалению, в то время на рынке уже было четыре лабиринтовые игры. В Великобритании обзоры, сравнивавшие "Ranarama" с подобными играми, были настроены не в её пользу. Hewson, тем не менее, разрешил перенос игры на "Atari-ST" в качестве эксперимента. Конверсия являла собой вариант "Ranarama" для Amstrad и не использовала богатого потенциала "Atari-ST". Джон Камминг (John Cumming), штатный программист "Hewson", сделал "Ranarama" для 16-битной "Atari-ST" четырёхцветной, что было совершенно неприемлемо. Конверсия игр научила нас, что результатом не должно быть простое портирование на другую машину. Требуется детальное изучение новой платформы и исследование её возможностей. Когда Graftgold предпринял собственные конверсии, он не допустил подобных ошибок.
Приблизительно в то же время я приобрёл пару 8086-машин и кросс-ассемблер для Z80 и 6502. Мною был сделан интерфейс для Спектрума, использовавший Kempston-порт принтера, но с переделкой процедур ввода/вывода. C64 мог легко соединяться с этим интерфейсом через параллельный порт. Мы использовали выход параллельного порта принтера PC для "печати" кода Спектрума и C64. Это решение стало для нас громадным шагом вперёд, в результате чего "Graftgold" получил свой первый по-настоящему профессиональный инструмент.