|
|
|
Как работают игры внутри
|
|||
|---|---|---|---|
|
#18+
Собственно в свое время относительно недолго программировал шлюзы АСУ ТП, маленькие учетно отчетные системы и прочее. А вот недавно дошло - что я не понимаю как работают игры, в частности возьмем простейшее приложение в котором есть 1. прощадка на которой есть отверстия (треугольные, квадратные, овальные, круглые) 2. сверху скидываем разные блоки (шар, октаэдр, куб, паралепипед) как должна быть построена система чтобы пропускать объект через отверстия (через которые они могут пройти) и не пропускать (считаем что объект сразу уничтожается) через те которые не могут пройти (по размеру либо по форме) ? хотелось бы конечно получить расширяемое решение 1. например дырки по площадке могут быть разбросаны разные 2. объект разного размера падают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2009, 14:01:25 |
|
||
|
Как работают игры внутри
|
|||
|---|---|---|---|
|
#18+
RepzСобственно в свое время относительно недолго программировал шлюзы АСУ ТП, маленькие учетно отчетные системы и прочее. А вот недавно дошло - что я не понимаю как работают игры, в частности возьмем простейшее приложение в котором есть 1. прощадка на которой есть отверстия (треугольные, квадратные, овальные, круглые) 2. сверху скидываем разные блоки (шар, октаэдр, куб, паралепипед) как должна быть построена система чтобы пропускать объект через отверстия (через которые они могут пройти) и не пропускать (считаем что объект сразу уничтожается) через те которые не могут пройти (по размеру либо по форме) ? хотелось бы конечно получить расширяемое решение 1. например дырки по площадке могут быть разбросаны разные 2. объект разного размера падают. Я думаю что это сделано не на графическом, а на логическом уровне. Т.е. те же структуры данных, которые сравниваются и делается вывод-проходит фигура или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2009, 14:09:22 |
|
||
|
Как работают игры внутри
|
|||
|---|---|---|---|
|
#18+
то.есть есть грубо говоря массив дырок и массив объектов, прогоняя перебор (по совпадению координат например) - можно сказать что и куда пролезет. по моему это решение в лоб. возникает закономерный вопрос, а как быть если это например супер крутая сцена - уровня например prince of persia (год выпуска не имеет значения) - не слишком ли много переборов ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2009, 14:13:26 |
|
||
|
Как работают игры внутри
|
|||
|---|---|---|---|
|
#18+
Repzто.есть есть грубо говоря массив дырок и массив объектов, прогоняя перебор (по совпадению координат например) - можно сказать что и куда пролезет. Да. Это фейковая реализация и она будет работать. Подходит для казуалок и аркадных настрольных игр. Большинство игр с малым бюджетом так и делают. В общем случае нужно использовать библиотеку физики столкновений ( PhyzX например). Это постановочка посеръёзнее. Если опустить упоминание о использовании "PhyzX" то полне канает на дипломную работу по физике-механике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2009, 14:18:28 |
|
||
|
Как работают игры внутри
|
|||
|---|---|---|---|
|
#18+
Это больше на геометрическую часть оперяется, типо алгоритм проверки на пересечение - вот сцену каждый цикл и просчитываем пересекается наш объект с чем либо или нет...если пересекается значит столкновение ну а там уже работает физика...направление движения...скорость масса нашего тела, плотность упругость и тд. с чем пересекается делаем просчёт дальнейших действий "полёта" объекта. Ну а просчёт наверно всёже надо делать переберая массив всех динамических объектов...или можно сделать что-бы просчёт начинался только для того объекта над которым было произведено действие, но это уже хз как на практике реализовывать...разбивать действующую зону на n-ое количество областей и при происхождении какого-либо действия определять в какой зоне(зонах) это происходит дальше делать просчёт для всех объектов попадающих в эти зоны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2009, 14:24:18 |
|
||
|
Как работают игры внутри
|
|||
|---|---|---|---|
|
#18+
Repzкак должна быть построена система чтобы пропускать объект через отверстия (через которые они могут пройти) и не пропускать (считаем что объект сразу уничтожается) через те которые не могут пройти (по размеру либо по форме) ? Нуу, тута без ООП не обойдешься! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2009, 14:25:16 |
|
||
|
Как работают игры внутри
|
|||
|---|---|---|---|
|
#18+
VowkНуу, тута без ООП не обойдешься! Много игрушек было создано вообще без использования ООП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2009, 14:27:55 |
|
||
|
Как работают игры внутри
|
|||
|---|---|---|---|
|
#18+
Repzто.есть есть грубо говоря массив дырок и массив объектов, прогоняя перебор (по совпадению координат например) - можно сказать что и куда пролезет. по моему это решение в лоб. возникает закономерный вопрос, а как быть если это например супер крутая сцена - уровня например prince of persia (год выпуска не имеет значения) - не слишком ли много переборов ? Этим занимаются физические движки. А то что перебирать много, а что вы хотели? Кому сейчас легко? Потому подобными вычислениями в последнее время и занимаются видеокарты, в них сейчас вычислительных мощностей побольше чем в процессорах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2009, 15:21:06 |
|
||
|
Как работают игры внутри
|
|||
|---|---|---|---|
|
#18+
массив карты поля. я такое делал, когда мне 14 лет было. ------------- Sapienti sat! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2009, 14:06:50 |
|
||
|
Как работают игры внутри
|
|||
|---|---|---|---|
|
#18+
Немного теорииТеперь, чтобы немного понять из-за чего весь сыр-бор, хотелось бы вкратце рассказать о том, как всё это работает. Физический движок - это библиотека, которая рассчитывает физические взаимодействия между объектами игрового мира (симулируется физика, описываемая законами Ньютона). Физические движки, используемые при разработке игр, как правило, не симулируют физические процессы игрового мира на все 100%, а лишь производят достаточно точную аппроксимацию физических законов. Основными частями физического движка являются подсистема определения столкновений и подсистема расчета физических взаимодействий. Первая из них занимается расчётом столкновений объектов. Их обсчёт в реальном времени требует очень много ресурсов, поэтому разработчики используют различные ухищрения, дабы упростить этот процесс. Например, осуществляется разбивка пространства на подпространства, такие как quadtree (рекурсивное деление пространства на четыре подпространства) или осtree (деление на восемь подпространств), для снижения количества проверок столкновений. Системы столкновений работают дискретно - столкновения рассчитываются через определенные промежутки времени. Итак, такого рода системы могут приводить к тому, что столкновения с участием быстро движущихся объектов не фиксируются - для борьбы с подобного рода артефактами некоторые системы столкновений поддерживают так называемый continuous collision detection (CCD) (системы непрерывного отслеживания столкновений). Суть метода continuous collision detection заключается в том, что проверка столкновений между двумя объектами производится не между ними самими в дискретные моменты времени, а между вытянутыми объемами, которые представляют движение объектов в течение всего временного шага. Когда столкновение уже произошло, за дело берётся подсистема расчета физических взаимодействий, которая определит, как именно поведут себя объекты после контакта. Подавляющее большинство физических движков симулирует физику твердого тела (Rigid body simulation), то есть тела, не меняющего свою форму. Для описания свойств твердых тел используется понятие материала, который описывается параметрами: коэффициент трения (может быть два: коэффициент трения покоя, который показывает, как тяжело сдвинуть тело, и коэффициент трения движения, который показывает, как тяжело удерживать тело в движении), упругость (сколько энергии остается после столкновения с другим телом). Помимо этих параметров, могут быть и другие. Твердое тело также имеет массу. Движение твердых тел описывается при помощи линейной, угловой скорости и ускорения. Так же на базе физики твердого тела реализуется также физическое поведение персонажей и широко известный эффект тряпичной куклы (rag-doll), который заключается в том, что персонаж (чаще всего мертвый) падает вниз, как тряпичная кукла. Для реализации подобного рода поведения только твердых тел недостаточно. Используются так называемые сочленения (joint) или ограничения (constraint). Разумеется, все эти расчёты требуют немалых аппаратных ресурсов и с ростом реалистичности физики эти требования растут как по экспоненте. source Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2009, 14:34:52 |
|
||
|
Как работают игры внутри
|
|||
|---|---|---|---|
|
#18+
Еще Havoc для комплекта. Никогда не использовал, но сайт интересный. ----------- Д-р Форман: Мальчик просто сдавал экзамен по математике, а затем внезапно его начало тошнить и он перестал понимать, где он. Д-р Хаус: Вот до чего доводит математика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2009, 16:39:29 |
|
||
|
Как работают игры внутри
|
|||
|---|---|---|---|
|
#18+
А мне Torque понравился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2009, 07:33:40 |
|
||
|
Как работают игры внутри
|
|||
|---|---|---|---|
|
#18+
XDiaBLoА мне Torque понравился. Сейчас PhysX рулит, в последней НФС втулили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2009, 13:30:07 |
|
||
|
Как работают игры внутри
|
|||
|---|---|---|---|
|
#18+
игры пишут умные ребята ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 23:39:54 |
|
||
|
Как работают игры внутри
|
|||
|---|---|---|---|
|
#18+
С0ВЕСТЬXDiaBLoА мне Torque понравился. Сейчас PhysX рулит, в последней НФС втулили. Дак PhysX физический движок. А Torque, это полностью игровой, всё в комплекте, и графика, и физика, и звук, и сеть, и всё что нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2009, 10:34:03 |
|
||
|
Как работают игры внутри
|
|||
|---|---|---|---|
|
#18+
XDiaBLo Дак PhysX физический движок. А Torque, это полностью игровой, всё в комплекте, и графика, и физика, и звук, и сеть, и всё что нужно. Для тех кто в танке :) Вообще-то тут обо физических двиглах речь идет, а не "полностью игровых". Игровые двигла - это совсем другая тема и очень сложная! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2009, 12:09:49 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=36210207&tid=1344230]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
198ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
90ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 560ms |

| 0 / 0 |
