Twin Kingdom Valley - это текстовая приключенческая игра с анимированными картинками (в большинстве форматов) [ требуется пояснение ] для BBC Micro , Acorn Electron , Commodore 64 , Commodore 16 и ZX Spectrum . Он был выпущен в 1983 году компанией Bug-Byte .
Долина королевств-близнецов | |
---|---|
Разработчики) | Тревор Холл |
Издатель (ы) | Ошибка-байта |
Платформа (и) | Acorn Electron , BBC Micro , Commodore 16 , Commodore 64 , ZX Spectrum |
Релиз | 1983 г. |
Жанр (ы) | Интерактивная фантастика |
Режим (ы) | Один игрок |
Геймплей
Twin Kingdom Valley - это произведение интерактивной фантастики, где игрок вводит команды, такие как «взять кувшин», в командной строке, и ему сообщается результат своего хода («Теперь он у меня есть»). Каждая такая команда занимает одну единицу времени, в течение которой другие персонажи, не являющиеся игроками, также будут двигаться и выполнять действия.
Это была одна из первых текстовых приключенческих игр с активными неигровыми персонажами . [1] Персонажи интерактивны и обладают собственным характером: некоторые дружелюбны, будут следовать за игроком и защищать его, а другие враждебны. Ведьмы и короли - сложные персонажи, а гориллы и тролли проще. В битвах есть дополнительные функции, включая оружие, которое враги могут уронить, сломать, бросить или унести.
Сюжет
Главный герой этой игры, которого игровой движок называет «ты», - охотник за сокровищами. [2] Игрок начинает игру на южной окраине лесного королевства с небольшим количеством владений. Ранняя встреча с трактирщиком The Sword Inn может убедить игрока арендовать у него небольшую бревенчатую хижину. В каюте есть очень скудные припасы, например, простой кувшин.
Чтобы продвигаться по игре, игрок должен определить, каких персонажей считать друзьями, а каких - противниками. Некоторые персонажи, такие как горилла, которая атакует игрока деревянной дубинкой, явно представлены как враги, в то время как другие неоднозначны.
Есть два царства - лес и пустыня, разделенные глубоким каньоном. Каждое королевство управляется королем, и короли не ладят друг с другом. Игроку сообщают, что в последнее время ситуация ухудшилась и пропал королевский из лесного королевства, преступление приписывается королю пустыни. Когда два богатых королевства находятся в состоянии войны, предполагается, что игрок может воспользоваться этим и забрать сокровища с обеих сторон. По ходу игры игрок сталкивается с проблемой транспортировки добычи обратно в бревенчатую хижину, и временами ему приходится выбирать между ношением сокровищ и ношением оружия, причем оба типа объектов подвергаются риску кражи, если их не охранять.
Сюжет развивается со временем. В оригинальной игре BBC Micro количество локаций и графики было ограничено. Некоторые дополнения появляются в версии C64, хотя сюжет во многом такой же. В современном выпуске игры для смартфонов еще больше локаций и несколько новых поворотов сюжета.
Разработка
Концепция
Игра была вдохновлена оригинальной Adventure по Will Кроусером . [3] Исходный игровой движок был написан на языке ассемблера 6502 . Затем игра была перенесена на Z80 для Spectrum. В более новых версиях (для Commodore 64 и Spectrum) есть расширенная игра. Игра призвана добавить уровень реализма за счет добавления изображений и сложных персонажей.
Начало игры было скорее вызовом давления со стороны сверстников, чем коммерческим предприятием. В то время доступ к «огромным машинам» (по меркам того времени), необходимым для запуска оригинального приключения, был ограничен. Мысль была такая: конечно, это можно как-нибудь сделать на домашнем компьютере. Медленность кода языка высокого уровня (Basic) в домашних системах исключала это как путь, и в то время не было доступа к компилятору FORTRAN. Поэтому была выбрана сборка. Мало кто запускал оригинал, и (получив диплом) те студенты, которые имели доступ к университетскому оборудованию, способному запускать игру, потеряли этот привилегированный доступ. Таким образом, вспоминаемые элементы (дразняще) напоминали оригинал с повторяющейся дорогой, зданием (содержащим полезные предметы, такие как ключи и лампу). Дом в лесу, рядом родник. Однако, помимо этого тизера, что это своего рода клон, сходство заканчивается. План изменился на «зачем копировать, когда можно лучше».
Вместо того, чтобы просто моделировать пещеру, задача заключалась в моделировании большего мира с множеством надземных, подземных, внутренних и внешних мест.
Для игры была выбрана несколько средневековая эпоха, допускающая элементы мистики. Все бои были разработаны как базовый стиль рукопашного боя, когда игрок и другие персонажи по очереди обмениваются ударами. Ходы всегда инициируются вводом текста игроком, а не происходят в реальном времени. Если игрок пытается убежать из боя, противнику разрешается одна атака до того, как игрок двинется. Поведение игрока моделируется так же, как и персонажи. Как и в подобных играх, у персонажей есть различные ограничения, такие как максимальное здоровье и скорость исцеления, а также грузоподъемность.
Графика
Основным разделом программного обеспечения является язык пользовательской графики, который является ранним масштабируемым форматом векторной графики . Сотни изображений объектов и локаций рисуются в игре с помощью этого специального инструмента. Ограниченная перспектива достигается за счет возможности рисования изображений в уменьшенном масштабе внутри другого изображения. Например, модель замка может быть разработана для просмотра крупным планом, но ее также можно нарисовать как подпрограмму для далекого замка в пустыне. Скорость графики составляла около 10 полигонов в секунду, поэтому игра не могла позволить себе писать фоновые полигоны и заливку. Изображения просто создаются заливкой, так что каждый пиксель экрана заполняется только один раз. Современный ПК (использующий эмулятор) может мгновенно раскрасить эти изображения, но владельцам оригинальной игры придется подождать три или четыре секунды, пока экран закрасится.
Графические команды пришлось сильно сжать из-за ограниченного объема памяти. Рассмотрим вызов рисования линии, который выполняет «рисование» из текущей позиции с цветом и новыми координатами x, y. Если вы используете 6502, чтобы: загрузить регистр x с координатой x, загрузить регистр y с координатой y, загрузить аккумулятор с цветом, а затем вызвать «Draw line», вы использовали 9 байтов. Если во всех изображениях игры будет всего 1000 таких строк, то их будет пропущено 9К. Фактическая память, используемая для команды рисования в игре, составляет 2 байта.
Чтобы нарисовать и заполнить контур, необходимы 3 основные команды: Перемещение, Рисование, Заливка. Перемещение (в начало фигуры), за которым следует рисование в каждой точке контура, пока форма не замкнется, а затем заполнение внутри фигуры. Для рисования и заливки необходим цвет линии. Все функции Move Draw и Fill нуждаются в координатах. Чтобы декодировать это эффективно, всего 2 бита необходимы для разрешения «Перемещение, Рисование, Заливка, любая другая инструкция» на языке ассемблера. [4] Дополнительный бит определяет, имеет ли команда абсолютные координаты экрана или относительное положение. 3 биты дают выбор из 8 цветов, и, наконец, 10 битов дают две 5-битные координаты x, y.
К другим командам (не требующим координат) относятся: вызов подпрограммы, завершение подпрограммы, рисование дуги окружности (центр в последней перемещенной координате) и т. Д. Сложные изображения, такие как кабина, сделанная из множества бревен, используют инструкцию цикла, аналогичную для цикла в C с постоянным ограничением цикла. В языке ассемблера нет понятия переменных и инструкций ветвления.
Игровой движок
В игре есть несколько микро баз данных с информацией, представляющей локации, объекты, которые можно использовать, различных существ и другие данные. Движок игры запускает симулированный мир для этих предметов. Небольшой модуль ИИ позволяет персонажам, не являющимся игроками, принимать решения. [5]
Механизм определения местоположения имеет некоторые функции для экономии памяти. В большинстве мест есть всего несколько слов, но подробная (битовая) «база данных выхода» интерпретируется как более длинные описания. Эти описания могут меняться, поскольку биты устанавливаются и сбрасываются для запертых и незапертых дверей. Местоположение, содержащее около восьми строк текста, описывающее его, может содержать менее 30 байт данных. Слова, используемые в базе данных о местоположении игры, хранятся в виде одного байта на слово, которые просматриваются в списке из 256 слов, и в результате многие слова используются повторно несколько раз.
Например, «Вы находитесь у журчащего ручья, на севере вы видите ручей, на юге вы видите дорогу, на северо-западе - полноводная река». Слова «Ты» добавлены игровым движком. «Журчащим ручьем» - это всего 4 байта данных, 5-й байт кодирует длину (4) сообщения в словах. Местоположение имеет 3 выхода, которые кодируются как 2 или 3 байта на выход. Байт 1 имеет направление компаса плюс вверх или вниз (6 бит для N, S, E, W, U, D). Дополнительная насадка отмечает специальные выходы, например, запертые двери. Затем дополнительный байт определяет различные биты для блокировки / разблокировки или «может видеть, не может видеть» и т. Д. И, наконец, байт для пункта назначения. Затем первое слово пункта назначения пропускается, поэтому: Если Север ведет к «По потоку», слово «По» опускается, а слова «вы можете видеть» добавляются, давая «Север, вы можете видеть поток» используя всего 2 байта.
Все это сжатие было необходимо для того, чтобы уместить игру в пределах 32k или оригинальной системы BBC Micro . 10k теряется в качестве экранного буфера, поэтому игровая память с самого начала уменьшилась до 22k. С некоторой частью памяти, необходимой для пространства переменных или стека, доступный код, например, в системе, приближается к 20 КБ. Если бы в игре было 200 локаций по 30 байт на локацию, это было бы 6 КБ. Даже это почти не оставило бы места для игрового кода, особенно графики. По этой причине в исходных версиях игры было менее 200 уникальных локаций. В ранних выпусках (например, BBC Micro) примерно 180 локаций, а в более поздних (например, версия Commodore 64) - 190. Другие игровые столы (например, для существ или объектов) намного меньше.
В игре есть небольшой блок сброса данных, который повторно запирает двери и другие объекты, когда игрок начинает новую игру. В более поздних версиях (например, C64) дополнительная память позволяла размещать более длинные сообщения в виде обычного текста для особых игровых событий и головоломок.
Поскольку существа могут удерживать объекты, все существа рассматриваются игровым движком как особые локации. Объект имеет однобайтовую ячейку, которая может быть комнатой или существом, и все местоположения выше 200 зарезервированы для существ или других специальных кодов местоположения (например, «сломанный»).
Продолжение развития
В 2006 году игра снова активно развивалась из-за появления новых платформ. Движок игры был портирован с оригинального 6502 на Java с некоторыми инструментами разработки игр на C # .
Прием
Отзывы в целом положительные. По ссылке World of Spectrum есть много снимков экрана с обзорами игры в журналах.
Вот рейтинги, данные Crash Magazine для версии ZX Spectrum:
- Атмосфера: 9
- Словарь: 7
- Логика: 7
- Отладка: 7
- Общая стоимость: 8
В этом обзоре комментируются особенности, возникающие при переносе игр с BBC micro или C64 на ZX Spectrum. Оригинальная версия BBC была названа одним журналом "хитом №1" производителем, Bug Byte, что, как сообщается, основано на данных о продажах. Информация о том, как журналы в то время составляли такие диаграммы, практически отсутствует. Однако продажи явно были достаточно значительными, чтобы издатель запросил различные перечисленные порты и запустил множество полностраничных рекламных объявлений для игры.
Письма были отправлены издателю игры еще до того, как были созданы «системы интернет-обзора». Они давно утеряны, но в целом содержат положительные комментарии. Самым заметным среди них было письмо от отца слепого ребенка, который смог играть в игру благодаря включенной поддержке синтезатора речи. [ необходима цитата ]
Рекомендации
- ^ Gunness, Jacob (ноябрь 1999). «Интервью Тревора» . Архив решений для классических приключений . Проверено 3 декабря 2013 года .
- ^ http://solutionarchive.com/game/id%2C564/Twin+Kingdom+Valley.html
- ^ http://solutionarchive.com/interview_trevor/
- ^ Ганнесс, Джейкоб (август 2006 г.). «Интервью Тревора 2» . Classic Adventures Solution Archive: Twin Kingdom Valley - в движении . Проверено 3 декабря 2013 года .
- ^ http://solutionarchive.com/interview_trevor/
Внешние ссылки
- Официальный веб-сайт
- Долина королевств-близнецов на SpectrumComputing.co.uk