Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование в широком смысле слова > Алгоритмика

Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения

Ответ
 
Опции темы
Старый 10.11.2014, 17:19   #1
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Оптимизация физики

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

Из рассмотренных идей было: 1) сгенерировать коллайдеры из примитивов объединяя их в параллелепипеды, занимающие объем ячеек, в которых есть геометрия; 2) делать выпуклую геометрию на основе вершин в гранях, но в этом случае столкновения будут не особо точными, особенно для сложной модели.

Есть какие-то еще идеи?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 10.11.2014, 18:49   #2
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: Оптимизация физики

Первый вариант хороший. Машинку можно сделать по типу майнкрафта. При повреждениях удалять детали и перестраивать mesh, коллайдер из примитивов (так кстати сделано в Space Engineers). Минус в том что возможно надо будет нормальный проц и немало оперативки.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (10.11.2014)
Старый 10.11.2014, 19:35   #3
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Оптимизация физики

Основная задача сделать оптимально физику на сервере. Поэтому хочется найти лучшее решение.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 10.11.2014, 22:20   #4
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Оптимизация физики

Немного поковырял робокрафт, алгоритм я не раскопал, но некоторые сведения получил:
Одиночные колоны стоят отдельно...


А если их соединить, то они объединяются...


Забавно собирает хвосты


Есть идеи, какие алгоритмы для этого используются?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nex (10.11.2014)
Старый 10.11.2014, 22:21   #5
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Оптимизация физики

А как ты визуализировал физику в готовой игре?
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Старый 10.11.2014, 22:30   #6
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Оптимизация физики

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 100 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
Mr_F_ (10.11.2014), Nex (10.11.2014), Randomize (11.11.2014)
Старый 10.11.2014, 22:58   #7
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Оптимизация физики

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 100 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Старый 10.11.2014, 23:18   #8
cahekp
Разработчик
 
Аватар для cahekp
 
Регистрация: 14.12.2008
Адрес: Томск
Сообщений: 530
Написано 270 полезных сообщений
(для 883 пользователей)
Ответ: Оптимизация физики

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 100 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
__________________
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо cahekp за это полезное сообщение:
Mr_F_ (10.11.2014), pax (10.11.2014), Randomize (11.11.2014)
Старый 10.11.2014, 23:21   #9
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Оптимизация физики

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 100 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.



Помогите лучше с алгоритмом!
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
Mr_F_ (10.11.2014), Randomize (11.11.2014)
Старый 10.11.2014, 23:49   #10
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Оптимизация физики

Вопрос "в сторону": полноценная физика и симуляция с точки зрения обязательна?
Что мешает считать физику на клиентах: несколько клиентов считают чужие физ объекты, шлют серверу, сервер сверяет данные, "доверяет" главному, использует двоих как подтверждение. Если кто-то расходится - принимаем небольшие меры, запоминаем этого "негодника" на будущее.

Таким образом у тебя физика будет считаться клиентами, а не сервером, на сервер меньше нагрузки. Анти-чит достигается за счет наличия числа клиентов на объект. Если клиент выходит, ответственность переноситься, и добовляется дополнительный вычислитель.

Очень схожая техника используется для мультиплеер стратегий с сотнями юнитов - серверу просто не потянуть объем данных. Клиенты сами считают часть данных и сервер лишь сверяет и валидирует если они схожи.
(Offline)
 
Ответить с цитированием
Старый 10.11.2014, 23:56   #11
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Оптимизация физики

Ну в любом случае на сервере выстрелы считать. Физика на клиентах конечно более желательна в плане нагрузки на сервер.

UPD: Хочется сделать правильно. Точнее выбрать оптимальное решение. На клиентах тоже считать 24 игрока накладно, если не оптимизировать колайдеры.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 13:39.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com