Максим Богуславский
40 лет, Россия
2206 сообщений
#10 лет назад
Смотрю иногда на предложения к проектам, и удивляюсь.
Вот к примеру https://www.weblancer.net/projects/76806.html

Вот на что рассчитывают люди которые пишут что смогут реализовать? Или они не внимательно читают проект, и просто видят знакомые слова и пишут "сделаю" надеясь разобраться по "ходу дела", или ХЗ еще что...

Я имею ввиду эту фразу "Сам поединок должен быть онлайн, например как в текен или мортал комбат тоесть соперники могут бить одновременно."

Одним словом - "...можно грабить корованы".
Тимур Шаммасов
42 года, Россия
1278 сообщений
#10 лет назад
Ну в принципе в упрощенном виде, но мы такое реализовывали.
Задержка по времни между юзерами до 0.3 сек
цена правда примерно в 2 раза больше.
Эдуард Третьяков
33 года, Украина
269 сообщений
#10 лет назад
Цитата ("Pixorama"):
Одним словом - "...можно грабить корованы".

Ооо! Да! ONline BattleToads 3D: Corovaneer! Как же я жду эту игру!
Вообще в таких проектах одно ТЗ должно готовиться за сумму, примерно равную всему этому проекту.
Так что без вариантов.
Максим Богуславский
40 лет, Россия
2206 сообщений
#10 лет назад
Цитата:
Ну в принципе в упрощенном виде, но мы такое реализовывали.
Задержка по времни между юзерами до 0.3 сек
цена правда примерно в 2 раза больше.


Можно посмотреть?
Я не говорю что это нельзя реализовать. Знаю даже как. Но это будет просто техническая демка, она не будет играбельна.
Артем Л.
33 года, Россия
11106 сообщений
#10 лет назад
Реализовать можно все что угодно, вопрос упирается во время и деньги
Тимур Шаммасов
42 года, Россия
1278 сообщений
#10 лет назад
Цитата ("Pixorama"):
Можно посмотреть?
Я не говорю что это нельзя реализовать. Знаю даже как. Но это будет просто техническая демка, она не будет играбельна.

Это часть сервиса, который еще не запущен, поэтому ссылку могу дать только в личку, и игры там на двух юзеров и намного попроще, но пришлось решать ту же проблему синхронизации.
Пути решения:
1. Сокет на С++ на котором обрабатывается вся логика,начало и результат удара считает сервер.
2. Отправляются данные только по контрольным точкам, а клиенты отбрабатывают их визуально
3. При "ударе" по нажатии кнопки сначала сигнал об этом идет на сервер, потом обрабатывается флеш-клиентом.
Это не решает всех вопросов, но снижает видимое расхождение
Тимур Шаммасов
42 года, Россия
1278 сообщений
#10 лет назад
Цитата ("Hungry_Hunter"):
Реализовать можно все что угодно, вопрос упирается во время и деньги

А вот все что угодно нельзя, вопрос упирается в пинг...
Максим Богуславский
40 лет, Россия
2206 сообщений
#10 лет назад
Цитата:
1. Сокет на С++ на котором обрабатывается вся логика,начало и результат удара считает сервер.
2. Отправляются данные только по контрольным точкам, а клиенты отбрабатывают их визуально
3. При "ударе" по нажатии кнопки сначала сигнал об этом идет на сервер, потом обрабатывается флеш-клиентом.


Я делал точно так же. Только вместо сокет-сервера использовал Red5 и данные передавались по RTMP протоколу, через SharedObject. Тестировал на локальной машине, все отлично, можно мортал комбат писать, или гоночки Но через инет не реально, т.к. время отзыва у разлных пользователей различное, то даже если решить проблему синхронизации, то это уже все равно не рилтайм будет.

Единственное что можно реально реализовать, это бои как в WorldOfWarcraft. На первый взгляд кажется что они в рилтайме проходят, но это не так. Там есть некий короткий цикл за который игроки делают удары или какие то иные действия. Т.е. если ты не сделал ни какого действия, то это не значит что твой противник будет ждать своего хода. И т.к. эти циклы длятся доли секунды, то создается впечатление что бой в рилтайм режиме. Но в этом тоже есть свой минус. У игрока с меньшим временем отклика будет преимущество перед противником с большим, т.к. он успеет за то же время выполнить больше действий.
Дмитрий Войциховский
44 года, Украина
2128 сообщений
#10 лет назад
Трудно все это, и действительно пинги будут рулить... тот кто инет через тарелку качает вообще и всегда будет нещадно бит )))
----------
Правильно подобные проекты можно организовать только в локалке или перед началом боя именно что тестировать скорость отклика и "уравнивать время".