Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Насколько плох php сервер для игры? (http://www.flasher.ru/forum/showthread.php?t=210141)

Godwarlock 01.02.2015 01:42

Насколько плох php сервер для игры?
 
Собственно, вот такой вопрос. Сильно ли будет нагружаться сервер, если от 100 пользователей, будет идти запрос в бд каждую секунду? Например запрос в бд получения одной строки и вывода её во флеш.

caseyryan 01.02.2015 09:31

Если нормальный сервер, то не сильно.
Но подход какой-то не верный изначально. Кэшировать надо данные, использовать сессиии т.д. То есть не надо все и вся всегда тянуть из базы / записывать в базу

faraday 02.02.2015 19:31

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

Godwarlock 02.02.2015 19:57

Предположим, что есть игра где надо собирать монетки. За десять минут, можно собрать 100 монеток. За две минуты, собирается 20 монеток. А теперь представим краш интернета в этой игре, если их никуда не записывать, то пользователь лишается своих 20 монет. Отсюда, как вариант, это как раз дергать базу, чтобы записывать каждую собранную монетку. И при заходе/выходе из игры мы будем получать столько монет, сколько было собрано.

faraday 02.02.2015 21:24

Ну вы сами выбираете логику . Хотите чтоб сохранялось в базу при креше - сохрайяйте. Сервер в курсе когда отваливается клиент)
update базы с миллионом записей при каждом клике - смущения не вызывает? работать будет в тысячи раз медленнее. Я уж молчу каждый раз дергать модель игры из базы, и проверка каждого клика на античит.

Godwarlock 02.02.2015 21:45

Цитата:

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

faraday 02.02.2015 21:58

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

Godwarlock 02.02.2015 22:07

Не для каждого инкремента, брать id пользователя записанный в куках и сравнивать его с аналогичным значением id в базе.
Цитата:

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

faraday 02.02.2015 22:16

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

Godwarlock 02.02.2015 22:23

О запросе от сервера, в бд. О какой памяти идет речь? Можно поподробнее?)


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

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