Пиратики
Разрабатывал игру про пиратов давным - давно. Персонажи получились прикольными. Даже легкую анимацию под них делал.
Разрабатывал игру про пиратов давным - давно. Персонажи получились прикольными. Даже легкую анимацию под них делал.
Продолжаю делиться разработкой своей браузерной RPG. Проект обрастает контентом, и сейчас я перешел к созданию визуала и к наполнению мира.
Как собирается мир
Террейн острова: Сначала нейросеть сгенерировала общие очертания карты. Затем я загрузил её в Blender и вручную вылепил весь террейн с помощью скульптинга, формируя холмы, равнины и береговую зону под игровой процесс.



Смесь 3D и 2D: Окружение в игре трехмерное, а вот монстры и NPC — плоские 2D-спрайты. Это экономит огромное количество полигонов и снимает избыточную нагрузку на рендер в браузере, создавая ретро-стилистику.



Генерация контента: Весь контент делаю в нейросетях, tripo, gemine, nano banana и т.д
Что уже работает:
Разметка карты: Остров поделен на сектора с мобами с 1 по 20 уровень.
Инвентарь: Оружие можно брать в руки, менять и убирать обратно. Слоты под броню готовы, параллельно чинятся мелкие интерфейсные баги.
3. Скиллы: Внедрил первый паровой удар, сейчас довожу до ума применение умений по противникам.



Базы данных: Полностью готовы таблицы по характеристикам экипировки, параметрам мобов, луту и вероятностям дропа.
Боссы: Поставил первого крупного босса зоны и заложил механику скрытых энкаунтеров с редкими плюшками.
Пишите в комментариях, как вам идея мобов и визуальное решение с 2D-спрайтами в трехмерном мире.
Сегодня в игру добавлена новая система Рассказчика мира. При создании персонажа теперь можно выбрать один из трёх режимов:
Нормальный — даёт время подготовиться и подбирает посильные испытания.
Прогрессивный — повышает ставки вместе с развитием героя и базы.
Безумный — создаёт неожиданные сочетания угроз и аномальных событий.
Рассказчик учитывает состояние персонажа, его снаряжение, травмы, голод, усталость, богатство и защиту базы, отношения с людьми, давление фракций, погоду, экологию, аномалии, прошлые победы и поражения.
События теперь получают причины, предупреждения, реальные координаты и последствия. Отказ от вмешательства также меняет мир, но не всегда приводит к наказанию.
Добавлено:
хроника изменений мира;
цепочки связанных событий;
память обещаний и долгов перед NPC;
объяснение причин миграций, угроз и экологических изменений;
именованные противники, пережившие несколько встреч;
шрамы, привычки и новые способности у таких противников;
сохранение Рассказчика и хроники вместе с миром;
поддержка старых сохранений;
журнал жизни погибшего персонажа;
история героя после смерти с важными событиями, решениями и незавершёнными обещаниями.
Также начата крупная переработка внутренней системы игры:
действия выполняются через единую последовательную очередь;
ход, бой, NPC, погода, звук и мировая симуляция больше не должны конкурировать между собой;
добавлен контроль времени обработки;
тяжёлые операции выявляются диагностикой;
в журнале задач появилась временная шкала действий;
улучшена стабильность старых и больших миров;
подготовлена единая логика для одиночной и сетевой игры.
Дополнительно закреплены тестами:
звуки ходьбы;
дождь, снег и визуальные погодные эффекты;
появление монстров;
ответные ходы и атаки в бою;
сохранение маркеров карты;
загрузка миров;
глобальные изменения из админки;
переходы между секторами.
Наведи порядок в городе и подомни под себя власть. Для этого прокачиваю свою хату, наказывай беспредельщиков и становись королем ринга.
Обычно так в последнее время начинаются новости на моем канале, за исключением того, что в этот раз этим энтузиастом оказался я!
И сегодня я рад представить вам браузерный эмулятор Nokia N-Gage созданный мной специально для игр, и теперь этот культовый кусочек игровой истории будет максимально доступен каждому на ПК и мобилках.
Эмулятор на данный момент находится на финальной стадии разработки и идеально запускает 18 игр, включая тяжелые 3D (Такие как Tony Hawk Pro Skater, Red Faction и Elder Scrolls). Поддержка каждой игры это индивидуальный подход к ее запуску и много проделанной работы.
Как и у всех современных эмуляторов я сделал лист совместимости и работы поддерживаемых игр:
🟩 Playable - 18 игр которые работают без нареканий
🟨 In game - 24 игры которые запускаются, но имеют различные баги, недочеты и требуют дальнейшей доработки - например отсутствие звука или низкий fps
🟥 Not Playable - 22 игры которые пока не запускаются или не доходят до геймплея.
Вся эта информация доступна на странице проекта с удобным выбором.
Всего в библиотеке 64 игры, и в будущем я надеюсь реализовать игры так называемой N-Gage 2.0.
Эмулятор прекрасно работает в том числе и на мобилках.
В обычных браузерах это всё упаковано в стильный скин оригинальной N-Gage (см. первый скрин поста, это оно). Красота неописуемая)
Как всегда буду благодарен вам за любую информационную поддержку! ❤
Всем отлично времяпровождения!
В GeoConquest игрок оставляет на реальной карте временный след.
Если выйти со своей территории, пройти маршрут и вернуться обратно, контур замыкается. Гексы внутри него становятся частью владения.
Но что происходит, если внутри петли уже находится чужая территория?
Игра не перекрашивает её автоматически. Она запускает отдельное состязание с владельцем.
Сразу уточню важную вещь: эту механику я не добавлял после появления первых игроков. Я закладывал её с самого начала, ещё в прототипе на локалхосте, когда играл один и телефона даже не было.
Вопрос был не в том, нужно ли защищать чужую территорию. Это было частью идеи игры изначально.
Вопрос был в другом: как именно разрешать конфликт, если один маршрут пересекает территории нескольких владельцев?
Можно было сделать отдельную случайную проверку для каждого гекса.
Но тогда большая территория превращалась бы в мозаику. Часть клеток случайно захватилась, часть осталась, внутри чужого участка появились дырки и обрывки.
Это выглядело бы так, будто игра бросает монетку для каждой клетки и вообще не понимает, кому принадлежит земля.
Поэтому конфликт разрешается на уровне владельца.
Если внутри петли оказались:
нейтральные клетки;
территория игрока А;
территория игрока Б;
территория клана В;
то нейтральные клетки захватываются напрямую, а с каждым владельцем проходит отдельное состязание.
Если один и тот же игрок оказался внутри контура в нескольких разрозненных местах, это всё равно один конфликт. В случае победы атакующего меняются все затронутые клетки этого владельца. В случае поражения они остаются на месте.
Так результат не превращается в случайную шахматную доску.
Нейтральные гексы не защищаются. Если игрок замкнул контур вокруг пустой территории, она просто переходит под его контроль.
Но чужие гексы требуют отдельной проверки.
Если атакующий выигрывает, его след закрепляется, а клетки владельца переходят к атакующему.
Если проверка не пройдена, чужая территория остаётся на месте. Временный след атакующего тоже не превращается в постоянную землю поверх неё.
Это позволяет пройти по чужому району, попробовать замкнуть большую петлю, проиграть спор и при этом не уничтожить всю работу другого игрока одним маршрутом.
Я хотел, чтобы маршрут был не единственным решением игрока.
В игре есть характеристики, которые меняют вероятность конфликта:
«Натиск» увеличивает шанс успешной атаки;
«Стойкость» помогает защищать свою территорию.
Базовый шанс атаки составляет 87 процентов.
Разница между Натиском атакующего и Стойкостью владельца меняет его на 1 процент за каждый пункт разницы.
Формула выглядит так:
87% + 1% * (Натиск - Стойкость)
Шанс ограничен снизу 37 процентами и сверху 100 процентами.
Например:
Натиск 18 против Стойкости 13 = 92%
Натиск 7 против Стойкости 13 = 81%
В окне нападений это отображается не просто как «победа» или «поражение».
Можно увидеть, кто атаковал, к какому клану он относится, какие характеристики участвовали в споре, какой был шанс и сколько гексов стояло на кону.
Это именно состязания между владельцами. Не отдельный бросок для каждой клетки.
Одних постоянных характеристик мне показалось мало.
В игре есть активируемые эффекты, которые можно сохранить для важного маршрута:
«Боевой перевес» позволяет атакующему использовать лучший из двух случайных результатов;
«Оберег» заставляет учитывать худший результат атаки по защищающейся стороне.
Если оба эффекта используются одновременно, они нейтрализуют друг друга.
Такие усиления расходуются во время конфликта. Поэтому игроку приходится решать, потратить их сейчас на небольшой участок или оставить для большой петли, важного района или атаки на клановую территорию.
Внутри клана нет личных кусочков земли каждого участника.
Для карты клан является одним владельцем. Территория принадлежит клану, а не отдельным людям внутри него.
Поэтому атака на клановую землю тоже становится одним состязанием с эффективными характеристиками клана.
Если клановую территорию атаковали, уведомление получают участники, которые состояли в клане в момент разрешения конфликта.
Получается асинхронная ситуация: один игрок гуляет и замыкает петлю, а позже несколько участников клана узнают, что их землю пытались отнять.
Это, наверное, главная причина, почему в GeoConquest вообще появились такие механики.
Я не хотел делать очередное приложение для бегунов, которое просто записывает маршрут, показывает километры и рисует красивую линию на карте.
GPS в игре является источником управления, но не самой игрой.
Игроку нужно думать:
какой маршрут построить;
где замкнуть петлю;
чью территорию попробовать атаковать;
какие характеристики прокачивать;
когда использовать временное усиление;
стоит ли рисковать большой частью маршрута ради чужой земли.
В обычном трекере прогулка заканчивается, когда ты дошёл до точки назначения.
В GeoConquest движение только создаёт игровую ситуацию. Потом нужно получить результат, принять риск и жить с последствиями на общей карте.
Поэтому мне было важно, чтобы чужую территорию нельзя было просто стереть одним удачным маршрутом.
Итоговая логика получилась такой:
нейтральную землю можно захватить напрямую;
чужая территория запускает отдельный спор;
игроки влияют на спор характеристиками;
временные усиления позволяют подготовиться к важной атаке;
клан может защищать общую территорию как единый владелец;
результат сохраняется в истории мира.
Это уже больше похоже на классическую игру с развитием, ресурсами, риском и решениями, чем на приложение для подсчёта шагов.
А вам было бы интереснее видеть точный шанс до замыкания петли или лучше оставлять результат неизвестным до самого конца маршрута?
Попробовать GeoConquest прямо в браузере: https://geo.juju.ru/
Версия для Google Play уже доступна!
Патчноуты и история разработки: https://t.me/GeoConquest
Выбирайте танк времен Второй мировой войны и отправляйтесь в битву. Занимайте выгодные позиции и стреляйте в уязвимые места: гусеницы, двигатель, башню и орудия.