Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2011, 18:17   #11
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

К черту базу. Используйте сессию, Вы же игрушку не для 30 человек пишите, а использование БД очень сильно притормаживает игровой процесс. Все триггеры и временные переменные держите в сессиях или файлах.
Виталий Желтяков вне форума Ответить с цитированием
Старый 02.01.2011, 18:49   #12
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Виталий Желтяков, а если юзер начнет строить мельницу и выйдет из игрушки, сессия же закончится? Как потом проверить, достроилась ли мельница или нет, и когда именно она достроилась? Или я не правильно понимаю?
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 03.01.2011, 09:03   #13
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Цитата:
Виталий Желтяков, а если юзер начнет строить мельницу и выйдет из игрушки, сессия же закончится?
Не надо выходить. Пользователь не обламается подержать вкладку браузера открытой несколько минут.
Я вообще не понимаю проекты, где с пользователями "цацкаются". Если пользователь зарегистрировался, то значит он должен соблюдать определённые правила. А это потакание удобству пользователю выливается в дыры в безопасности и падении производительности.
Виталий Желтяков вне форума Ответить с цитированием
Старый 03.01.2011, 12:34   #14
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Виталий Желтяков Посмотреть сообщение
Не надо выходить. Пользователь не обламается подержать вкладку браузера открытой несколько минут.
Я вообще не понимаю проекты, где с пользователями "цацкаются". Если пользователь зарегистрировался, то значит он должен соблюдать определённые правила. А это потакание удобству пользователю выливается в дыры в безопасности и падении производительности.
ИМХО:

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

А "это потакание удобству пользователя" ни во что не выливается - если разработчик имеет светлую голову и прямые руки.
Да и нынешнее серверное "железо" и доступный "толстый" Интернет позволяют сделать многое ради удобства пользователей и максимально широкой функциональности самого проекта.

Не будете "цацкаться" с пользователями - со временем у вашего проекта не будет пользователей вообще...
Andkorol вне форума Ответить с цитированием
Старый 03.01.2011, 13:04   #15
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

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

да и вообще по логике вашей надо все время комп держать включенным пока хочешь поиграть в игру, ИМХО бред.

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

а на моем хостинге есть поддержка Cron Jobs.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.01.2011, 14:21   #16
kpachbiu
взагрузке.рф
Форумчанин
 
Аватар для kpachbiu
 
Регистрация: 13.06.2010
Сообщений: 117
По умолчанию

Пепел Феникса ты что собрался браузерную игру делать?
На каком уровне знаешь PHP, MySQL, Javascript, AJAX ?
Взагрузке.рф - Файлы для людей
Ищу художника или веб-дизайнера для создания браузерной онлайн игры! icq 340-289-851
kpachbiu вне форума Ответить с цитированием
Старый 03.01.2011, 15:15   #17
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

на достаточном, но команду не предлагать, это сейчас хобби пока.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.01.2011, 16:37   #18
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

По поводу "цацканья" с пользователями:
- Рассмотрим простой пример. Дан средний игровой сервер с 3000 посетителями в день. Допустим "постройка мельницы" сводиться только к подключению к БД, т.е. на неё тратиться 0.02 сек.
Наступил вечер. Пиковая нагрузка примерно будет для такого сервера равна 100 запросам в секунду. Если все пользователи обратились к БД, то задержка выполнения скриптов составит 100*0.02 = 2 секунды.
Результат:
+ Игрок получает возможность сохранить прогресс,
- Игрок ушел из игры так, как игра по вечерам, когда интересно играть, просто тормозит.

Пример идеализирован, то есть для реального сервера с такой нагрузкой ситуация будет хуже. Это можно компенсировать оптимизацией в др.месте или арендой более дорогого сервера.

Цитата:
Подобные проекты(браузерные игры) как раз и должны привлекать пользователей не только интересным геймплеем, но и удобством интерфейса, в том числе - постоянной поддержкой всех моментов игрового процесса.
Именно забивание на юзабилити часто становится причиной того,что интересные и перспективные проекты очень быстро умирают - кому интересно играть в игру,где ты постоянно что-то кому-то "должен"...?
Больше половины игроков уходят из-за низкой скорости игры. Из-за отсутствия удобности уходят менее 20% игроков.
Цитата:
А "это потакание удобству пользователя" ни во что не выливается - если разработчик имеет светлую голову и прямые руки.
Вот Я так и делаю. Если хотят играют по-моим правилам быстро и достаточно удобно, не хотят пусть идут к конкурентам, у которых медленно, но удобней.
Цитата:
Да и нынешнее серверное "железо" и доступный "толстый" Интернет позволяют сделать многое ради удобства пользователей и максимально широкой функциональности самого проекта.
Где Вы такое услышали? Более трёх четвертей пользователей рунета используют канал 256 Кб и менее. За сколько секунд ваш проект загрузиться на такой скорости? Большинство игр просто не рассчитанны на такой канал.
Цитата:
Не будете "цацкаться" с пользователями - со временем у вашего проекта не будет пользователей вообще...
Не думаю, ко мне перейдут те 3/4 пользователей с фиговым интернетом. В мире интернета побеждает всегда быстрейший. Такова психология людей - им нужны скорость и результат, а не "правильно построенная мельница".
Цитата:
если человеку нужно уйти то не станет он комп держать включенным.
Ну и зачем нам такой игрок?
Цитата:
в той же войне племен, через БД делается и все нормально.
14 серваков обеспечивают это нормально.... Без комментариев.
Цитата:
да и вообще по логике вашей надо все время комп держать включенным пока хочешь поиграть в игру, ИМХО бред.
Да, именно так. Будете позволять пользователям бегло играть от игры не будет дохода. Основные суммы вносят игроки, которые часами сидят за компом.
Цитата:
меня лично все еще коробит то что сервер начинает работать только по желанию клиента так сказать, то есть об офф уведомлениях можно забыть...
Используйте переменные-тригерры и буфферные таблицы.
Виталий Желтяков вне форума Ответить с цитированием
Старый 03.01.2011, 23:57   #19
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Виталий Желтяков, хм... странное у вас отношение к пользователям... (Вам бы с моим шефом пообщаться )
Ну, скажем так... На чем держатся браузерки? На проплате юзерами реала хозяевам игры. Допустим, я юзер игры. Я проплатила сколько-то баксов, чтоб отстроить эту мельницу. Тут входит мой шеф, который не любит, что я играю на рабочем месте. Я, перепугавшись, вместо "Свернуть" щелкаю на кнопку "Закрыть". Браузер закрывается. Сессия убита. Мельницы нет. Я потратила реальные деньги. Больше я в эту игру не зайду. Или буду судиться(а такое бывает, как показывает практика).

Или если же при покупке мельницы в БД записывается, что я таки построила мельницу, но не высчитывается время ее строительства, то: я щелкаю на кнопку "Построить мельницу", в БД записывается, что мельница у меня есть, я закрываю браузер, открываю - и вуаля - мельница построена, и 10 минут ждать не пришлось. (А ведь много бабла приходит из необходимости ускорять строительство).

Цитата:
Да, именно так. Будете позволять пользователям бегло играть от игры не будет дохода. Основные суммы вносят игроки, которые часами сидят за компом.
Как занятый человек, я просто не буду играть в игрушку, которая заставляет меня быть постоянно в ней.

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

Цитата:
Где Вы такое услышали? Более трёх четвертей пользователей рунета используют канал 256 Кб и менее.
С этим согласна. У меня самой инет медленней некуда... Однако, я лучше подожду лишние 20 секунд, чем пущу свой реал на ветер.

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

Цитата:
Используйте переменные-тригерры и буфферные таблицы.
А об этом можно поподробнее? Что это такое и с чем его едят?

Цитата:
меня лично все еще коробит то что сервер начинает работать только по желанию клиента так сказать, то есть об офф уведомлениях можно забыть...
Можно сделать иллюзию офф-уведомлений: например, если мельница должна была сгореть пока юзера не было в он-лайне, то при загрузке игры это проверить и послать уведомление. Хотя меня тоже это напрягает. Возможно, есть способ получше, но я пока об этом не знаю...
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 04.01.2011, 00:44   #20
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Цитата:
Допустим, я юзер игры. Я проплатила сколько-то баксов, чтоб отстроить эту мельницу. Тут входит мой шеф, который не любит, что я играю на рабочем месте. Я, перепугавшись, вместо "Свернуть" щелкаю на кнопку "Закрыть". Браузер закрывается. Сессия убита. Мельницы нет. Я потратила реальные деньги. Больше я в эту игру не зайду. Или буду судиться(а такое бывает, как показывает практика).
Неправильная постановка решения. Вы слишком преувеличиваете опасность использования сессий.
В моём варианте выглядит так:
- У игрока, допустим 100 "рупий".
Он решил построить мельницу и подал команду на строительство. Происходит инициализация процесса строительства (проверка возможности оного), т.е. первое обращение к БД. При инициализации в сессию добавляется переменная строительства мельницы.
Идёт время. Пользователю показывается индикатор строительства, значения которого берётся из сессии. Нагрузки почти никакой.
Пришло время завершения строительства. Происходит второе подключение к БД. Игроку добавляется мельница и списываются 100 "рупий".
--
Как видите всё легко и просто. На практике перенос временных переменных в сессии даёт около 20% производительности.
Цитата:
Как занятый человек, я просто не буду играть в игрушку, которая заставляет меня быть постоянно в ней.
Я уже ответил на данное замечание - "Основные суммы вносят игроки, которые часами сидят за компом."
Цитата:
я лучше подожду лишние 20 секунд
Больше половины пользователей не будут играть в игру, если обработка действия затягивается более, чем на 8 секунд. Это статистика.
Цитата:
Игрок хочет себя чувствовать крутым игре, особенно если платит за нее бабло.
Тоже ответил - "Такова психология людей - им нужны скорость и результат".
Вы недооцениваете влияние скорости игры на отношение людей к вашему продукту или Вы не представляете какое возмущение вызывают у заплативших игроков тормоза во время игры.

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

Буфферные таблицы - это таблицы memory содержащие два поля: идентификатор игрока и команду необходимую для выполнения. Такие таблицы удобно использовать для организации чата, т.к. они более надёжны чем файлы.
Виталий Желтяков вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как написать БОТ для онлайн игры? Roshan Gamedev - cоздание игр: Unity, OpenGL, DirectX 22 30.03.2011 22:19
Как сделать бота для онлайн игры? zotox Gamedev - cоздание игр: Unity, OpenGL, DirectX 15 24.09.2009 17:34
из каких модулей создаются игры alex(21) Паскаль, Turbo Pascal, PascalABC.NET 6 14.08.2009 18:42