Понедельник, 02 Февраль 2009 18:58

Игра Tessera3D

Автор Александр Бушмелев
Оцените материал
(0 голосов)

t3d_icon_lНовая жизнь, в свое время нерожденного "ребенка" - трехмерного тетриса ... 

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

В настоящем времени вопросы удаления невидимых линий кажутся странными и непонятными, современные платы позволяют строить реалистические 3D-сцены в реальном времени. Но это сегодня. А в те времена, несколько минут удаления невидимых линий даже без заливки граней казалось чудом.

Этот специализированный алгоритм работает только для кубиков и только для случая изометрии. Тем не менее, он позволял даже на AT256 достичь скорости перерисовки достаточном для игры в кубики.

Трехмерный тетрис был почти реализован в 89-90 годах, но буря перестройки похоронила этот проект. Шли годы, бурь порыв мятежный развеял детские мечты и я забросил этот проект. Потом однажды вернулся, пытался восстановить на Java, но, видимо, не судьба... Полетел винт, а с ним все тексты и новые и старые - все.

Долгими зимними новогодними вечерами, я вернулся к идее трехмерного тетриса. Как раз начал осваивать Flash и ActionScript3. Вспомнил про старые идеи. Обыскал все старые дистрибутивы, не нашел ни строчки, расстроился, конечно, но пары вечеров, проведенных с бумажкой и карандашом хватило, чтобы восстановить по памяти все алгоритмы. Через пару недель появилась реализация.

По ссылке Tetris3D можно найти последнюю версию новой инкарнации этой игрушки.

Внимание!!! Для игры на компьютере должен быть установлен Flash проирыватель версии 10 .

Правила игры:

Используя кнопки управления укладывать блоки из четырех кубиков (Кубики Сома) в стакане размером 6х6. При заполнении слоя более некоторого уровня заполненности, происходит схлопывание слоя и зачисление очков.

Можно сдвигать блоки вдоль осей координат и поворачивать их вдоль соответствующих осей. Для улучшения обзора можно так же поворачивать весь стакан вокруг вертикальной оси.

Игру можно запускать в нескольких режимах сложности, которая зависит от минимального количества заполненности слоя. Так, на самом простом уровне достаточно уложить в слой 25 кубиков, тогда слой схлопнется. На самом сложном, необходимо заполнить слой полностью. Это 36 кубиков.

Управление игрой:

  •  Сдвиг блока по оси X
 - стрелки вправо и влево
  •  Поворот блока вдоль оси X
 - SHIFT+стрелки вправо и влево
  •  Сдвиг блока по оси Y
 - стрелки вверх и вниз
  •  Поворот блока вдоль оси Y
 - SHIFT+стрелки вверх и вниз
  •  Сдвиг блока по оси Z вниз
 - PageDown
  •  Поворот блока вдоль оси Z
 - SHIFT+PageDown
  •  Поворот всего стакана вдоль оси Z
 - CTRL+SHIFT+PageDown

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

Одной из идей, подкинутых одним из моих знакомых было перенести игру на устройство с сенсорным экраном и управлять игрой при помощи движений пальцев. Мысль показалась плодотворной и по прошествию некоторого времени появилась реализация на Android устройствах.

t3d_game

Игра называется Tessera3D. К моему разочарованию слово Tetris зарегистрировали как торговую марку и использование его запрещено, даже с приставкой 3D. Поэтому Tessera3D.

Кроме того, алгоритм был полностью переработан. Это в старые добрые времена для того чтобы скорость отображения была удовлетворительной необходимо было пользоваться всяческими ухищрениями в целых числах. Ныне графические ускорители и OpenGL ES позволяют на телефоне обрабатывать трехмерные изображения в реальном времени.

Рабочую версию игры можно скачать с Android Market

qrcode_tessera3d_pro

Прочитано 4387 раз Последнее изменение Суббота, 03 Август 2013 05:25
Другие материалы в этой категории: Tessera 3D Pro »
Авторизуйтесь, чтобы получить возможность оставлять комментарии