XO-Battler (разработка мобильной игры)
2 поста
Ссылка на предыдущую часть.
Ну что ж, основа есть, поэтому можно начать придавать ей более детальный вид.
На текущем этапе было сделано следующее:
В главное меню добавлен логотип, сгенерированный нейросетью.
Добавлена иконка игры, взятая из логотипа (но она мне не очень нравится, потом надо будет переделать).
Цвет главного меню изменён на матовый золотой (отпишитесь, как вам).
На кнопку "Start" в главном меню наложил спрайт золотой рамки.
Цвет фона поля боя заменил на чёрный (как по мне, лучше всего контрастирует с красными и зелёными ячейками поля боя, но при этом не режет глаза).
Реализовал сколлящуюся колоду существ для призыва.
Теперь существа призываются не рандомно по нажатию на ячейку поля боя, а сперва необходимо выбрать нажатием призываемое существо, а затем нажать на целевую ячейку поля боя и дождаться истечения времени, отведённого на ход, либо заявить о завершении хода нажатием на кнопку "End turn".
Доделал таймер, ограничивающий время на ход каждого игрока 20-ю секундами.
Теперь игроки действуют параллельно, а не поочерёдно.
Реализовал на уровне "худо-бедно" вражеский ИИ, который умеет призывать существ из своей колоды.
Теперь у призванных существ отображается количество мощи и здоровья.
Ещё какие-то полезные мелочи.
Уже можно нормально призывать существ.
Всё ещё отсутствует механизм нанесения урона.
Неадаптированность элементов под разные размеры экрана.
Продолжение следует.
Здравствуйте! Я программист C#, пошёл в профессию, потому что с первого класса, как только у моего одноклассника появилась Sega, мечтал делать игры. Если пропустить суету, то на четвёртом курсе за полтора месяца написал на Node.Js мультиплеерную игру, в которой в процедурно генерируемом лабиринте необходимо собирать кристаллы и на скорость доставлять их на свою базу. У неё даже была своя аудитория - аж 5 человек, по совместительству моих одногруппников, которых я попросил немного потестить игру. Были некоторые взгляды на дальнейшее развитие данной игры, но, сами понимаете, долги, экзамены, и как-то незаметно забилось.
После этого с периодичностью где-то в год было 4 попытки создать свою карточную игру с уникальной механикой.
Пример наброска одной из старых игровых разработок, сделанного за 3 дня:
А это уже проба жанра ZPG: идея скрестить всё самое лучшее в "Годвилле" и "Сказке" плюс добавить интересных механик от себя:
И несмотря на то, что каждый раз мой энтузиазм утихал где-то через пару недель, я неплохо освоился с функционалом Unity, а также создал несколько полурабочих прототипов и понял некоторые ошибки в своём подходе в разработке игр. Самая главная из них - это перфекционизм.
Отучившись на бакалавриате 4 года, я выпустился с чёткой установкой соблюдать принципы SOLID и последовательный подход к написанию программ. Что я могу сказать?
Хрень это всё!
И мой профессиональный, и мой игродельный опыт орут, что в условиях нехватки времени (а в бизнесе это распространённое явление, да и дома, после работы, когда остаётся несколько жалких часов на себя, которые ты хочешь посвятить своим проектам), необходимо:
не ставить перед собой грандиозных целей типа создания убийцы HeartStone с клиент-серверной архитектурой, способной выдержать миллионы игроков одновременно, а действовать, отталкиваясь от простых, даже примитивных задач
не стремиться писать "чистый" код, соблюдающий SOLID, а писать код быстро, даже понимая, что нынешняя архитектура неповоротлива и непроизводительна; всё равно потом придётся многое менять, подстраиваясь под задачи, да и время вдохновения может пройти
И вот со всем этим багажом я решил приступить к разработке данной игры.
Боевые крестики-нолики.
Вместо крестиков и ноликов – боевые персонажи, сражающиеся с двух сторон на поле 3х3.
У них могут быть разные атаки и способности, которые они используют против стороны противника.
Персонажи, выстроившиеся в ряд из трёх, получают бонусы к характеристикам.
Потерявшие очки здоровья персонажи покидают поле боя, и на освободившееся место игрок в свою очередь может поставить своего бойца.
Побеждает игрок, уничтоживший всех бойцов противника или занявший все 9 ячеек.
Игра, конечно же, мобильная, так как это более доступный и удобный для пользователя, а также самый потенциально выгодный для данного проекта вариант.
С учётом предыдущего опыта, шаг 1: создание основы, которая будет постепенно обрастать всем остальным. Это выглядело примерно так:
Создание процедурно генерируемого поля из квадратных ячеек.
Реализация примерной фигурки для отображения существ.
Реализация примерной структуры классов для сражающихся существ.
Создание небольшого массива существ с разными картинками и характеристиками для стартовых тестов.
Реализация размещения случайно выбранного существа при клике на ячейку поля боя.
Подсветка ячейки поля боя при размещении на ней существа с соответствии с тем, какому игроку оно принадлежит.
Подстройка положения и угла обзора камеры под размеры экрана устройства для сохранения пропорций видимого на экране поля боя.
Добавление наброска меню.
Компиляция проекта на Android с целью проверить работоспособность сборки (а то мало ли).
На всё это ушло 4 дня по 2-4 часа каждый. Это ещё не очень похоже на игру, но уже есть, от чего отталкиваться.
Короткое видео с результатом:
Далее думаю двигаться в сторону реализации базовых игровых механик и улучшения отображения состояний бойцов типа шкал атаки/здоровья и, может быть, эффектов.
Пишите свои идеи, замечания, советы и предложения, так как пока что у меня отсутствует чёткое видение данной игры, да и интересно узнать, что вы о ней думаете.
Продолжение следует.