Великобритания начала восьмидесятых представляла собой довольно мрачное зрелище. Эпоха Маргарет Тэтчер сопровождалась жесткими экономическими реформами, закрытием угольных шахт и масштабными забастовками. Традиционная тяжелая промышленность, некогда бывшая гордостью островной империи, шла ко дну. Однако именно на этих руинах, в условиях тотального дефицита бюджетов и вычислительных мощностей, зародилась уникальная британская IT-школа.
Она не просто подарила миру легендарный космический симулятор Elite, но и заложила технологический фундамент, на котором сегодня держится вся мобильная индустрия.
Пока за океаном Стив Джобс и Стив Возняк паяли свои первые платы в гараже, британское правительство осознало: если срочно не запрыгнуть в уходящий поезд цифровизации, страна останется на обочине истории. Миссию просветителя взяла на себя телерадиокомпания BBC. Они запустили беспрецедентную программу повышения компьютерной грамотности, центральным элементом которой стал заказ на создание «национального ПК».
Победителем тендера (обойдя даже легендарного Клайва Синклера с его будущим ZX Spectrum) стала скромная кембриджская компания Acorn Computers. Дуэт инженеров — Софи Уилсон и Стив Фёрбер — сотворил невозможное, собрав рабочий прототип всего за 4 дня.
Для своего времени BBC Micro (в народе ласково прозванный «Биб») был настоящим технологическим прорывом и монстром производительности. При умеренной цене в £399 компьютер стал идеальным решением для школ и молодых энтузиастов, заложив основу для будущей цифровой революции. Опередить конкурентов и стать базой для создания легендарной игры компьютеру помогли следующие аппаратные решения:
Интересный факт: Впоследствии именно Уилсон и Фёрбер, устав от ограничений доступных процессоров, разработают собственную архитектуру. Она получит название ARM (Acorn RISC Machine). Сегодня чипы на базе ARM стоят в 99% смартфонов мира.
В 1981 году студент Дэвид Брэбен нашел под рождественской елкой скромный компьютер Acorn Atom (предшественник BBC Micro). Машина стоила £128 и обладала смехотворными 2 Кб оперативной памяти. Вскоре в Колледже Иисуса в Кембридже Брэбен знакомится с Йеном Беллом, счастливым обладателем более мощного BBC Micro.
Оба студента мечтали создать игру, которая вырвалась бы за рамки примитивных аркад того времени. Им хотелось перенести на экраны дух «Автостопом по Галактике» — живой, огромный, непредсказуемый космос. Но как вместить целую вселенную в память, объем которой меньше, чем у одного текстового документа сегодня?
Вместо того чтобы хранить данные о каждой планете, Брэбен и Белл использовали математику. Они применили алгоритм процедурной генерации на основе генератора псевдослучайных чисел.
В основе таких алгоритмов лежат рекуррентные формулы, где каждое следующее значение зависит от предыдущего. В упрощенном виде линейный конгруэнтный метод генерации выглядит так:
Xn+1=(aXn+c)(modm)
В игре использовалось короткое начальное «семя» (seed) из нескольких байтов. При каждом прыжке в гиперпространство процессор прогонял это семя через алгоритм (основанный на последовательности Фибоначчи), и на лету генерировал:
Так в игре появились 8 галактик по 256 планет — 2048 уникальных миров, которые вообще не занимали места на диске!
Гениальный нейминг: Имена планет генерировались из двух таблиц по 130 слогов (левых и правых). Так случайным образом родились культовые названия Lave, Diso и Riedquat. Разработчики вручную заблокировали только генерацию слогов, из которых могло сложиться нецензурное слово, хотя одну планету они сами в шутку назвали Arse.
В 1984 году не существовало видеокарт с аппаратным ускорением. Чтобы отрисовать трехмерные корабли, авторы применили каркасную (wireframe) графику. Объекты представляли собой пустые граничные линии без заливки полигонов.
Для проекции трехмерных координат на плоский экран BBC Micro использовалась базовая математика перспективы:
xscreen=zx⋅S+Cxyscreen=zy⋅S+Cy
Где S — масштаб, а Cx и Cy — смещение центра экрана.
Чтобы движение выглядело плавным, процессор MOS 6502, не умевший работать с числами с плавающей запятой (дробями), обманули с помощью вычислений с фиксированной точкой (fixed-point arithmetic). А для экономии тактов процессора разработчики активно использовали «нулевую страницу» памяти (адреса от 0 до 255), обращение к которой занимало всего 1 байт вместо стандартных двух.
Выход Elite осенью 1984 года сопровождался невиданной маркетинговой кампанией (издатель Acornsoft потратил фантастические £50 000). Но игра шокировала публику не только графикой.
Что нового привнесла Elite (о чем часто забывают):
Elite продалась тиражом более 1 миллиона копий, породив целое поколение космосимов. В постсоветском пространстве ее клоны стали суперхитами на «Спектрумах» и их аналогах.
Темная сторона успеха (Новые данные): К сожалению, колоссальный успех разрушил дружбу создателей. В 90-х годах пути Йена Белла и Дэвида Брэбена разошлись из-за споров об авторских правах и роялти за портирование игры на консоли (включая NES). В итоге Брэбен основал студию Frontier Developments и продолжил развивать серию самостоятельно.
Несмотря на судебные дрязги, устаревание 8-битной графики и смену эпох, концепция осталась бессмертной. В 2014 году состоялся релиз Elite: Dangerous — современной реинкарнации с поддержкой VR и 400 миллиардами процедурно сгенерированных звездных систем.
Но для гиков со стажем настоящим чудом навсегда останется та самая первая Elite. Игра, которая физически не должна была работать на 32 килобайтах, но смогла подарить целому поколению билет в открытый космос.