forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Болтовня (http://forum.boolean.name/forumdisplay.php?f=25)
-   -   На чем писать сервер ММО игры (http://forum.boolean.name/showthread.php?t=14019)

HolyDel 08.01.2011 17:34

На чем писать сервер ММО игры
 
Предлагаю обсудить такую тему.

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

вот. обсуждаем...

Amatsu 08.01.2011 17:47

Ответ: На чем писать сервер ММО игры
 
Если бы на блитце имело смысл писать сервер, я бы уже делал мморпг :)

den 08.01.2011 17:54

Ответ: На чем писать сервер ММО игры
 
Я вот был недавно на конференции у нас в институте (вобще это оказалась хорошая, годная реклама от мелкомягких), и там в одной из лекций чел рассказывал как раз про сервера. Расказал про два подхода.
1) Если делать сервер многопоточным, то на каждого юзера надо делать поток. Но чел также сказал о внутреностях потоков. Поток при инициализации захапывает себе кусок памяти (точно не помню, но вроде сказал что связанно с процесорами:dontknow: ), и поэтому даже если поток обрабатывает мало инфы то памяти жрёт относительно много.
2) Если делать сервер асихронным (могу ошибится в терминологии) то при большом кол-во юзверей система будет долго переключатся от одного пользователя к другому.

Поэтому выбор технологии на стороне сервера.

Также сказал что в пятом нэт фраемворке будет два класса - для реализаии многопоточности и асихроности. Он показал пример кода так там весь алгоритм сводится к инициализации нужного класса.:)

Цитата:

Сообщение от Amatsu (Сообщение 174869)
Если бы на блитце имело смысл писать сервер, я бы уже делал мморпг :)

дык для ммо и машина нужна хорошая и работать должно круглосуточно. Или это была шутка?:)

HolyDel 08.01.2011 18:10

Ответ: На чем писать сервер ММО игры
 
ппц. сервер на 2/4/8/16/32 юзера чтоли? я думаю по потокам надо разделять локации, но суть не в этом... Скажем так - насколько критична для сервера ММО быстродействие в целом, можно ли ею жертвовать ради безопасности, ваше мнение?

ABTOMAT 08.01.2011 18:24

Ответ: На чем писать сервер ММО игры
 
Цитата:

я думаю по потокам надо разделять локации
Поддерживаю.
Возможно, для сервера скорость и не так критична (т.к. можно тупо купить больше мощностей), а вот для клиента - да, посылать в магазин за новой железкой - неприлично-с.
Однако деньги на сервер тоже не резиновые. На плюсах можно вполне себе писать стабильный сервер. Опять же, понадобится больше человеко-часов, если они высоко оплачиваются, есть смысл пожертвовать производительностью чтоб сэкономить на людях и взять шарпы. (Апогей такого принципа - php)
Короче, если б я стал писать сервер, стал бы это делать на плюсах (не доверяю шарпам), но и шарпы - тоже годно. (с учётом JIT вполне способны работать с норм. скоростью, которая, как писалось выше, не так критична)

Randomize 08.01.2011 18:34

Ответ: На чем писать сервер ММО игры
 
Если мало времени, то лучше взять C#.
Плюсы:
1) Cкорость разработки
2) Простота отладки
3) Это не питон :D



Кстати Jimon поднимал этот вопос на ГД: http://www.gamedev.ru/code/forum/?id=78290

ffinder 08.01.2011 19:11

Цитата:

Сообщение от HolyDel (Сообщение 174867)
надо писать на плюсах. Я считаю что шарп больше подойдет

а чо, есть всего два языка в мире, да?

для серверной технологии есть несколько требований:
1. fault-tolerance, умение не падать при ошибках. отказ в обслуживании одного клиента не должен ломать услугу для остальных.
2. горячая замена кода. без комментариев.
3. неостанавливающий сборщик мусора. есть только в Erlang и в платформе для Java, которая называется Azul. если есть еще где - не стесняйтесь сказать.

Цитата:

Сообщение от Amatsu (Сообщение 174869)
Если бы на блитце имело смысл писать сервер, я бы уже делал мморпг :)

фейспалм же.
риальне плакаю.
если бы только в сервере был вопрос...

falcon 08.01.2011 20:58

Ответ: На чем писать сервер ММО игры
 
Ой как вовремя вы эту тему подняли :)
Я сейчас решил углубиться в разработку подобных систем, чисто для самопрокачки :)
Для разработки сервера выбрал C#
Не могу точно аргументировать выбор (даже в доке причины выбора очень неубедительно выглядят). C# выбрал только потому, что хотел на практике освоить этот язык.
Вроде работа с сокетами везде примерно одинаковая, к тому же есть множество готовых решений по работе с сокетами, базами, многопоточностью... и для плюсов и для шарпа и для жабы... другое дело что шарп и джава несколько проще и надёжней, нежели плюсы. Опять же часто натыкаюсь на высказывания о суровой требовательности шарп\джава приложений... мол затраты памяти можно смело умножать на два. Но не менее часто натыкаюсь и на несогласных с этим))

в общем интересно что скажут люди более или менее разбирающиеся в этой теме :)
(речь ведь идёт о НЕбраузерных ммо?)

по мне, так очень важно установить требования к серверу, и лишь после этого выбирать инструменты.. для браузерных ММО мб и пхп хватит за глаза и за уши..
Где не стоит вопроса о минимизации трудозатрат (разработка "для души" или мб огромное финансирование) - можно выбрать плюсы.. для создания надёжной(!) системы потребуется много времени.

Там же, где требуется создать надёжный продукт в кротчайшие сроки - стоит обратить внимание на шарп\жабу.

ffinder 08.01.2011 21:43

Ответ: На чем писать сервер ММО игры
 
джемон, ты чота наредактировал, что наши с холи посты вместе скукожились. а ну раскукож все обратно!

jimon 08.01.2011 21:48

Ответ: На чем писать сервер ММО игры
 
я думаю люди смотрят немного не с той стороны на разработку сервера в целом, вот что такое сервер для клиента ? по-сути это коробка которая находится где-то и которая подключена к интернету

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

для эффективной настройки и создания производительного софта нужен будет специалист высокого уровня который понимает как это всё работает, а не выполняет какую-то инструкцию написанную до него, а если у нас уже есть необходимый специалист то значит можем нанять и второго, а быстрее всего опытным людям написать производительный сервер на C++, благо есть весь необходимый инструментарий (у google и facebook высоконагруженные системы на c++ работают, они дураки чтоли ?)

возможно для очень производительных систем стоит смотреть в сторону RTOS, а там нет никаких java и c#, серьезные инструменты же

Цитата:

джемон, ты чота наредактировал, что наши с холи посты вместе скукожились. а ну раскукож все обратно!
упс, не то слил :) HolyDel писал :
Цитата:

Цитата:

а чо, есть всего два языка в мире, да?
я потому и говорю - "обсуждаем".

1. согласен
2. согласен
3. не критично

den 08.01.2011 21:58

Ответ: На чем писать сервер ММО игры
 
Ну всё, опять холивар щас начнётся...
И так, тема очередного холивара: что использовать при разработке сервера - C++ или C# ??

falcon 08.01.2011 22:03

Ответ: На чем писать сервер ММО игры
 
Den параноик, не?
вполне годный тред :)

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

jimon 08.01.2011 23:03

Ответ: На чем писать сервер ММО игры
 
falcon
для <=256 человек можно что угодно использовать имхо, но стоит понимать что на чём угодно много денег не заработаешь :)

ps. видел как люди делали сетевые крестики нолики на bat файлах, и ничо так

Amatsu 08.01.2011 23:17

Ответ: На чем писать сервер ММО игры
 
Цитата:

Сообщение от jimon (Сообщение 174913)
falcon
для <=256 человек можно что угодно использовать имхо

Для такого можно даже на блитце сервер написать, без использования графического режима (он тогда почти не грузит систему).

SBJoker 08.01.2011 23:37

Ответ: На чем писать сервер ММО игры
 
C# язык специально разработан для разработки отказоустойчивых приложений, быстродействие несильно отличается от плюсов если писать годный код а не быдлокодить. Сетевая часть сильная. Если понадобятся потоки - их есть у нас.

При жжелании если будут критичные места по времени выполнения можно и с++ вставки сделать и асм, для чего unsafe секции и предусмотрены.

Возможностей совершить критическую ошибку мало.


Часовой пояс GMT +4, время: 16:29.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot