Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   почему игры вконтакте такие ущербные? (http://www.flasher.ru/forum/showthread.php?t=137960)

greegreeman 07.04.2010 23:29

спасибо, буду разбираться. надеюсь, uddaff отвечает на вопросы по этой либе :)

ZergMaster 08.04.2010 18:43

блин, как только я знакомым серверникам предлагаю написать такую игрушку, как реалтайм файтинг, например, они округляют глаза и махают руками. Типа да ты шоо, да не выдержит такая грушка больше 2000 он-лайн. Да и вправду... вот наше приложение - 8000 он-лайн, далеко не реал-тайм, а ведь, блин, все равно сервак то и дело ладаном дышит...
Мог бы кто написать реал-тайм на, хотяб, 5000 он-лайн... вот это было бы да..

mikhailk 08.04.2010 19:22

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

На самом деле, для игр в ВК характерна еще и такая вещь, как неритмичность загрузки. Приложение может простаивать весь день, а потом набегают пользователи и оно ложится.

Vansimar 09.03.2011 11:20

итого писать игру онлайн для контакта бессмысленно так как сервер ляжет сразу как количество онлайн игроков превысят пару тысяч?

etc 09.03.2011 11:25

Цитата:

Сообщение от Vansimar (Сообщение 978933)
итого писать игру онлайн для контакта бессмысленно так как сервер ляжет сразу как количество онлайн игроков превысят пару тысяч?

Это зависит от кривости вашего сервера.

Vansimar 09.03.2011 11:33

т.е. если сервер будет написан хорошо то и 10000 онлайн игроков потянет?

etc 09.03.2011 11:40

Цитата:

Сообщение от Vansimar (Сообщение 978935)
т.е. если сервер будет написан хорошо то и 10000 онлайн игроков потянет?

А почему нет?

willis83 09.03.2011 12:17

конечно ещё зависит от "навороченности" сервера, даже для оффлайн игры для конкретных действий могут требоваться ресурсоёмкие рассчёты, неоднократные обращения к бд и текущие рассчёты сервера связанные с течением времени. Такой сервер не потянет 10000 онлайн пользователей какими бы ровными руками он не был написан. А если там все действия сводятся к тому, что пользователь нажал кнопочку, сервер сложил 2+2 и отправил ему ответ, такой сервер много потянет.

Vansimar 09.03.2011 12:38

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

goodguy 09.03.2011 12:43

Конечно будет

etc 09.03.2011 12:44

Цитата:

Сообщение от goodguy (Сообщение 978941)
Конечно будет

В виде кластера из нескольких серверов, правда.

Vansimar 09.03.2011 12:52

а если в игру будет играть вданнй момент 10000 человек,по разным комнатам по 4 человека?

etc 09.03.2011 12:54

Vansimar, послушайте, если вам надо перевезти 300 пассажиров и тридцать танков, то велосипед не подойдёт. Это очевидно.

Vansimar 09.03.2011 12:54

один сервер не успеет?

etc 09.03.2011 12:57

Цитата:

Сообщение от Vansimar (Сообщение 978946)
один сервер не успеет?

При указанных условиях однозначно нет.
В комнатах они или нет — это совершенно неважно.

И потом, сервер может быть и пеньком четвертым с 512 метрами оперативки, так и монстр на 12 ядер — это тоже важно.

Vansimar 09.03.2011 12:59

а вот так смотрите,выпустить игру,она ж не сразу будет иметь большой нагруз,одного сервера хватит,а потом игра начнет приносить деньги,и докупить еще серверов?это реально?

willis83 09.03.2011 13:01

это жизненно

правда под кластер сервер придётся переписать, может и не значительно но придётся.
Или попробовать создать по технологии load balancing и синхронизированные ДБ... хотя это смутно представляется... вообщем вариантов несколько, во многом зависит от игры.

Vansimar 09.03.2011 13:04

а сколько примерно серверов нужно чтоб обрабатывать такой поток?

etc 09.03.2011 13:04

Цитата:

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

Реально, если заранее предусмотреть возможность кластеризации.

Добавлено через 6 минут
Цитата:

Сообщение от Vansimar (Сообщение 978951)
а сколько примерно серверов нужно чтоб обрабатывать такой поток?

Зависит от кривости сервера. Делаем новый круг, ага :bye:

willis83 09.03.2011 13:12

Цитата:

Сообщение от etc (Сообщение 978952)
Реально, если заранее предусмотреть возможность кластеризации.

Если подумать, то для таких игр как танчики со скоротечными боями кластеризацией можно принебречь. Просто написать общий серверок который будет перекидывать бои на отдельные не загруженные компы, бой скоротечные, ресурсы освобождаются, об этом говорится сервер скрипту. Ну и в зависимости от нагрузки скрипт сервер раскидывает бои. Популярность игры возрасла, боёв стало ещё больше, просто докупил комп, вписал его в скрипт сервер, поставил на него нужные игровые скрипты.... +1 кластер. Другое дело когда игры типа wow, там с кластеризацией потрудней будет.

LOS2008 10.03.2011 02:11

Цитата:

Сообщение от Vansimar (Сообщение 978939)
на сервер передавать координаты танков и команды типа выстрел,лечилка

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

Про 1к онлайн игроков.
В ВК чтобы иметь аудиторию 1к одновременных сеансов, надо сперва дорасти до 1кк установок. И я не думаю что при 1кк установок вас будет сильно волновать нехватка ресурсов.

Про неравномерную загруженность приложений.
Все давно перебирались в облака.

Котяра 10.03.2011 09:09

Цитата:

Все давно перебирались в облака.
Кто эти люди? Не встречал я ещё таких, хотя в игроделе уже 7 лет.

Vansimar 10.03.2011 09:16

подождите,я теперь совсем запутался,что должен делать сервер а что клиент?

bav 10.03.2011 11:15

В общем случае, сервер – считать, реализуя логику игры, клиент – показывать пользователю, что насчитал сервер и принимать от пользователя команды и пожелания. Клиент может задумываться лишь о том, чтобы, например, не давать пользователю пятьсот раз в секунду нажимать кнопку, посылающую на сервер какие-нибудь данные.

Vansimar 10.03.2011 11:18

те допустим управление в игре должно размещаться на сервере и все классы основные?

Добавлено через 3 минуты
а не,смотри,если я нажал на кнопку впере,хмлкой я отправляю на сервер команду вперед,на сервере по формуле обрабатывается и отсылается в клиент результат выполнения?

willis83 10.03.2011 12:08

приблизительно так. клиент не должен делать важных вычислений. Т.к. клиент это достояние общественности, то не добросовестные пользователи обладающие достаточными знаниями смогут отсылать на сервер "не верные значения". Если разобраться в протоколе обмена данными с сервером то можно свободно посылать серверу "свои" данные, такие как уровень урона, полученный опыт, вообщем всё что угодно. Делать проверки принимаемых данных на сервере намного сложнее чем проводить эти вычисления там.

Vansimar 10.03.2011 12:22

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

Psycho Tiger 10.03.2011 12:46

Цитата:

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

UPD: хотя, с записью в базу будет проблемы, да.

etc 10.03.2011 12:51

Цитата:

Сообщение от Psycho Tiger (Сообщение 979236)
Почему же?
Менеджер-сервер, который распуливает пользователей по комнатам, выдавая адрес сервака. В итоге 200 комнат на одном сервере, 200 на другом - сервера без кластеризации, друг о друге ничего не знают.

UPD: хотя, с записью в базу будет проблемы, да.

Синхронизация с базой будет той ещё проблемой.

vitalik14 11.03.2011 17:22

С синхронизацией базой данной вообще проблем не должно быть, отдельный сервер БД(одна таблица с юзерами с разными флагами принадлежности), и стек вызовов.

Котяра 11.03.2011 19:34

Цитата:

Сообщение от vitalik14 (Сообщение 979645)
С синхронизацией базой данной вообще проблем не должно быть, отдельный сервер БД(одна таблица с юзерами с разными флагами принадлежности), и стек вызовов.

Хы. Теоретики они такие теоретики..

А по поводу логики я стараюсь переложить на клиент все сложные вычисления. пусть себе юзер считает.
Единственное нужно разделять логику которую можно зачитерить - её нужно считать на сервере. Да и то не всегда - бывает достаточно делать проверки. Если проверки не проходят - читер.
Например поиск пути:
Клиент кликнул на точку - посчитал путь - отправил на сервер. сервер просто провалидировал путь - чтобы читеры не слали путь сквозь стены, например, или не делали мгновенного перемещения.
Если считать по астар на сервере - довольно нагрузочная задача.
Но для ботов сервер считает сам.

vitalik14 11.03.2011 21:59

Здесь вариант просто включить множество возможных вариантов (как правила в шахматах).
Пример, максимальный шаг передвижение по экрану 1px за 1 квант-запрос, все остальное игнор..
Что то на подобии битовой маски состояния(или иначе графы состояний).
Единственная проблема здесь боты))но это бичь нашего времени(в плане игр).

aaanet 21.03.2011 19:54

А подскажите пожалуйста. Как примерно высчитать какой сервер нужен.
Или какой максимальный пропускной канал серва?
Какой траффик будет идти от одного человека, играющего в приложение?

Сорри. Не могу правильно сформулировать что нужно. Надеюсь меня поймут.

DJDrugsounD 01.06.2011 23:32

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

Typeof 03.06.2011 14:32

Цитата:

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

Что значит "не знаю как реализовать онлайн"? Т.е. не знаешь как написать сервер или не знаешь самой сути обмена между двумя игроками через сервер? Или просто не знаешь языка на котором можно было бы написать сервер? )

rs7 04.06.2011 15:43

Большой % людей имеет непозволительный для реалтайма пинг.
Большой % людей сидит через прокси - не получается подцепиться по сокету.

Из-за этого теряется смысл браузерной игры, проще писать клиента отдельно.

Bgg 04.06.2011 15:50

Цитата:

Сообщение от rs7 (Сообщение 1001179)
Большой % людей имеет непозволительный для реалтайма пинг.
Большой % людей сидит через прокси - не получается подцепиться по сокету.

Из-за этого теряется смысл браузерной игры, проще писать клиента отдельно.

Большой это какой? Большой процент игроков живет в Питере и в Москве, они платят деньги и у них все ок с пингом и интернет соединением в целом.

DJDrugsounD 06.06.2011 02:12

Typeof да именно не знаю сути и не знаю как написать сервер, не разу с этим не сталкивался

Hudson 29.08.2011 21:19

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


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

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.