|
|
|
Канал Игры Мечты: «Ищу программеров, сидящих на космосе.» |
|
|
Варсик
545 EGP
    Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4041 Откуда: Москва Зарегистрирован: 22.12.2002
 |
|
Все... nvcc не умеет работать с gcc / g++. Прям в лоб при выполнении мейкфайла. Значит будем пробовать через VMWare в котором Ubuntu.
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Sh.Tac.
151 EGP
  Рейтинг канала: 5(108) Репутация: 14 Сообщения: 1426
Зарегистрирован: 27.07.2005
 |
|
в интернетах пишут что нужно gcc опустить до 4.4, есть и другие ритуалы
тока решение со второй страницы на порядок симпатишнее
_________________ This is what you get ...
(c) Radiohead |
|
|
Варсик
545 EGP
    Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4041 Откуда: Москва Зарегистрирован: 22.12.2002
 |
|
Я забыл сказать, что это под Виндой оно не умеет ))
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Варсик
545 EGP
    Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4041 Откуда: Москва Зарегистрирован: 22.12.2002
 |
|
Да что-ж за жизнь-то!... Апнул 13.04, которая стоит 2-й системой - слитело вообще вся ОСь (99% что мои кривые руки). Хотел поставить 12.04 (LTS, типа чтобы не убить себе мозги), так флешка умерла. А в 7 утра 2-го числа никто не продаст другую...
Пойду жахну бейлиса.
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Sh.Tac.
151 EGP
  Рейтинг канала: 5(108) Репутация: 14 Сообщения: 1426
Зарегистрирован: 27.07.2005
 |
|
все эти заигрывания с линухом выглядят излишними, давно сказали, шарп и "кудафи", потом когда-нибудь один раз проверить работает ли под mono
а бейлис в 7 утра стало быть продают
добавлено спустя 5 минут:
З.Ы. я б даже сказал, что юнька тут тоже лишняя покамест, потому что по-любасу нужен визуализатор того что происходит на сервере, а это несложно на SharpDX/OpenTK/куча всего
_________________ This is what you get ...
(c) Radiohead
Последний раз редактировалось: Sh.Tac. (15:11 02-01-2014), всего редактировалось 1 раз |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) Репутация: 188 Сообщения: 3252 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008
 |
|
SharpDX крут, под DX11 программить с ним одно удовольствие. Но есть минус - нужны свои велосипеды да же для банального вывода текста.
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
Варсик
545 EGP
    Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4041 Откуда: Москва Зарегистрирован: 22.12.2002
 |
|
Вот не понимаю я людей, которые говорят слово DirectX. Как будто в 2000-х живут. Время DX уходит. Сейчас надо делать под OGL, так как это крссово (и да, на маки в том числе).
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) Репутация: 188 Сообщения: 3252 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008
 |
|
Все зависит от желаемой платформы. Многоплатформенность удел казуалок.
Мой выбор Win и DX, так как я люблю Next Gen и знаю как он делается
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
Варсик
545 EGP
    Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4041 Откуда: Москва Зарегистрирован: 22.12.2002
 |
|
DIMOSUS.X : |
Многоплатформенность удел казуалок.
|
Глупость.
DIMOSUS.X : |
Мой выбор Win и DX, так как я люблю Next Gen и знаю как он делается
|
OGL всегда умеет чуть больше чем DX. Это аксиома.
ЗЫ: LCP алгоритм свистнутый с GPUGems я удачно собрал и запустил на 5.5 тулките (вызовы немного поменялись с тех пор).
Теперь надо научиться грузить туда модельки и управлять ими. + вытаскивать факт коллизии из GPU в мир. После этого можно думать о простейшем сервере.
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) Репутация: 188 Сообщения: 3252 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008
 |
|
Что-то я не припомню известных не казуальных мультиплатформенных игр Хотя не исключено что я просто о них не слышал.
Варсик : |
OGL всегда умеет чуть больше чем DX. Это аксиома.
|
Есть такое. Но тут есть один жирный минус — хаотичность поддержки всего этого разными поколениями GPU. С DX все проще. Если вендор заявил поддержку DX11, то можно програмить один универсальный код, без индивидуального затачивания под AMD или nVidia.
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
Варсик
545 EGP
    Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4041 Откуда: Москва Зарегистрирован: 22.12.2002
 |
|
DIMOSUS.X : |
Что-то я не припомню известных не казуальных мультиплатформенных игр
|
Иксы пойдут? Вся 3-я линейка. Европа 4-я... Ну это из того что я помню.
DIMOSUS.X : |
хаотичность поддержки всего этого разными поколениями GPU
|
Тут согласен. Просто DX - это "типа движок", в то время как OGL - ниже на уровень. Где-то между DX и драйверами.
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 4(67) Репутация: 188 Сообщения: 3252 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008
 |
|
У меня язык не поворачивается DX назвать движком
Это всего лишь набор функций, управляющих калькулятором под названием GPU (не беря в расчет прочие функции). Заполняй буферы да вызывай отрисовку.
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
Последний раз редактировалось: DIMOSUS.X (01:27 03-01-2014), всего редактировалось 1 раз |
|
|
Варсик
545 EGP
    Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4041 Откуда: Москва Зарегистрирован: 22.12.2002
 |
|
Оффтоп, если кто-то хочет продолжить, давайте выведем в другую ветку.
По теме. На текущий момент алгоритм для физического сервера я вижу так (комментируйте, разносите в пух и прах и обзывайте нехорошими словами. Приветствуется. Лучше сейчас, чем потом):
Начнем с сети. Я продублирую ссылочку на расчеты в гугльдоке: https://docs.google.com/spreadsheet/ccc?key=0AiQfvmumpVT8dEswZ0kxd1ROTkI0VXFsRHVFb1RDMHc
Из этого документа (не надо его принимать как истину в последней инстанции, но вроде там все разумно более или менее):
1) Для каждого КА будет видно не более 256 целей.
Техническое ограничение: ПС клиента и сервера по сети.
Игровое ограничение: Компьютеры кораблей не могут отследить одновременно больше целей. А значит и показать больше не могут. Или кто-то всерьез считает что "фонарь" в космосе - это разумно?
2) Пока еще не придумал.
Из вышесказанного алгоритм физики можно ОЧЕНЬ сильно упростить. Вот он:
0) Для каждой формы КА (возможно неприменимо для больших КА) считается минимальная описывающая сфера для этого КА.
1) Для каждого КА игрока (считаем что не КА НИПов могут пролетать друг внутри друга на данный момент) считаем 256 ближайших целей. Это будет использовано для генерации UDP пакетов.
2) Для каждого КА игрока, для каждого из 256 ближайших КА находим пересекающиеся сферы КА. Эти пары необходимо проверить более детально.
2.1) Убираем дубли из результатов пункта 2.
3) Проверяем только эти КА используя более сложный алгоритм.
Данный алгоритм условно легко модифицируется для твердых тел с большой скоростью, ну или я так думаю.
Данный алгоритм проверят на столкновения, но не проверяет на "моментальные орудия" типа лазеров на данный момент. Но надо-же с чего-нибудь начинать.
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Sh.Tac.
151 EGP
  Рейтинг канала: 5(108) Репутация: 14 Сообщения: 1426
Зарегистрирован: 27.07.2005
 |
|
Варсик : |
Для каждого КА игрока, для каждого из 256 ближайших КА находим пересекающиеся сферы КА. Эти пары необходимо проверить более детально.
|
а чего там проверять-то? вся работа уже считай сделана при определении ближайших, если d <= r1 + r2, то коллизия
З.Ы. ограничение 256 слишком надуманное, CUDA может миллионы шаров "катать", ну хотя бы по тем алгоритмам из GPU-Gems
ещё есть такая книжка, листал, не помню, но код был с картинками
Cкрытый текст (кликните здесь для просмотра)
|
_________________ This is what you get ...
(c) Radiohead
Последний раз редактировалось: Sh.Tac. (05:14 03-01-2014), всего редактировалось 1 раз |
|
|
Варсик
545 EGP
    Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4041 Откуда: Москва Зарегистрирован: 22.12.2002
 |
|
Sh.Tac. : |
если d <= r1 + r2, то коллизия
|
Нет, если у КА сложная геометрия. (А она все-таки есть)
Sh.Tac. : |
ну хотя бы по тем алгоритмам из GPU-Gems
|
Ты про LCP? Да... Вообще-то его я и думал взять за основу "сложного" алгоритма.
добавлено спустя 50 секунд:
Sh.Tac. : |
ограничение 256 слишком надуманное, CUDA может миллионы шаров "катать"
|
CUDA - да, а вот сеть не выдержит. В доке немного про это есть. Да и в этой темке - тоже.
_________________ WARNING: By reading this post you accept that this post is genius.
Последний раз редактировалось: Варсик (06:37 03-01-2014), всего редактировалось 1 раз |
|
|
Sh.Tac.
151 EGP
  Рейтинг канала: 5(108) Репутация: 14 Сообщения: 1426
Зарегистрирован: 27.07.2005
 |
|
а с чего сеть не выдержит? конечно не надо квадратичную рассылку всего делать
тут примерно то же, что и со столкновениями
фкозмозе хоть и видать на миллионы км. но апдейты можно делать прогрессивно, т.е. в ближней зоне чаще, в дальней реже, сводя на нет
добавлено спустя 10 минут:
З.Ы. впрочем такая штука работает если передавать состояние, а не кнопки, так что надо комбинировать в случае чего
добавлено спустя 7 минут:
З.З.Ы. в "доке" типичное заблуждение
Цитата: |
Один порт на пользователя? YES
|
одного порта на физическом сервере достаточно для одного игрового сервера с кучей народа
_________________ This is what you get ...
(c) Radiohead
Последний раз редактировалось: Sh.Tac. (15:46 03-01-2014), всего редактировалось 4 раз(а) |
|
|
Варсик
545 EGP
    Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4041 Откуда: Москва Зарегистрирован: 22.12.2002
 |
|
Sh.Tac. : |
одного порта на физическом сервере достаточно для одного игрового сервера с кучей народа
|
Нет. В данном случае я считал - имеет-ли смысл идентифицировать пользователя по номеру серверного порта для него. Смысл был в том, что всегда можно спросить порт локального сокета и по нему обратится посчитать смещение. Дело в том, что таблицу с 2^16 записей(порт) мы всегда можем держать в памяти, а таблицу на 2^32(64) записей(откастованный сокет) держать в памяти постоянно - сложновато. На данный момент я отказался от этой идеи по некоторым(уже не помню каким) причинам. Но это оставил, если вернусь к этой идеи.
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Варсик
545 EGP
    Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4041 Откуда: Москва Зарегистрирован: 22.12.2002
 |
|
Хотел закоммитить первый серверный код в гуглькод, но не получилось... ЧЯДНТ?
Код: |
warstone@warstone-Ubuntu:~/workspace/Server$ svn checkout http://jasg.googlecode.com/svn/trunk/ jasg-read-only
svn: URL 'http://jasg.googlecode.com/svn/trunk' не существует |
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Варсик
545 EGP
    Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4041 Откуда: Москва Зарегистрирован: 22.12.2002
 |
|
Сам себе злобный буратино. Короче закомитил. Там пока-что вообще тестовый код, который на ГПУ тупо считает квадрат радиуса. Просьба покидаться помидорами на тему общей архитектуры файлов и т.д.: http://code.google.com/p/jasg/source/browse/server/trunk/src/Server.cc
добавлено спустя 2 минуты:
Особенно меня интересует мнения вот по этому месту: http://code.google.com/p/jasg/source/browse/server/trunk/src/atlas_kernel.cu
Дело в том, что изначально неизвестно сколько элементов в массиве, но не получится в один блок засунуть все. тредов не бесконечное количество. Или я чего-то не понимаю?..
добавлено спустя 3 минуты:
И еще вопрос: Можно-ли не делать такую стремную прослойку, а как-нибудь объявить ядро прямо из метода? Дело в том, что сейчас все структуры, которые будут пользоваться в ядре должны быть описаны как публичные (переменные я передам в качестве параметров, не вопрос), а это не очень приятно. В то-же время - нельзя Си код объявить другом для С++ кода, насколько я знаю.
_________________ WARNING: By reading this post you accept that this post is genius.
Последний раз редактировалось: Варсик (16:09 07-01-2014), всего редактировалось 2 раз(а) |
|
|
Sh.Tac.
151 EGP
  Рейтинг канала: 5(108) Репутация: 14 Сообщения: 1426
Зарегистрирован: 27.07.2005
 |
|
а два id в элементе "атласа" зачем? равно как и два флоата
надо же минимизировать передачу CPU<->GPU, т.е. можно результат в то же поле сбрасывать
а вообще, сдаётся мне, тут нет никого по CUDA, вон у меня ваще атюха, так что даж не смогу энто дело запустить
_________________ This is what you get ...
(c) Radiohead |
|
|
|
|
|
Канал Игры Мечты: «Ищу программеров, сидящих на космосе.» |
|