Опенсурсный движок для настоящих профессионалов.
Основной язык для скриптов - Lua, широко распространённый в индустрии.
Искоробочная кроссплатформенность не только на десктопы, веб и мобилки, но и на консоли - Switch, PS4.
Билд пустого проекта под веб занимает меньше мегабайта.
Поддерживает WebGL, OpenGL, Vulkan, Metal.
Ориентирован на 2д, но умеет и 3д.
Модульный и расширяемый.
Есть мнение, что игры для всяких яндексов и прочих веб-помоек быстрее и проще всего создавать именно на этом движке. Он под них заточен, они быстро грузятся из-за малого размера билда, плюс сами же эти конторы активно сотрудничают с разрабами (ну, донатят как минимум). Так что это выглядит как движок для зарабатывания быстрых денег на скибиди-туалетах. Без всяких revenue share и подобной проприетарной херни: всё, что ты заработал, твоё.
О ГОСПОДИ! Придюк и двача добрался.
А гайды для тупых есть? Просто хз как подступиться-то вообще. Плагин для яндекса есть? Вообще есть шансы вката, если я максимум копался в годоте.
>гайды для тупых есть?
Хуй знает, наверное. Щас вот зашёл на ютуб, вбил в поиск Defold, в выдаче какие-то туторы, в том числе на русском языке, с разных каналов. Официальная дока хорошая, удобная, но надо уметь читать доку вообще как таковую.
>Плагин для яндекса есть?
Аж целых три: официальный, неофициальный и Инстант Геймс Бридж.
>есть шансы вката
Ну вот я пока только в процессе вката. Вроде посложнее годота. Например, размер шрифта интерфейса можно поменять только из текстового конфига. И таких вот ненужных подводных - куча. По сути именно они представляют собой порог вката.
>но умеет и 3д
Очень номинально, насколько я понимаю.
1. Импорт gltf, напр. mixamo, скорее всего работает. Но, в доках написано, можно использовать только файл с 1 мешем и 1 материалом. Т.е. сложные модели придется нарезать в блендере по слоям, если это вообще прокатит.
(Также в одном месте написано что и с 1 анимацией, и потом переключать в движке)
Надо посмотреть что у них в pbr демке, тоже всего 1 материал? Или они делают материалы внутри движка и не импортирют
2. Не нашел чтобы были animation tree для блендинга анимаций.
3. Не нашел есть ли бленд шейпы.
Так, по поводу предыдущих пунктов, кто-то пилит кастомный импортер, который что-то из перечисленного возможно умеет
https://github.com/abadonna/defold-mesh-binary
4. Не нашел heightmap terrain, кто-то на форуме давно выкладывал простенький, вряд ли получится использовать
5. Что там с тенями? Их пока нет? Есть проект с освещением фонариком, но без теней, и есть проект с направленной неподвижной тенью, не похоже что получится их легко объединить.
6. 3д физика вроде бы есть, хотя и с описанием кучи проблем на наклонных поверхностях, дрожащих у препятствий контроллерах, некорретной работы при скачках фпс, и прочих прелестях. Демка с машинкой из ассетстора вроде бы приятная
7. В этой демке у меня стабильно воспроизводится глюк, черный треугольник в окне, либо что-то с математикой, либо проблема с дровами.
8. В этой же демке, вроде, какое то подобие атмосферы рисуется. С скайбоксами же непонятно, кто-то пишет что делал их, вроде бы даже какой-то аддон на гитхабе старый, не знаю работает ли.
В общем на мой взгляд 3д подходит только для каких то гиперказуалок и при этом даже простую базу под игру собирать не меньше недели-двух.
Может быть на геймджемах кто-то уже выкладывал более полноценные игры, которые могут пойти как стартовый проект, надо копаться.
>7. черный треугольник в окне,
Ладно, тут в чем то другом дело. при заднем ходе из под земли вылезает черный шар. Может это не глюк, а так задумано.
Обе 3д игры (bullet),что я пробовал, очень отзывчивые (ну,собственно, без теней и эффектов, чего б им не быть)
https://harnarinder.itch.io/drift-dodge-drive-3d-drive
https://d954mas.github.io/defold-box2d/
А вот box2d похоже не дружит с фаерфоксом:
В firefox на мобилке не запустились
В firefox на некроноуте тормозят, вплоть до неправильного фикседстепа, что не дает прыгать или пулять в игре
В хроме на мобилке запустились и работали все отсюда https://itch.io/games/made-with-defold/tag-physics
Если твоя цель - веб, то однозначно стоит. В остальных случаях подумой.
через API блендинг вроде есть
>model.play_anim(url,anim_id,playback,[play_properties],[complete_function])
>[play_properties] table optional table with properties Play properties table:
>blend_duration
> number Duration of a linear blend between the current and new animation.
а так да, анимации нарезать по одной надо.
мало ли кто не видел https://github.com/FlexYourBrain/Defold_Animation3D_Guide
Редактор конечно неторопливый, стартует долго, игру запускает долго
А потом в один момент он упал, и открылась причина. Редактор написан на Java
>Редактор написан на Java
Хуже - он написан н Clojure. Так-то выполняется на одной wm, но однажды я хотел запилить в него одну фичу, и обломался, потому что ничего не понимаю.
Были большие надежды на дефолд, но все таки пришел к выводу, что lua это говно, и если в игре планируется много кода - будет мучительно больно с этим работать, сложно поддерживать, сложно тестировать, рефакторить.
Т.е. если делать платформер, где будут несложные скрипты по 50-100 строк - то еще можно жить.
А вот если в коде много логики и алгоритмов, например, какие-то геймплейные правила/стейт машины для пошаговой игры, или даже 3 в ряд, то придется изрядно покушать говна с lua.
Дефолд для несложных казуальных игр под мобилки и веб. На ютубе есть видео, где рассказывают, как они пытались сделать на дефолде какую-то сложную стратегию. В итоге удалось закончить, но пришлось сильно ужиматься и оптимизировать.
Только в haxe к каждой внешней либе нужно писать привязки и следить чтобы каждое api было up to date, вряд ли какой-то левый чел с гитхаба будет это 100% вовремя и правильно делать.
с дефолтдом как раз ничего не надо, дефолд все что надо для игродева покрывает с головой
Вообще с трудом что-то покрывает.
Чо т я не понял - мне серьёзно всю северную логику надо будет на Js писать? Это точно хорошая идея?
Пиши на луа.
Дефолде пишется скрипты на луа, на накаму модули тоже на луа, не это ли прекрасно?
Судя по описанию, этот самый тил он как тайпскрипт для жабаскрипта, только для луа.
Разве? Я недавно на созвоне с разрабами был - они говорили, что Тил будет хз когда, нет ресурсов его допилить.
О, ну это заебись, богоугодная хуйня.
Для того, чтобы использовать звук, нужно разместить компонент Sound. Для запуска необходимо, чтобы с компоненте был задан файл со звуком для проигрывания.
Таким образом, я не могу создать компонент со звуком из кода. Только засетапить ручками. Либо опять же переназначить существующий компонент на другой звук. В теории конечно можно звук пихать в go и создавать go в коде из фабрики...
Очень неочевидно. Сомнительно, но окэй.
Можно конечно как вариант генерить через фабрику go со звуком-заглушкой, а потом из кода менять, но это уже порнуха прям какая-то.
не знаю, по-моему как-то странно держать в коллекции специальный go, в котором будет храниться куча звуков. Ведь теоретически для среднестатистической игры их понадобится > 30.
Это как-то неправильно, говорит мое кодерское чутье.
Ну ок, допустим, у нас есть разные звуки, мы можем их подгружать и освобождать память от них. Подумал, что лучше это даже делать через коллекции.
Допустим, коллекция со звуками для боя, коллекция со звуками для UI, еще какая-нибудь коллекция.
Ну и два-три саунда для переключаемых звуков фоновой музыки.
Вот это по-нашему.
https://forum.defold.com/t/defold-1-8-1-has-been-released/77064
я еще не качал, жду пока в стим зальют.
Поясню - отлавливаю позицию мыши на экране в момент взаимодействия с нодой, крэкс-пэкс, вычисляю путем несложных математических изысков, в какой точке ноды был клац.
Но... при изменении размеров экрана игра начинает считать новый размер экрана дисплеем, "натягивая" существующие настройки display на новый экран.
Вот например, если у нас было 800х600, мы сузили окно вдвое, например, при сохранении гуи (и всех его размеров), движок пересчитывает клики по гуи на краю, пофигистично игнорируя реальные размеры сетки - он считает, что клик приходится по 800-600, на деле же, та нода, по которой мы кликаем, расположена в 400-300.
И ладно, если от нас требуется чекнуть через gui.pick_node - он вроде ок.
Но когда дело доходит до использования action.x и action.y для позиционирования новых объектов (например, выстрел от пули), то возникает казус, позиционирование выходит за пределы ноды и уходит в жопу.
бесит.
Зачем стим? Можно же просто скачать с сайта. Апдейты тоже накатывать несложно, пара кликов в среде разработки.
Хочу попробовать сделать простую короткую игру. Сам я, если не считать пару демок на очень давние твг, игр никогда не делал и никакого опыта в геймдеве не имею.
Выбирал между годотом и дефолдом, но выбрал дефолд из-за того, что немного знаком с луа.
В качество главного героя - тяночка.
В общем, пыхтел пару дней, но все же смог изобразить нечто похожее на главную героиню. Осталось самое сложное - анимировать.
>между годотом и дефолдом
>из-за того, что немного знаком с луа
Я вкатился в ГДСкрипт с Паскаля, было несложно.
>>54423
>И самый первый и главный затык - а где брать спрайты.
Это вообще не должно тебя волновать на первых порах.
>рисовать самому... рисую я на уровне ребенка
Это не важно, нужно сначала геймплей сделать.
Спрайты перерисовать всегда успеешь.
>Осталось самое сложное - анимировать.
Опять же, не торопись. Сделай игру на квадратах.
>Я вкатился в ГДСкрипт с Паскаля, было несложно
Может, гдскрипт и прост, но честно говоря, не хочу опять раздумывать над выбором движка. Прошел пару туторов по дефолду, все вроде понятно.
Да, я согласен, что нужно использовать квадраты, но я хочу проверить, что я вообще могу в плане графики. И отталкиваться в разработке от этого понимания, чтобы потом ничего не переделывать под свои скудные возможности
Да я и сам не знаю, если честно. Раньше годотю и биттиэнжин оттуда ставил.
Сейчас вот дефолд.
Заметил за собой особенность (с гд и бэ такого не было, с дефолдом появилась) - когда открываю стимчанский даже поиграться, деф маячит перед глазами и время от времени выигрывает у игр.
Т.е. для меня это вопрос скорее организации работы.
>в тредах других движков какая-то активность, аноны проджекты ебошат, пишут вопросы и ответы, а итт тишина
Этому есть пара объективных причин.
1) Юнити это 85-90%, тут уж ничего не поделаешь. Самая популярная девка в классе (поэтому меньше людей в комьюнити других движков)
2) Lua чрезвычайно прост на трейни-уровне, а документация у Дефа - мое почтение, очень подробно и доходчиво. Я серьезно, для движка с такой нишей на рынке это топ-доки. В коммерческих проектах ойти, где работал, о такой документации только мечтать можно (поэтому меньше шансов, что анон будет спрашивать что-то здесь).
А так, да, пустынно тут. Хотелось бы больше движухи вокруг Дефа.
Надо маскот-тянку завести, тогда сразу движ начнется, лол.
>движок не особо популярный - в тредах других движков какая-то активность, аноны проджекты ебошат, пишут вопросы и ответы, а итт тишина.
На то есть несколько причин. Нишевость - первая и очевидная, а вторая - весь движ и тусич происходит на родном форуме дефолда, в дискорде и телеге.
>>54423
>а где брать спрайты
Нейроночки - наше все для альф, бет и прочего препродакшена. Сам так делаю, результатом охуенно доволен.
Ну что же, теперь можно запускать дефолд.
Во время ходьбы туловище с головой двигаться должны.
ИРЛ этого не замечаешь, т.к. мозг компенсирует колебания.
на гифке есть микроколебания туловища. Возможно, их стоит увеличить. Но меня больше руки смущают
>такой себе из меня художник-аниматор
чел, это всяко лучше 90% анимаций в играх, которые я видел, в том числе ААААААААААААблядь ирлиацесс за 999 рублей.
Пили, не стесняйся.
Залупа какая-то этот дефолд.
Скачал, значит, тестовый проект с 3д-машинкой (Basic 3D Project), скомпилировал, запустил. Ок. Решил покопаться в сцене - а сцены-то и нет! В боковом меню иерархии какой-то тотальнейший хаос - сотни и сотни файлов (хотя в том же юнити хватило бы нескольких скриптов, папки с ассетами и сцены), и даже и близко нет ни одного, который бы открывал окно сцены с расставленными там ассетами. Неужели такого окна не существует, а ассеты нужно расставлять через код? Ну такое только в унитаз спускать, а не игру на этом делать.
Все там есть, кликай по файлам с расширением .collection
Другое дело, что дефолд это больше 2d движок, и для 3д его использовать стоит разве что из чувства энтузиазма
>>54941
>>54943
Нашел. Да, collection - это расширение файла сцены. Могли бы в самом начале руководства это написать. Как я понял, там в структуре этого самого 3д-тестового проекта куча фигни. Скрипт, отвечающий за FPS-контроллер (или его часть, скорее) еле нашёл. Им бы нормальную заготовку сделать для FPS, а то там 99% готовых проектов и шаблонов двумерные, несмотря на то, что функционал для 3д имеется.
Как вы считаете, если набросать одинаковую простую 3д-сцену в дефолде и юнити, увидим ли мы разницу в производительности у двух билдов?
мне кажется, что на маленьких проектах дефолд будет быстрее
по поводу "кучи фигни" - у юнити будет та же куча, если включаешь какие-нибудь доп. пакеты, хотя бы даже textmeshpro
Еще раз - дефолд - пихло преимущественно для простого 2д с минимальным размером билда. Сравнивать минималистичный движок в процессе допила с ебешим комбайном для 3д типа юнити - все равно что прикидывать сходство между скейтбордом и феррари. Хз как в будущем, но сейчас делать на нем 3д фпс никому в хуй не тарахтело.
>в дефолде и юнити
Почему сравниваешь не с Godot?
Опенсурс нужно сравнивать с опенсурсом.
И не только в плане
>производительности
но и удобства редактора, мануалов, скриптов.
>но и удобства редактора, мануалов, скриптов.
Двачую адеквата. Все так любят сравнивать максимум попугаев или цветности попугаев на квадратный метр, хотя рядовой кирилл все равно не будет делать ни буллетшторм, ни крузис.
Да. Я пытаюсь свою игру писать, например. Это такое че-то микс чего-то типа ККИ и текстового квеста в киберпанке. нет, не покажу, там постыдная хуйня пока что
В ядре движка все есть для 3д, но самого инструментария для работы с 3д нету, можешь попробовать сторонние редакторы, например видел экстеншен для пирсинга карт редактора квейка.
Можешь свой примитивный редактор написать. Но в любом случаи знакомство с движком я не рекомендую начинать с 3д, в любом случаи нужно будет основную массу всего ручками писать, кроме совсем простеньких, например тайловых данжен кровлеров и подобного.
На голой демо сцене честно хз будет ли дефолт производительнее юнити, но точно будет на порядок производительнее годота. Но весь потенциал дефолда раскрывается как раз на более менее нагруженных проектах, за счёт оптимальной работы с памятью и архитектуре, где к любому объекту мы получаем доступ за константное время, и работаем не с самим объектом а его идентификатором, в некой глобальной хешмапе, вся работа происходит на сишной стороне, компоненты объектов тоже упакованы подобным образом. Но за сам 3д рендер не скажу. Если сравнивать 2д то результаты на порядок в пользу дефолда если сравнивать с юнити.
Ну опровергни лол. Бенчмарки юнити, годота и дефолда доступны, сорцы дефолда доступны.
Зачем пояснять что-то шизу, у которого "хэшмапа какая то упакованная работает за константное время"?
Ты тупостью тролишь сейчас? С какой скоростью по твоему работает доступ к элементу хэшмап? Особенно в ситуации где движок сам задаёт уникальный Id для избежания коллизий
Да что там учить-то. Луа простой как палка же.
Я вот по этому ресурсу осваивал: http://lua-users.org/wiki/TutorialDirectory
>луа
>курсы
Нинужны. Серьезно. Просто берешь книжку по луа и читаешь, причем для дефолда еще и не нужен весь язык как таковой. Это очень маленький язык, его можно освоить буквально за считанные дни.