Войти
ПрограммированиеФорумСеть

Мастер сервер и с чем его едят? (3 стр)

Страницы: 1 2 3
#30
1:13, 22 июня 2018

Chupakaber
Проще делается.
Сишная библиотека обертывается в com, который одним движением цепляется в C#.

> сервер на linux на шарпе (mono) чуствует себя не хуже, чем на винде
Ты хотел сказать, он на linux себя чувствует также плохо, как в винде ;) С трудом приближаясь по производительности к 10% возможностей юниксового сервера, выполняющего те же функции.


#31
2:17, 22 июня 2018

Chupakaber
> на плюсах можно накидать библиотеку с игровой математикой
юнитехи уже и сами роют в этом направлении, и компилятор который положит всё на AVX, и саму либу
https://github.com/Unity-Technologies/Unity.Mathematics

#32
8:39, 22 июня 2018

Sh.Tac.
> юнитехи уже и сами роют в этом направлении

Zab
> Проще делается.

Chupakaber
> на плюсах можно накидать библиотеку с игровой математикой
> на шарпе подключать её к текущему варианту с экземпляром юнити в виде сервера,

Так суть в том, что нет у нас особо сложной игровой математики. По сути эта либа валидации, будет принимать двумерный массив поля, настройки конкретной сущности и желаемую команду, а возвращать может ли эта сущность сделать то, что от неё хотят)
Сплошная проверка флагов и обращения по индексу в массив. Никакой математики сложнее +-. А сам сервер-лобби будет хранить состояния поля и применять команды, если они проходят валидацию.
А раз так, есть ли смысл заморачиваться?

#33
12:21, 22 июня 2018

Germes
двумерный массив поля 100 х 100 это 10 000 элементов помноженое на кол-во указателей на каждое значение структуры элемента, это, полагаю много-много пищи для сборщика мусора
в manged коде. и думаю это только верхушка айсберга
попробуй на шарпе запусти для теста генерацию 5 000 таких игровых полей и немного погоняй в них рассчеты, хотя бы последовательно, проверь не будет ли фризов периодических
если GC проблему не создает, то, конечно на плюсы выносить не имеет существенной выгоды

#34
13:10, 22 июня 2018

Chupakaber
Ну, у нас поле максимум 10х10) не те масштабы. Обращение к ним идёт через индексы. Сверка чего-либо тоже через индексы, при это не нужна обработка всего поля, а максимум 10 клеток, обращение к которым тоже по индексам.

Теперь смотрим на зп плюсовика, затем смотрим на цены месячной аренды серверов.
Скажем так, на зп плюсовика можно арендовать по самому скромному подсчёту штук 25 серверов (один сервер - шестиядерный i7-8700 + 64ГБ DDR4 + 12 ТБ харда/500 ГБ SSD). При этом вариантов машин полно и можно будет спокойно пеерезжать на другие сервера, хоть на AMD EPYC, у которого 24 ядра и 128 ГБ DDR4.
При этом остаётся возможность поддерживать адекватное нагрузкам расширение используя один-два-три сервера, пока нагрузка на них остаётся в рамках дозволенного.

Вот и пытаюсь сейчас понять - стоит ли игра свеч. Или проще написать сейчас всю логику на тех же шарпах, спец по которым сможет кодить и клиент и сервер, а значит ни на каких стадиях разработки не станет простаивать.
Высчитать примерную вилку нагрузки единовременного онлайна (ну, например, 30 000 человек) после которой будет выгоднее нанять на полную ставку серверника плюсовика, чем расширяться горизонтально.
И плясать уже из этой вилки) а то может проект никогда и не наберёт онлайна такого, чтобы количество игроков существенно влияло на производительность.
А вместо 100 евро за два мощнейших сервера, при текущих нагрузках, мы будем платить 1500 плюсовику)

При этом замену реализации логики никто и не заметит - мы просто подменим либу, оставив прежние интерфейсы.

Хотя, не исключено, что я всё ещё не совсем понимаю все подводные камни подобного решения.

#35
13:53, 22 июня 2018

Germes
> Высчитать примерную вилку нагрузки единовременного онлайна (ну, например, 30
> 000 человек) после которой будет выгоднее нанять на полную ставку серверника
> плюсовика
ну да. вот я и предложил запустить симуляцию одновременных игровых сессий в большом количестве на некоторой железке и посмотреть каков порог, где GC будет создавать заметные фризы
если не совсем всё плохо, то где-нибудь на 5-10 тыс паралельных игровых сессий уже смысла в плясках вокруг игровой логики не будет, т.к. узким местом станет уже транспортная часть, пул подключений игроков, поэтому смысла в плюсовом модуле может вообще не быть в принципе

#36
14:08, 22 июня 2018

Chupakaber
Ок, спасибо, понял мысль :)

#37
15:09, 22 июня 2018

Germes
> Ну, у нас поле максимум 10х10) не те масштабы. Обращение к ним идёт через
> индексы. Сверка чего-либо тоже через индексы, при это не нужна обработка всего
> поля, а максимум 10 клеток, обращение к которым тоже по индексам.

И это на самом деле, еще и pooling никто не отменял :)

#38
15:12, 22 июня 2018

D_A_C
ну, его я вообще по умолчанию подразумеваю)

#39
18:45, 4 июля 2018

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

Поржал...
Я как понимаю "в моем окружении" это в вашей сельской школе?

#40
18:55, 4 июля 2018

Germes
Так как вы выбираете язык, то судя по всему, серверные проекты вы еще не делали, пишите тогда на C# (токо mono на линуксе так себе работает),
а еще лучше на java, как минимум получите опыт и будет легче потом найти серверятника в команду.

Ни в коем случае не ведитесь на C++ , это уже даже не смешно.. еще бы Asm предложили.. весь бред местной молодежи про скорость C++ это дичь, потом пройдет ;)..
у вас же нету дикой математики, вы скорее упретесь в БД и в сеть, а тут что плюсы  , что java , что xyz одна фигня.
А отлаживать этот сервер будет еще то развлечение.. ну и молчу про масштабирование.

#41
19:08, 4 июля 2018

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

Эээммм вы видно застряли лет 10 назад... STW в GC на современных JVM надо ну очень постараться сделать больше 50ms.. да и их количество за сутки будет измеряться парой десятков
P.S. Не думаю что у C# GC все хуже чему у java GC

#42
22:04, 4 июля 2018

itx
Прежде чем пытаться кого-то тролить, лучше посмотреть кого собственно тролишь. А то можно в просак попасть. Как сейчас, например.

#43
22:31, 4 июля 2018

Tiendil
Кого? :) школьное ЧСВ?
Ты же тоже не знаешь кому отвечаешь. Твои ответы показывают школную ГЛУПОСТЬ. Любовь к свистопепделкам на питончике.. нууу ;))

Ну давай обсуди HA/HL с человеком кто знает что это и разрабатывал системы под миллионы устройств.

Страницы: 1 2 3
ПрограммированиеФорумСеть

Тема в архиве.