Всем привет :) Так как я последнее время занимался редизайном биомов и эффектов карты (Токсичные облака, Шторм, Замедление дороги), то пришлось обновлять и трейлер. Вот вам вам на оценку. Ну и для сравнения предыдщий:
Сейчас занимаюсь глобальным сюжетом и левелдизайном, чтобы на карте появилось что-то кроме дорог и пустого пространства. В демку можно поиграть на стиме.
Очень жду вашего фидбека. Что понравилось, что нет. Чего не хватает
Превращаем прототип в полноценный уровень! 🧟♂🏗 В пятой части девлога по созданию зомби-шутера на Unity 6 мы займёмся «мясом» игры и технической полировкой.
Вы узнаете, как выжать максимум из движка и наполнить сцену интерактивными объектами. Также в этом ролике мы добавили систему улиц, нового взрывающегося зомби и новое оружие для нашего охотника — автомат. Мы проделали большую работу над ошибками и улучшили визуальную составляющую.
В этом видео вы узнаете:
✅ Левел-дизайн: Система улиц, установка новых моделей домов.
✅ Новый враг: Взрывающийся зомби и его поведение.
✅ Новое оружие: Автомат для охотника — настройка стрельбы и урона.
На YouTube я делаю подробные видео-разборы каждой темы, так что если тебе удобнее воспринимать информацию визуально — обязательно подписывайся - youtube.com/@iv_game_channel . Буду очень рад вашим комментариям и лайкам.
Здравствуйте! Пытаюсь перенести «Атлас истории Земли» в игровой обучающий формат.
Идея такая: история Земли разбита на серию небольших мини-игр — от формирования Солнечной системы и рождения Земли до современности.
Сейчас готов первый игровой эпизод — столкновение Земли с Тейей, связанное с происхождением Луны. Уже вне этого билда работаю над следующим этапом — газопылевым диском и рождением планетной системы.
Пока это ранняя версия, поэтому буду рад любым отзывам. Если формат окажется интересным, продолжу разработку.
Скачать можно бесплатно с Google Drive. На Яндекс Диск EXE-файл нормально загрузить не получилось.
(игра полностью локализована на 30 языков, но на видео на всех языках времени уже не хватает)
Ранний доступ уже совсем близко - Leonardo’s Island выходит 30 сентября!
Перед этим хотелось выпустить еще одно важное обновление демки, чтобы вы могли попробовать некоторые системы, которые войдут и в версию для раннего доступа.
В новом обновлении демо:
Онлайн-мультиплеер
Общий чат
Если хотите протестировать мультиплеер, зовите друга, запускайте демку вместе и попробуйте зайти в битву или регату примерно в одно и то же время. :)
Игра все еще в активной разработке, и я постоянно работаю над ее сетевой инфраструктурой. В ранний доступ игра выйдет с теми возможностями, которые доступны сейчас. Надеюсь, со временем получится улучшить доступность игры в разных регионах, в том числе добавить выделенные серверы ближе к игрокам там, где это нужно.
Три способа играть
И в демке, и в версии для раннего доступа доступны три варианта игры:
Полностью оффлайн: подключение к интернету не нужно. Можно участвовать в битвах и регатах против ботов на кораблях, которые уже есть в игре.
Одиночная игра с подключением к интернету: вы по-прежнему играете против ботов, но они могут использовать и корабли, созданные другими игроками. Так что даже в одиночной игре разнообразия будет больше.
Онлайн-PvP: битвы и регаты против других живых игроков.
Небольшая просьба про чат
В демке появился общий чат.
Хочу попросить всех только об одном: пожалуйста, относитесь друг к другу по-доброму и с уважением. Я делаю игру один. Инструменты модерации и система банов у меня есть, и, конечно, я постараюсь следить за порядком в чате. Но буду очень благодарен, если вы мне в этом поможете) (наииивный, уже вижу, как там хренов напихают на весь чат)
Не знаю, просто, зачем мы играем в игры про парусники? Потому что в морской свободе есть что-то особенное: ветер наполняет паруса, а твой корабль летит по волнам.
Что дальше?
Ранний доступ - это только начало.
В планах:
Один из первых приоритетов: карта и тактический интерфейс.
Хочу сделать карту гораздо полезнее: удобнее менять ее размер и масштаб, добавить больше информации, возможность указывать другим игрокам позиции или направления и другие инструменты для совместных тактических действий.
После этого одна из важных механик, которую хочу добавить: урон от столкновений. Можно будет таранить другие корабли. :)
Гораздо больше возможностей для постройки кораблей
Еще одно большое обновление, к которому я иду, - расширение системы строительства кораблей. Хочется дать вам гораздо больше свободы при создании своих судов:
Несколько палуб
Парусное вооружение в несколько ярусов
Больше свободы в выборе формы корпуса
Больше вариантов постройки
Гораздо больше разнообразия кораблей
Больше возможностей сделать судно по-настоящему своим
благодаря этой картинке ставлю "контент нейросетей")
Эта картинка здесь просто для того, чтобы показать, какие корабли и атмосфера меня вдохновляют. И да, я сделал ее сам, экспериментируя с современными ИИ-генераторами изображений))
Это одно из направлений развития Leonardo’s Island, которое меня особенно вдохновляет. Черная жемчужина, Летучий Голландец, Месть королевы Анны, ну, вы понимаете)
Ваша обратная связь очень помогает
И напоследок: если хотите поддержать разработку игры, одна из лучших вещей, которыми вы можете помочь: просто поделиться своими впечатлениями.
Что-то понравилось - расскажите. Что-то кажется странным - расскажите. Что-то не работает - вот об этом точно расскажите. :)
Каждый скриншот, предложение, сообщение об ошибке и идея помогают понять, что нужно улучшить.
И отдельно хочу поблагодарить opk_is_simple - СПАСИБО большое!!! Его письма, скриншоты, наблюдения и размышления уже помогли мне улучшить многое в игре.
И спасибо всем, кто играл в демку, добавил игру в список желаемого, прислал обратную связь или просто следил за разработкой Leonardo’s Island.
Все знают, что делать MMORPG в одиночку — верный способ сойти с ума, и прослыть дибилом. Это честный девлог о том, как мой сервер чуть не захлебнулся от JSON, почему толпа на спавне сломала сетку мира и как ужать расчеты в 17 байт на игрока.
Проблема №1: Клиент — это враг
В обычной игре клиенту можно доверить базовые вещи: например, расчет анимации или координаты. В браузере доверия нет вообще. Ноль. Любой игрок может открыть DevTools (F12), написать в консоли player.speed = 99999 или отправить поддельный пакет «я убил босса». Поэтому сервер спроектирован по принципу Zero-Trust (нулевое доверие): Клиент не знает своих координат. Он отправляет только намерение: «Я зажал клавишу W, хочу бежать вперед». Сервер сам считает скорость, проверяет геодату рельефа, смотрит, нет ли перед носом стены, делает шаг и подтверждает точку. Урон, заточка, выпадение дропа, радиус каста клиент вообще не имеет к этому доступа. И всё это сервер должен рассчитывать 10 раз в секунду для каждого моба и игрока.
Проблема №2: Смерть от мусора и 42 мегабайта в секунду
Первый сетевой протокол ИИ написал на старом добром JSON. Сервер слал клиенту строчки с ID, координатами X/Y и жизнями. Красиво и удобно. Ровно до первого стресс-теста на 2 000 игроков и 1 500 мобов.Когда каждый видит вокруг хотя бы 30–40 соседей, сервер генерирует под 50 000 обновлений в секунду.И тут начался кошмар:1. Трафик: 42.5 МБ в секунду! Нужен гигабитный канал ради сотни тестеров.2. Мусор в памяти: Создание сотен тысяч временных JSON-строк мгновенно забивало оперативку. Сборщик мусора Node.js врубал экстренную очистку (Stop-the-World).3. Весь мир замирал на 200–300 мс каждые пару секунд. Мобы телепортировались, удары не проходили.Спасение: диета до 17 байтМы выбросили JSON из симуляции навсегда. Вместо текста упаковали всю информацию об игроке или мобе в 17 сырых бинарных байт:— 2 байта на ID;— по 2 байта на координаты X, Y, Z (квантование до сантиметра);— 1 байт на угол поворота;— 2 байта на процент жизней;— 2 байта на маску состояний (бежит, атакует, кастует, мертв).Итог: сетевой трафик рухнул с 42.5 МБ/с до 2.2 МБ/с при "5 000" онлайна. Падение в 19 раз! Сервер вздохнул свободно, а мир перестал заикаться.
Проблема №3: Проклятие Городской Площади
Чтобы сервер не проверял расстояние между каждым игроком и каждым мобом, мир нарезается на сетку — Spatial Grid с клетками по 108 метров. Ты опрашиваешь только свою клетку и 8 соседних. В поле это работает идеально.А потом зашли живые игроки. Они толпой пришли на центральную площадь: торговать, орать в чат и собирать группы.В одну несчастную клетку набилось 400 человек. И вся оптимизация мгновенно выродилась обратно в жуткие тормоза: сервер снова начал считать расстояние каждого ко всем.Как решили:Написали адаптивное дробление. Как только в клетке собирается больше 100 сущностей, она прямо на лету делится на 16 мелких зон по 27 метров. Игроки в толпе получают обновления только о тех, кто рядом, а дальние персонажи обновляются реже. Сервер даже не заметил нагрузки.
Проблема №4: «Проклятие одной монетки»
Еще одна ошибка новичка — писать данные в базу при каждом чихе игрока. Моб умер -> упала шестеренка -> игрок подобрал -> пишем в базу. Когда тысячи игроков месят мобов, диск захлебывается за секунды. Игра виснет.Решение: игра живет только в оперативной памяти.База данных вообще не знает, что вы бегаете по острову. Сервер просто ставит флаг «персонаж изменен». Раз в 15 секунд фоновый процесс пачкой сбрасывает всех изменившихся игроков в базу за один быстрый запрос. Никаких лагов и никаких откатов инвентаря при рестарте.
Миллиард токенов и 320 часов марафона: сколько стоит разработка с ИИ
Пишу этот проект один вместе с Gemini 3.8 Flash )) Когда люди слышат «делает игру с нейросетью», они представляют кнопку «сделай шедевр». В реальности это был 29-дневный марафон по 11–12 часов в день. Сложнейшие сессии отладки длились по 40 шагов, где на каждом шаге в модель скармливался контекст по 150 000 – 180 000 токенов: монолит сервера на 5 300 строк, таблицы боевой математики, геодата и сырые дампы сетевых пакетов.
442 миллиона токенов только на серверную часть
суммарно весь проект (Three.js клиент и сервер) сожрал 1.265 МИЛЛИАРДА токенов!
Музыку для игры я писал (ну и пишу) сам в FL Studio.
Так... про что же написать...
В целом, мой основной способ создания музыки - делать так, как чувствую! Я самоучка с 2019.
Но, тогда разберу создание на примере треков из игры!
1.Тема меню. Решил сделать "тянучую" мелодию, используя Slap Bass (не помню какой плагин, но какой-то встроенный). Дополнил барабанами из FPC кита. Получилось что-то типо:
Далее, переиспользуем этот мотив чисто ТобиФоксовским методом - где надо, слегка ремиксуем его, меняем инструменты, темп и т.д.. Например, я использовал его для первой локации - Кухни.
Но для второй лок. (Опасные Кухни) уже написал совершенно новый электронный трек (получился какой-то клубняк хах).
Для третьей лок. (Склады).
Но для одной из будущих локаций (Качалка Мутантов) получился даже слегка вдохновляющий и теплый трек вообще с отдельным мотивом (который позже будет использоваться в теме Босса этой локации!)
Привет, Пикабу! Мы - два художника, которые в какой-то момент остались без работы и решили: раз уж всё равно приходится начинать что-то заново, почему бы не попробовать сделать собственную игру.
Так появился Dark Coffee - уютная хоррор-визуальная новелла о ведьме, маленькой кофейне и странном городе Мурсвинч, где за чашкой кофе люди иногда рассказывают тайны и говорят о вещах, которые лучше было бы не слышать.
Последние полгода мы вдвоём рисуем, собираем и постепенно оживляем этот город. А сегодня наконец можем нормально показать проект: у Dark Coffee появился первый трейлер и страница в Steam.
Добро пожаловать в Мурсвинч
Мурсвинч - маленький город, затерянный где-то среди тумана.
Здесь живут довольно странные люди. А иногда - не совсем люди.
Главная героиня, Каррозия, приезжает сюда и становится хозяйкой небольшой кофейни.
К ней заходят местные жители: кто-то просто хочет выпить кофе, кто-то поговорить, кому-то действительно нужна помощь.
А некоторые посетители явно пришли не только ради напитка.
Стоит следить за тем что происходит за окном, иногда что-то скрывается в тумане.
Но город для нас начался не с кофейни
Когда мы только начинали придумывать Dark Coffee, довольно быстро поняли одну вещь: если Мурсвинч должен ощущаться настоящим городом, его жители не могут существовать исключительно для обслуживания сюжета главной героини.
Поэтому мы начали придумывать не квестодателей, а «оживлять» местных жителей города.
Они знают друг друга. Кто-то дружит. Кто-то терпеть друг друга не может. Кто-то влюблён и старательно делает вид, что это не так.
А у некоторых отношения гораздо сложнее, чем кажется при первой встрече.
Мадам - первая, кто понимает, куда приехала Каррозия.
Все зовут ее Мадам или Эта женщина или вообще не зовут.
С виду просто пожилая женщина, которая приходит в кофейню познакомиться. Но именно она начинает осторожно предупреждать Каррозию о городе и его жителях.
При этом у неё самой есть прошлое, о котором она говорит крайне неохотно.
Говард - всегда там, где сплетни
Говард оказался одним из тех персонажей, который на бумаге занимал несколько строчек, а потом начал постепенно отбирать себе всё больше экранного времени.
Он как-то сам собой ворвался в сюжет и начал наводить кипиш, суету и очарование. Выходя их дома он первым делом надевает улыбку, а уж потом очки. Он шутит, обольщает, надоедает, но все равно остается желанным гостем.
(Если вам вдруг покажется, что автор немного влюблён в этого персонажа, — вам не кажется.)
Я могу ещё очень много про него написать, но тогда вам станет не так интересно играть, поэтому на этом остановлюсь.
А вот и Говард, правда он очаровашка?
Куда без любовного треугольника?
Один из художников - большой фанат фильмов а-ля «500 дней лета», поэтому слепой романтики здесь не ждите.
Она не лезет изо всех щелей и не пытается заполнить собой всю историю. Скорее, она оставляет игроку выбор: вмешиваться в чужие отношения, помогать им развиваться или вообще держаться от всего этого подальше - в зависимости от собственного душевного состояния.
Чем дальше продвигается история, тем больше раскрываются сами жители города.
У каждого есть своя сюжетная линия, отношения с другими героями и собственные проблемы. И всё это может развиваться совершенно по-разному в зависимости от решений игрока.
Самая забавная проблема появилась позже.
Чем подробнее становились персонажи, тем чаще первоначальный сценарий переставал работать.
В какой-то момент мы понимали: нет, этот человек просто не может сказать эту реплику, его характер этого не позволит. И давай переписывать блок по-новому)
Как персонаж превращается из каракули в героя игры
На самом деле здесь не будет истории в духе: «Мы сделали 500 набросков, и всё было не то» или «Мы выбирали дизайн героя 10 ночей и одно утро». Нет. Персонажи как-то сами собой ожили, а вместе с ними - и комнаты.
Вообще вся стилистика - шум, контуры, штриховка - сложилась почти сразу. И какое же удовольствие всё это рисовать.
Единственное, что мы долго обсуждали, - хроматическая аберрация. Мы хотели добавить её поверх шума, чтобы изображение выглядело ещё немного страннее и больше напоминало старую печать.
Но в итоге от этой идеи пришлось отказаться. Мы так и не смогли нормально перенести эффект в Unity, а вручную нарезать всё это под анимацию было просто нереально.
Поэтому остался только шум.
1/2
Эх, а смотрелась аберрация забавно.
Что вообще представляет собой Dark Coffee
Если совсем коротко: Dark Coffee - уютная хоррор-визуальная новелла, в которой вы:
знакомитесь с жителями Мурсвинча и следите за их историями;
готовите напитки, способные влиять на судьбы персонажей;
принимаете решения и наблюдаете их последствия;
исследуете кофейню и выполняете небольшие квесты;
играете в мини-игры;
украшаете кафе и комнаты по своему вкусу;
постепенно узнаёте, что происходит с городом;
пытаетесь понять, кому действительно стоит помогать.
Если вам нравятся уютные игры, странные персонажи и истории, в которых за привычными вещами постепенно начинает проступать что-то лавкрафтианское, будем очень рады, если добавите Dark Coffee в список желаемого..