Танчики
Откопали приставку в старых коробках.
128 туров на одном дыхании.
Откопали приставку в старых коробках.
128 туров на одном дыхании.
Дорогой дневник! Нашёл коробку с Денди и блокнот. Жаль Денди не работает. Полистал блокнот. Отец работал на стадионе «Юность» - ходили на каждый матч. Команды такой уже нет. Отца тоже. О, наклейки-повторки. Подсказки для танчиков - вот не лень же было всё записывать)
Ладно, пора на похороны коллеги. Ещё никогда не ходил в свой день рождения на похороны.
Ощущения странные. Надо выпить.
Иваново, лето прошлого года
Battle City прохождение
Всем привет.
Помните прекрасную игру Battle City? Если да, то класс).
Мой знакомый программист решил сделать ремейк данной игры, но с экспортом своих созданных карт на сервер, а с него другие игроки могут импортировать его к себе и сыграть + в 3D (Запомним это, хоть и ничего удивительного.)
С творением, о котором пойдет речь, мы ознакомились. Теперь давайте вернемся к старому варианту игры и вспомним что блоки в которые стрелял танк могли разрушаться по блочно.
Игра с видом сверху, блоки спрайтовые, ничего сложного.
А что на счет 3D?
Перед созданием разрушаемых блоков я рассматривал творения других игроделов и почему-то многие выходили из положения, использовав крайне пиксельные текстуры (Естественно без швов).
Хоть выглядит неплохо, но почему бы не использовать более детализированные текстуры? На то ведь он и ремейк, не правда ли?
Способ, о котором я расскажу, позволит сделать блоки более бесшовными.
Прошу учитывать, что это делалось для простого мобильного шейдера. В сторе есть шейдеры которые могут упростить вам эту работу, но взамен поедят ресурсов :3 Куда же без этого)
Почему я отметил "более бесшовными", а дело как раз в таки этом....
Идеальной бесшовности получить у меня не удалось, но если на блок не идет слишком много внимания, то думаю самое то.
Итак. Давайте покажу, как такое было сделано.
Блок имеет 2 материала.
Первый материал - Это внешняя сторона блока (Текстура, повешенная с помощью Tri-Planar в Substance Painter).
Второй материал - Внутренняя часть блока.
------------------------------------------------------------------------------После нарезаем его на нужное нам кол-во блоков
Далее разворачиваем грани с каждой стороны, что бы получился такой пласт.
Не забудьте применить на внутреннюю часть второй материал!
Вот и все)
Если кому интересно поиграть - ссылки для Android и iOS в описании к видео. Игра бесплатная.
Привет!
То что вы видите сверху - диаграмма клиент-серверного взаимодействие в главном меню игры с момента запуска и до момента попадания обоих игроков в основное меню.
Как вы можете догадаться, речь пойдет о мультиплеере и о сетевом его части в частности.
После билда 1.0.0 (последнего опубликованного на сайте) я решил что пришло время заняться мультиплеерной составляющей. Выбор пал на локальный мультиплеер. В меня появилась функция начать вдвоем, а код был вынужден изрядно перестроиться под натиском новых требований. Показывать тут особо нечего, ну, разве что, как выглядело главное меню:
Во всем остальном внешне ничего не поменялось, за исключкнием того, что все экраны (выбор класса, меню перед боем) повторялись дважды, по разу для каждого игрока.
В самой же битве появлялись (да, впрочем и появляются) 2 танка вместо одного, первый управляется на WASD, второй же на стрелки.
К тому моментуу меня уже давненько терзали смутные сомнения по поводу того насколько впринципе актуален локальный мультиплеер (когда все сидят по домам и общаются через интернет), но когда я начал непосредственно щупать это в бою, вскрылась еще одна проблема: управление. Где брать вторую мышку для управления башней второго танка? Управление башней на клавиатуре? Джойстики?
Такие думы окончательно меня догрызли и было принато решение заняться сразу сетевым кодом, поскольку он решает обе проблемы сразу. Я примерно понимал во что я ввязываюсь, но даже мои самые писсимистичные ожидания были недооценкой того с чем я столкнулся на самом деле.
Тезисно покажу основные проблемы, чуть подробнее, как всегда, в видео. В порядке влияния на сложность:
* Нулевой опыт разработки мультиплеерных игр и лишь базовое понимание основных концептов клиент - серверного взаимодействия.
* Очень базовая поддержка сетевых функций движком игры.
* Внутренние ограничения движка, которые непосредственно влияют на сетевой код.
* Отсутсвие внятных гайдов по созданию мультиплеерных игр на движке, а те что есть не выдерживают никакой критики и годятся лишь в плане обучения самым базам.
В итоге разработка превратилась в замкнутый цикл:
* Долго заставляешь себя сесть за разработку.
* Садишься, долго вспоминаешь что и где.
* Пытаешься решить последнюю нерешенную проблему.
* Тратишь кучу времени в попытках ее решить.
* Выясняешь, что проблемы глубже и нужно решить еще пару проблем прежде чем разобраться с этой.
* Свободное время заканчивается, ты вынужден остановиться на полпути.
И так по кругу. Иногда бывало и хуже, например, тебе не просто нужно решить еще пару проблем, но и переделать много из того что было сделано до этого, так как оно просто не работает или концептуально неправильно.
Кто знаком с тем как работает система мотиваций человева знает, что для того чтобы было желание за что-то браться, человеку нужно достигать долгосрочных целей, в моем случае это было написание базового скелета сетевой игры. Если долгосрочная цель выполняется, мозг получает дозу серотонина и это подстегивает его на заниматия новыми делами. А если мозг этот серотонин не получает, желание продолжать или браться за новые начинания угасает. В моем случае это и происходило на протяжении 10 месяцев, так как ровно столько я не мог довести сетевой код до состояния, которое меня хоть сколько-бы удовлетворяло.
Так было до вчерашнего дня.
Наконец, я нахожусь в той стадии когда могу сказать да, это готово, двигаемся дальше.
Слева - сервер, справа - клиент. Как видите, действия танков точно реплицируются, и, что более важно, они точно синхронизированы по времени. Не обращайте внимание на положение башен, это действие еще не отправляется по сети.
Самый базовый скелет сетевой игры готов, теперь буду наращивать на нем мышцы. Но впереди еще очень и очень много работы.
Буду стараться держать вас в курсе, по мере возможностей.
Рекомендую проверять youtube канал, так как буду выкладывать там небольшие видео прогресса, тех. сложности и просто рассуждения, которыми не хотел бы захламлять свой профиль здесь.
Всем пока!
Их есть у нас! Красивая карта, целых три уровня и много жителей, которых надо осчастливить быстрым интернетом. Для этого придется немножко подумать, но оно того стоит: ведь тем, кто дойдет до конца, выдадим красивую награду в профиль!