Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Ищу программеров, сидящих на космосе. | страница 3
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 3 из 6
На страницу: Пред.  1, 2, 3, 4, 5, 6  След. | Все страницы
Поиск в этой теме:
Канал Игры Мечты: «Ищу программеров, сидящих на космосе.»
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
да у меня была предельно "гениальная" идея с "Монте-Карло", сервер постоянно пускает ракеты или гранаты, потом, если чувак вдруг нажал кнопку, то для него уже есть посчитанная траектория которая потом органично склеивается с той прямой линией, что рисует клеент пока не придёт ответ

минусы, распадающиеся боеголовки создают лавину расчётов, коллизии между запускаемыми объектами желательно выключать и тогда низзя противоракеты

зато как раз поле деятельности для GPU ибо много ненужных однотипных расчётов Гы-гы
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 23:41 19-12-2013   
Варсик
 545 EGP


Рейтинг канала: 4(81)
Репутация: 117
Сообщения: 4039
Откуда: Москва
Зарегистрирован: 22.12.2002
На самом деле все просто - вводится квантование времени и ракета способна и на клиенте понимать куда она летит и как она это делает. Дальше где-то раза 2 в секунду просто положение пересылать и все.
_________________
WARNING: By reading this post you accept that this post is genius.
    Добавлено: 00:39 20-12-2013   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
Варсик :
способна и на клиенте понимать
это понимание может отличаться от серверного
Цитата:
раза 2 в секунду просто положение пересылать
откуда куда? и что делать с "пониманием" тогда, если оно не соответствует?
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 01:08 20-12-2013   
Варсик
 545 EGP


Рейтинг канала: 4(81)
Репутация: 117
Сообщения: 4039
Откуда: Москва
Зарегистрирован: 22.12.2002
Если понимание на клиенте и на сервере разное в зависимости от обстановки то программер - дибил.

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

добавлено спустя 7 минут:
Только что понял что TCP'шный подход не применим для UDP. Алгоритм работы UDP - это постоянный посыл раз в тик определенных данных через датаграммы. И если TCP это поток, то UDP это ни раз не поток. В результате чего появилась такая мысль:
1) UDP пакет всегда регенерируется перед началом посылки спец кодом.
2) UDP пакет имеет 3 состояния: Посылать всегда, Посылать Х раз (в большинстве случаев - 1), Не посылать.
3) На этапе отработки тика - сам UDP клиент должен проходится по всем пакетам, проверять - что из них надо отослать и - отсылать.

добавлено спустя 10 минут:
На первых порах захосчу на гуглькоде... Дальше - будем посмотреть.
http://code.google.com/p/jasg

Сейчас заливается клиент. В основном там код.

JASG - Just Another Space Game
_________________
WARNING: By reading this post you accept that this post is genius.

Последний раз редактировалось: Варсик (02:30 20-12-2013), всего редактировалось 2 раз(а)
    Добавлено: 02:30 20-12-2013   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
глянул код, вместо битовых операций можно юзать BitConverter когда низзя unsafe
ТСР хоть прально сразу с перекладыванием "хвостиков", а то многие игнорят этот момент
а UDP зачем? там к нему ещё пробитие NAT песать придётся по-любому
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 01:38 21-12-2013   
Варсик
 545 EGP


Рейтинг канала: 4(81)
Репутация: 117
Сообщения: 4039
Откуда: Москва
Зарегистрирован: 22.12.2002
Закоммител половину UDP (отсылающую). Пришлось генерить отдельный тред для отсылки, так как мне плевать как там юнити тормозит, но некоторые пакеты с определенной частотой слать надо.

> а UDP зачем? там к нему ещё пробитие NAT песать придётся по-любому

Читайте ветку сначала:
- TCP - управляющий протокол для сервера игровой логики.
- UDP - протокол для физического мира. Положение, вектор скорости и прочая.

Вообще задумывается как: Есть 2 типа серверов. TCP - для логике. Код писан на чем угодно, вплоть до любимого Перла. UDP - для просчета столкновений, позиций и т.д. Пишется на C(C++) с CUDA. И он должен быть быстрым. ОЧЕНЬ быстрым.

А насчет NAT'а - вы ошибаетесь. Там немного по другому. Суть в том, что когда ты с клиента пинаешь UDP пакет, то NAT сам считает что с той стороны тебе прилетит на порт отправителя пакет. Если пакет не прилетает в течении Х секунд, то... Канал грохается... Больше прочесть можно в гугле. (Я сам плохо представляю как это работает до конца, но это работает, иначе-бы CS по сетке не пахал. Он UDP юзает).
_________________
WARNING: By reading this post you accept that this post is genius.
    Добавлено: 02:19 21-12-2013   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
Варсик :
когда ты с клиента пинаешь UDP пакет
а что такого неважного можно послать с клеента? Улыбка
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 02:36 21-12-2013   
Olorin
 70 EGP


Рейтинг канала: 1(6)
Репутация: 12
Сообщения: 97
Откуда: Хьёрвард
Зарегистрирован: 27.02.2006
Sh.Tac. :
Варсик :
когда ты с клиента пинаешь UDP пакет
а что такого неважного можно послать с клеента? Улыбка

Типа латентность UDP меньше, потому что как пакет долетел - можно сразу обрабатывать, а не пока там еще TCP-шные подтверждения доставки пройдут.. Только дублировать по TCP всё равно придется, т.к. UDP без гарантии доставки.

Варсик :
Вообще задумывается как: Есть 2 типа серверов. TCP - для логике. Код писан на чем угодно, вплоть до любимого Перла. UDP - для просчета столкновений, позиций и т.д. Пишется на C(C++) с CUDA. И он должен быть быстрым. ОЧЕНЬ быстрым.

Мне тут подумалось, что интероп между этими серверами может съесть весь желаемый выигрыш. Либо это должен быть один процесс с хорошо продуманным и очень легковесным взаимодействием между разнородными частями.
Лично по моему опыту - плюсы проигрывают C#. Но возможно это была специфика задачи, а может я на плюсах писать не умею, ибо переносил именно ради проверки с шарпа и без того оптимизированный код практически дословно. Не ощутив прироста даже SSE добавлял. Софтварный рендер это был.
_________________
Мы на многое не отваживаемся не потому что оно трудно; оно трудно именно потому, что мы на него не отваживаемся.
Сенека Старший

Последний раз редактировалось: Olorin (03:17 21-12-2013), всего редактировалось 1 раз
    Добавлено: 03:12 21-12-2013   
Варсик
 545 EGP


Рейтинг канала: 4(81)
Репутация: 117
Сообщения: 4039
Откуда: Москва
Зарегистрирован: 22.12.2002
Sh.Tac. :
а что такого неважного можно послать с клеента?
Ну почитай темку... Ну пожалста. Текущий пользовательский ввод.

Про UDP имеет смысл думать так: "Если канал нормальный - сообщение дойдет". Ну а если он не нормальный, то ты все-равно не поиграешь.

добавлено спустя 3 минуты:
Olorin :
Только дублировать по TCP всё равно придется
Нет, если важное посылать по TCP а "не очень" - по UDP.
Olorin :
Мне тут подумалось
Рад за вас. Но в данном случае вы не совсем правы... Пример: Фит корабля и его "параметры" рассчитывает TCP сервер. Как только вы вылетели из станции - ваши ХП считает UDP сервер. На ваш вылет серверу надо пульнуть одно сообщение. И между TCP и UDP серверами конечно есть связь и она конечно TCP'шная, так как физически это или один и тот-же сервер или они стоят в одной полке.
_________________
WARNING: By reading this post you accept that this post is genius.

Последний раз редактировалось: Варсик (03:17 21-12-2013), всего редактировалось 1 раз
    Добавлено: 03:17 21-12-2013   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
Варсик :
Текущий пользовательский ввод
ввод терять низзя, придётся городить свой RUDP, может выйти хуже TCP Улыбка

второй момент это идентификация юзера, вот пришёл клеентский UDP пакет, от кого он? просто слать айдишник легко подделывается

Olorin :
что интероп между этими серверами может съесть весь желаемый выигрыш
нормальный сервер это куча процессов, связанных между собой по ТСР для горизонтального масштабирования, просто надо понимать, где игрок может подождать (покупка, начисление ачивки и т.п.), а где нет

я слыхал про системы где даж kill предсказывался, и бывало забавно, откат, последующий оживляж и всё такое, мне кажется тут игрок мог бы и подождать
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 13:09 21-12-2013   
Варсик
 545 EGP


Рейтинг канала: 4(81)
Репутация: 117
Сообщения: 4039
Откуда: Москва
Зарегистрирован: 22.12.2002
Sh.Tac. :
второй момент это идентификация юзера, вот пришёл клеентский UDP пакет, от кого он? просто слать айдишник легко подделывается
TCP так-же подделывается. Вообще - RemoteIP + RemotePort + Timestamp внутри пакета.

добавлено спустя 1 минуту:
Sh.Tac. :
ввод терять низзя, придётся городить свой RUDP, может выйти хуже TCP
Если пакет потерялся - у пользователя плохой нет и он все-равно не поиграет.
Sh.Tac. :
нормальный сервер это куча процессов
Садись два. Нормальный сервер - это количество потоков = количеству ядер.
_________________
WARNING: By reading this post you accept that this post is genius.

Последний раз редактировалось: Варсик (14:59 21-12-2013), всего редактировалось 1 раз
    Добавлено: 14:59 21-12-2013   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
Цитата:
Вообще - RemoteIP + RemotePort + Timestamp внутри пакета
ну дык NAT произвольно может менять порт для UDP Улыбка

Цитата:
Если пакет потерялся - у пользователя плохой нет и он все-равно не поиграет
если я хотел пальнуть ракету или ловушку, а пакет не дошёл и не применился, то о каком тогда предикшне может вообще идти речь? Совсем запутался...

Цитата:
Нормальный сервер - это количество потоков = количеству ядер
такое можно тока вертикально масштабировать, что дороже обычно
и походу тебе неизвестно понятие надёжности, что будет если один тред закрешится?

много процессов это UNIX way, там даже треды не сразу появились, а потом их прикрутили через LWP, для серверов лучче может быть.. тока JVM натянутая на цельный кластер пожалуй Улыбка

добавлено спустя 31 минуту:
З.Ы. но я не настаиваю, например есть реально очень продвинутые чуваки которые хоть и мыслят в мастдайном стиле, но это ничему не противоречит, у них хорошие игры и надёжные сервера Улыбка
http://dtf.ru/forum/flat.php?id=23365&page=1&page_size=20
_________________
This is what you get ...
(c) Radiohead

Последний раз редактировалось: Sh.Tac. (16:19 21-12-2013), всего редактировалось 1 раз
    Добавлено: 16:19 21-12-2013   
Варсик
 545 EGP


Рейтинг канала: 4(81)
Репутация: 117
Сообщения: 4039
Откуда: Москва
Зарегистрирован: 22.12.2002
Sh.Tac. :
сли я хотел пальнуть ракету или ловушку, а пакет не дошёл и не применился, то о каком тогда предикшне может вообще идти речь?
То у тебя проблемы на сети и иди лечи их. Этот подход оправдан. Примеры: Вешенная популярность разного рода шутеров. Батлы, КС и прочие вещи работают по UDP. Это так. Даже стратегии типа Генералов (я просто новее не смотрел) работают по UDP

добавлено спустя 1 минуту:
Sh.Tac. :
много процессов это UNIX way
Это был UNIX way лет 20 назад. А сейчас - это ни разу не UNIX way до тех пор пока в ванилу не примут BFS.
_________________
WARNING: By reading this post you accept that this post is genius.

Последний раз редактировалось: Варсик (18:04 21-12-2013), всего редактировалось 1 раз
    Добавлено: 18:04 21-12-2013   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
Цитата:
у тебя проблемы на сети и иди лечи их
это как минимум не user friendly Улыбка
Цитата:
Батлы, КС и прочие вещи работают по UDP
они не теряют ввод
ключевое слово уже звучало, RUDP, та же юнька по дефолту юзает самый проверенный вариант RakNet

добавлено спустя 34 минуты:
З.Ы. вот ещё вспомнил, на шарпе Lidgren есть, тож UDP библиотека с разными гарантиями
_________________
This is what you get ...
(c) Radiohead

Последний раз редактировалось: Sh.Tac. (19:32 21-12-2013), всего редактировалось 1 раз
    Добавлено: 19:32 21-12-2013   
Варсик
 545 EGP


Рейтинг канала: 4(81)
Репутация: 117
Сообщения: 4039
Откуда: Москва
Зарегистрирован: 22.12.2002
Sh.Tac. :
это как минимум не user friendly
Это как минимум то, на что надо опираться.
_________________
WARNING: By reading this post you accept that this post is genius.
    Добавлено: 22:16 21-12-2013   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
ну вообще-то мы сильно отвлеклись, прототип ведь можно сделать и на ТСР, верно? Улыбка
алгоритмы синхронизации не зависят от транспорта

вообще чтобы не терять фокус разработки я крайне рекомендую к использованию таск-трекер/органайзер trello
там можно заводить разные карточки на разные темы и аккуратно вычёркивать сделанные пункты, штука весьма удобственная, не даром Джоель делал
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 23:51 21-12-2013   
Варсик
 545 EGP


Рейтинг канала: 4(81)
Репутация: 117
Сообщения: 4039
Откуда: Москва
Зарегистрирован: 22.12.2002
Sh.Tac. :
я крайне рекомендую
Я знаю что такое Канбан, спасибо.
_________________
WARNING: By reading this post you accept that this post is genius.
    Добавлено: 00:31 22-12-2013   
DIMOSUS.X
 995 EGP


Рейтинг канала: 4(67)
Репутация: 188
Сообщения: 3252
Откуда: Vilnius/Minsk
Зарегистрирован: 06.08.2008
А как можно с профитом считать физику на CUDA?
Насколько мне известно, то даже хваленый PhysiX на самом деле считается процесмором, а видеокарта помогает с прощетом лишь частиц и ткани.
_________________
Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
    Добавлено: 11:32 22-12-2013   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
никак, в рилтайм шина CPU <-> GPU съедает весь профит от быстродействия видяхи Улыбка

но Варсик, я так понял, не зассав, решил собсную физику, собсную сеть, не знаю, мож собсную СУБД, с прицелом на 10 лет разработки походу
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 15:25 22-12-2013   
Варсик
 545 EGP


Рейтинг канала: 4(81)
Репутация: 117
Сообщения: 4039
Откуда: Москва
Зарегистрирован: 22.12.2002
DIMOSUS.X :
А как можно с профитом считать физику на CUDA?
Физика - это громко сказано. На самом деле там будут решаться классические задачи определения положения КА, соударения и т.д.
Sh.Tac. :
в рилтайм шина CPU <-> GPU съедает весь профит от быстродействия видяхи
Если минимизировать это общение, то профит появится ))
_________________
WARNING: By reading this post you accept that this post is genius.
    Добавлено: 21:48 22-12-2013   
Канал Игры Мечты: «Ищу программеров, сидящих на космосе.»
На страницу: Пред.  1, 2, 3, 4, 5, 6  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: У дураков мысли сходятся не только по смыслу, но и по времени. (Razorblade)

  » Ищу программеров, сидящих на космосе. | страница 3
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18