В настоящем времени вопросы удаления невидимых линий кажутся странными и непонятными, современные платы позволяют строить реалистические 3D-сцены в реальном времени. Но это сегодня. А в те времена, несколько минут удаления невидимых линий даже без заливки граней казалось чудом.
Этот специализированный алгоритм работает только для кубиков и только для случая изометрии. Тем не менее, он позволял даже на AT256 достичь скорости перерисовки достаточном для игры в кубики.
Трехмерный тетрис был почти реализован в 89-90 годах, но буря перестройки похоронила этот проект. Шли годы, бурь порыв мятежный развеял детские мечты и я забросил этот проект. Потом однажды вернулся, пытался восстановить на Java, но, видимо, не судьба... Полетел винт, а с ним все тексты и новые и старые - все.
Долгими зимними новогодними вечерами, я вернулся к идее трехмерного тетриса. Как раз начал осваивать Flash и ActionScript3. Вспомнил про старые идеи. Обыскал все старые дистрибутивы, не нашел ни строчки, расстроился, конечно, но пары вечеров, проведенных с бумажкой и карандашом хватило, чтобы восстановить по памяти все алгоритмы. Через пару недель появилась реализация.
По ссылке Tetris3D можно найти последнюю версию новой инкарнации этой игрушки.
Внимание!!! Для игры на компьютере должен быть установлен Flash проирыватель версии 10 .
Правила игры:
Используя кнопки управления укладывать блоки из четырех кубиков (Кубики Сома) в стакане размером 6х6. При заполнении слоя более некоторого уровня заполненности, происходит схлопывание слоя и зачисление очков.
Можно сдвигать блоки вдоль осей координат и поворачивать их вдоль соответствующих осей. Для улучшения обзора можно так же поворачивать весь стакан вокруг вертикальной оси.
Игру можно запускать в нескольких режимах сложности, которая зависит от минимального количества заполненности слоя. Так, на самом простом уровне достаточно уложить в слой 25 кубиков, тогда слой схлопнется. На самом сложном, необходимо заполнить слой полностью. Это 36 кубиков.
Управление игрой:
|
- стрелки вправо и влево |
|
- SHIFT+стрелки вправо и влево |
|
- стрелки вверх и вниз |
|
- SHIFT+стрелки вверх и вниз |
|
- PageDown |
|
- SHIFT+PageDown |
|
- CTRL+SHIFT+PageDown |
Одним из самых больших недостатков трехмерного тетриса - большое количество операций по управлению. Необходимо задействовать полтора десятка кнопок, чтобы обеспечить все повороты, броски и движения. Очень сложное управление. В этом смысле двумерный тетрис может служить примером удобства.
Одной из идей, подкинутых одним из моих знакомых было перенести игру на устройство с сенсорным экраном и управлять игрой при помощи движений пальцев. Мысль показалась плодотворной и по прошествию некоторого времени появилась реализация на Android устройствах.
Игра называется Tessera3D. К моему разочарованию слово Tetris зарегистрировали как торговую марку и использование его запрещено, даже с приставкой 3D. Поэтому Tessera3D.
Кроме того, алгоритм был полностью переработан. Это в старые добрые времена для того чтобы скорость отображения была удовлетворительной необходимо было пользоваться всяческими ухищрениями в целых числах. Ныне графические ускорители и OpenGL ES позволяют на телефоне обрабатывать трехмерные изображения в реальном времени.
Рабочую версию игры можно скачать с Android Market