Как написать тетрис колодцем

Мне понадобились: компьютер, интернет и год времени. Да да, целый год, правда с двумя перерывами по пол года. Сразу покажу что получилось https://vk.com/well_tetris

Как написать тетрис колодцем Игры, Gamedev, ВКонтакте, Инди игра, Пикабу, Гифка, Длиннопост

Итак, я решил написать тетрис, для души и немного для повышения ЧСВ и выложить его во вконтакт, чтобы и другие могли попробовать, как оно. Но ради интереса, решил сделать его не простым, а бесконечным. Ну как бесконечным... замкнутым по горизонтали, чтобы фигуры не упирались в края игрового поля, а свободно через них проходили. Но возникла проблемка: разорванные фигуры стали ломать мне мозг и косить мои глаза.

Как написать тетрис колодцем Игры, Gamedev, ВКонтакте, Инди игра, Пикабу, Гифка, Длиннопост

Поэтому я свернул игровое поле в трубочку и добавил немного 3D, ибо бесконечно тонкая стенка цилиндра была острее чем сиськи Лары Крофт.

Как написать тетрис колодцем Игры, Gamedev, ВКонтакте, Инди игра, Пикабу, Гифка, Длиннопост

Мне хотелось, чтобы игра была максимально отзывчивой, потому что 3D это хорошо, но механика важнее. Поэтому вывод графики я написал полностью ручками, без использования готовых библиотек. Сначала получался тетрис Мёбиуса, но я себя пересилил и сделал нормальный цилиндр, возможно зря, но мы этого уже  никогда не узнаем ;).

Как написать тетрис колодцем Игры, Gamedev, ВКонтакте, Инди игра, Пикабу, Гифка, Длиннопост

Я думал что вращать фигуры просто: берёшь фигуру и вращаешь. Только вот получалось, что нижний край фигуры меняет высоту. Иногда это приводило к тому, что после поворота, фигура сразу устанавливалась, а ведь у меня была ещё целая клетка в запасе! Поэтому вместо того, чтобы вращать фигуру, я использую подготовленные кадры анимации.

Как написать тетрис колодцем Игры, Gamedev, ВКонтакте, Инди игра, Пикабу, Гифка, Длиннопост

А ещё у меня есть топ100. В него него попадают только быстрые, ловкие и сильные духом. Для этого я сделал прогрессивную шкалу начисления очков: за 1 ряд всего 100 очков, а за 4 целых 1500. Хочешь попасть в топ? Рискуй и жди "ПРЯМАЯ ЛИНИЯ!". Для тех, кто не хочет рисковать и набирает очки потихоньку, удаляя по одной линии, я приготовил сюрприз: рост скорости зависит не от количества удалённых линий, а от числа удалений. Т.е. можно можно 10 раз получить по 100 очков или 10 раз по 1500 очков, а скорость вырастет одинаково.

Как написать тетрис колодцем Игры, Gamedev, ВКонтакте, Инди игра, Пикабу, Гифка, Длиннопост

https://www.youtube.com/watch?v=GF7Q4PX-MUQ

Почему-то оказалось, что самый быстрый, ловкий и сильным духом — это я. Возможно потому, что до сих пор никому не рассказывал как растёт скорость :D Желающие побить мой рекорд, или просто решившие узнать как оно, могут сыграть во вконтакте https://vk.com/well_tetris

Как написать тетрис колодцем Игры, Gamedev, ВКонтакте, Инди игра, Пикабу, Гифка, Длиннопост

И немного технических подробностей: TypeScript, tree.js matrix, Canvas, debain, C#, .net core, postgresql, nginx, letsencrypt, runit. Если по технической части есть вопросы, могу в комментариях ответить.

Лига Разработчиков Видеоигр

6.7K поста22.1K подписчиков

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

48
Автор поста оценил этот комментарий

Причесать, портировать на Андроид — дело будет!

раскрыть ветку
10
Автор поста оценил этот комментарий

Сразу скажу, чего именно не хватает - это вертикальных линий, чтобы глазами можно было бы сразу увидеть, куда именно упадет деталька.

раскрыть ветку
10
Автор поста оценил этот комментарий

Прикольный концепт. Но есть проблемка, все время ощущается дискомфорт что не попадешь куда целишься или что не влезет. Хоть и не ошибся ни разу, но какое-то волнение всегда есть. В обычном тетрисе часто есть разметка фона в клеточку, потому легко проследить куда падает фигура и сколько она займет. Здесь это сложно. Даже не знаю что предложить для решения. И еще слегка напрягает искривленность цилиндра, для такой ширины он узковат. Быть может сделать толщину фигур меньше и уменьшить толщину обводки. Еще можно отрисовать верхнюю обводку светленьким, а нижнюю темненьким добавит объема. Правда это заморочно програмно рисовать, но это я с позиции художника уже смотрю.
Хз, мне кажется можно попробовать спрайтами все сделать. Например, красивенько отрендерить каждый кубик каждого цвета, в каждом месте. Расположить их послойно, учитывая перекрытие. И просто включать в нужное время нужные кубики. И можно было бы тогда решить разметку, вв виде полупрозрачного цилиндра с легкой разметкой.
А так очень интересно. Жму руку за упорство.

раскрыть ветку
20
DELETED
Автор поста оценил этот комментарий
Комментарий удален. Причина: данный аккаунт был удалён
раскрыть ветку
8
Автор поста оценил этот комментарий

Бомбит когда ты поставил фигуру как надо и начал передвигать колодец уже для следующей фигуры А ХЕРАК, ты передвинул фигуру которую только что поставил и теперь она стоит как говно, хоть бы звук какой-то добавил для ориентирования