ronniko
> Затем что бы юзать на любом ЯП отдельно gui.dll
Вот только придётся ещё для любых ЯП сделать хидеры с декларацией всех типов и классов, а также поиметь массу геморроя с передачей строк и всех прочих динамических типов.
Это всё можно, конечно, всё решаемо, но imho весьма далеко от "удобно".
Ну и если уж пихать в DLL, то весь движок, а не только GUI. Но целесообразности этого я не ощущаю. Смысл движка на Delphi в том, что людям, знающим Delphi и желающим написать что-нибудь такое графическое - удобнее и перспективнее использовать нативный движок, а не библиотеку из другого языка. А если человек пишет на другом ЯП, то зачем ему не-родной Delphi-движок? Он для него ничем не лучше, чем что-либо из более популярной и развитой для геймдева среды, т.е. C++
Cooler
> Смысл движка на Delphi в том, что людям, знающим Delphi и желающим написать
> что-нибудь такое графическое - удобнее и перспективнее использовать нативный
> движок, а не библиотеку из другого языка. А если человек пишет на другом ЯП, то
> зачем ему не-родной Delphi-движок?
если писать на каком-то еще более редком языке (как роннико на асме или я на кристалле), то dll - настоящее спасение, на С++ фиг подключишь библиотеку, а на чистом С их не так много.
Но да, для этого надо выстраивать API движка\библиотеки в стиле С, т.е. без строк\объектов\прочих сложных фич паскаля. Если изначально на это расчета не было, то заморачиваться нет смысла.
kipar
Да, изначально на это расчёта не было. Правда, движение в эту сторону есть - в 4-й версии я половину API перевёл на интерфейсы. Но вот как-раз в GUI много работы со строками и классами.
Ну например ты же libogg.dll и sdl юзаешь.
Ведь удобно же и просто пользоваться.
Я например libzplay.dll(жирная 2 метра 200 кб) на асме юзаю.
Или на дельфи тяжело делать dll ? :)
ronniko
Ну тут всё относительно. Там где специализация узкая и простой API - тогда удобно. А где-то удобнее наследовать классы. Или вот например я предпочитаю вместо Vector3Add(a,b) писать a.Add(b) - разница только лишь в синтаксисе, но в DLL-то все-равно будет лежать нечто вроде TVector3_Add(a,b)
DLL на Delphi делать не тяжело. Вроде даже есть инструменты для автоматизации экспорта.
Автор крут. Весч хорошая.
Однако есть несколько пожеланий к дальнейшей разработке.
Как то давно, у меня был опыт разработки небольшой игры... и я использовал движок DWLab написанного на BlitzMAX. В последствии в процессе поддержки по движку познакомился и с самим автором движка - Матвеем Меркуловым из Южно-Сахалинска.
Так вот...этот движок просто мегаудобен в использовании! У него низкий порог вхождения и при этом он ни в чем не ограничивает программиста. Помню, работая с ним я просто отдыхал а не работал - как там все грамотно спроектировано. На первый взгляд казалось бы - тайлово-спрайтовый движок с возможностью прикреплять модели поведения - однако там все на своих местах, все интуитивно, какая то магия дружелюбности к пользователю присутствует. В общем после этого движка меня больше ни один другой так не цеплял...
Возможно вам стоило бы взглянуть на него и почерпнуть кое какие идеи...
Собственно вот он: https://code.google.com/archive/p/dwlab/downloads
редактор уровней лежит под названием : DWLab world editor v1.11.2.1.7z
и сам фреймворк лежит под именем : DWLab v1.5 full.zip
ЗЫ В 2014-м автор объявил движок - народным достоянием и отменил все лицензии на него.
Некоторые примитивы гораздо проще и удобнее рисовать через шейдер, чем возиться с геометрией. Скруглённый прямоугольник со сглаживанием - характерный пример. Код такого шейдера очень простой.
Cooler
> Код такого шейдера очень простой.
А что с производительностью?)
Vitorio
> А что с производительностью?)
С производительностью нормально - шейдер же простой. Сетка из 300 прямоугольников, покрывающая весь экран в 1920x1080 на моей GTX 1660Ti выдают >500 fps.
Вообще в движке есть 100500 мест, которые влияют на производительность отрисовки GUI, но нет особого смысла с ними заморачиваться, т.к. это не узкое место.
Cooler
Вижу, что движок поддерживает мобильные платформы. Интересует какая там производительность этого шейдера. На мобилках все грустнее с этим.
Vitorio
> Вижу, что движок поддерживает мобильные платформы.
В прошлом поддерживал, в актуальной ветке (engine4) - нет.
Тема в архиве.