LINUX.ORG.RU

Box3D 0.1.0

 , , box3d, ,


0

2

30 июня Эрин Катто, автор двумерного физического движка Box2D, опубликовал первую публичную альфа-версию 0.1.0 кроссплатформенного трёхмерного физического движка Box3D.

Проект написан на языке C (стандарт C17) и распространяется по лицензии MIT.
БЯМ использовались автором только для написания тестов и бенчмарков, примеров, миграции кода Box2D -> Box3D, рецензирования кода и конфигураций сборки.

На данный момент Box3D используется в игре The Legend of California (выйдет в этом году) студии Kintsugiyama, в которой Эрин сейчас и работает.

Возможности
  • Столкновения
    • непрерывное обнаружение столкновений;
    • события контакта;
    • выпуклые оболочки, капсулы, сферы, треугольные сетки и поля высот;
    • несколько форм у одного тела;
    • фильтрация столкновений;
    • рейкастинг, шейпкастинг и запросы перекрытий;
    • сенсорная система;
    • перемещение персонажей.
  • Физика
    • надёжный расчёт движения твёрдых тел с «мягким шагом»;
    • непрерывная физика для быстрых перемещений и вращений;
    • основанное на «острове» бездействие;
    • вращающиеся, призматические, дистанционные, моторные, сварные и колесные шарниры и соединения;
    • лимиты подвижности шарниров, двигатели, пружины и трение;
    • совместные и контактные силы;
    • события о движении и бездействии тела.
  • Система
    • ориентированный на данные дизайн;
    • экстенсивная многопоточность и SIMD;
    • оптимизировано для больших скоплений тел;
    • запись и воспроизведение.

>>> Анонс Box3D в блоге
>>> Видеопрезентация на youtube
>>> Документация

★★★★★

Проверено: hobbit ()
Ответ на: комментарий от dataman

Поэтому не в новости.

Ну да, конечно. Это же не для того, чтобы отсеять растаманов.

BceM_IIpuBeT ★★☆☆☆
()
Ответ на: комментарий от BceM_IIpuBeT

Проект написан на языке

Очень странно

Как раз ничего странного. Человек на зарплате пишет движок для игры. Занят практической работой. Ему нет дела до философии, он ничего не хочет доказывать миру, он просто делает свою работу. «Американские физики выбирают Си».

VIT ★★
()
Ответ на: комментарий от Bad_ptr

Да я не удивлюсь если он по выходным посещает синаг любовницу. А писать всё-равно приходится на нормальном языке.

VIT ★★
()

Автор «коробка 2» с гордостью анонсирует «коробку 3».

daniyal
()

БЯМ

Давно мечтал чтобы кто-то так написал. Спасибо :)

Интересно, а у них есть гравитация работающая к объекту? И не просто центру его масс, а к любой точке? Думаю как одну штуку сделать и не понимаю.

PcheloBiaka
()

Опенсорсные движки на С попадаются на удивление редко. Хорошо видеть ещё один от опытного разработчика

Вспоминается The Machinery - интересный движок был, но потом автор его решил стереть из интернетов просто начисто.

Bfgeshka ★★★★★
()
Ответ на: комментарий от PcheloBiaka

И не просто центру его масс, а к любой точке?

Если объект боменее шарообразный, можно считать, что всё сосредоточено в одной точке в центре, к ей и притягивается. Не надо мир переусложнять.

tiinn ★★★★★
()
Последнее исправление: tiinn (всего исправлений: 1)

Бедные парни на третьей картинке… Мне жаль их.

unDEFER ★★★★★
()
Ответ на: комментарий от tiinn

Нет, мне надо, чтобы объекты «магнитились» к ближайшей точке на «магните». Не писать же каждому объекту отдельно? Я пробовал делать так, чтобы каждый объект имеющий свойство магнетизма магнитился при включении, но у меня получается очень тяжело.

К центру массы, да, можно, но у меня объект ближе к форме банана, месяца.

PcheloBiaka
()
Последнее исправление: PcheloBiaka (всего исправлений: 1)
Ответ на: комментарий от VIT

А писать всё-равно приходится на нормальном языке.

Скорее на том, который в силу засилья легаси является основой ОС, а как следствие и всяких там рантаймов разных языков и потому является портируемым и «вызываемым» из других языков.
Если бы ядра систем были написаны на раст и была бы общепринята какая-нить конвенция вызова внешних растишкиных функций, то язык СИ быстро бы забыли.

Bad_ptr ★★★★★
()
Ответ на: комментарий от Bad_ptr

Если бы … то язык СИ быстро бы забыли.

Нет, и это уже много раз разбирали. Например, в гемдеве надо быстро пробовать и отбрасывать идеи, и раст который не дает наговнякать по быстрому (не рефакторя половину движка) тут не годится. При этом играм в целом пофигу на безопасность.

eagleivg ★★★★★
()
Ответ на: комментарий от Bad_ptr

Если бы ядра систем были написаны на раст и была бы общепринята какая-нить конвенция вызова внешних растишкиных функций, то язык СИ быстро бы забыли.

Даже если бы было так, обязательно нашлись бы желающие переписать это ядро «на нормальном Си» и мы вернулись бы туда, где находимся сейчас.

Если вы сами посмотрите на историю появления и дальнейшего развития языков, то увидите, что долгоживущие и используемые языки появлялись по необходимости, а не по идеологии и на деньги. Первые существуют и развиваются «вопреки» и «несмотря ни на что», вторые умирают как только заканчиваются деньги. Нужно что-то объяснять про раст, или и так всё ясно?

VIT ★★
()

По сабжу: дело хорошее, успехов проекту.

По мелочи:

БЯМ использовались автором только для написания тестов

На мой взгляд, как раз тесты должны писаться очень внимательно человеком - это спецификация на систему. А че там под капотом будет накалякано, чтобы тесты прошли, уже можно БЯМке отдать.

sgm
()
Последнее исправление: sgm (всего исправлений: 2)
Ответ на: комментарий от VIT

Если вы сами посмотрите на историю появления и дальнейшего развития языков, то увидите, что долгоживущие и используемые языки появлялись по необходимости

каннибализм тоже когда-то где-то является необходимостью

Bad_ptr ★★★★★
()
Ответ на: комментарий от Bad_ptr

И поэтому плевать против ветра не получится. Надо решать всё время появляющиеся проблемы, а не идеологией заниматься. Как ваш пример с каннибализмом. Там, где он исчез, он исчез не потому, что «мясо человека невкусно или аморально», а потому что «мясо коровы проще добыть в нужном количестве».

VIT ★★
()
Ответ на: комментарий от Bad_ptr

Я говорю, что надо решать проблемы по мере поступления, а не создавать идеологически верные решения для надуманных задач.

VIT ★★
()
Ответ на: комментарий от VIT

Нет, вы говорите что язык Си(каннибализм) – это чудесный и прекрасный язык. А это я вам говорю что Си(каннибализм) используется только потому что легаси(решают проблемы по мере поступления, а не идеологически верные решения), а языки есть и по-лучше по-удобнее.

Bad_ptr ★★★★★
()
Последнее исправление: Bad_ptr (всего исправлений: 1)
Ответ на: комментарий от Bad_ptr

Вы или не читаете, что я говорю, или настолько поглощены своей идеей, что не воспринимаете прочитанное. Язык Си выбран не потому, что он легаси. И не потому, что он чудесный и прекрасный. И «получше, поудобнее» - субъективные понятия.

Язык Си выбран потому, что он до этого помогал решать и сейчас помогает решать поставленную задачу написания игрового движка. Для этой задачи «получше и поудобнее» не лучше и неудобно для него.

VIT ★★
()
Ответ на: комментарий от VIT

Это вы не понимаете что пишите. Вот ваша цитата:

«Американские физики выбирают Си».
писать всё-равно приходится на нормальном языке.

Начнём с того что многие «американские физики» пишут ваще на фортране или матлабе.
Продолжим тем что вы назвали язык Си «нормальным» так, что другие языки получились ненормальными.
И те кто выбирают Си, они выбирают не язык в первую очередь, а готовую(легаси) инфраструктуру.

Bad_ptr ★★★★★
()
Ответ на: комментарий от Bad_ptr

А вот про нормальный язык - нет. Интересно, что два человека текст поняли с самого начала правильно, а один нетакусик со своим растом полез в бутылку. Непонятно, зачем?

VIT ★★
()
Ответ на: комментарий от VIT

Ну вот и отлично. Не поняли сейчас, может поймёте потом, но говорят, что если чувства юмора нет, то его совсем нет и само не появится.

VIT ★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.