Тетрис с механикой 2048
Привет пикабу, всегда хотелось стать геймдев разрабом, и вот однажды мы с другом собрались, сидя у бассейна и решили объединить две легендарных механики - тетрис и 2048 в одну. Зацените, чё получилось.
Попробовать ее можно по ссылке - https://play.google.com/store/apps/details?id=com.EpicLifeAp...
Никакой регистрации, однако таблица рекордов для всех одна. Пруф, что рекорд ваш - красная шрифт в таблице:
Прошу совета
Всем привет!
Хочу попросить многоуважаемое сообщество дать совет.
Эту игру я делаю совершенно один уже несколько лет. Я два раза переписывал ее с нуля, много раз забрасывал и опять возвращался к ней. Впадал в депрессию и выходил из нее. Я потратил несколько лет своей жизни и все равно сделал только один процент из того, что хотел сделать.
И прежде чем начать набивать игру миссиями, новыми врагами, боссами, режимами, абилками хочется услышать мнение со стороны. Я уже не понимаю - это играется норм или полный отстой? Может не надо тратить еще год, а слезть с дохлой лошади и начать делать другую игру?
Я не могу показать игру друзьям, потому что они пытаются меня поддерживать, а значит необъективны. Мне сейчас нужна не дружеская поддержка, а непредвзятый и честный отзыв, пусть даже отрицательный. Возможно он сэкономит мне год-другой жизни.
Если у вас есть 5-10 минут времени и андроид под рукой - буду очень признателен за ваше мнение.
PS. В игре есть реклама, но это rewardable ads, смотреть ее совсем не обязательно. Прошу не считать это за попытку нажиться на пикабушниках. Скорее хочется понять - приемлемо ли это для игроков или нет.
Страница игры в Google Play: https://play.google.com/store/apps/details?id=com.cryofortre...
Space Turret Runner #1
Всем привет!
Наверняка, многие из вас видели рекламу про чувачков, которые бегут по платформе, подбирают x20 и их становится в 20 раз больше?
Вот и нам надоела эта реклама. И решили сделать свою похожую игру! Благо механика и геймплей простые. Моделей платформ, зданий и всего остального у нас было в избытке, нужен был только код!
Выбрали тему - космический шутер и понеслось! Добавили пули и кораблики с алгоритмом поведения Boids.
Самое начало разработки
Написали специальный шейдер для эффекта появления новых платформ
Развили идею с кораблями.
Сделали основной параметр игры - количество экипажа. И максимум 20 кораблей во флоте игрока. Причем игроку доступны разные типы кораблей. Каждый корабль на своем борту содержит определенное количество экипажа. Есть корабли с 1 пилотом, есть корабли с 2 пилотами и т.д. Планируем добавить разные классы кораблей, от истребителей до крейсеров!
Если игрок, например, набирает 40 человек экипажа, то в его флоте будет 10 кораблей с 1 пилотом, 5 кораблей с 2 пилотами и 5 кораблей с 4 пилотами (т.к. ограничение на 20 кораблей во флоте). Ограничение на корабли сделано специально, т.к. у нас мобильная игра.
Примеры кораблей в игре
Пришлось заморочиться, чтобы написать алгоритм подборки кораблей во флот таким образом, чтобы общий экипаж соответствовал требуемому количеству без превышения лимита кораблей.
Выше пример работы алгоритма. x1, x2, x4 - это кол-во кораблей с 1, 2, 4 пилотами соответственно.
В игру также добавили таблицу рекордов, сделана на основе Unity Leaderboards. Очень легко интегрировать и настраивать, рекомендую 👍
Unity Leaderboards. Монстрики выбираются рандомно к никнейму
Чтобы было интереснее, в игру добавили магазин, где игрок будет открывать новые типы кораблей, зданий, врагов и турелей. Валюта магазина - это очки, которые игрок получает в игре за уничтожение врагов. Новые корабли помогут увеличить общий лимит экипажа, усилить свой флот и пройти еще дальше.
Магазин в игре, красивые анимации с выстрелами включены
Для любителей читов и нечестных игр, мы специально закодировали значения очков, чтобы их нельзя было легко накрутить через редактор памяти 😉
В этом очень помогли ролики от Emerald Powder, спасибо ему от души, дай бог здоровья 🍺 Ссылка на ролик:
Оптимизация игры - это настоящий творческий полет фантазии!
Например, в игре есть проверка, что если вражеский корабль пролетел через камеру, то он удаляется. Оптимизация заключается в том, чтобы проверять только один корабль за отрисовку одного кадра, а не все корабли каждый кадр.
Оптимизация в алгоритме Boids. В нем для расчета параметров каждому кораблю требуется определить кто летит рядом с ним. Наша оптимизация в том, чтобы проверять соседей только у одного корабля за 1 кадр. В следующий кадр алгоритм проверит соседей у следующего корабля и т.д.
Ну и много-много других оптимизаций и улучшений... Это сложно, но очень увлекательно реализовывать.
Несколько скриншотов из игры. Модели корабликов тут уже старые :)))
Вчера мы релизнули игру в Google Play. В ней нет рекламы (пока что) и покупок, полностью бесплатна. Если кто-то захочет посоревноваться - милости просим! Также будем рады новым идеям и предложениям 🙂
Сразу скажу, что рекламу мы добавим позже. За просмотр рекламы можно будет получить двойные очки для магазина. И всё!
#комплиментдня за то, что дочитал до конца.
Когда я читаю твои посты - я получаю истинное удовольствие и расслабление!😊🌟
Почему главная механика рисования в моей игре сделана на костыле и почему это оказалось правильным решением
для лл: Рассказываю простым языком, как я адаптировал инструмент управляющий перемещением NPC по игровому миру, что бы не допустить рисования внутри стен
Начну издалека. В игровой индустрии, одним из способов дать возможность не игровым персонажам "правильно" перемещаться по игровому миру, является построение специальной навигационной сетки. Из себя, она буквально представляет сетку в зоне которой они могут двигаться и по которой рассчитывают свой маршрут от точки А, к точке Б.
Причём, при расчёте маршрута, искусственный интеллект NPC, будет искать не самый короткий, с точки зрения расстояния, а самый "Дешёвый" с точки зрения затраты времени на прохождение пути. Объясню, что это значит. На сетке можно сделать зоны помеченные как "трудные" для перемещения, как пример, скорость движения в такой зоне будет снижена. То есть на карте может быть река и мост через эту реку. Так как река будет помечена как "трудный путь", а мост как "обычный", алгоритм просчёта пути оценит, что будет быстрее. Дойти до моста и перейти реку или пуститься вплавь, если мост далеко. Однако, если на пути нет таких зон, "дешёвый" и самый короткий обычно совпадают, что я и использовал. Выглядит навигационная сетка так:
Так причём тут рисование и нахождение пути для не игровых персонажей?
А дело в том, что линии которые рисует игрок, являются физическими объектами, которые реагируют на столкновения. И может случиться крайне не приятный момент, если такую линию нарисовать внутри стены. В самом лучшем случае, такую линию просто вытолкнет, а в худшем она начнёт дёргаться по всей локации, пытаясь высвободиться.
Самый простой способ, не допустить такое поведение, запретить рисовать внутри других физических объектов, прерывая или не давая начать рисовать.
Но тут есть две проблемы:
1) Так как рисование линий происходит путём добавления новых точек, а получаем мы такие точки не мгновенно, а если упрощённо, с периодичностью обновления экрана. То, когда мы получим новую позицию на экране, она может указывать на зону, где можно рисовать, но фактически, между предыдущей точкой и новой может находиться стена. А как мы оговорились ранее, внутри стен рисовать мы не хотим.
2) Игроку нужно нарисовать длинную сплошную линию, но он случайно заходит в запретную зону и рисование сразу прекращается, линия обрывается и её приходиться рисовать по новой. Как итог, игрок после пары попыток сдаётся и удаляет игру.
Понимая проблему, пришло и решение как обеспечить рисование правильной и непрерывной линии. Мы должны проверить, есть ли между предыдущей и новой точкой препятствие. Если такое есть, нам нужно выяснить, существует ли обходной путь.
Вот тут то и пригодился уже готовый, предназначенный для немного иных целей, но имеющий такой нужный нам функционал, механизм поиска пути по навигационной сетке.
Теперь нам осталось просто обратиться к алгоритму поиска пути с вопросом, есть ли между этими двумя точками доступный путь. Если он есть, добавляем точки полученного пути к нашей линии, если нет, находим точки где линия бы оборвалась. Причём, даже если наша новая точка находиться в недоступном для рисования месте, алгоритм всё ровно будет пытаться найти ближайшую точку в зоне, где рисование доступно и наша линия не прервётся. Выглядит это так:
Поиск обходного пути.
Обходной путь не найден.
То есть фактически, я даю команду алгоритму работающему с навигационной сеткой: Дай мне все точки по которым "Агент" прошёл бы этот путь, и если такой путь есть, просто добавляю полученные точки к рисуемой линии.
Вот так, всё оказалось очень просто!
Поиграть в игру, в которой реализована эта механика, можно тут:
Скачать: Google Play
p.s. Суть игры рисовать линии, что бы решать головоломки.
Спасибо, что прочитали!
Я джва года пишу эту игру!
Итак, здравствуйте, пользователи Пикабу! Меня зовут Андрей, я ученик 11 класса и вот уже 2,5 года я пишу свою игру. В этой статье я бы хотел поделиться с вами своей историей: от идеи до релиза.
Да, это я:)
НАЧАЛО ПУТИ
Итак, начнем! Долгое время мы с друзьями пытались снимать мини-сериалы на ютубе. Как вы можете догадаться, ничего успешного из этого не вышло. И вот в один день мне пришла мысль: "К черту это все, все равно наши видео только знакомые смотрят, хочу сделать игру!" То было лето 2021 года, я переходил в 9 класс. Друзья идею поддержали, и я тут же начал изучать движок Unity и язык C#. Давным-давно мне уже приходилось с ними сталкиваться, но дальше колобка, прыгающего по стыренным из интернета платформам, дело не дошло. В принципе, первое, что я сделал - было повторение того колобка, чтобы узнать базовые механики и интерфейс Unity.
Это, определенно, шедевр!
АРКАДЫ, РЫЦАРЬ, 2 СКЕЛЕТА
Спустя пару недель я решил, что экспериментального опыта мне достаточно(разумеется, я ошибался) и пора сделать что-то более серьезное, но все же простую аркаду. Это должен был быть платформер про рыцаря и темный замок со скелетами и призраками(в плане сеттинга мне сильно подсказала игра "Rogue Legacy"). Казалось бы, обычная детская игрушка, но в моей задумке было написание 5 сложнейших уровней, в которых поражение приводило бы к перепрохождению уровня целиком. В конце нас бы ждал босс - лич!
Рыцарь, выполненный в стиле голова = тело
К проекту я отнесся серьезно. Были созданы концепты, сценарий, план. С появлением спрайта рыцаря, я начал его анимировать. Большую часть кода брал из своих наработок с колобком. И вот тут начались первые проблемы: команда! Рисовать я не умею, но у меня есть друзья, которые занимаются рисованием и в будущем планируют становиться дизайнерами. К таким, в том числе, относится и моя сестра. В начале процесс рисования платформ, ловушек и концептов шел более менее оперативно, но чем дальше - тем медленнее. Однажды, я дал сестре задание нарисовать новые концепты рыцаря в более реалистичном и мрачном стиле.
Выбранный в итоге концепт
Задача была выполнена аж спустя неделю, но ничего. После выбора концепта я сразу же попросил перенести его в спрайт. Прогресса в этом плане так и не было, но он мне и не нужен был, так как случилось неожиданное озарение.
ИДЕЯ ИГРЫ
Я всегда был фанатом настольных игр. Одной из них была "Особняки безумия" по мотивам рассказов Г. Ф. Лавкрафта. Это интерактивная игра, в которой мы играем за сыщиков, которые должны разгадать тайну мистических явлений того или иного места. Создавать поле и двигать прогресс нам помогает приложение, которое говорит, какие части поля нужно добавить, каких монстров нужно выставить, а также контролирует игровые события, мешающие или помогающие прохождению.
Игра "Особняки безумия"
Так вот однажды отец мне сказал: "А почему бы не сделать такую же компьютерную игру? Просто взять и перенести все механики на компьютер, но со своим сеттингом и историей. Пусть сыщики по заброшкам ходят и исследуют их". На что я ответил: "Ага, скажи еще, что это блогеры". И неожиданно для меня услышал: "Да, пусть это блогеры будут".
Эта идея озарила меня. Я тут же ринулся накидывать идеи, рассказал все команде со словами: "Нафиг рыцаря, делаем игру про блогеров, которые по заброшкам ходят". Как ни странно, но она поддержала эту мысль, т.к. эта идея звучала более оригинально, нежели просто рыцарь и скелеты.
ПРИКЛЮЧЕНИЯ НАЧИНАЮТСЯ
Итак, этот момент можно считать началом истории той игры, о которой говориться в названии. Что мы имели в начале пути: 1 программист и сценарист в одном лице(то есть я), 2 художника, 1 музыкант и еще 2 человека, которые очень хотели помочь в разработке, но не знали как. Честно скажу, что оптимистичный настрой был только у меня, хоть я и всеми силами пытался убедить команду в перспективе проекта. Я начал писать сценарий как истории, так и геймплея.
ПЕРВЫЙ КОНЦЕПТ
Было решено, что игра будет в 2D с видом сверху, где главному герою предстоит искать предметы, чтобы выбраться из паранормального места или победить зло. Также в игре была боевка, которая проходила в формате мини-игр типа армрестлинга или покера в "Ведьмаке" или, например, раннер, который по сути являлся той самой игрой, каких пруд пруди в Play Market. История должна была проходить в старинной усадьбе царской России, в которой кто-то проклял ее владельцев и слуг, из-за чего все стали призраками или же иными существами и предметами.
ГЛАВНЫЙ ГЕРОЙ
Главный герой - блогер, который является пародией на самого известного белорусского блогера, чье имя вы уже можете угадать. Один из художников, отлынивая от уроков, нарисовал первое изображение персонажа.
Первое изображение героя
Было решено назвать его Володей Ватманом. В дальнейшем моя сестра переработала и немного переосмыслила образ, внеся в него много важных отличительных атрибутов, которые до сих пор являются неотъемлемыми компонентами образа, а именно рыжие кудрявые волосы, красная шапка, которую он не снимает и красно-белые кроссовки.
Итоговый вид Володи Ватмана
ПРОЧИЕ ПЕРСОНАЖИ
В итоговой версии я выделил еще несколько важных персонажей, которые сильнее влияли на историю и геймплей. Вкратце расскажу о нескольких из них.
Константин Краснов - сын графа и главный антагонист игры. Именно он наложил на усадьбу проклятье, став при этом бессмертным и вечно молодым человеком.
Баров - повар усадьбы. После проклятья он, в отличие от большинства, стал человеком-свиньей. Изначально его звали Тельцов и был он человеком-быком, но о причине изменений чуть позже.
Евдокия - горничная. По задумке это должен был быть первый призрак, которого встречает игрок. Именно она подсказывала бы герою и помогла попасть на 2 этаж дома.
Константин Краснов
ПЕРВЫЙ КРУГ ПРОИЗВОДСТВЕННОГО АДА
Лично мне не было тяжело с подготовкой к ОГЭ, но я не мог сказать то же самое о своей команде. Конечно, времени было мало, что приводило к низкой производительности. Игра полностью в 2D, а рисунки выходят раз в 2 недели, и то в лучшем случае. Прошел год, программной части было написано много, а вот спрайты практически полностью отсутствовали. Единственной локацией, которая была проработана полностью был маленький винный погреб.
Винный погреб
Эта проблема привела меня к принятию решения, на которое я долго не решался. Я решил полностью перейти на 3D. Звучит забавно: не хватает спрайтов, зато модели будут? Как оказалось - да, будут. В этом мне помогли low poly модели от Synty Studios. Так вся игра стала 3D, за исключением интерфейса. Даже головоломки были адаптированы и переработаны под трехмерное измерение. Кстати, одной из проблем стала нехватка нужных моделей. Так, например, ни в одном наборе не было модели минотавра, но была модель свиньи-мясника, из-за чего Тельцов преобразился в Барова!
Скриншот из альфа версии игры
ВТОРОЙ КРУГ ПРОИЗВОДСТВЕННОГО АДА
Кто бы мог подумать, но писать каждую мини-игру с проработкой отдельных механик - не тривиальная задача. Многие интересные идеи просто "посыпались" из-за сложности реализации и моего желания выпустить игру как можно скорее. Так была убрана система здоровья и стресса и ивенты, приводящие к изменению этих характеристик, система боя, вариативность действий в разных ситуациях, мини-игры стали частью головоломок... В итоге игра стала простым квестом, о чем я не сильно пожалел, так как изначальной идеей и был квест, но с дополнительными фишками.
ТРЕТИЙ КРУГ ПРОИЗВОДСТВЕННОГО АДА
Став "идеологом" игры, я взял на себя руководительские обязанности. И что я скажу: это невероятно тяжело. Те 2 человека, которые хотели помочь, практически в самом начале ушли из проекта, хоть и помогли в сочинении нескольких загадок. Один художник разработал первые концепты, создал план дома, из-за чего достоин места в титрах, но по причине тяжелой учебы, решил прекратить свое участие. Потеря художника - это ужасно, особенно когда работа над кодом идет значительно быстрее, чем над иконками и портретами. Так нас осталось трое: я, моя сестра художник и друг музыкант. Вообще мы думали, что написать музыку в игру будет практически нереально, однако с этой задачей нам удалось справиться, сохранив стилистику игры в саундтреке.
Наша команда в стилистике игры
Тем не менее, руководить 2-мя людьми - тоже непростая задача. У каждого своя занятость, разный уровень мотивации, так что новые портреты, иконки и интерфейсы появлялись нерегулярно.
ЧЕТВЕРТЫЙ КРУГ ПРОИЗВОДСТВЕННОГО АДА
БАГИ! Чертовы баги! Их было настолько много, что по неопытности приходилось переписывать целые механики. Особенно сильно я мучался с инвентарем. Вначале он был под кнопкой инвентаря, потом оказался внизу экрана. Вначале было ограниченное количество предметов на сетке, которая видна полностью и без сортировки, потом пришлось сделать иконки крупнее, добавить странички и написать сортировку. Но самое главное: ячейки стали появляться динамически, так что теперь количество предметов в инвентаре может быть любое.
Было
Стало
ПЯТЫЙ КРУГ ПРОИЗВОДСТВЕННОГО АДА
Назову это чем-то вроде "разочарования в игроках". Мне с детства нравились квесты, мне всегда казалось, что чем сложнее и запутаннее квест - тем лучше. Однако, дав сторонним людям поиграть в игру, оказалось, что пройти ее полностью удалось только 1 человеку - такому же ценителю квестов, как и я. Остальные, зачастую, даже в дом пробраться не смогли. Это привело к тому, что мне пришлось изменять некоторые элементы геймдизайна: менять расположение предметов, подсвечивать слабо заметные предметы, добавлять наводящие символы. Самым масштабным решением было добавление заметок и описания предметов в отдельном меню, где игрок может всегда сориентироваться, какие цели у него выполнены, а какие нуждаются в размышлениях. Как ни странно, это помогло. Люди стали без проблем заходить в дом и даже проходить игру до конца.
Меню заметок
ШЕСТОЙ КРУГ ПРОИЗВОДСТВЕННОГО АДА
Возвращаюсь к теме багов, но не простых. Когда уже все было готово к релизу, я передал игру тестировщикам, которые издевались над игрой как могли. Они закликивали кнопки в неподходящий момент, бились во все углы и стены, из-за чего проваливались за текстуры. Один раз даже удалось пройти сквозь стену в запертую комнату, недоступную в альфа версии, но имеющую заготовки, тем самым проспойлерив финальную часть игры. Кучу раз я собирал проект в надежде, что это последний раз, но тестировщики умудрялись найти новые дыры.
Добро пожаловать в бездну!
СЕДЬМОЙ КРУГ ПРОИЗВОДСТВЕННОГО АДА
Настало время публикации. А куда выкладывать будем? Конечно, изначально все ориентировались на Play Market, но, как известно, сейчас доступ к аккаунту разработчика недоступен в России. Первой альтернативой стали Яндекс игры. Однако это решение было отброшено по нескольким причинам:
Всем думаю известно, что творится на этой платформе и какая у нее аудитория. Через неделю игра уже утонет в каком-то барахле.
Проблема со сборкой WebGL версии в Unity(игра появлялась, но не загружалась).
Решение пало на новую платформу от МТС - AppBazar, которая еще находится в бета-версии. Она публикует приложения под андроид, так что нужна была обычная apk сборка. Единственное что, проект в бета-версии, из-за чего аудитория крайне низкая, и о нашей игре могут узнать разве что из сторонних источников. Однако проект приложения крайне перспективный.
Вначале хотели прикрутить донаты в виде добровольных пожертвований разработчикам, однако плагин в нашей версии Unity отказывался работать, так что эту идею мы отложили. В общем, выбор платформы и настройка игры под нее тоже требовали определенных заморочек. Когда выйдет полная версия - планируем немного переработать управление и интерфейс для ПК и выложить в VK Play и/или Steam.
РЕЗУЛЬТАТ РАБОТЫ
Вот несколько скриншотов из альфа-версии игры:
Статуя у входа в усадьбу
Диалоговое окно
Диалог с персонажем
Повар Баров
Картина
ИТОГИ И ЛИЧНЫЕ ВЫВОДЫ
Итак, выпущена альфа-версия игры и есть заготовки на полную. Я открыл для себя новые фишки в программировании, получил опыт руководить командой, написал интересный сценарий. Конечно, все это было получено потом и кровью, кучей ошибок и провалов, но что нас не убивает - то делает сильней. Сейчас я начал читать литературу по программированию и геймдизайну, в будущем надеюсь связать жизнь именно с разработкой видеоигр. Создание новых интерактивных историй меня сильно вдохновляет, хоть их разработка и включает в себя просто безумные процессы с кучей трудностей, которые придется преодолеть всей команде.
Всех с наступившим Новым годом! Мне предстоит сдать ЕГЭ и поступить в вуз, но я надеюсь, что завершу наш проект уже в этом году. Желаю всем крепкого здоровья, счастья, успехов в жизни и чтобы интернет во время каток был стабильным;)
Скачать альфа-версию игры можно по ссылке: https://links.appbazar.am/ReoH39SbrXXCNFMm6
P. S. Игра доступна для пользователей Android. При установке может появиться оповещение от Google Play.
C наступающим Новым годом!
[v.2.0.4] Обновление Hack.Hub
🎄 Т0ВАРNЩN! Новогодние часики-то тикают, а это значит, что пора закупаться мандаринами, точить ножи для виртуозной резки оливье, охлаждать ящик (не)детского шампанского на балконе и попробовать свежее обновление системы Hack.Hub.
Какие же изменения в версии 2.0.4:
Добавил белорусский язык. Даёшь больше языков славянской группы! 🤝
Доработал белую обводку окон. Теперь окна приложений корректно подсвечиваются при нажатии на шапку окна.
Переделал окна ошибок, добавил infoBox с полезными и вредными советами.
Исправил критическую ошибку, вызывающую сбой игры во время массовых покупок улучшений за C.0.I.N.
Попробуйте операционную систему Hack.Hub, упрощающую вашу повседневную жизнь кибер-преступника, прямо сейчас.