zengl-fork

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

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

zengl-fork

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

Проект переехал на соурцефорге:
https://sourceforge.net/p/zengl-fork/code/ci/master/tree/
Код: Выделить всё
git clone git://git.code.sf.net/p/zengl-fork/code zengl-fork-code


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

Скалогрыз, оценивай, что получилось.
Последний раз редактировалось Сквозняк 30.10.2021 20:31:42, всего редактировалось 1 раз.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: zengl-fork

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

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

Re: zengl-fork

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

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

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

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

Re: zengl-fork

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

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

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

Лично я, увидев её (почти не умея программировать), так бы и сказал: "Да ну, ерунда какая-то, мне тут вообще ни чего не понятно".
Seenkao
энтузиаст
 
Сообщения: 502
Зарегистрирован: 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:
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: zengl-fork

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

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

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

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

Re: zengl-fork

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

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

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

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


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

Re: zengl-fork

Сообщение Сквозняк » 30.10.2021 20:38:53

Поскольку гитхуб стал парить мозги с логином через консоль, проект переехал на соурсефорге:
https://sourceforge.net/p/zengl-fork/code/ci/master/tree/
Код: Выделить всё
git clone git://git.code.sf.net/p/zengl-fork/code zengl-fork-code


Обновления: улучшены проверки ошибок открытий файлов в утилите, а также добавлена процедура дожигания партиклов, которой в движке очень не хватало. Теперь есть чем дожечь старый партикл чтобы при вызове нового по другим координатам, на старых не появлялись недогоревшие предыдущие партиклы. Вроде бы простая вещь, а столько лет никто на мог её добавить.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: zengl-fork

Сообщение Cooler » 04.05.2022 13:04:06

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

Тут надо понимать, что для начинающего программиста, тем более на паскале, сделать игру, пусть даже простую - задача нетривиальная. А если ещё и мобильную - так вообще космос! Гораздо проще это сделать с нуля в каком-нибудь визуальном движке типа Unity. Другое дело, если человек уже владеет языком - тогда для него это более гибкое и выразительное средство, чем схемы и графы в GUI.

Ну и для разнообразия могу посоветовать глянуть мой движок (и демо проекты на нём) - Apus Game Engine (https://github.com/Cooler2/ApusGameEngine)
Cooler
незнакомец
 
Сообщения: 1
Зарегистрирован: 04.05.2022 12:55:12


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

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

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

Рейтинг@Mail.ru