Проект Blaze, Lua для xtreme3d.

Вы просматриваете архив старого форума. Новый форум по ссылке


Автор Сообщение

бывалый
Группа: Участники
Сообщений: 39
Добавлено: 02-05-2017 17:25

Версия 0.0.4

Общее описание
BLAZE – Инструмент программирования основанный на скриптовом языке Lua. Основная идея программы заключается в объединении графического, звукового, физического движков для создания игр и программ.
В текущей версии программы используются:
xtreme3d - графический и встроенный в него физический движок.
gmsquall - звуковой движок.
file_dll - работа с текстовыми и бинарными файлами.
IniLibGMDLL - работа с ini файлами
Max WinAPI 2 - инструмент для работы с win API (создание интерфейса windows)
Также существуют отдельно созданные интерфейсы для создания окон, сообщений и взаимодействия с пользователем.
На данный момент возможности сильно ограничены, но в будущем есть планы их расширить.
Данная программа может быть полезна пользователям game maker или любителям других игровых конструкторов начинающим изучение программирования.
Наименование функций xtreme3d начиная с версии 0.0.4 изменены, в заголовок названий всех функций добавлен символ "x", в остальном имена остались прежними. Поэтому справки по данному движку не будет её Вы можете найти здесь: xtreme3d.narod.ru
Здесь не будет описан функционал языка lua, как им пользоваться ознакомьтесь на соответствующих сайтах и в примерах к данной программе.

Что нового в текущей версии
1. Добавлено расширение "Max WinAPI 2" для создания интерфейса windows (в Blaze появилась возможность создавать не только игры но и программы имеющие стандартный интерфейс windows).
2. Все функции подключаемые из сторонних библиотек получили в названиях индивидуальный первый символ. xtreme3d - символ "x", gmsquall - символ "s" и т.д. подробнее в описании к каждой из библиотек.

Ссылка на скачивание:
Blaze v 0.0.4
или
https://drive.google.com/file/d/0B5wwHmedZoAWX1JULTlONExfZzA/view?usp=sharing

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 02-05-2017 18:52
Ух ты, круто! А я вообще-то хотел поддержку Lua встроить прямо в xtreme3d.dll, для удобства, чтобы в целевом языке не мучиться с привязкой всех функций (использовал CrystalLua, пока написал только врапперы для функций раздела Object). Тоже сделал функции для создания окон, ввода с клавиатуры и мыши. И буквально сегодня начал экспериментировать со Squall, его тоже собирался встроить. Прямо совпадение какое-то. Теперь уже сомневаюсь - если такая большая работа уже проделана, есть ли смысл ее повторять?)

А ничего, если я Blaze на сайт выложу?

бывалый
Группа: Участники
Сообщений: 39
Добавлено: 03-05-2017 02:47
Я буду только рад увидеть её на Вашем сайте. Раз уж начали, то продолжайте. Тем более будет интересно наблюдать за параллельным развитием проектов. Порт Delphi->Lua использую другой "Lua4Delphi-0.0.3" тоже начинал с "CrystalLUA" почти закончил экспортирование функций но в конечном итоге отказался. У неё размер большой после компиляции и могу ошибаться но реализовать функцию "execute_file" на подобии как в game maker может не получится. Зато по CrystalLUA вопросы можно автору задавать.
Самое важное чтоб программа синтаксические ошибки показывала, хотя бы номер строки. Это у меня не выходит сделать.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 03-05-2017 10:31
Ага, спасибо, на днях выложу.
У меня вот такой API для Lua выходит:

lua = LuaManagerCreate();
LuaManagerSetConstantReal(lua, 'globalBack', global.back);
LuaManagerSetConstantReal(lua, 'globalScene', global.scene);
LuaManagerSetConstantReal(lua, 'globalSront', global.front);

script = TextRead('scripts/test1.lua');
if not LuaManagerRunScript(lua, script)
game_end();

LuaManagerCallFunction(lua, 'someLuaFunction');

Т.е., можно однократно выполнить скрипт из строки, а потом вызывать функции Lua из него.

Размер бинарника у меня увеличился всего на 100 кб (+ lua.dll в 53 кб) - по-моему, это нормально.

А вывод ошибок делается очень просто - LuaManagerRunScript ловит исключение, которое выбрасывает CrystalLua:

try
lua.RunScript(script);
except
On E: Exception do
begin
ShowMessage(E.Message);
result := 0;
end;
end;

бывалый
Группа: Участники
Сообщений: 39
Добавлено: 03-05-2017 18:09
Идея очень интересна, когда выйдет обновление с удовольствием опробую.

бывалый
Группа: Участники
Сообщений: 39
Добавлено: 11-06-2017 13:09
Здравствуйте! Наконец-то обновил версию программы!


Группа: Участники
Сообщений: 5
Добавлено: 13-06-2017 02:17
справка не работает

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 13-06-2017 11:04
Да, со справкой что-то не то в последней версии:

[img]https://s14.postimg.org/gs2tzdevx/help.jpg[/img][/url]

бывалый
Группа: Участники
Сообщений: 39
Добавлено: 14-06-2017 09:00
Понял. Постараюсь побыстрее переделать

бывалый
Группа: Участники
Сообщений: 39
Добавлено: 17-07-2017 17:06
Наконец-то доработал следующую версию Blaze, надеюсь проблем с использованием справки больше не будет. Временно завершаю его разработку. Буду тестировать возможности, постараюсь оценить чего еще не хватает, делать небольшую программу.

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 17-07-2017 19:42
Круто, поддержка WinAPI очень впечатляет. И справка теперь работает. Чуть позже добавлю на сайт.

В следующей версии X3D, кстати, будет прямая поддержка ANSI для TTF-шрифтов, не придется конвертировать строки.