Войти
O-PlanetСтатьи

Вселенная Великих Тетрафотов

Автор:

Тетрафот - это робот. Он существует в памяти компьютера и может перемещаться в ней и изменяться. При встрече двух тетрафотов, в живых останется только один. В этой Вселенной и один в поле - воин. Эта игра - для настоящих программистов. Для тех, кто знает, что его алгоритмы - самые крутые, и кто готов дать фору всем остальным...

Тетрафот - это робот. Он существует в памяти компьютера и может перемещаться в ней и изменяться. При встрече двух тетрафотов, в живых останется только один. В этой Вселенной и один в поле - воин. Эта игра - для настоящих программистов. Для тех, кто знает, что его алгоритмы - самые крутые, и кто готов дать фору всем остальным...

Игре этой более десяти лет. Тогда еще работал в одном КБ, времени было уйма, и можно было заниматься такими вот проектами. Идею игры почерпнул из старинной, хакерской игрушки corewar: война в памяти. Собственно, взял только идею того, что игра может быть основана на противостоянии двух ... программ! Но сюжет и антураж полностью мой, как, впрочем, и разработка. Писалось на builder c++ пятом...

Итак, в чем заключается игра? Играют двое. В их распоряжении виртуальное игровое поле и специальный язык программирования. Задача каждого - написать программу, которая бы оказалась более живучей и агрессивной, чем программа соперника. Соответственно, победит более изобретательный. В corewar программа могла клонировать себя, записывать что-то в ячейки памяти. Вроде, все. Каждая копия начинала работать автономно. В конечном итоге, та программа, которая занимала всю память, и побеждала. Поскольку весь кайф от такого процесса могли получить только избранные, то и появилась идея процесс "очеловечить", дать визуализацию и интерпретацию происходящего в терминах, более-менее понятных поколению 3D. Так появилась Вселенная Тетрафотов...

Тетрафот - это робот. Он существует в памяти компьютера и может перемещаться в ней и изменяться. При встрече двух тетрафотов, в живых останется только один. В этой Вселенной и один в поле - воин. Собственно говоря, в самом начале у игроков как раз по одному тертафоту. Нажимаем "старт" и тетрафоты оживают! Они начинают перемещаться, рождать потомков, строить крепости, линии обороты, атаковать противника... Уже через несколько сот ходов на до этого пустом экране будет кипеть настоящая битва!

Изображение
Изображение

Для создания Тетрафота используется язык, состоящий из 15 команд, позволяющих полностью запрограммировать жизненный цикл тетрафота.

Тетрафоты бывают четырех статусов:

Путешественник. BLUE Он умеет быстро двигаться в любом направлении, он самый слабый, то есть, погибает при любом столкновении

Принц. GREEN Медленный, неподвижный, слабый, но умеет клонировать потомков в любом направлении, причем, клон убивает любого в первый момент своего существования, если там, где он появился, кто-то был

Воин. YELLOW Он движится в любом направлении, правда, медленнее, чем путешественник, зато он и сильнее его и сильнее принца. При столкновении он их просто убивает, продолжая движение

Страж. RED Самый сильный, но не умеет двигаться.

Тетрафот может поворачиваться, перемещаться, менять свой статус и алгоритм поведения. Так, для каждого статуса (путешественник, принц, воин, страж) еще могут быть определены несколько разных алгоритмов. Соответственно, Ваш герой из очень мирного может превратиться в буйного и быстрого. Впрочем, также и наоборот.

Список команд для Тетрафотов:

1. Смена статуса:  BLUE, GREEN, YELLOW, RED
2. Перемещаться на N шагов относительно ориентации:  FLY:N
3. Поворот в пространстве относительно ориентации: LEFT, RIGHT, BACK, RAND
4. Определить номер алгоритма поведения: [N]
5. Перейти к алгоритму поведения N: TRANSF[N]
6. Вернуться к предыдущему алгоритму поведения: RET
7. Клонирование Тетрафота с видом N: CLON[N]
8. Уничтожить Тетрафота: KILL
9. Стоять на месте N тактов: STOP[N]

В распоряжении игрока имеется встроенный редактор, разделенный на четыре секции по типам Тетрафотов, снабженный контекстной подсказкой, транслятор, ищущий ошибки в Вашей программе, отладчик, позволяющий проследить весь процесс жизни героя по шагам, подробный справочник, и конечно же сам полигон, где Ваш крутой герой конечно же победит всех некрутых и негероев. Симулятор ориентирован на организацию турниров, имеет много опций проведения боев: по времени, по количеству потомков, количеству соседей, позволяет наблюдать оперативную статистику во время боя, ну и разумеется, позволяет скрыть исходные код всех Тетрафотов, участвующих в турнирах. Кроме того, симулятор был опробован несколькими группами программистов и тщательно отлажен с учетом их пожеланий.

Изображение

Разберем простейший пример программы тетрафота, названного "Вихрь".

Любой тетрафот рождается путешественником, синим.

Синяя секция программы разделена на две части: [0] и [1] (Нулевую секцию можно не указывать)

Рождаясь с алгоритмом поведения 0, тетрафот становится принцем, зеленым.
Рождаясь с алгоритмом поведения 1, тетрафот становится воином, желтым.
Воин будет бесконечно двигаться в одном и том же направлении. (Любая секция работает в цикле)
Принц поворачивается в произвольном направлении и рождает сперва тетрафота с алгоритмом поведения 0, потом, снова повернувшись, тетрафота с алгоритмом поведения 1.

И вот что получилось:

Изображение

Важно понять, что программа исполняется в цикле в рамках той секции, где находится, и в рамках выбранного алгоритма поведения.

Давайте сделаем небольшой апгрейд вихря. Сделаем, чтобы наш воин, отскочив от своего родителя подальше, остановился, превратившись в стража, постоял какое-то время, а потом породил новый вихрь. Представили? Делаем:

Изображение

Небольшая доработка, но результат весьма впечатляет:

Изображение

В общем, ничего сложного, но говорят, что захватывает.

В архиве прилагается сама игра и примеры тетрафотов, которые можно разобрать и попытаться победить.

Лет десять назад сделал сайт (один из первых, поэтому, не пинать!), посвященный игре.

На сайте можно скачать игру, посмотреть описание, выложить своего тетрафота, если он того стоит, скачать тетрафоты самых сильных соперников.

Сайт Вселенной Великих Тетрафотов

Буду рад получить отзывы!

19 ноября 2011

Комментарии [3]