Twin Kingdom Valley — это текстовая приключенческая игра с анимированными изображениями для компьютеров BBC Micro, Acorn Electron и других платформ. Игра была выпущена в 1983 году издательством Bug-Byte.
Игровой процесс представляет собой интерактивный квест: игрок вводит команды (например, 'take jug') на экране с приглашением и получает ответ. Каждая команда занимает определенное время; в это же время другие персонажи также действуют.
Главным героем является охотник за сокровищами (в игре его называют 'you'). Игрок начинает с южной окраины лесного королевства, имея минимум вещей. В начале можно арендовать хижину у трактирщика и получить простой кувшин.Для продвижения по сюжету нужно определить дружественные или враждебные отношения между персонажами: одни из них могут быть явными противниками, другие — неоднозначны. В игре есть два королевства (лесное и пустынное), разделённых глубокой пропастью; их правители находятся в конфликте.
Персонажи имеют свои характерные черты: одни дружелюбны, другие агрессивно настроены. В игре есть сложная система взаимодействия с персонажами и предметами — от простых горилл до более развитого поведения у королей.
Боевые эпизоды включают использование оружий: их можно бросать, ломать или забираться враги. Таким образом, игрок должен балансировать между добычей сокровищ и защитой от нападений на пути к своей цели.Версия для C64 добавляет новые элементы графики без значительных изменений сюжета; современные мобильные версии расширяют карту локаций с новыми поворотами истории.
### ConceptThe game was inspired by **Adventure** (оригинальная игра) and its author Will Crowther. The original engine was written in assembly language for the [6502](https://en.wikipedia.org/wiki/MOS_Technology_6502). Later, it was ported to Z80 for Spectrum computers.The newer versions of the game (for Commodore 64 and Spectrum), added more content. They aimed at enhancing realism through image inclusion and complex character design.This project started as a challenge among peers rather than commercial venture; access to powerful machines needed for running original Adventure was limited, so it seemed feasible on home computers.The initial version had some similarities with the source material: road, building (with useful items), forest. However, beyond that, Twin Kingdom Valley became its own game world.Instead of just a cave setting, developers decided to create an expansive environment including above-ground and underground locations. The game features 175 rooms in total.### GraphicsA significant part of the software is dedicated to custom graphics handling using early scalable vector technology.Hundreds of images of objects and locations are drawn in the game using this custom tool.Perspective is limited by allowing scaled-down drawings within other images; for example, a castle model can be designed close-up but also used as part of a distant scene. The graphics speed was about 10 polygons per second, so background elements were not written to save time.Images are filled with one pass only (flood fill), ensuring each pixel is painted once.Modern computers render these images quickly via emulation; however, the original game's owners had to wait several seconds for screen updates due to limited memory and processing power. Graphics commands needed compression because of tight memory constraints.To draw shapes efficiently:- Three basic instructions: Move (start point), Draw (outline points) & Fill (color inside).- Commands are decoded with just 2 bits, plus an extra bit for absolute/relative coordinates; 3 more bits select from 8 colors and the last part provides x,y positions in binary.Other commands include subroutine calls, arcs, loops without variables or branching.The game uses databases of locations, objects, creatures etc., running a simulated world with AI-controlled characters. Locations have minimal text but detailed exit descriptions for longer narratives.Эти описания могут варьироваться в зависимости от состояния битов для запертых и открытых дверей. Место с примерно восемью строками текста может занимать менее 30 байт данных.Слова, используемые в базе локаций игры, хранятся как один байт на слово; они обращаются к списку из 256 слов, что приводит к многократному использованию одних и тех же терминов. Например: "Вы стоите у журчащего ручья, на севере виден поток воды, юг ведет к дороге, северо-запад — глубинный водоток". Слова 'You are' добавляются движком игры; фраза 'by a babbling brook' занимает всего 4 байта данных. Пятый байт кодирует длину сообщения (в данном случае, четыре слова).Локация имеет три выхода: каждый из них закодирован двумя или тремя байтами. Первые два бита первого байта определяют направление и дополнительные возможности (например, запертая дверь). Второй байт содержит информацию о состоянии локации — открыт/закрыт либо видимость через выход.Следующий за этим один байт указывает на конечную точку перехода. Первое слово в этой цели игнорируется (в нашем примере, если север ведет к 'By a stream', то слово 'by' опускается). В итоговом сообщении получается: "North you can see a stream", используя всего два байта.Такая компрессия была необходима для размещения игры в пределах 32кб памяти оригинального BBC Micro. При этом часть пространства занимает буфер экрана, и доступная оперативка составляет около 22 килобайт (изначально было 10k на экран). С учетом переменных данных или стека остается еще меньше — примерно 20кб.Если в игре будет 200 локаций по 30 байтов каждая, это займет уже почти 6 тысяч байт. Даже при этом останется очень мало места для кода и графики. В ранних версиях (например, BBC Micro) было около 180 уникальных мест; в более поздней редакции на Commodore 64 — примерно 190.Другие таблицы данных игры (сущности или объекты), напротив, значительно меньше по объему. В начале новой партии игра автоматически сбрасывает состояние дверей и других элементов через специальный блок данных.В более поздних версиях появилась возможность использовать длинные текстовые сообщения для особых событий или головоломок благодаря дополнительной памяти.Поскольку существа могут нести предметы, все они рассматриваются как особые локации. Предмет имеет один байт-локацию (комната либо существо), и числа выше 200 зарезервированы для особых кодов мест или других специальных значений.Вот так выглядит перевод текста, сохраняющий структуру оригинала без дополнительных пояснений.=
Игра снова активно разрабатывалась в 2006 году благодаря появлению новых платформ. Движок игры был перенесен с оригинального процессора 6502 на Java, а некоторые инструменты разработки были написаны на C#.
Отзывы оказались преимущественно положительными. На сайте World of Spectrum можно найти скриншоты обзоров из журналов.Вот оценка версии для ZX Spectrum от Crash Magazine:Атмосфера: 9Словарный запас: 7Логика игры: 7Отладочные возможности: 7Общая ценность: 8Этот обзор упоминает особенности, возникающие при переносе игр с BBC micro или C64 на ZX Spectrum. Оригинальная версия для BBC была названа "No.1 hit" изданием Bug Byte и продавалась очень успешно по данным продаж. Информация о методах составления чартов в те времена ограничена, но очевидна значимость игры на рынке: это привело к созданию различных портов и активной рекламе.Письма от пользователей издательству также поступали до появления интернет-обзоров. Эти письма сейчас утрачены; среди них были в основном положительные комментарии, включая одно особенно трогательно сообщение о том, как слепой ребенок смог играть благодаря поддержке синтезатора речи.Вот и все!