![]() |
спасибо, буду разбираться. надеюсь, uddaff отвечает на вопросы по этой либе :)
|
блин, как только я знакомым серверникам предлагаю написать такую игрушку, как реалтайм файтинг, например, они округляют глаза и махают руками. Типа да ты шоо, да не выдержит такая грушка больше 2000 он-лайн. Да и вправду... вот наше приложение - 8000 он-лайн, далеко не реал-тайм, а ведь, блин, все равно сервак то и дело ладаном дышит...
Мог бы кто написать реал-тайм на, хотяб, 5000 он-лайн... вот это было бы да.. |
Танчики-онлайн, о которых указывалось в данной теме, тянут по 500 игроков на сервер. Причем, на мой взгляд, они красиво вышли из положения - просто предлагают игроку самому выбрать, к какому серверу он коннектится. Если уже нарисовался оверлоад, то и лезть туда нечего.
На самом деле, для игр в ВК характерна еще и такая вещь, как неритмичность загрузки. Приложение может простаивать весь день, а потом набегают пользователи и оно ложится. |
итого писать игру онлайн для контакта бессмысленно так как сервер ляжет сразу как количество онлайн игроков превысят пару тысяч?
|
Цитата:
|
т.е. если сервер будет написан хорошо то и 10000 онлайн игроков потянет?
|
Цитата:
|
конечно ещё зависит от "навороченности" сервера, даже для оффлайн игры для конкретных действий могут требоваться ресурсоёмкие рассчёты, неоднократные обращения к бд и текущие рассчёты сервера связанные с течением времени. Такой сервер не потянет 10000 онлайн пользователей какими бы ровными руками он не был написан. А если там все действия сводятся к тому, что пользователь нажал кнопочку, сервер сложил 2+2 и отправил ему ответ, такой сервер много потянет.
|
а вот например,те же танки,допустим игра под вконтакте,на сервер передавать координаты танков и команды типа выстрел,лечилка и тд..он будет успевать все это обрабатывать?
|
Конечно будет
|
Цитата:
|
а если в игру будет играть вданнй момент 10000 человек,по разным комнатам по 4 человека?
|
Vansimar, послушайте, если вам надо перевезти 300 пассажиров и тридцать танков, то велосипед не подойдёт. Это очевидно.
|
один сервер не успеет?
|
Цитата:
В комнатах они или нет — это совершенно неважно. И потом, сервер может быть и пеньком четвертым с 512 метрами оперативки, так и монстр на 12 ядер — это тоже важно. |
а вот так смотрите,выпустить игру,она ж не сразу будет иметь большой нагруз,одного сервера хватит,а потом игра начнет приносить деньги,и докупить еще серверов?это реально?
|
это жизненно
правда под кластер сервер придётся переписать, может и не значительно но придётся. Или попробовать создать по технологии load balancing и синхронизированные ДБ... хотя это смутно представляется... вообщем вариантов несколько, во многом зависит от игры. |
а сколько примерно серверов нужно чтоб обрабатывать такой поток?
|
Цитата:
Добавлено через 6 минут Цитата:
|
Цитата:
|
Цитата:
Про 1к онлайн игроков. В ВК чтобы иметь аудиторию 1к одновременных сеансов, надо сперва дорасти до 1кк установок. И я не думаю что при 1кк установок вас будет сильно волновать нехватка ресурсов. Про неравномерную загруженность приложений. Все давно перебирались в облака. |
Цитата:
|
подождите,я теперь совсем запутался,что должен делать сервер а что клиент?
|
В общем случае, сервер – считать, реализуя логику игры, клиент – показывать пользователю, что насчитал сервер и принимать от пользователя команды и пожелания. Клиент может задумываться лишь о том, чтобы, например, не давать пользователю пятьсот раз в секунду нажимать кнопку, посылающую на сервер какие-нибудь данные.
|
те допустим управление в игре должно размещаться на сервере и все классы основные?
Добавлено через 3 минуты а не,смотри,если я нажал на кнопку впере,хмлкой я отправляю на сервер команду вперед,на сервере по формуле обрабатывается и отсылается в клиент результат выполнения? |
приблизительно так. клиент не должен делать важных вычислений. Т.к. клиент это достояние общественности, то не добросовестные пользователи обладающие достаточными знаниями смогут отсылать на сервер "не верные значения". Если разобраться в протоколе обмена данными с сервером то можно свободно посылать серверу "свои" данные, такие как уровень урона, полученный опыт, вообщем всё что угодно. Делать проверки принимаемых данных на сервере намного сложнее чем проводить эти вычисления там.
|
блин...я теперь не знаю как это писать...не могли бы вы пожалуйста дать ссылоку где можно про это почитать,как отсылать запросы и принимать,и как сделать чтоб это на сервере обрабатывать?
|
Цитата:
Менеджер-сервер, который распуливает пользователей по комнатам, выдавая адрес сервака. В итоге 200 комнат на одном сервере, 200 на другом - сервера без кластеризации, друг о друге ничего не знают. UPD: хотя, с записью в базу будет проблемы, да. |
Цитата:
|
С синхронизацией базой данной вообще проблем не должно быть, отдельный сервер БД(одна таблица с юзерами с разными флагами принадлежности), и стек вызовов.
|
Цитата:
А по поводу логики я стараюсь переложить на клиент все сложные вычисления. пусть себе юзер считает. Единственное нужно разделять логику которую можно зачитерить - её нужно считать на сервере. Да и то не всегда - бывает достаточно делать проверки. Если проверки не проходят - читер. Например поиск пути: Клиент кликнул на точку - посчитал путь - отправил на сервер. сервер просто провалидировал путь - чтобы читеры не слали путь сквозь стены, например, или не делали мгновенного перемещения. Если считать по астар на сервере - довольно нагрузочная задача. Но для ботов сервер считает сам. |
Здесь вариант просто включить множество возможных вариантов (как правила в шахматах).
Пример, максимальный шаг передвижение по экрану 1px за 1 квант-запрос, все остальное игнор.. Что то на подобии битовой маски состояния(или иначе графы состояний). Единственная проблема здесь боты))но это бичь нашего времени(в плане игр). |
А подскажите пожалуйста. Как примерно высчитать какой сервер нужен.
Или какой максимальный пропускной канал серва? Какой траффик будет идти от одного человека, играющего в приложение? Сорри. Не могу правильно сформулировать что нужно. Надеюсь меня поймут. |
а лучше использовать 2 в одном, т.е. обычная игра с некоторыми элементами реалтайма, чем в данный момент я и занимаюсь, только пока не знаю как реализовать онлайн между двумя играками))
|
Цитата:
|
Большой % людей имеет непозволительный для реалтайма пинг.
Большой % людей сидит через прокси - не получается подцепиться по сокету. Из-за этого теряется смысл браузерной игры, проще писать клиента отдельно. |
Цитата:
|
Typeof да именно не знаю сути и не знаю как написать сервер, не разу с этим не сталкивался
|
Ну а к примеру если мы имеем какую-то походовую игру, где ход каждого игрока по очереди ограничивается таймером - мы можем обойтись прямыми запросами (flash-php-mysql), не обращаясь к сокетам и серверам на яве и си?
Как часто отправлять запросы к мускул-серверу? допустим игра на двух игроков. По необходимости или синхронизировать с "отстающим" игроком? Просто если изначально при заходе на сервер перед непосредственно стартом самого процесса игрового делать запись в какой-то таблице - мол мы зашли и онлайн, а потом просто обновлять статус записи - как часто это делать двум игрокам? |
| Часовой пояс GMT +4, время: 13:29. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.