Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Ср ноя 22, 2017 12:23 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 43 сообщения ]  На страницу 1 2 3 След.
Автор Сообщение
 Заголовок сообщения: tengine :: tiny multiplatform 2d engine
СообщениеДобавлено: Пт сен 12, 2014 1:01 am 
Не в сети
Аватара пользователя

Зарегистрирован: Сб июл 05, 2014 11:15 am
Сообщения: 87
Представляю вашему вниманию kolibrios ветку моего долгоиграющего проекта "tengine".

Изображение

Для себя tengine я называю "маленькая мультиплатформенная 2d поделка для создания игровых приложений".
Пишется все на языке с, потому порт для kolibrios был бы невозможен без библиотеки newlib (ветка форума), за что отдельное спасибо Serge и всем, кто принимал участие к адаптации libc для kolibrios.

Работоспособность tengine проверена на android, ios, win32, nix платформах, есть также браузерная версия js/html на основе emscripten (хорошая работоспособность даже на ie11)

Что входит в текущую версию:
- готовый мультиплатформенный функционал, в том числе для платформы kolibrios, полная совместимость с newlib, gcc5.4
- поддержка нескольких систем рендеринга, выбираются при сборке в makefile:
-- osmesa
-- opengl, аппаратное ускорение
-- самописный блиттер для рендеринга (16bpp, 65 функция)
- поддержка Infinity звуковой системы
- поддержка клавиатуры и мышки
- поддержка многопоточности
- поддержка пропорциональных шрифтов

Ограничения ветки kolibrios:
- по умолчанию графическая подсистема работает в режиме USE_CUSTOM_RENDER (самописный блиттер). К сожалению, этот режим не поддерживает применение базовых аффинных преобразований (scaling, rotation) для кадров анимации игровых объектов.
- opengl версия запускается только на системах с поддержкой аппаратного ускорения

Более подробно о tengine можно почитать на хабре

Репозиторий:
https://pascualle@bitbucket.org/pascualle/tengine.git
Там же на wiki можно найти инструкции по установке


Последний раз редактировалось pascualle Чт ноя 03, 2016 1:37 am, всего редактировалось 6 раз.

Вернуться к началу
 Заголовок сообщения: демки
СообщениеДобавлено: Пт сен 12, 2014 1:15 am 
Не в сети
Аватара пользователя

Зарегистрирован: Сб июл 05, 2014 11:15 am
Сообщения: 87
демки можно скачать тут
https://bitbucket.org/pascualle/tengine ... ack_v3.zip
- демки стали более интереснее и функциональнее
- каждая демка содержит два исполняемых файла: с поддержкой аппаратного ускорения и софтовый(*_s) рендер

скопируйте содержимое архива в корень подключаемого диска (flash-usb накопитель, образ диска *.img)

в папке kolibrios\demo содержатся демки:

kolibrios\demo\scroll_map
- логические слои
- скроллинг тайловой карты
- работа с путевыми нодами
- подсистема gui
- пропорциональные шрифты
- работа с пулом объектов
- партиклы
- полупрозрачность
- рисование примитивов-линий
- текстовые поля (c включенным TextPerPixelAccuracy и без)
- потоковая фоновая музыка и sfx звуки
Изображение

kolibrios\demo\snuggles
- потоковая(stream) анимация
- демонстрация попиксельного коллижна (курсор и объекты сцены)
- пример переходов между уровнями с анимированным экраном загрузки
- блендинг анимации (переход между двумя анимациями мячика при нажатии мышкой в любую точку экрана)
- с++
Изображение

kolibrios\demo\space_invaders
- вариация на старую добрую игру
- потоковая фоновая музыка и sfx звуки
Изображение
управление: стрелки и ctrl, enter - сброс

kolibrios\demo\spider
- пример работы физики Верле
Изображение
нажимайте синие кнопки для демонстрации разных эффектов

kolibrios\demo\mun
Изображение
управление: стрелки и ctrl, enter - сброс

kolibrios\demo\box2d
- функционал для интеграции библиотеки box2d в tengine: преобразование координат, дебажные линии, работа с объектами
- с++
Изображение
ctrl - перемещение камеры между объектами, enter - сброс


Последний раз редактировалось pascualle Ср ноя 09, 2016 1:29 am, всего редактировалось 4 раза.

Вернуться к началу
 Заголовок сообщения: Re: tengine :: tiny multiplatform 2d engine
СообщениеДобавлено: Пт сен 12, 2014 1:03 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
pascualle писал(а):
самописный блиттер для рендеринга
В ядре есть 32bpp блиттер - ф.73
Ядро умеет загружать файлы сжатые kpaсk ф.68.27
Я планирую портировать s3tc для Mesa/Gallium, может пригодиться.
Ещё интересно сделать вывод на экран через OpenGL, некоторое подобие glamor.


Вернуться к началу
 Заголовок сообщения: Re: tengine :: tiny multiplatform 2d engine
СообщениеДобавлено: Пт сен 12, 2014 2:55 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Сб июл 05, 2014 11:15 am
Сообщения: 87
Serge

Цитата:
В ядре есть 32bpp блиттер - ф.73


я смотрел в это сторону, но мне нужен функционал рисования блиттером в буфер (с последующим ресторингом этого буфера со смещением) для функционала скроллинга, нельзя же каждый раз перерисовывать все поле.
Например в scroll_map специально для оценки скорости скроллинга выбраны минимально допустимый размер тайла 8х8. Если перерисовывать каждый кадр полностью поле 512х512, будет тормозить.

Цитата:
Ядро умеет загружать файлы сжатые kpaсk ф.68.27


Не знал об этом, надо будет прикрутить.
А как можно kpack собрать для windows, чтобы прикрутить его в тулчейн сборки после конвертера?

Цитата:
Ещё интересно сделать вывод на экран через OpenGL, некоторое подобие glamor.

Какой gl нужен? Есть поддержка и первого (es) и второго. Могу сделать, так, что если в makefile указать -DUSE_OPENGL_1_RENDER или -DUSE_OPENGL_2_RENDER, активируется тот или иной функционал, целое поле для опытов!


Вернуться к началу
 Заголовок сообщения: Re: tengine :: tiny multiplatform 2d engine
СообщениеДобавлено: Пт сен 12, 2014 3:38 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
ф.73 для окончательного вывода на экран.
Цитата:
Какой gl нужен? Есть поддержка и первого (es) и второго. Могу сделать, так, что если в makefile указать -DUSE_OPENGL_1_RENDER или -DUSE_OPENGL_2_RENDER, активируется тот или иной функционал, целое поле для опытов!
ES_* библиотеки пока не собираются. Я делал свой рендер с расширениями eglCreateImageKHR + ещё небольшие патчи.


Вернуться к началу
 Заголовок сообщения: Re: tengine :: tiny multiplatform 2d engine
СообщениеДобавлено: Пт сен 12, 2014 4:18 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Сб июл 05, 2014 11:15 am
Сообщения: 87
Цитата:
ф.73 для окончательного вывода на экран.


А чем эта функция лучше 65 в этом случае? Тем более, может я жадный и слишком жалею железо, но 16 бит быстрее 32, тут же в основном нагрузка на cpu.

Насчет gl, расширений я не использую, например, ресурсы конвертер генерирует готовые для glTexImage2D, glTexSubImage2D.
Судя по твоему коду, мой gl2 рендер должен заработать, создание и инициация gl-контекста в движке не существует, ожидается, что контекст уже создан до создания инстанса tengine в платформенно-зависимой точке входа, например в app_kos.c (там же main() и инициализация потока). В то же время, движок реагирует на сигналы потери контекста и умеет выгружать/восстанавливать ресурсы автоматически. Хорошим примером как это уже работает на других платформах может быть, например, точка входа win32app.cpp (работа с функциями _init_display() и _term_display())


Вернуться к началу
 Заголовок сообщения: Re: tengine :: tiny multiplatform 2d engine
СообщениеДобавлено: Пт сен 12, 2014 4:23 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Цитата:
но 16 бит быстрее 32, тут же в основном нагрузка на cpu
Быстрее в предварительном рендеринге ? В выводе на экран основной упор в скорость видеопамяти. Ф73 хороша тем, что позволяет делать отсечение картинки и внутри она заточена на вывод 32bpp. Ф65 в этом отношении сложнее устроена.


Вернуться к началу
 Заголовок сообщения: Re: tengine :: tiny multiplatform 2d engine
СообщениеДобавлено: Пт сен 12, 2014 4:28 pm 
Не в сети
Public Relations
Аватара пользователя

Зарегистрирован: Пн июн 07, 2010 12:01 pm
Сообщения: 1879
pascualle: Я думаю, очень многим интересна твоя разработка, но читать полотно текста *ПРО ИГРЫ* без единого скриншота (ролика на Youtube...) очень скучно, поэтому и отзывов так мало. Не сочти за труд, добавь пару скриншотов в своё описание.


Вернуться к началу
 Заголовок сообщения: Re: tengine :: tiny multiplatform 2d engine
СообщениеДобавлено: Пт сен 12, 2014 4:45 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Сб июл 05, 2014 11:15 am
Сообщения: 87
yogev_ezra, сделаю, хотя там не игры, а демонстрация возможностей.


Вернуться к началу
 Заголовок сообщения: Re: tengine :: tiny multiplatform 2d engine
СообщениеДобавлено: Пт сен 12, 2014 4:50 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Сб июл 05, 2014 11:15 am
Сообщения: 87
Serge, с ф73 преимущества понял, но как же я запихну подготовленный буфер 5551 в 8888 :(
блиттер, если честно, пришел с моей старой и заброшенной nintendo ветки, я его только осовременил немного.
Идею твою понял, если порт будет интересным людям, буду переделывать в 8888...


Вернуться к началу
 Заголовок сообщения: Re: tengine :: tiny multiplatform 2d engine
СообщениеДобавлено: Пт сен 12, 2014 7:19 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
pascualle
С 5551 конечно сложнее. Я ориентировался на 32bpp потому, что сейчас это основной формат.


Вернуться к началу
 Заголовок сообщения: Re: tengine :: tiny multiplatform 2d engine
СообщениеДобавлено: Вс сен 14, 2014 12:13 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Сб июл 05, 2014 11:15 am
Сообщения: 87
Serge,

В целом, 5551 можно перевести на 8888 не очень большой кровью, я совсем забыл, что когда-то делал изменения в блиттере специально для подобных случаев, переделаю рендер на ф73

Также видел активность по проекту с tinygl, могу попробовать привязать ее к tengine.
(нашел путь к библиотеке (root)/programs/develop/libraries/TinyGL)
Или таки лучше пойти путем mesa из newlib?


Вернуться к началу
 Заголовок сообщения: Re: tengine :: tiny multiplatform 2d engine
СообщениеДобавлено: Вс сен 14, 2014 1:51 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
pascualle
TinyGL не поддерживает аппаратную акселерацию.


Вернуться к началу
 Заголовок сообщения: Re: tengine :: tiny multiplatform 2d engine
СообщениеДобавлено: Пн сен 15, 2014 12:38 am 
Не в сети
Аватара пользователя

Зарегистрирован: Сб июл 05, 2014 11:15 am
Сообщения: 87
Serge,
нужна твоя помощь

была сделана попытка собрать scroll_map с рендерингом gl2

использовал пример (root)/contrib/sdk/samples/Mesa/gl-render/main.c

собралось, но при запуске выдает ошибку "failed to initialize GBM device"

makefile находится тут, пересобранные ресурсы для gl тоже
https://bitbucket.org/pascualle/tengine ... ?at=master

точка входа тут:
https://bitbucket.org/pascualle/tengine ... ?at=master


Вернуться к началу
 Заголовок сообщения: Re: tengine :: tiny multiplatform 2d engine
СообщениеДобавлено: Пн сен 15, 2014 9:15 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
pascualle
Цитата:
использовал пример (root)/contrib/sdk/samples/Mesa/gl-render/main.c
Лучше ориентироваться на render и swap из eglut.
Цитата:
при запуске выдает ошибку "failed to initialize GBM device"
Аппаратная акселерация работает пока только на интелах.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 43 сообщения ]  На страницу 1 2 3 След.

Часовой пояс: UTC+03:00


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

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


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

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB