ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» Мозговая штормилка. | страница 11 |
|
|
|
Канал Игры Мечты: «Мозговая штормилка.» |
|
|
Shirson 1605 EGP
Рейтинг канала: 7(626) Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002 |
|
VBKesha, да, да, ты гений. Ты знаешь много крутых и правильных слов. Только не нужно их больше писать в этой теме, ок? Я её не для фаллометрии открыл.
Спасибо.
_________________ У меня бисера не доxеpа. |
|
|
VBKesha 817 EGP
Рейтинг канала: 3(31) Репутация: 132 Сообщения: 3330 Откуда: обл.Брянская г. Трубчевск Зарегистрирован: 07.12.2005 |
|
Shirson : |
Ты знаешь много крутых и правильных слов. Только не нужно их больше писать в этой теме, ок?
|
Всегда пожалуйста. Болше я в этой теме не появляюсь.
Shirson : |
Я её не для фаллометрии открыл
|
Почемуто сложилось совсем обратное впечатление.....
|
|
|
Shirson 1605 EGP
Рейтинг канала: 7(626) Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002 |
|
Спасибо.
сложение обратных впечатлений личное дело каждого
_________________ У меня бисера не доxеpа.
Последний раз редактировалось: Shirson (22:36 01-05-2008), всего редактировалось 1 раз |
|
|
Crimson 560 EGP
Рейтинг канала: 4(83) Репутация: 130 Сообщения: 3041
Зарегистрирован: 03.09.2003 |
|
Сервер единый и неделимый? Игрокам доверяется только клиент?
Shirson : |
+ Теоретически можно использовать клиенты сторониих разработчиков.
...
- Теоретически можно использовать клиенты сторониих разработчиков.
|
В чем минус? Корректность входящих данных по хорошему нужно проверять и так и так. Гарантировать совместимость с чужими клиентами ты не обязан, а если кто-то думает, что может сделать клиент лучше - ну флаг ему в зубы.
Shirson : |
- Состояние всей игры пересылается и хранится и на стороне клиента.
|
По хорошему, клиенту отсылается только то, к чему он в игре имеет доступ... Или вопрос в трафике на данные, которые могут и не пригодиться? Думаю он все равно меньше, чем каждый раз пересылать результаты обработки моих запросов (которые еще и грузят сервер). И окупается удобством оффлайновых ходов.
Запоздалые мысли по поводу:
Shirson : |
1. Полностью Web-based. Все операции производятся через браузер.
|
Более-менее кроссплатформенность можно попытатья сделать только если ты профессиональный веб-дизайнер с серьезным опытом работы. Иначе это данс-макабр на граблях. Маленькие, но гордые различия между разными браузерами есть даже в интерпретации HTML, а про DOM и javascript я вообще молчу. А без них интерфейс будет ну очень убогий. Да и с ними... Трафик можно пытаться бороть при помощи AJAX. Теоретически. Практически - я бы поберег мозг писать веб-интерфейс...
Shirson : |
2. Клиент с подключением. Клиент подключается к серверу и производит все операции в режиме соединения.
|
Несколько лучше для разработчика, ибо можно седлать очень тонкий (тупой) клиент, и всю логику на сервере (если хочется сделать очень скрытные правила игры). Правда тогда сервер должен быть очень толстым. Но, опять же, я хочу делать ходы в оффлайне. Сильно хочу И скрытные правила в масштабных играх не люблю.
Shirson : |
3. PBEM. Игровые ходы курсируют через мыло (как в Stars!)
|
Все таки как в старсах или конкретно через мыло? Потому что старсам в принципе по барабану как ход попадает на машину. И имхо это правильно. Курсированием ходов может заниматься отдельная утилита. Не факт что одна и та же на каждом компе.
|
|
|
Sh.Tac. 151 EGP
Рейтинг канала: 5(108) Репутация: 14 Сообщения: 1426
Зарегистрирован: 27.07.2005 |
|
эксплойты, боты и прочие радости автоматизации
По поводу 1. и 2.
их можно вполне объединить
технология называется флешь
_________________ This is what you get ...
(c) Radiohead |
|
|
Shirson 1605 EGP
Рейтинг канала: 7(626) Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002 |
|
Crimson : |
Сервер единый и неделимый?
|
В каком смысле? Если централизации, то да.
Sh.Ta уже сказал
Цитата: |
По хорошему, клиенту отсылается только то, к чему он в игре имеет доступ
|
Для понимания возьми Звёздный Ветер. Сервер пересылает клиенту всё состояние игры клиента. Картики, названия, тексты, эмблемы, иконки, параметры, координаты - всё.
Цитата: |
Но, опять же, я хочу делать ходы в оффлайне.
|
А я хочу миллион долларов
Цитата: |
Сильно хочу
|
Я еще больше хочу
Цитата: |
Все таки как в старсах или конкретно через мыло?
|
PBEM - это термин такой. "Как в Stars!" - пример где такое есть
_________________ У меня бисера не доxеpа. |
|
|
Crush 285 EGP
Рейтинг канала: 2(10) Репутация: 48 Сообщения: 1190 Откуда: Владивосток Зарегистрирован: 23.07.2003 |
|
Shirson : |
Crimson : |
По хорошему, клиенту отсылается только то, к чему он в игре имеет доступ
|
Для понимания возьми Звёздный Ветер. Сервер пересылает клиенту всё состояние игры клиента. Картики, названия, тексты, эмблемы, иконки, параметры, координаты - всё.
|
А в чем собственно проблема, если генерация хода произойдет все равно на сервере? Ну картинки, эмблемы итд (при существующем клиенте) сервер разок перешлет и все, если игрок сам залезет в эти файлы и разукрасит игру как ему вздумается это его дело. Ну нравится красные иконки на желтом фоне.. ради бога А вот координаты и статусы игровых обьектов это уже сервер может выслать клиенту, а может и не выслать, если игрок не разведал эту область или обьект находится вне зоны действия "радаров" игрока. Опять же при генерации офлайновых ходов сервер может проверить "корректность" хода сделанного игроком, так что момент чита на стороне клиента убирается.
|
|
|
Shirson 1605 EGP
Рейтинг канала: 7(626) Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002 |
|
Crush : |
А в чем собственно проблема, если генерация хода произойдет все равно на сервере?
|
Я уже написал в чём. Мне казалось, это более чем понятно и прозрачно, если это не так, попробую объяснить наглядно.
Есть два человека. У одного есть видео. Второй хочет его посмотреть / первый хочет его показать.
В случае браузерного варианта, каждый раз второму будет пересылаться гигабайты видео.
В случае клиента с предскачаным контентом, второй может смотреть его сколько угодно. А если первому нужно обратить внимание второго на отдельные моменты, ему достаточно переслать два числа для каждого - смещение и длину.
Или представь себе морской бой (или шахматы), в котором один сообщает свой ход другому, каждый раз целиком рисуя игровое поле (с тектсурами и тенями), а не сообщая координаты
Цитата: |
Ну картинки, эмблемы итд (при существующем клиенте) сервер разок перешлет и все
|
Обычно, это скачивается вместе с клиентом, хотя не суть. А суть твоего вопроса/утверждения я не понял, если честно Объясни, плз.
_________________ У меня бисера не доxеpа. |
|
|
Anthrax 145 EGP
Рейтинг канала: 3(27) Репутация: 12 Сообщения: 682 Откуда: Москва Зарегистрирован: 19.04.2003 |
|
Вопрос по множеству игроков в онлайншутере.
Как-то тут уже обсуждалось, почему очень сложно в шутере, в т.ч. и космо, аля Фрил, чтобы одновременно сидело больше 32(64) игроков. В частности, клиент не передает на сервер "попал/не попал", эта вещь расчитывается на сервере с использованием всяких алгоритмов предсказания и прочим извратом. Плюс постоянный поток udp траффика при медленном канале у одного клиента начинает тормозить онлайнигру у всех клиентов, т.к. сервер, не получая данных для своих алгоритмов предсказания, начинает тоже тормозить, включать delay и вообще функционировать не в нормальном режиме, успевая обработать и расчитать все и вся. Если расчет попадания доверить клиенту, пересылая на сервер только уже готовый результат, то скорость (и возможность числа игроков) увеличится, но это путь к тотальному читерству, поскольку у себя на машине ушлые юзеры будут подправлять данные попаданий в свою сторону до посинения.
Вопрос: а если алгоритм расчета текущих координат и попаданий будет сам зашифрован (криптография), плюс зашифрованы и сами данные, передающиеся на сервер. Как доп. мера, ключ шифровки постоянно будет меняться во времени по сигналу с сервера, скажем, на каждом клиенте раз в 1 минуту.
Позволит ли это увеличить число одновременно играющих игроков в онлайн и избавиться от проблем узкого канала у части из игроков - как элемент тормозов для всей системы?
Насколько алгоритм шифрования, вернее его замороченность, будет влиять на ту же скорость/число игроков/не тормознутость?
Возможен ли в принципе такой алгоритм шифрования в реальном времени, который юзеры сами не смогут расколоть, или во всяком случае расколоть его в течении той же 1 минуты до очередной плановой смены ключа?
_________________ Я не злопамятный. Я просто злой. И память у меня хорошая.
Последний раз редактировалось: Anthrax (21:48 14-07-2008), всего редактировалось 2 раз(а) |
|
|
Guest 2075 EGP
Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004 |
|
минутный - в принципе, RSA тебе в помощь...
Хотя нет, за минуту не расковыривается, шифрует вроде как довольно быстро, но в реальном времени наверное не потянет, да и минутные интервалы смены ключа - это как-то слишком...
Да и вообще перманентное шифрование всех данных... Паранойей попахивает Сессионного ключа должно хватить.
К тому же - от кого ты проводишь защиту? От перехвата данных?
Это всё равно ничего не даст, если у тебя есть нечто, меняющееся от сессии к сессии связи. Тот же ключ и алгоритм передачи, зависящий от него, совершенно примитивная шифровалка.
Сессионный ключ передавать через алгоритм с открытым ключом. Т.е. там ты и так защищён, по сути, тебе реал-тайм алгоритм не требуется.
А если клиент от читерства - тогда тем более не поможет, т.к. взломать твой клиент проще, чем ломать твой шифр связи
_________________ Трещит земля как пустой орех
Как щепка трещит броня |
|
|
Crush 285 EGP
Рейтинг канала: 2(10) Репутация: 48 Сообщения: 1190 Откуда: Владивосток Зарегистрирован: 23.07.2003 |
|
Shirson : |
Crush : |
Ну картинки, эмблемы итд (при существующем клиенте) сервер разок перешлет и все
|
Обычно, это скачивается вместе с клиентом, хотя не суть. А суть твоего вопроса/утверждения я не понял, если честно Объясни, плз.
|
Ну мы наверное друг друга не поняли. Я имел в виду, что имея ресурсы на клиенте и генерируя ходы на серваке, можно вполне защитится от "эксплойты, боты и прочие радости автоматизации".
|
|
|
Crimson 560 EGP
Рейтинг канала: 4(83) Репутация: 130 Сообщения: 3041
Зарегистрирован: 03.09.2003 |
|
Shirson : |
Crimson : |
Сервер единый и неделимый?
|
В каком смысле? Если централизации, то да.
|
В смысле сервер один на игру или вообще на всех? Скажем, в Старсах сервером может стать любой. Но в том же Real4X, например, серверов считанное число, выдаются они строго доверенным и проверенным лицам, рядовым обывателям доступны только клиенты и играть они могут только тогда, когда на сервере решат запустить партию.
Shirson : |
Sh.Ta уже сказал
|
Ну вообще-то в случае пошаговой стратегии я с ним аж совсем не согласен. Но из уважения к тебе спорить не буду
Shirson : |
Для понимания возьми Звёздный Ветер. Сервер пересылает клиенту всё состояние игры клиента. Картики, названия, тексты, эмблемы, иконки, параметры, координаты - всё.
|
Звездный Ветер тут при чем? Вопрос был о том, как сильно пошаговой стратегии мешает сохранение "всей игры" на стороне клиента (при наличии этого самого клиента). Звездный Ветер, по крайней мере пока я в него играл, был "реал-тайм" и в браузере
Что подразумевается под "состоянием всей игры"? Пример с морским боем не совсем удачный, там оффлайновые ходы никоим боком не присобачить. Поэтому возьмем, к примеру, пошаговые гонки. Вариант с клиентом и оффлайновыми ходами - клиенту посылается контур всей трассы, и игрок может сидеть и перебирать варианты - у клиента есть все данные чтобы решить, грубо говоря, вылетишь ты с трассы или нет.
Ты же (как я понял) предлагаешь клиенту каждый раз спрашивать сервер - а если я поставлю такую скорость и поверну на столько-то градусов, я вылечу или нет? До какого-то момента трафика на энное количество попыток действительно может быть меньше, чем трафика на передачу трассы. Но стоит ли оно того?
Shirson : |
Цитата: |
Сильно хочу
|
Я еще больше хочу
|
Ну ты девелопер, твое хочу по определению толще. Но, на мой нескромный взгляд, оффлайновые ходы все-таки очень желательны. А так я вообще много чего хочу...
|
|
|
Crush 285 EGP
Рейтинг канала: 2(10) Репутация: 48 Сообщения: 1190 Откуда: Владивосток Зарегистрирован: 23.07.2003 |
|
Crimson : |
Что подразумевается под "состоянием всей игры"? Пример с морским боем не совсем удачный, там оффлайновые ходы никоим боком не присобачить. Поэтому возьмем, к примеру, пошаговые гонки. Вариант с клиентом и оффлайновыми ходами - клиенту посылается контур всей трассы, и игрок может сидеть и перебирать варианты - у клиента есть все данные чтобы решить, грубо говоря, вылетишь ты с трассы или нет.
Ты же (как я понял) предлагаешь клиенту каждый раз спрашивать сервер - а если я поставлю такую скорость и поверну на столько-то градусов, я вылечу или нет? До какого-то момента трафика на энное количество попыток действительно может быть меньше, чем трафика на передачу трассы. Но стоит ли оно того?
|
Не, вот то что ты описал, что "у клиента есть все данные чтобы произвести расчет вылечу/нет" это уже зло. Однозначно будет чит позволяющий расчитывать идеальную траекторию. Сервер должен передать в твоем примере только контур трасы и положение других машин, а от клиента получить данные: скорость и вектор перемещения машины. А вот вылетит она с трасы или нет, эта формула должна быть только у сервера и клиент узнает о результате только когда будет сгенерирован новый ход и прийдет новое положение машины.
|
|
|
Sh.Tac. 151 EGP
Рейтинг канала: 5(108) Репутация: 14 Сообщения: 1426
Зарегистрирован: 27.07.2005 |
|
скажу больше
сервер сам должен считать всё с задержками (это помимо сетевого лага)
т.е. серверу гораздо проще считать всё моментально не заморачиваясь с таймерами...
но представьте
игрок нажал на гашетку и не отпускает, - сервак единомоментно обсчитает все пришедшие пакеты и будет мега-бум
_________________ This is what you get ...
(c) Radiohead |
|
|
Zachesa 151 EGP
Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1415 Откуда: Хабаровск Зарегистрирован: 12.11.2007 |
|
Crimson : |
До какого-то момента трафика на энное количество попыток действительно может быть меньше, чем трафика на передачу трассы. Но стоит ли оно того?
|
Максимум что положено клиенту знать это элементы из которых состоит путь: прямая, поворот, подъём, спуск, колдобина, тупик... Хотя информацию о каждой колдобине можно получать чуть раньше, чтоб клиент адекватно реагировал на потерю пакетов, в помощь клиентской системе предсказания.
Использовать UDP с некоторой избыточностью кода зависящей от качества связи (трафик общий увеличится, но незначительно ведь часть пакетов теряется же).
|
|
|
Shirson 1605 EGP
Рейтинг канала: 7(626) Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002 |
|
Crush : |
Ну мы наверное друг друга не поняли. Я имел в виду, что имея ресурсы на клиенте и генерируя ходы на серваке, можно вполне защитится от "эксплойты, боты и прочие радости автоматизации".
|
Вообще, речь шла про PBEM, хы (я подтормозил после отпуска, думал речь про WB). Там, всё состояние игры (доступное игроку) присылается клиенту - чтобы он мог работать с ним в оффлайне.
добавлено спустя 20 минут:
Crimson : |
В смысле сервер один на игру или вообще на всех? Скажем, в Старсах сервером может стать любой. Но в том же Real4X, например, серверов считанное число, выдаются они строго доверенным и проверенным лицам, рядовым обывателям доступны только клиенты и играть они могут только тогда, когда на сервере решат запустить партию.
|
Я себе представлял один сервер, на котором можно создавать партии и играть.
Цитата: |
Ну вообще-то в случае пошаговой стратегии я с ним аж совсем не согласен. Но из уважения к тебе спорить не буду
|
Да нет, спорить надо, потому что ты можешь оказаться прав
Я против клиентов сторонних разработчиков по нескольким причинам, ожна из которых - зачем создавать своими руками конкурентов?
Цитата: |
Звездный Ветер тут при чем?
|
Не причём, это я протормозил.
Цитата: |
Вопрос был о том, как сильно пошаговой стратегии мешает сохранение "всей игры" на стороне клиента (при наличии этого самого клиента).
|
Очень много избыточной инфы, как передаётся по сети, так и хранится на клиенте. Плюс возможная рассинхронизация и путаница у игрока (в тм числе и в голове).
Цитата: |
Что подразумевается под "состоянием всей игры"? Пример с морским боем не совсем удачный, там оффлайновые ходы никоим боком не присобачить. Поэтому возьмем, к примеру, пошаговые гонки. Вариант с клиентом и оффлайновыми ходами - клиенту посылается контур всей трассы, и игрок может сидеть и перебирать варианты - у клиента есть все данные чтобы решить, грубо говоря, вылетишь ты с трассы или нет.
|
Есть вариант морского боя, в котором игрок делает три хода подряд. Вот, сидит в оффлайне и думает
Берём пример с гонками. Контуры трассы присылаются - потому что трасса каждый раз новая. Контуры трассы известны, но оперативная информация о трассе доступна только для того места, которое видит игрок. Да еще и трасса может меняться, во времени. В итоге получается, что контур трассы уже, вобщем-то, "устарел". Да и сам по себе даёт представление о трассе весьма схематичное. И каждый ход игрок получет состояние участка трассы, который он видит. Ему просто пересылается массив данных об окружении, независимо от того, что в нём изменилось. Это наиболеепростой путь организовать достоверную инфу на клиенте. На примере кучи взёзд это понятно лучше (см. ниже)
Цитата: |
Ты же (как я понял) предлагаешь клиенту каждый раз спрашивать сервер - а если я поставлю такую скорость и поверну на столько-то градусов, я вылечу или нет? До какого-то момента трафика на энное количество попыток действительно может быть меньше, чем трафика на передачу трассы. Но стоит ли оно того?
|
Возьмум кучу звёзд. Сервак сгенерил галактику из 10000 звёзд. Каждая из которых (доступных игроку) обладает серией параметров, которые игрок может посмотреть, и которые всегда и для всех доступныз звёзд передаются на клиент с каждым ходом. Потому что неизвестно, что будет делать игрок и какая инфа ему понадобится - поэтому ему передаётся вся доступная игфа (всё состояние игры для него).
В случае, же, клиента с подключением, игрок получает только ту информацию, которую непосредственно запросит. Это меньше на порядки.
Цитата: |
Ну ты девелопер, твое хочу по определению толще.
|
Но миллиона мне это не даёт
Цитата: |
Но, на мой нескромный взгляд, оффлайновые ходы все-таки очень желательны. А так я вообще много чего хочу...
|
Это будет засисить от самой игры. Которой, пока, в цельном виде нет даже в голове
_________________ У меня бисера не доxеpа.
Последний раз редактировалось: Shirson (16:40 15-07-2008), всего редактировалось 1 раз |
|
|
Crimson 560 EGP
Рейтинг канала: 4(83) Репутация: 130 Сообщения: 3041
Зарегистрирован: 03.09.2003 |
|
Crush : |
Не, вот то что ты описал, что "у клиента есть все данные чтобы произвести расчет вылечу/нет" это уже зло. Однозначно будет чит позволяющий расчитывать идеальную траекторию.
|
Во-первых под "рассчитать" имелось в виду "юзер ввел параметры, клиент отобразил результат". Рассчитывать идеальную траекторию клиент естественно не будет. Да, клиент можно взломать. Теоретически. Если кому-то очень нефиг делать. Но тогда уж можно взломать и тонкий клиент, который своими запросами будет грузить сервер.
Во-вторых идеально ты все равно ничего не просчитаешь, т.к. ходы других игроков неизвестны по определению.
В-третьих я не утверждаю что схема оффлайновых ходов оптимальна для гонок. Я говорю о стратегии типа Старс. Пример с гонками приводился для иллюстрации схем передачи игровой инфы.
Sh.Tac. : |
но представьте
игрок нажал на гашетку и не отпускает, - сервак единомоментно обсчитает все пришедшие пакеты и будет мега-бум
|
Ага, а так будет мега-бум с задержкой Каждый посылаемый event должен иметь timestamp, по которому понятно, когда и сколько времени клиент держал кнопку. Иначе хоть с задержками, хоть без задержек...
Но это оффтоп.
Shirson : |
Да нет, спорить надо, потому что ты можешь оказаться прав
Я против клиентов сторонних разработчиков по нескольким причинам, ожна из которых - зачем создавать своими руками конкурентов?
|
Ну тогда будем спорить
Меня как-то совершенно не пугает автоматизация рутинных действий в пошаговой стратегии. Ибо их как раз всеми силами нужно стараться автоматизировать. Их там дохрена. Из-за чрезмерного количества рутинных действий люди бросают игру в середине партии, когда начинается самое интересное. Ничего хорошего в этом не вижу. Другое дело - грайнд в МОРГах - там это часть игрового процесса (в нем я тоже ничего хорошего не вижу, но я в них и не играю).
Боты... если речь, опять-таки, о пошаговой стратегии, то посмотрел я на того бота...
Насчет конкурентов я тоже не очень понял. Ты "продаешь" игровую механику и игровой баланс. Даже если кто-то напишет более удобный клиент (что без содействия с твоей стороны будет очень сложно сделать) - это будет все равно клиент для твоей игры. В чем проблема-то?
Shirson : |
Очень много избыточной инфы, как передаётся по сети, так и хранится на клиенте. Плюс возможная рассинхронизация и путаница у игрока (в тм числе и в голове).
|
"Очень много" это сколько в килобайтах? В игре не не должно быть "избыточной инфы", вся инфа должна быть по делу. Ибо игроку с ней работать. Поэтому есть мнение, что много ее не будет.
Рассинхронизировать - опять-таки, пошаговку - довольно сложно. Собственно, вариант только один - игрок не получил ход и вовремя об этом не сообщил. Чем это для него черевато - надо смотреть на конкретном примере. Но катастрофы не будет.
Shirson : |
Есть вариант морского боя, в котором игрок делает три хода подряд. Вот, сидит в оффлайне и думает
|
При чем здесь морской бой? Ты еще в камень-ножницы-бумагу предложи по переписке поиграть
Хорошо, берем морской бой. Я предлагаю после каждого хода посылать игроку список клеток, по которым уже били, и список клеток, где что-то подбито (на обоих полях). Ну и координаты своих кораблей естественно. Что предлагаешь ты? Игрок по каждой клетке посылает серверу запрос, стрелял он туда или не стрелял? Или как?
Shirson : |
Возьмум кучу звёзд. Сервак сгенерил галактику из 10000 звёзд. Каждая из которых (доступных игроку) обладает серией параметров
|
Серия параметров - это сколько в байтах? При том что учти, все 10000 планет игрок скорее всего не увидит до конца игры.
При том что если у каждой звезды слишком много параметров, то их будет не 10000 а меньше. Иначе настолько насыщенное игровое поле будет слишком "большим". Своего рода закон сохранения. Игрок даже в компьютерной игре может оперировать ограниченным количеством информации.
Shirson : |
В случае, же, клиента с подключением, игрок получает только ту информацию, которую непосредственно запросит. Это меньше на порядки.
|
Игрок не будет заниматься оптимизацией запросов. Он запросит, скажем, концентрацию минералов на всех видимых планетах, в порядке убывания пригодности климата. И серверу точно так же придется посылать все планеты. Возможно по нескольку раз за ход, если не предусмотрен механизм кэширования. Экономии вряд ли будет больше, чем мозгоимения на ее реализацию (и потенциальных багов).
|
|
|
kaero
|
|
Shirson : |
Допустим, есть Stars!like игра, сильно пошаговая и сессионная.
В каком виде её лучше реализовывать?
|
Если процесс игры выглядит как формирование пакета приказов/указаний для сервера, который выполняет их в строго определённое время с какой-то периодичностью (схема PBEM-игр), то наиболее разумный вариант - это собственный клиент (третий вариант).
При этом для передачи данных совсем не обязательно использовать электронную почту.
Можно сделать сервер, по способу работы аналогичный веб-серверу. Т.е. сервер будет обрабатывать небольшой набор запросов типа "зарегистрироваться", "получить состояние игры", "получить почту", "отдать приказ" и тп. но сам сервер будет в онлайне постоянно, чтобы например можно было зарегистрироваться в игре в любое время или получить состояние мира.
Клиент подключается по TCP/IP к серверу, делает запрос, получает ответ и разрывает соединение. Сервер сам с клиентом связаться не может.
Допустим обсчёт ходов происходит раз в сутки, тогда в течении дня каждый игрок может в любое время скорректировать свой "приказ на сегодня", отправить сообщения другим игрокам.
Трафик по такой схеме будет совсем небольшой, сетевое программирование несложное. Каждый клиент скачивает в сутки до несколькитх мегабайт информации, отправляет полмегабайта. Сервер держится на VDS-хостинге за небольшие деньги. Клиент можно написать на языке типа Python/Ruby/Java/C# (как и сервер), в первых случаях получается нормальная многоплатформенность.
|
|
|
Shirson 1605 EGP
Рейтинг канала: 7(626) Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002 |
|
Crimson : |
Меня как-то совершенно не пугает автоматизация рутинных действий в пошаговой стратегии.
|
А меня пугает. Просто превентивно, как возможный вариант непонятных, пока, мне читов
Цитата: |
Насчет конкурентов я тоже не очень понял. Ты "продаешь" игровую механику и игровой баланс. Даже если кто-то напишет более удобный клиент (что без содействия с твоей стороны будет очень сложно сделать) - это будет все равно клиент для твоей игры. В чем проблема-то?
|
см. выше.
Цитата: |
"Очень много" это сколько в килобайтах?
|
Не имеет значения. Если это число можно уменьшить на порядки, то это нужно сделать.
Цитата: |
В игре не не должно быть "избыточной инфы", вся инфа должна быть по делу. Ибо игроку с ней работать. Поэтому есть мнение, что много ее не будет.
|
Еще раз.
Есть 10000 звёзд. Всю доступную информацию по ним нужно переслать игроку, потому что неизвестно, что ьудет делать игрок. На практике, он посмотрит данные по паре-тройке, даже десятку и всё. Избыточность в районе сотен раз.
Цитата: |
Хорошо, берем морской бой. Я предлагаю после каждого хода посылать игроку список клеток, по которым уже били, и список клеток, где что-то подбито (на обоих полях). Ну и координаты своих кораблей естественно. Что предлагаешь ты? Игрок по каждой клетке посылает серверу запрос, стрелял он туда или не стрелял? Или как?
|
Или как.
Игрок у себя хранит состояние игры и обменивается с сервером только действиями/изменениями. Время от времени можно делать общуюю синхронизацию, для надёжности (но не каждый ход)
Цитата: |
Серия параметров - это сколько в байтах?
|
Не имеет значения. Но если хочется, берём кило. 10000 кило на ход
Цитата: |
При том что если у каждой звезды слишком много параметров, то их будет не 10000 а меньше. Иначе настолько насыщенное игровое поле будет слишком "большим". Своего рода закон сохранения. Игрок даже в компьютерной игре может оперировать ограниченным количеством информации.
|
В старсах россыпи звёзд те еще. И все видно со старта
Цитата: |
Игрок не будет заниматься оптимизацией запросов. Он запросит, скажем, концентрацию минералов на всех видимых планетах, в порядке убывания пригодности климата. И серверу точно так же придется посылать все планеты.
|
Да. А может и не запросит - вот в чём дело. Запросил - получи. Не запросил - молодец.
Цитата: |
Возможно по нескольку раз за ход, если не предусмотрен механизм кэширования.
|
Ну, это было бы непростительно
Цитата: |
Экономии вряд ли будет больше, чем мозгоимения на ее реализацию (и потенциальных багов).
|
Позырь как работает маркет в EVE
добавлено спустя 2 минуты:
---
kaero : |
Можно сделать сервер, по способу работы аналогичный веб-серверу.
|
Хорошая мысль. Спасибо за идею.
_________________ У меня бисера не доxеpа.
Последний раз редактировалось: Shirson (21:39 16-07-2008), всего редактировалось 1 раз |
|
|
Crimson 560 EGP
Рейтинг канала: 4(83) Репутация: 130 Сообщения: 3041
Зарегистрирован: 03.09.2003 |
|
Shirson : |
А меня пугает. Просто превентивно, как возможный вариант непонятных, пока, мне читов
|
Так нельзя Если тебя пугают читы, которые ты пока даже внятно не представляешь, то ты так ничего никогда не напишешь...
В случае браузерной игры клиентом выступает браузер. Точнее HTML и JavaScript, на которых написан интерфейс. Реверсить жаваскрипт намного легче ассемблера
Shirson : |
Не имеет значения. Если это число можно уменьшить на порядки, то это нужно сделать.
|
Очень много бед происходит от преждевременной оптимизации (© по-моему Кнут).
Какой объем трафика на один ход игрока ты считаешь позволительным?
Shirson : |
Еще раз.
Есть 10000 звёзд. Всю доступную информацию по ним нужно переслать игроку, потому что неизвестно, что ьудет делать игрок. На практике, он посмотрит данные по паре-тройке, даже десятку и всё. Избыточность в районе сотен раз.
|
Я не могу себе представить, чтобы я в Старсах смотрел пару-тройку планет за ход. Планета меня не интересует только в том случае, если на ней ничего не произошло. И то не факт.
Shirson : |
Игрок у себя хранит состояние игры и обменивается с сервером только действиями/изменениями. Время от времени можно делать общуюю синхронизацию, для надёжности (но не каждый ход)
|
Так, во-первых о чем мы спорим? Чтобы хранить состояние игры, нужен клиент. То есть мы уже договорились о том, что клиент будет? Осталось выяснить, можно ли будет делать ходы в оффлайне.
Синхронизация нужна только если игрок пропустил ход(ы). Либо если у него по какой-то причине накрылись накопившиеся данные. Во втором случае игроку нужно будет скачать полное состояние данных на текущий момент. В первом случае можно отделаться пересылкой последних ходов - но имхо скорее закончится место на сервере под ходы, чем трафик на их отсылку. Необходимости синхронизировать "для надежности" быть не должно. Стратегия, в которой я не могу быть в любой момент уверен в надежности синхронизации - это пипец в последней стадии. Особенно пошаговая.
Shirson : |
Не имеет значения. Но если хочется, берём кило. 10000 кило на ход
|
Килобайт на звезду это дохренища. Но ладно, пусть. Но ты хочешь сказать, что у каждой звезды каждый ход будут меняться все ее параметры, непредсказуемым образом? В это нельзя будет играть. Особенно если параметров - килобайт. Я повешусь их отслеживать.
Shirson : |
В старсах россыпи звёзд те еще. И все видно со старта
|
Ты в Старсы вообще играл? С самого начала доступны только координаты и название. Причем они не меняются все игру. Остальных параметров там байт на сорок наберется. Ну по 400кб на ход для каждого юзера. Причем это при условии, что он все эти планеты каждый ход светит сканерами. И сколько килобайт ты рассчитываешь сэкономить выдачей инфы по чайной ложке?
Shirson : |
А может и не запросит - вот в чём дело. Запросил - получи. Не запросил - молодец.
|
Запросит. Я тебе гарантирую что запросит. Даже если интерфейс будет позволять сравнительно просто запрашивать только нужную инфу по нужным объектам (что сильно вряд ли). Потому что на практике нужен максимум инфы по всем объектам. Это стратегия. Я просто советую из этого исходить и не тратить время на то, что использоваться не будет.
Если ты делаешь игру для игроков, а не для экономии трафика - большая часть нужной инфы должна лежать на поверхности, на расстоянии взгляда. Лишние клики и запросы это трата времени и нервов. Оптимизация на порядки получится за счет того, что в игру никто не будет играть.
А серьезные партии будут жрать трафик сотнями мегабайт, как бы ты не оптимизировал. Это просто факт.
|
|
|
|
|
|
Канал Игры Мечты: «Мозговая штормилка.» |
|
К списку каналов | Наверх страницы |
Цитата не в тему: А ты не вчитывайся, а для ускорения - читай только каждое третье слово, гарантирую - смысл постов останется тем же. (советует Harley)
|
» Мозговая штормилка. | страница 11 |
|