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 ★★
()

Какая годная годнота. Попробую собрать его в emscripten, если взлетит можно кучу игорей наделать

ckotctvo
()

Будет ли у пользователя разрыв шаблона от сравнения производительности этого движка с HL2 в пересчёте на один разбрасываемый взрывом кубик?

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

Box2D написан на сях, Box3D написан на его основе, поэтому он тоже на сях. Других причин нету.

В геймдеве стандарт плюсы, а не си. Если бы Box3D писался с нуля, он бы писался на плюсах, соседний проект того же автора в репе написан с нуля на плюсах.

Рофел всех срачей си vs раст в том, что топильщики за си сами на нем никогда не писали, да и с обеих сторон баррикад 80% максимум скрипты на баше лабали. Поэтому все аргументы сводятся к философии и американским физикам и бредятине, а не к очевидным практическим вещам.

Другой рофел втом, что если исключить легаси, то это си в наше время выбирают по ИДЕОЛОГИЧЕСКИМ причинам. Идеологические это когда берут си, потому что «американские физики в 80х годах его советовали», а не потому что си хорошо подходит под задачу.

Никому не уперлось писать бойлерплет, костыли на маркосах, дрочиться с ручным выделением памяти под массивы и строки, когда есть плюсы с тем же перфомансом и почти той же переносимостью. Даже в эмбедеде если рантайм плюсов влезает, часто пытаются плюсы юзать, просто потому что фичей больше а бойлерплета писать меньше. Ровно по тем же причинам люди берут раст вместо плюсов, когда можно писать с нуля. Меньше дрочева, нет старых архитектурных косяков, больше современных фич.

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

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

Ali_Tycsan
()

Анонс Box3D в блоге

Анонс в блоге в сто раз информативнее и интереснее чем новость тут.

Кайфового читать шарящего человека, особенно в эпоху нейрослопных макак, которые искренне думают что ии сделал их человеками. Еще лет 15-20 назад каждый второй в околоит был как этот erincatto. А сейчас только и обсуждений кто в каких позах кодекс и клода ублажает, противно

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

Язык Си выбран не потому, что он легаси

В том что и дело, что в Box3D си именно потому что легаси.

Очень продуктивная беседа.

Я, конечно, могу начинать рассуждения почему «лично я» многое что пишу пишу именно ни Си, но вряд ли это кого-то интересует. А фраза «Никому не уперлось писать бойлерплет, костыли на маркосах, дрочиться с ручным выделением памяти под массивы и строки, когда есть плюсы с тем же перфомансом и почти той же переносимостью.» может обсуждаться с тысячей комментов и всё-равно каждый останется при своём. Поэтому я скажу так - в тех задачах, где мне нужен полный контроль над железом вплоть до регистров ассемблера и конкретных адресов памяти у меня нет выбора, или ассемблер или Си. В тех задачах, где мне нужно обращаться к библиотеками производителя, по корпоративному недоразумению написанные на С++ я свою часть всё равно пишу на Си. Если мне по долгу службы нужно что-то дописать в проект на Си++, то значит это работа не моего уровня и это смогут сделать сотрудники с меньшим опытом - они и будут это делать под моим руководством. Это же касается Питона. А других языков, кроме Фортрана, Си, Си++, и Питона в моём бизнесе пока не существует.

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

Box2D написан на сях, Box3D написан на его основе, поэтому он тоже на сях. Других причин нету.

В геймдеве стандарт плюсы, а не си. Если бы Box3D писался с нуля, он бы писался на плюсах, соседний проект того же автора в репе написан с нуля на плюсах.

Очень продуктивная беседа.

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

Я, конечно, могу начинать рассуждения почему «лично я» многое что пишу пишу именно ни Си

я свою часть всё равно пишу на Си

Иными словами вы пишете все на сях, только потому что вам нравится писать на сях и оправдываете это идеологической херней про физиков. Растоманы пишут все на расте, потому что им нравится раст и оправдывают это другой идеологической херней. Вы одинаковые.

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

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

vtVitus ★★★★★
()

Почем на скрине «коробки 3д» какие-то шары, пончики и манекенчеки? Где коробки? Не канон.

daniyal
()
Ответ на: комментарий от vtVitus

Автор прямо пишет что You can think of Box3D as a fork of Box2D, extended with many features needed for 3D games

во многих играх на разных языках - пистон, java, с#

Движки все игровые на плюсах написаны и физический движок интегририуется в плюсовый код, а писитоноджавашапры сбоку приделываются как скриптовый язык для игровой логики.

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

Чел взял свой сишный box2d, допилил к нему пару фич чтобы он умел 3d и выложил. А тут развели уже 2 страницы шизотеорий почему на си

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

Во! Хорошо, что кто-то понимает. Поэтому combats.ru писали на perl и потом делали клоны на php. И сейчас те движки в ходу у народа. На пхп игру так вообще за пару минут подкрутить можно. Но это, конечно, верно для чат-браузерных игр, без наворотов.

AnonymUser
()
Последнее исправление: AnonymUser (всего исправлений: 3)

основанное на «острове» бездействие;

Где-то тут не это, Вам не кажется? Это просто придирка к грамматике. Или я единственный, кто дочитал до этого пункта, или остальным все равно.

fox72
()
Последнее исправление: fox72 (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.