American Journal of Physics
- 1 year ago
- 0
- 0
Tokamak Game Physics SDK (далее — Tokamak ) — физический движок , работающий в режиме реального времени, который распространяется на основе свободной лицензии BSD с открытыми исходными кодами.
В начале Tokamak был свободным только для некоммерческого использования, однако с мая 2007 года движок перешёл на открытые исходные коды под лицензией BSD.
Физический движок Tokamak обладает уникальным итерационным методом для обработки ограничений ( англ. solving constraints ). Этот метод необходим для того, чтобы позволять разработчикам делать выбор между точностью и скоростью и обеспечивать более предсказуемое потребление ресурсов процессора и системной памяти физическим движком. Обработчик ограничений Tokamak’а не вовлекает в обработку большие матрицы, избегая таким образом ограничение на полосу пропускания памяти на некоторых игровых консолях .
Tokamak поддерживает множество типов связей ( англ. joint ), ограничений ( англ. joint limits ) и реалистическую модель трения. Tokamak оптимизирован для наложения ( англ. stacking ) большого количества объектов, что является часто требуемым многими разработчиками игр. Tokamak обеспечивает обнаружение столкновений ( англ. collision detection ) для примитивов ( параллелепипед , сфера , капсула ), комбинаций примитивов и произвольных статических полигональных сеток ( англ. arbitrary static triangle meshes ). Лёгкие «твёрдые частицы» обеспечивают эффекты частиц ( англ. particle effects ) в играх с минимальными затратами.
Tokamak также поддерживает «Разламываемую конструкторскую модель» ( англ. Breakage Constructing models ), которая разламывается в результате столкновений. Фрагменты (обломки, осколки) первоначальной модели будут созданы автоматически встроенными функциональными возможностями движка.
Tokamak API содержит два разных типа классов. Классы интерфейса являются классами объектов, создаваемыми и управляемыми непосредственно основными функциями Tokamak или методами его класса. Другая группа — классы периферии, которые представляют собой обычные классы C++ , определённые и управляемые пользователем.
Tokamak API написан на языке программирования C++ и представляет собой объектно-ориентированный интерфейс, хотя объявление виртуальных функций сведено к минимуму. Вообще-то, как таковых их нет. Причиной данной реализации является то, что на некоторых платформах вызовы виртуальных функций слишком «расточительны» вследствие ограниченного размера кэша .
Неполный список компьютерных игр , использующих Tokamak :