За полтора часа из игры из 90х перегнал карты и анимации (они в формате Spriter , но фактически теже spritesheet).
Написал ручки для ИИ (claude code у меня) tool манипулировать спрайтами , анимациями , npc расставлять , а сервер я писал сам вдумчиво и архитектуру как этому работать
Я лишь пробовал. Я так и написал выше в коментарии и результатом доволен, но мне нужна скелетная анимация (заппосил в godmode ai доступ к закрытгму функционалу). Основной фокус у меня на разработки сервиса что мне этот контент агрегирует и доставит в ммо rpg игру (это и карты и анимации, и встраиваемый код механик и скоро музыка) + совместная работа (правда друзья все спились к этому моменту, но ИИ теперь помогает)
Саму игру я только сейчас, спустя 4 года начинаю копировать из open source на свой продукт
Я еще не пробовал подписку, на бесплатном попробовал. Но результат меня поразил. Он заточен под то что бы делать spritesheet. И не по промту, а выбираешь направление и вид анимации (хотьба, прыжок , атака и тп)
Но надо придумать как скелетную анимацию собирать , возможно через совмещение GodMode и Komiko (странная азиатская ии, но спосоьна нарезать качественно части тел) и еще какого ИИ что соберет все...
Я смотрю там вроде карты и тайлсеты можно генерить...интересно а может ли этот сервис сгенерить тайловую карту для игр (то бывает для dnd генерит или постер или...ну не для нарезки вообщем на тайлы), не в курсе?
Тогда я мог бы попробовать скормить своему ии графику (может даже тайлсет и образец карты) , вероятно он собрал бы для игры все (со слоями, непроходимимы областями и тп)
Я даю образец картинки и прошу сделать мне аналог что бы смотрел на меня, что бы конечности не заслоняли друг друга и пока он лучшие варианты выдавал (многие постеры какие то рисуют). Потом отдаю его на создание spritesheet в GodMode (он заточен делеть именно спрайтшиты , там выбираете позу и действие)
Пиксельлаб похоже, но это чисто для пиксельных график
Я предлагал вам бесплатно сделать серверную часть на своем ПО.
Считаю что при особом интересе разобраться можно во всем, но несмотря на то что вы задаете вопросы интереса сильного не чувствуется. Давайте забудем о моем предложении
Если вам интересно посмотреть как устроена архитектура - у меня ряд статей , вот одна из них (фото архитектуры там есть) - https://habr.com/ru/articles/780602/
Главный вопрос - интересно ли Вам. Сервер работает с клиентом по API (игрок оправляет команды - сервер возвращается что меняется, тут я постарался описать как это работает)
как проникнут в мой работающий бинарник, можете пояснить
возьмем механику выстрела - вы отправляете команду в сервер Стрелять, сервер возвращает json что у вас стало меньше маны и что на сцене появился фаерболт (и далее шлет пакеты что меняются его позиции) - в клиенте вы анимируете
я вижу вы делаете игру. Я могу к вашему клиенту игры соединить свое ПО (выдам вам бесплатный доступ, потом захотите договоримся и на Ваш сервер поставим - будите в админ панели механики скриптами описывать, а клиент будет визуализировать у себя на основе пакетов приходящих изменения). так быстрее MMO сделаете )
там и карты игровые можете слать в свой клиент (я их делаю в программе Tiled - оф сайт может без vpn не открыться https://www.mapeditor.org/)
Но и сервер другому серверу может не только пакеты исполненные в нем передавать, а так за запрос выполнить что то у себя.
Пример - на границе карт применена магия взрыва что затрагивает в радиусе 10 клеток существ (в механики будет поиск существ в радиусе и не важно на каком они сервере отправлена команда - Повесить событие получение урона в 10 жизней)
игровые карты я выкладываю на GitHub постепенно (там есть превью как они выглядят - можно из них собрать свой игровой мир)
Хотите помогу в ваш клиент сделать плагин к сервису ? Или на пару сделать на Unity игру (он может и громоздкий, но его много кто знает, включая меня - почитал тут вашу статью)
Если быть точнее: смежные сервер-локации сами передают данные друг другу, после чего рассылают "своим" игрокам
Так что тот сервер на котором сейчас стоит игрок при получении с соседнего каких то обновлений разошлет игроку что на смежном сервере происходит
Какие локации смежные - я в админ панели на сетке размещаю.
Например здание магазина в игре скорее всего не смежная ни с какой локация - перед его входом на клетке можно разместить телепорт - таким образом игрок попадает на НЕ смежные локации
У меня пока нет механик массовых коллизий (типа взрыва который задевает в радиусе кого то), но я заранее могу сказать что сильно не изменится ничего (шутеры и гонки - согласен на моем продукте не сделать, но там и не нужна авторитарность)
Точных метрик на все случаи жизни не сделать (да и не каждый игрок будет постоянно стрелять). Я привел метрики в худшем варианте текущих механик
Система горизонтально масштабируется и обработку части NPC и игроков можно поручить отдельной физической машине (при этом все продолжат играть в едином мире)
Про злость и агрессию - мой наставник говорит что такое в РФ постоянно ко всему новому. А на западе не так - там с интересом относятся ко всему новому (сам не проверял не знаю).
Если это так то полагаю что в РФ люди привыкли что все новое делают что бы нажиться, а не для людей. И делают плохо (может поэтому и мало кто что делает в РФ. Страна большая а доля игрового рынка 1.8% по официальной статистике)
Тем не менее я делаю и игру свою и продолжу делать. Если по итогу окажется что как B2B решение в РФ оно не нужно - сделаю на запад или переключусь делать игру. Сейчас у всех NPC массовое побоище (по умолчанию они активны когда игрок рядом, я настроил в админке что и без игроков они друг друга бьют и стреляют)
Я буду честен с вами - я не думаю что будет результат хуже того FPS чем я указал (NPC выстрелит милилсекунда в миллисекунду когда пройдет дебаф на заклятие. Тоже и на другие механики. Игрок живой не так активен будет и не постоянно в режиме побоища)
Вопрос 2: да , механики разные. Но сейчас такие показатели (мобы ходят, ищут других, стреляют постоянно, ищут короткий путь до целей, регенерируют, воскрешаются).
Я и не скрываю данный факт , и на сайте приписку об этом сделал.
Можно например поиск пути что бы не все возможные пути искал, а лишь если не встретил хуже того что уже нашел и будет еще быстрее (не все механики прям отточены, но изменить одну просто - код каждый отдельно каждая хранится и замеряются, считайте что на каждую механику свой фаил).
Можно анализировать каждую механику конкретно, пример на фото ниже и в админ панели по ссылке Производительность (можно по демо доступам зайти)
Экспонент там нет. Все существа обрабатываются по очереди и в каждом существе обрабатываются все механики если им пришло врем выполняться в этом кадре (код чуть выше того ссылку на который я дал). Например регенерации обрабатывается раз в 10 секунд (эти параметры уже не в Git записаны а редактируются на каждую игру в админ панели)
Вопрос 1: Максимально возможный FPS в данном случае скорость работы сервера. Я считаю более честным считать конец кадра моментом когда последнему игроку будет отправлен пакет с очередного кадра.
Жизненный цикл кадра
WebSocket принял пакеты от N игроков, настало время отправить в сервер физики их
WebSocket отправляет в сервер физики это занимает 1/2 от Overhead на обмен пакетов Websocket <-> сервер физики (константное значение)
WebSocket может пока ждет от сервера физики ответа принимать новые команды
WebSocket получает ответ от сервера физики (будто и вот он FPS) в который включен вторая часть 1/2 Overhead на обмен пакетов Websocket <-> сервер физики
WebSocket рассылает игрокам данные (0.05 это не совсем время отправки пакетов это overhead вызова неблокируемой функции отправки)
Когда на сетевое устройство переданы все пакеты я считаю это завершение кадра - все вышеперечисленное это единая функция которая вызывается по таймеру (в зависимости от того какой FPS настроен в настройках игры, он меньше возможного. Обычно значение установлено в 30 FPS, т.е. каждые 0.33 мс)
Вы считаете не стоит учитывать 0.05 мс overhead на отправку каждому игроку ?
Да, можно и без gif. Но spritesheet
За полтора часа из игры из 90х перегнал карты и анимации (они в формате Spriter , но фактически теже spritesheet).
Написал ручки для ИИ (claude code у меня) tool манипулировать спрайтами , анимациями , npc расставлять , а сервер я писал сам вдумчиво и архитектуру как этому работать
Я лишь пробовал. Я так и написал выше в коментарии и результатом доволен, но мне нужна скелетная анимация (заппосил в godmode ai доступ к закрытгму функционалу). Основной фокус у меня на разработки сервиса что мне этот контент агрегирует и доставит в ммо rpg игру (это и карты и анимации, и встраиваемый код механик и скоро музыка) + совместная работа (правда друзья все спились к этому моменту, но ИИ теперь помогает)
Саму игру я только сейчас, спустя 4 года начинаю копировать из open source на свой продукт
Собрал тут аниции и карты (может для себя что то найдете и через chatgpt новую создадите) https://gitlab.com/mmogick
Я еще не пробовал подписку, на бесплатном попробовал. Но результат меня поразил. Он заточен под то что бы делать spritesheet. И не по промту, а выбираешь направление и вид анимации (хотьба, прыжок , атака и тп)
Но надо придумать как скелетную анимацию собирать , возможно через совмещение GodMode и Komiko (странная азиатская ии, но спосоьна нарезать качественно части тел) и еще какого ИИ что соберет все...
Я смотрю там вроде карты и тайлсеты можно генерить...интересно а может ли этот сервис сгенерить тайловую карту для игр (то бывает для dnd генерит или постер или...ну не для нарезки вообщем на тайлы), не в курсе?
Тогда я мог бы попробовать скормить своему ии графику (может даже тайлсет и образец карты) , вероятно он собрал бы для игры все (со слоями, непроходимимы областями и тп)
Я даю образец картинки и прошу сделать мне аналог что бы смотрел на меня, что бы конечности не заслоняли друг друга и пока он лучшие варианты выдавал (многие постеры какие то рисуют). Потом отдаю его на создание spritesheet в GodMode (он заточен делеть именно спрайтшиты , там выбираете позу и действие)
Пиксельлаб похоже, но это чисто для пиксельных график
Я предлагал вам бесплатно сделать серверную часть на своем ПО.
Считаю что при особом интересе разобраться можно во всем, но несмотря на то что вы задаете вопросы интереса сильного не чувствуется. Давайте забудем о моем предложении
Если вам интересно посмотреть как устроена архитектура - у меня ряд статей , вот одна из них (фото архитектуры там есть) - https://habr.com/ru/articles/780602/
Главный вопрос - интересно ли Вам.
Сервер работает с клиентом по API (игрок оправляет команды - сервер возвращается что меняется, тут я постарался описать как это работает)
возьмем механику выстрела - вы отправляете команду в сервер Стрелять, сервер возвращает json что у вас стало меньше маны и что на сцене появился фаерболт (и далее шлет пакеты что меняются его позиции) - в клиенте вы анимируете
я вижу вы делаете игру. Я могу к вашему клиенту игры соединить свое ПО (выдам вам бесплатный доступ, потом захотите договоримся и на Ваш сервер поставим - будите в админ панели механики скриптами описывать, а клиент будет визуализировать у себя на основе пакетов приходящих изменения). так быстрее MMO сделаете )
там и карты игровые можете слать в свой клиент (я их делаю в программе Tiled - оф сайт может без vpn не открыться https://www.mapeditor.org/)
Но и сервер другому серверу может не только пакеты исполненные в нем передавать, а так за запрос выполнить что то у себя.
Пример - на границе карт применена магия взрыва что затрагивает в радиусе 10 клеток существ (в механики будет поиск существ в радиусе и не важно на каком они сервере отправлена команда - Повесить событие получение урона в 10 жизней)
игровые карты я выкладываю на GitHub постепенно (там есть превью как они выглядят - можно из них собрать свой игровой мир)
Хотите помогу в ваш клиент сделать плагин к сервису ? Или на пару сделать на Unity игру (он может и громоздкий, но его много кто знает, включая меня - почитал тут вашу статью)
Если быть точнее: смежные сервер-локации сами передают данные друг другу, после чего рассылают "своим" игрокам
Так что тот сервер на котором сейчас стоит игрок при получении с соседнего каких то обновлений разошлет игроку что на смежном сервере происходит
Какие локации смежные - я в админ панели на сетке размещаю.
Например здание магазина в игре скорее всего не смежная ни с какой локация - перед его входом на клетке можно разместить телепорт - таким образом игрок попадает на НЕ смежные локации
для этого я сделал SAAS версию где каждый может взять мою демку игры на Unity и написать свои механики в личном кабинете (там бесплатный режим есть).
Это ведь не шаблоны - можно как угодно код менять (только в БД напрямую слать запросы нельзя и сетевые ресурсы не доступны)
У меня пока нет механик массовых коллизий (типа взрыва который задевает в радиусе кого то), но я заранее могу сказать что сильно не изменится ничего (шутеры и гонки - согласен на моем продукте не сделать, но там и не нужна авторитарность)
Точных метрик на все случаи жизни не сделать (да и не каждый игрок будет постоянно стрелять). Я привел метрики в худшем варианте текущих механик
Система горизонтально масштабируется и обработку части NPC и игроков можно поручить отдельной физической машине (при этом все продолжат играть в едином мире)
а как вы считаете кратко перефразировать какой блок что было понять ?)
Все не идеально написано, согласен
Логика по компрессии данных действительно есть
Про злость и агрессию - мой наставник говорит что такое в РФ постоянно ко всему новому. А на западе не так - там с интересом относятся ко всему новому (сам не проверял не знаю).
Если это так то полагаю что в РФ люди привыкли что все новое делают что бы нажиться, а не для людей. И делают плохо (может поэтому и мало кто что делает в РФ. Страна большая а доля игрового рынка 1.8% по официальной статистике)
Тем не менее я делаю и игру свою и продолжу делать. Если по итогу окажется что как B2B решение в РФ оно не нужно - сделаю на запад или переключусь делать игру. Сейчас у всех NPC массовое побоище (по умолчанию они активны когда игрок рядом, я настроил в админке что и без игроков они друг друга бьют и стреляют)
Я буду честен с вами - я не думаю что будет результат хуже того FPS чем я указал (NPC выстрелит милилсекунда в миллисекунду когда пройдет дебаф на заклятие. Тоже и на другие механики. Игрок живой не так активен будет и не постоянно в режиме побоища)
Вопрос 2: да , механики разные. Но сейчас такие показатели (мобы ходят, ищут других, стреляют постоянно, ищут короткий путь до целей, регенерируют, воскрешаются).
Я и не скрываю данный факт , и на сайте приписку об этом сделал.
Можно например поиск пути что бы не все возможные пути искал, а лишь если не встретил хуже того что уже нашел и будет еще быстрее (не все механики прям отточены, но изменить одну просто - код каждый отдельно каждая хранится и замеряются, считайте что на каждую механику свой фаил).
Можно анализировать каждую механику конкретно, пример на фото ниже и в админ панели по ссылке Производительность (можно по демо доступам зайти)
Вот код который их замеряет (часть кода моего сервиса открыто) https://github.com/webrobot1/framework-rpg2d/blob/master/Frame.php#L127
Экспонент там нет. Все существа обрабатываются по очереди и в каждом существе обрабатываются все механики если им пришло врем выполняться в этом кадре (код чуть выше того ссылку на который я дал). Например регенерации обрабатывается раз в 10 секунд (эти параметры уже не в Git записаны а редактируются на каждую игру в админ панели)
Вопрос 1: Максимально возможный FPS в данном случае скорость работы сервера. Я считаю более честным считать конец кадра моментом когда последнему игроку будет отправлен пакет с очередного кадра.
Жизненный цикл кадра
WebSocket принял пакеты от N игроков, настало время отправить в сервер физики их
WebSocket отправляет в сервер физики это занимает 1/2 от Overhead на обмен пакетов Websocket <-> сервер физики (константное значение)
WebSocket может пока ждет от сервера физики ответа принимать новые команды
WebSocket получает ответ от сервера физики (будто и вот он FPS) в который включен вторая часть 1/2 Overhead на обмен пакетов Websocket <-> сервер физики
WebSocket рассылает игрокам данные (0.05 это не совсем время отправки пакетов это overhead вызова неблокируемой функции отправки)
Когда на сетевое устройство переданы все пакеты я считаю это завершение кадра - все вышеперечисленное это единая функция которая вызывается по таймеру (в зависимости от того какой FPS настроен в настройках игры, он меньше возможного. Обычно значение установлено в 30 FPS, т.е. каждые 0.33 мс)
Вы считаете не стоит учитывать 0.05 мс overhead на отправку каждому игроку ?