zengl-fork

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

zengl-fork

Сообщение Сквозняк » 29.12.2020 04:39:37

Выложил на гитхуб свою версию патченого зенгл.
https://github.com/stiratel/zengl_fork
Все скрипты и бинарный файл делающий коммит рассчитаны на линукс и наличие программы konsole в системе. В проект добавлена коммитящая утилита. Чтобы сделать локальный коммит нужно изменить или не изменить комментарий к версии коммита в файле pisuljka_versuljka.txt а потом кликнуть по одному из файлов: vesj_proekt_v_komment.sh или vesj_proekt_v_komment_S_CISTKOI.sh В пустые каталоги положено по временному пустому текстовому файлу чтобы эти каталоги закомитились.

Скалогрыз, оценивай, что получилось.
Сквозняк
энтузиаст
 
Сообщения: 863
Зарегистрирован: 29.06.2006 22:08:32

Re: zengl-fork

Сообщение скалогрыз » 29.12.2020 05:04:01

ахаха, а про шифрование рассказывал!
...ща посмотрим!
скалогрыз
долгожитель
 
Сообщения: 1769
Зарегистрирован: 03.09.2008 02:36:48

Re: zengl-fork

Сообщение Сквозняк » 29.12.2020 16:19:27

скалогрыз писал(а):ахаха, а про шифрование рассказывал!

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

В исходниках тянется поддержка фич эффектов старых версий, просто проекту так надо было :mrgreen: Андру постоянно эффекты менял, а окончательную версию эффектов не сделал. Ещё есть дополнительное поле в процедуре выводящей картинку на экран. Это было сделано чтобы статично лежащая картинка могла лечь без сдвига на субпиксели. Давно это не тестил - работает и работает. Ну и конечно невозможность эффектам менять координаты, как при перемещении картинки по экрану, напрягает. Чтобы сделать огонёк появляющийся в разных частях экрана, приходится сделать несколько одинаковых огоньков и включать поочерёдно один из них. А о плавном движении нет и речи. Вот это в будущем надо модифицировать.
Сквозняк
энтузиаст
 
Сообщения: 863
Зарегистрирован: 29.06.2006 22:08:32

Re: zengl-fork

Сообщение Seenkao » 29.12.2020 17:12:11

А можно вопрос!
А как пользоваться этим не осведомлённому пользователю?

Занимается человек программированием, решил Паскалем, и решил создавать простенькие игрушки. И ему советуют ZenGL, и самое интересное что и твои наработки окажутся для него в первом ряду. Не хочешь рассказать, как человек вообще осознает как работать с данной библиотекой?

Лично я, увидев её (почти не умея программировать), так бы и сказал: "Да ну, ерунда какая-то, мне тут вообще ни чего не понятно".
Seenkao
постоялец
 
Сообщения: 226
Зарегистрирован: 01.04.2020 03:37:12

Re: zengl-fork

Сообщение Сквозняк » 29.12.2020 19:02:19

Для начала нужно скачать демки вместе с оригинальной, Андрувской, версией zengl - http://zengl.org/download_ru.html
Там же, на форуме можно найти и кое-какие проекты использующие зенгл. После изучения демок, нужно скачать мой тестовый проект использующий zengl_fork - последнюю версию новеллотыка - https://sourceforge.net/projects/novellotyk/files/
Новеллотык представляет собой минимальный образец программы позволяющей написать визуальную новеллу с хранением данных в процедурах, при этом выбор для запуска процедуры с данными зависит от ключа. Скриптовая абстракция к процедурам не приделана. Упор сделан на возможности впихнуть в программу максимум фич и возможности их протестить. Приделан в главном потоке гуй написанный на лазарусе, есть сохранение и загрузка глобальных переменных - всё это можно использовать не только для новелл, а для чего угодно.

Программа на зенгл запускает в цикле код дописываемый программистом в регистрируемые при инициализации движка процедуры draw и timer. В timer можно разместить вывод fps в заголовке экрана, кое-какие мелочи, а всё остальное пишется в draw. Процедура draw вызывается каждый кадр, соответственно в неё вписываются процедуры управляющие отрисовкой всего на экране, различные счётчики, в простейшем случае туда же вписывается и процедура обрабатывающая логику. Поскольку draw дёргает рисовальные процедуры каждый раз, а картинка по экрану летит с меньшей скоростью, то необходимо писать обработчик полёта хреновин по экрану. Например, для прямолинейного движения нужно сохранить время вылета, лимит времени на полёт, координаты вылета, координаты прилёта, скорости полёта по осям x и y. И тогда в следующем кадре из текущего времени вычитается время вылета и умножается на скорость, получается количество пикселей на которые сместился объект на экране. Когда объект долетит или перелетит прописанные при вылете координаты прилёта, или израсходует выделенный лимит времени (время нужно проверять в первую очередь, потому что например за год объект может так далеко улететь, что в переменных места для записи не хватит), ему прописываются финальные координаты, полёт закончен. Но это ещё не всё. Случалось что объект летел прямо в противоположную сторону, а лимита времени на полёт не было выделено, и поэтому до финальных координат не долетал! Где-то вводимые в полётное задание данные бились, я так предполагаю. Поскольку от такой лажи гарантированно защититься малореально, то при полёте необходимо проверять, не залетел ли объект в другую сторону. И если залетел, то рывком телепортировать его в пункт прибытия и делать окончание полёта, что проще всего, или же исправлять его полётные данные.

Ещё о движке можно сказать, что надо переделывать типы данных в которых в памяти хранятся ресурсы. Там были использованы массивы, данные в которых хранятся за их пределами :evil: Посему нужно поднять минимальную версию fpc до 3.0.2 и заменить эти массивы на rawbytestring, без выхода за предел диапазона. Фактически сейчас в движке по тихому работает свой менеджер памяти, который не очень дружит со своими коллегами, из-за чего чистый выход из движка не всегда возможен и тогда (а можно это и всегда делать, чтобы не гадать побилась память или нет) при повторном запуске движка приходится по тихому перезапускать всю программу. Благо, технология сохранения глобальных переменных позволяет продолжить с нужного места. Мне этим пока заниматься некогда, но что в движке нужно править в первую очередь описал, авось кто и сделает :mrgreen:
Сквозняк
энтузиаст
 
Сообщения: 863
Зарегистрирован: 29.06.2006 22:08:32

Re: zengl-fork

Сообщение Seenkao » 29.12.2020 19:37:02

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

Потом сходить на другой сайт, скачать твою демку, и запустить её? (это наверно уже десятая волна из тех, кто остался, если не сотая, на форумах появились ещё тысячи сообщений с вопросом: "Как пользоваться ZenGL, у меня постоянно выходят ошибки при компиляции." и другие вопросы в подобном плане :) )

Я боюсь твою демку так и не запустят... или запустят очень упёртые... :(
Seenkao
постоялец
 
Сообщения: 226
Зарегистрирован: 01.04.2020 03:37:12

Re: zengl-fork

Сообщение Сквозняк » 30.12.2020 01:05:18

Seenkao писал(а):То есть, ты предлагаешь пользователю/начинающему программисту, сходить на один сайт, ознакомится с библиотекой. Потыкать туда-сюда, получится или нет. (многие как раз бьются первой волной, чтоб только чтоб демки запустить и забивают).

На сайте fpc тоже нет полного мануала по использованию зенгл и глсцене :D Надо признать, что в текущем состоянии движки на паскале требуют знание самого паскаля, которое а кратком руководстве не опишешь. И много-много кода.

Seenkao писал(а):Я боюсь твою демку так и не запустят... или запустят очень упёртые... :(


Кое кто говорил что имеет патчи, а раз так, то вот она библиотека на гитхубе - улучшайте!
Сквозняк
энтузиаст
 
Сообщения: 863
Зарегистрирован: 29.06.2006 22:08:32


Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Рейтинг@Mail.ru