Можно ли на PHP написать ММО игру ?

Поділитися
Вставка
  • Опубліковано 14 кві 2024
  • Создание 2D MMO RPG игр на unity с авторитарным сервером.
    Принимаю заказы на разработку MMO игры на коммерческой основе и за % от проекта, подробности mmogick.ru/articles/frontend/i...
    Связь в ТГ t.me/webrobot1 или на почту admin@my-fantasy.ru
    Адрес проекта: mmogick.ru
    GitHub: github.com/webrobot1
    Habr статьи: habr.com/ru/users/webrobot/po...
    Примеры создания игр • Примеры создания онлай...
    English video: / @mmogick
    Поддержать проект :
    Тинькофф 2200 7004 1411 6557 (получатель Михаил Стрельцов - автор проекта)
  • Ігри

КОМЕНТАРІ • 17

  • @NewUser78654
    @NewUser78654 2 місяці тому +2

    Я работал в IT с самыми разными технологиями. Пишу на PHP/C#. Пару лет назад было крайне сложно изучить Unity. Сейчас с GPT всё намного легче.
    Идея авторитарного сервера у меня была с самого начала т.к. других идей тут нет (есть опыт и в инфобезе). Теперь немного критики (покритикую вас) и самокритики (ну и себя).
    Начав разрабатывать игру, простую и одиночную, я решил сделать клон популярной игры, но чуть его улучшив. Сделал героя чуть больше, изменил часть механик, добавил пару предметов. Не буду вдаваться в тех реализацию, но рост героя повлиял на геймплей, предметы на нагрузку движка (фпс, оптимизация), механики заставили изменить левел дизайн, а он поведение камеры и т.д. Много работы. Но самое главное, в игре я выступаю в роли гейм дизайнера, художника, аниматора, программиста, менеджера, девопса.
    Я потратил очень много времени, но и научился очень многому. В результате получил игру среднего качества.
    Теперь о рпг. У меня есть большие сомнения в целесообразности разработки своей рпг, с бесшовным миром и игроками. Это интересно, это хочется сделать, но мой пример выше показывает, что в одиночку и даже командой вы не сделаете достойную рпг. Вас просто вытеснят гиганты, крупные студии.
    Вот честно, со всем уважением к вам, как к разработчику, мне интересно смотреть на ваш фреймворк-рпг, но это не продукт. Визуальная часть выглядит плохо (спрайты, полоски между тайлами), геймплея нет, геймдизайна нет. Анимация, интеллект, передвижение монстров как в flash играх 2000 годов.
    Да, вы это сделали. Да, это не просто. Но кто в это будет играть?
    Сейчас вы скажете - там можно заменить спрайты, графику, анимацию - но это работа. Это всё связано. Это должно быть гармонично с механиками. Игра - уникальный, новый продукт, а не типичный сайт на фреймворке. Хорошая игра, а не клон.
    У меня есть знакомые геймеры, есть пара человек топ геймеров - кланлидеров крупнейших рпг. Они играют только в крупные рпг проекты, с прекрасной графикой, с экономикой и поддержкой крупных компаний. Там и играют и торгуют и зарабатывают.
    У меня есть знакомые школьники - так сказать будущее поколение. Они в такие простые рпг не играют. Они говорят - графика отстой, геймплей отстой.
    Они уже поиграли в диабло, они уже сидят в лиге легенд, в доте - и всё эти продукты высшего качества бесплатны (да условно, но вход открыт всем).
    Даже в инди крайне трудно конкурировать с кем либо в стиме. Рынок переполнен. В рпг, когда в 2004 вышел wow, продвигать продукт такого качества и функционала...
    А аудитория будет выбирать играть ей в это или в wow. Она не смотрит делал ли игру ты один, совершив подвиг и сделав среднюю игру или игру сделали 1000 человек транснациональной корпорации и получив результат чуть лучше. Результат - вот что всех волнует.
    Современные рпг сейчас делают как модификации популярных рпг, взломав их код, добавив моды, дописав что либо и т.д.
    Свои серверы - террарии, линейджа, гта. То, что уже популярно и во что вложен труд огромных студий, с их профессиональными сотрудниками.
    И нет, я не только критикую вас, но и себя. На текущий момент невозможно конкурировать с крупными студиями, которые разрабатывают онлайн игры.
    Никто никогда не вернется в 2007 год.

    • @valeriyatua
      @valeriyatua 2 місяці тому

      Palworld не согласен.

    • @myfantasyapi
      @myfantasyapi  2 місяці тому

      Я делаю только серверное ПО, игра для демонстрации. В отличие от вашего случая я не пытаюсь ни сделать игру интереснее, ни выступать гейм дизайнером, а только программистом - другие с помощью моего ПО могут делать игры, а я получить прибыли с продажи лицензий и доработок (чем я под заказ и занимаюсь)
      До сегодняшнего дня никто в мире не сделал сервиса для ммо, а для мачмейкинг игр папу компаний (фотон, колисеум, смартфокс и хероиклабс. Мирор не в счет тк это dll, а не сервис)

    • @myfantasyapi
      @myfantasyapi  2 місяці тому

      Плюс мой продукт это не только сервер - CMS для редактирование всем статов, добавление npc, карт и проекте свои анимации и все через дичный кабинет. Проекту 3 года.

    • @myfantasyapi
      @myfantasyapi  2 місяці тому

      Даже механиче через WEB IDE меняются - на видео видно. Так что не такая и долгая и сложная работа другим, когда уже сервер будет и тулсеты

  • @igorolikov1997
    @igorolikov1997 2 місяці тому

    Php через php-fpm работает? Или Swoole какой-нить?

    • @myfantasyapi
      @myfantasyapi  2 місяці тому

      Это консольное приложение на рнр с которым устанавливается постоянное websocket соединение. Swoole один из фреймворков написанный на С++ с помощью которого в том числе можно создать websocket сервер. Вебсокет сервер это лишь 20% от инфраструктуры сервиса с видео

    • @igorolikov1997
      @igorolikov1997 2 місяці тому

      @@myfantasyapi Я или что то не знаю, или не понимаю, но насколько я знаю консольное приложение в таком виде может работать только если на php написан сервер и он крутится в бесконечном цикле, так работает тот же workerman. Разве у вас это приложение не умирает на каждый запрос? Оно загружено в память? А как же утечки памяти? Не совсем понял...

    • @myfantasyapi
      @myfantasyapi  2 місяці тому

      @@igorolikov1997 Workerman не совсем крутится в цикле (обычный цикл у вас весь CPU сожрет). Приложение блокируется (типа sleep) и когда приходит новое соединение или пакет "просыпается" (так и в workerman и в swoole - прерывание происходит, и срабатывает onMessage и OnConnect - кстати во время выполнения их самих код еще раз может прерваться так что тяжелой логики там быть не должно. У меня новые данные сразу передаются в другой сервис которые так же на заблокирован и ждет пакетов , но уже рассчитывает физику, изменяет мир как то по командам от игроков - например двигает персонажа при команде движение)

    • @myfantasyapi
      @myfantasyapi  2 місяці тому

      @@igorolikov1997 загруженное приложение занимает не много. 40 Мб при карте 4000х4000 клеток (без графики, только матрица) и 50 мобов под управлением ИИ (даже без игроков на карте они ходят создавая временно в памяти новые расчеты поиска путей и стреляют создавая новые объекты - фаерболы которые уничтожаются упираясь во что нибудь. Пустая поднятая локация небольшая может занимать 10 мб включая код который загружается при создании PHP процесса в том числе системный)

    • @myfantasyapi
      @myfantasyapi  2 місяці тому

      @@igorolikov1997 Утечки памяти будут чаще всего если у вас ссылки на определенные объекты которые вы явно не удалили (например у вас один объект на другой ссылается , а вы удалили не оба а только верхнего уровня и только он удалился из памяти, а второй висит хоть на него и ссылается отсутствующий). Вот когда у вас много зависимостей (чужого кода типа из composer) вероятно что то потечет (почему я и написал сам фреймворк и там пару зависимостей). Реже память течет из за extension в PHP (PECL библиотеки типа swoole) еще реже из за стандартных функций PHP (что находят и чинят).
      Но даже если и течет в PHP есть механизм который после N количества созданий новых переменных запускает сборщик мусора, который надет такие объекты на которые уже никто не ссылается и очистит память.
      Так процесс сервера может висеть сколько пожелаете, но были и утечки которые я решил ua-cam.com/video/rIv08Sk3HOQ/v-deo.html