Tokamak physics engine

Tokamak Physics Engine
Тип физический движок
Ключевой программист Дэвид Лэм (англ. David Lam)
Написан на языке C++
Лицензия свободнаяBSD
Последняя версия 1.0.5а (22 апреля 2008)
Страница проекта на SourceForge.net
Логотип Викисклада Медиафайлы на Викискладе
Демонстрация системы обнаружения столкновений и физики твёрдых тел в движке Tokamak
Демонстрация физики «веревки», в которой используется шарнирное соединение
Демонстрация физики Ragdoll. Этот рэгдолл сконструирован с использованием комбинации шарнирных и шариковых сочленений (соединений) с ограничениями движения данных соединений. В этой демонстрации несколько рэгдолл-моделей катятся вниз по ступенькам.

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[1]:

Примечания

  1. Physics Engine: Tokamak (англ.). Дата обращения: 27 апреля 2020. Архивировано 29 ноября 2021 года.

Ссылки

  • Медиафайлы на Викискладе
  • Общее описание Tokamak на сайте GameDev.ru (рус.)
  • Кристина Каштанова. Введение в физическую библиотеку Tokamak  (рус.). GameDev.ru (10 июля 2005). — Основы использования движка «Tokamak» и визуализация в OpenGL. Дата обращения: 4 апреля 2009.
  • Тимур Рузиев. Rag doll  (рус.). GameDev.ru (25 июня 2005). — Симуляция физики «тряпичной куклы» с использованием движка «Tokamak». Дата обращения: 4 апреля 2009.
Перейти к шаблону «Игровые движки»
Графические
Свободные
GLScene
Horde3D[англ.]
Irrlicht
OGRE
OpenSceneGraph
Проприетарные
Outerra[англ.]
Физические
Свободные
Box2D
Bullet
Chipmunk[англ.]
Newton
ODE
Tokamak
Проприетарные
DMM
Havok Physics
PhysX
Общего назначения
2D
Свободные
Allegro
ClanLib
Cocos2d
Construct
Felgo[англ.]
idTech 1
Проприетарные
Construct 2
GameMaker: Studio
Retro Engine
Stencyl
Vicious Engine
3D
Свободные
Away3D
BGE
Bork3D[англ.]
Cafu[англ.]
Crystal Space
Defold
Delta3D
dim3[англ.]
Genesis3D[англ.]
Godot
id Tech 2, 3, 4
jMonkeyEngine
Lumberyard
Moai
Nebula Device
Panda3D
Pygame
QFusion
Проприетарные
Chrome Engine
CryEngine
Dagor Engine
Freescape
Gamebryo
GoldSrc
Havok Vision
id Tech 5, 6, 7
LithTech
Marmalade
RAGE
RenderWare
Source
Source 2
Unigine
Unity
Unreal Engine (список продуктов)
Специализированные
2D
Свободные
LÖVE
Ren'Py
Stratagus
VASSAL
Wintermute
Проприетарные
M.U.G.E.N
NScripter
RPG Maker
3D
Свободные
DarkPlaces
OpenMW
OpenSim
Spring Engine
WorldForge[англ.]
Проприетарные
HeroEngine[англ.]
Другие