ПроектыФорумУтилиты

Apus Game Engine - игровой движок на Delphi / FPC (6 стр)

Страницы: 1 2 3 4 5 6
#75
0:31, 7 июля 2022

ronniko
> Затем что бы юзать на любом ЯП отдельно gui.dll

Вот только придётся ещё для любых ЯП сделать хидеры с декларацией всех типов и классов, а также поиметь массу геморроя с передачей строк и всех прочих динамических типов.
Это всё можно, конечно, всё решаемо, но imho весьма далеко от "удобно".

Ну и если уж пихать в DLL, то весь движок, а не только GUI. Но целесообразности этого я не ощущаю. Смысл движка на Delphi в том, что людям, знающим Delphi и желающим написать что-нибудь такое графическое - удобнее и перспективнее использовать нативный движок, а не библиотеку из другого языка. А если человек пишет на другом ЯП, то зачем ему не-родной Delphi-движок? Он для него ничем не лучше, чем что-либо из более популярной и развитой для геймдева среды, т.е. C++

#76
14:41, 7 июля 2022

Cooler
> Смысл движка на Delphi в том, что людям, знающим Delphi и желающим написать
> что-нибудь такое графическое - удобнее и перспективнее использовать нативный
> движок, а не библиотеку из другого языка. А если человек пишет на другом ЯП, то
> зачем ему не-родной Delphi-движок?
если писать на каком-то еще более редком языке (как роннико на асме или я на кристалле), то dll - настоящее спасение, на С++ фиг подключишь библиотеку, а на чистом С их не так много.
Но да, для этого надо выстраивать API движка\библиотеки в стиле С, т.е. без строк\объектов\прочих сложных фич паскаля. Если изначально на это расчета не было, то заморачиваться нет смысла.

#77
16:07, 7 июля 2022

kipar
Да, изначально на это расчёта не было. Правда, движение в эту сторону есть - в 4-й версии я половину API перевёл на интерфейсы. Но вот как-раз в GUI много работы со строками и классами.

#78
18:12, 7 июля 2022

Ну например ты же libogg.dll и sdl юзаешь.
Ведь удобно же и просто пользоваться.

Я например libzplay.dll(жирная 2 метра 200 кб) на асме юзаю.

Или на дельфи тяжело делать dll ? :)
Изображение

#79
20:29, 9 июля 2022

ronniko
Ну тут всё относительно. Там где специализация узкая и простой API - тогда удобно. А где-то удобнее наследовать классы. Или вот например я предпочитаю вместо Vector3Add(a,b) писать a.Add(b) - разница только лишь в синтаксисе, но в DLL-то все-равно будет лежать нечто вроде TVector3_Add(a,b)

DLL на Delphi делать не тяжело. Вроде даже есть инструменты для автоматизации экспорта.

#80
8:01, 12 июля 2022

Автор крут. Весч хорошая.

Однако есть несколько пожеланий к дальнейшей разработке.

Как то давно, у меня был опыт разработки небольшой игры... и я использовал движок DWLab написанного на BlitzMAX. В последствии в процессе поддержки по движку познакомился и с самим автором движка - Матвеем Меркуловым из Южно-Сахалинска.

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

Возможно вам стоило бы взглянуть на него и почерпнуть кое какие идеи...

Собственно вот он: https://code.google.com/archive/p/dwlab/downloads

редактор уровней лежит под названием : DWLab world editor v1.11.2.1.7z
и сам фреймворк лежит под именем : DWLab v1.5 full.zip

ЗЫ В 2014-м автор объявил движок - народным достоянием и отменил все лицензии на него.

#81
21:32, 12 окт 2022

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

#82
18:17, 13 окт 2022

Cooler
> Код такого шейдера очень простой.
А что с производительностью?)

#83
18:37, 13 окт 2022

Vitorio
> А что с производительностью?)
С производительностью нормально - шейдер же простой. Сетка из 300 прямоугольников, покрывающая весь экран в 1920x1080 на моей GTX 1660Ti выдают >500 fps.
Вообще в движке есть 100500 мест, которые влияют на производительность отрисовки GUI, но нет особого смысла с ними заморачиваться, т.к. это не узкое место.

#84
18:57, 13 окт 2022

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

#85
21:15, 13 окт 2022

Vitorio
> Вижу, что движок поддерживает мобильные платформы.
В прошлом поддерживал, в актуальной ветке (engine4) - нет.

Страницы: 1 2 3 4 5 6
ПроектыФорумУтилиты

Тема в архиве.