Современным маркетологам, вероятно, кажется невозможным продать новый никому не нужный онлайн шутер, не упомянув о грядущем, доселе не испытанном тактическом экспириенсе.
Пять лет назад Ubisoft удалось удивить дотошных любителей реализма, показав геймплей Осады. Выглядящий будто синематик, ловко избежал даунгрейдов и добрался до релиза как задумано - скрестив возможности и свободу.
Breaking the wall
Как понятно из названия, речь идет о главной фишке игры - возможности разломать на дырявые дощечки почти любую стену традиционно тесного осаждаемого помещения.
По обыкновению, за реализм в разрушении ответственна процедурная генерация - так и здесь, правда на разных стадиях.
Последовательность, для лучшего восприятия, будет опираться на создание объекта, а не его деструкцию.
Маясь тактическим досугом с молотом на перевес или взрывчаткой за пазухой, в любой из представленной в игре "крепостей", можно обнаружить, неожиданно, балки фундамента - скелет дома, усмиряющий особо тактичных и балансирующий вертикальный геймплей.
Вокруг оных и облепляются сотни заранее подготовленных осколков.
Я попробовал визуализировать геометрию подобного пола в Blender'е :
Занятное наблюдение - подавляющее большинство разрушаемых поверхностей структурно состоит именно из досок, хоть визуально это и парадоксально, но...
Но ломающиеся досочки это самый превосходный дует реалистичного визуала и оптимизации.
Такая же ситуация и со стенами, однако через них то пробиться можно - в этом и идея, потому между двумя такими же разбитыми на осколки стенками, располагаются деревянные подпорки (вероятно для реализма).
Что интересно - на этом не всё. С внутренней стороны каждой из стенок располагается плоскость с текстурой ДСП, так же разбитой на осколки, но не отлетающей, а просто уничтожающейся вместе с куском стены.
Обычные выстрелы проделывают дыры в каждом из осколков - это процедурная генерация уже на движке.
Для сотворения дырок можно пользовать два способа :
Серьезный способ заключается в создании 6 вершин на наружной части каждой стенки, соединении их гранями, созданием меж них полигонов, удалении тех, что меж 6 вершин и перестройка геометрии осколка, в котором была проделана дыра.
Способ попроще - булева разность.
Ах, чуть не забыл про самое главное :
Пульки делают дырки, когда дырок на осколке наберется больше определенного количества, осколок отлетает и своим отсутствием делает дырку по-больше.
О том как пулька летит : Как работает стрельба в играх
Ломать не строить : Как устроена механика постройки