Как стать автором
Обновить

Комментарии 20

И я не понял, о чем эта статья.
Благословение необходимо на создание? Или что? Или движок уже написан и ...? И что?

Зашел почитать про что-то техническое, в итоге прочитал бред человека под спидами, по видимому.

ПС. Не будИм тебя, как твои коллеги и друзья - спи дальше ...

Ну во первых оскорблять людей не хорошо

Во вторых я начал блог о возможности создания сервера игр на php

Ну а в третьих еще в начале указано что хочу делиться идеей.

Ошибки, перескакивание с "вы" на "ты", необходимость смотреть видео для понимания текста. Уберите, пожалуйста, это в черновики и поработайте над текстом.

Первый пост - как и писал. С опытом писать лучше научусь

Я когда-то делал что-то подобное для пет-проджекта, планировал на rust, но прототип сделал на phpReact. В результате оказалось, что именно скорости более чем хватает и в php. При том, что игровая механика вычислялась довольно тяжело (абсолютно всё - сообщение в priority queue "получателя", обрабатывающего эти сообщения по своей собственной логике и порождающего новые сообщения для других игровых объектов и сети). А сложности лежали в плоскости отладки игрового процесса (на сложной карте начинается настоящий хаос, при том хаос асинхронный) и здесь то, от чего защищает rust никак не помогло бы (с типизацией и так всё строго, вместо многопоточности многозадачность). Поэтому оставил так, но несколько выгорел и отложил для лучших времён.

Ну про rust сказать ничего не скажу (не работал) , а phpReact брать не стал (тк не понимая как устроен весь механизм Фреймворка сложно найти архитектурное решение лучше. а изучать само ядро фреймворков довольно сложно и удерживать в голове идею создателей)

С самым простеньким сервером (1 ядро 2 гб RAM ) удалось держать ~300 игроков онлайн (роботов которые постоянно ходили и атаковали ближайшую цель следуя за ней искав ближайший путь)

Столкнулся с проблемой когда было куча процессов которые обрабатывали NPC (асинхронных) , решил объединение этих процессов в пулы и стало гораздо лучше

Посмотрел одно видео. Мне кажется, что Хабр не очень подходит для такого формата. Я понимаю, что это попытка сделать материал легким и ненапряжным, и даже где-то развлекательным, но на мой взгляд получилось скорее вульгарно. Какой-то совсем уж детсадовский юмор. Это чисто моё субъективное мнение, и, возможно, кому-то наоборот понравится. Но чисто по ощущениям — формат не совсем для хабрааудитории.

думаю вы правы. Но информации по теме как "создать cервер для игр с нуля" почти нет, так что для многих (я надеюсь) кто ищет - найдет и оно будет полезно

Именно эта статья практически не несёт в себе полезной информации.

Вертикальные видео это вообще ужас.

Но на всякий случай всё же подписался и буду следить. Не уверен что у вас получится, но желаю удачи.

Когда я начинал мне было бы полезной информация что есть редактор игровых карт Tiled , что его можно парсить на php и хранить карты в базе что даже если писать на низкоуровневых языках типа C# - это не гарантия успеха и скорости, что рационально использовать Nosql совместно с Sql и тп...

Поэтому посчитал что для начала серии статей (а это именно первая часть из нескольких) стоит начать с этой части :)

Т.е. я стараюсь донести именно архитектурные идеи и описать те логические трудности с которыми предстоит столкнуться ... над подачей еще стоит поработать...

Буду надеется что мое дальнейшее творчество вас не разочарует :)

М-да уж. Во-первых, это не статья, а "прототип" статьи: ещё толком ничего не готово, ноль кода, зато дофига бессмысленных рассуждений. Во-вторых, кто съел все знаки орфографии? В большинстве мест не критично, но есть и моменты, когда реально с первого раза не понятно, что автор хотел тебе сказать (например, секунд 10 тупил на "те": я даже представить себе не мог, что кто-то так называет т.е.)

Ну и в третьих: видосы. Тупо неудобно их смотреть. Это СТАТЬЯ, а не ЮТУБ РОЛИК, почему 90% инфы в видео?

Это первая часть серии статей.

Если вам интересна эта тематика вы можете подписаться на мой профиль и посмотреть следующие части

Основная проблема персонажа из видео в том что он зря стал программистом имеет недостаточно компетенций для решения этой задачи. Это в принципе не удивительно потому что Unity имеет настолько минимальный порог вхождения, что через час после установки дистра можно кричать "мама посмотри, я делаю игры".. в то время как бекэнд многопользовательских игр динамичнее, чем покер, а уж тем более mmofps или mmorpg, это кровь сопли и гнев божий. Поэтому делать выводы, что dotnet must die медленный, а я напишу все на php и будет все отлично придет на ум только человеку с "метаниями в поиске уберинструмента" и таким же недостатком скиллов, или фанбою php.. у меня других предположений нет.

есть несколько путей

Увы но нет, путь по прежнему один. Фотон и прочие универсальные решения, подойдут для создания mvp, сессионных игр и инди со сравнительно небольшим онлайном потому что содержать собственное решение не нужно накладно, и дешевле переложить ответственность на провайдера и платить абонентскую плату. Как только вам понадобится высокий онлайн в одной сессии, масштабируемость и возможности для оптимизации, то единственный выход - это написать свой собственный бек для сервера с необходимыми плюшками.

Исторически сложилось что такие вещи пишутся на том же языке что сделан клиент (и теми же людьми), те обычно на С#, C++ .... более редко мне кажется на Nodejs (может для браузерок) и Golang (знал бы его - писал на нем).

Разработчики стараются использовать существующую кодовую базу. Потому что если у вас есть готовый пайплайн для взаимодействия с сетью, то писать это все заново на Go потому что Сережа знает только Go, никто не будет. Нужны определенные экономические или технические предпосылки, предыдущий пользовательский опыт и тд.

Вы невнимательно читали статью. В ней я рассказываю что сам язык это "капля в море" влияние на скорость, а гораздо более важна скорость работа с базами , кеширование и построенная архитектура (вот человек писал на Си в видео - и что вышло)

Писать сервер можно на любом языке при грамотным подходе.

Ваше мнение что мой уровень низок -субъективно ,а Unity в статьях взят для демонстрации онлайна - я не профессионал и сами "игры" не умею делать. Клиент (а тк это клиент-серверное взаимодействие является Фронтом, а не бекендом как вы его сравниваете. Бекенд - сервер, на клиенте ничего не высчитывается, тока анимируется) можно писать на чем угодно (хоть игры на js, хоть на unreal engine) - там для взаимодействия с "сервером" всего один контроллер предполагается.

В добавок никто не спорит что нет готового решения.

Эго сделаю я

В серии статей (посмотреть можно в моем профиле) можно видеть скорость ping (10 мс на движение) и результаты работы (пока держит до 1000 онлайн)

Если вы считаете что у вас есть более разумный и лучший способ построения архитектуры сервера онлайн игр - дайте его миру. Я с радостью почитаю

Во-первых ваша статья это сплошной сумбур, воспринимать этот поток сознания реально тяжело. Во вторых, я нигде не ассоциировал клиент и бек, чтобы это увидеть надо было читать мой комментарий через строку по диагонали.

Писать сервер можно на любом языке при грамотным подходе.

Я вам писал, что выбор инструментов должен быть оправдан, в техническом или экономическом плане. Невнимательно читали видимо.

Ваше мнение что мой уровень низок -субъективно ,а Unity в статьях взят для демонстрации онлайна - я не профессионал и сами "игры" не умею делать.

Вот тут то и проблема, что вы не разработчик игр, и не погружены в их проблемы. Вы можете быть отличным php разработчиком может быть даже лучшим, который делает превосходные интернет-магазины, форумы и прости господи лендинги.. но у игр другие бутылочные горлышки.

Вообще сравнивать с чуваком, который пилит игрушку ради монетизации роликов на ютубе, ну это такое себе.

В добавок никто не спорит что нет готового решения. Эго сделаю я

Самомнение у вас дай бог каждому.. до вас лучшие умы индустрии не могли и только вас ждали аки спасителя (нет)

В серии статей (посмотреть можно в моем профиле) можно видеть скорость ping (10 мс на движение) и результаты работы (пока держит до 1000 онлайн)

Из серии статей мы пока что ничего не видим, а циферки можно любые нарисовать.
Я когда начинал читать, думал что :

"Вот, сейчас он напишет что-нибудь толковое о используемой архитектуре, как организован пайплайн "эти ваши" rudp, о предикциях, оптимальной структуре пакетов, их кешировании (в рамках rudp), шифровании и сжатии. Что будет сравниение перформанса, рассказ о своем опыте и набитых шишках"

В общем я жал все то, что делает хабр Хабром. Пока что в вашей последней (на данный момент третьей) статье вы обьясняете отличие UDP от TCP.. на овертехническом ресурсе. Это что вообще, и за кого вы нас держите?

И я опасаюсь, что дальше походу будет рассказ, как между клиентом и сервером json гонять.. и прочие банальности. Потому что плавали, знаем.

Если вы считаете что у вас есть более разумный и лучший способ построения архитектуры сервера онлайн игр - дайте его миру. Я с радостью почитаю

Чтобы понять проблемы индустрии, и сделать лучшее решение, надо их чувствовать и быть погруженным в проблемы сообщества. Я могу написать о всем вышеперечисленном, за годы работы с беком и серверами la2 у меня накопилось множество мыслей, идей и прочих записочек.. но я ленивая жопа, и за прочей бытовухой никак не соберусь продолжить писать дальше о форматах Arcanum: Of Steamworks and Magick Obscura. Быть может вы и увидите пару статей от меня на тему клиент-серверного взаимодействия в MMO.. но не в этом году точно.

Спасибо за идею к следующей статье

При всем пессимизме с вашей стороны я понял что Фотон переоценил, я думал там может быть большое количество онлайн

Это еще раз доказывает что реализации такого сервиса будет многим полезна у кого нет финансовых и технических возможности сделать свое

А вы вообще с ним знакомились, там в FAQ одним из первых пунктов написано, что это решение для комнат по 16 человек (для комфортной игры)

Если вам действительно интересно подискутировать по поводу архитектурных решений и узнать получится или нет - можете подписаться на мой профиль и следить за новыми статьями точечно указывая что я делаю не так (если у Вас достаточно компетенции) или рассказать компетентным людям про проект.

Уже написана новая, как раз про архитектуру и скорость

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории