Среда, 13 Ноября 2024, 14:51

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 7 из 8
  • «
  • 1
  • 2
  • 5
  • 6
  • 7
  • 8
  • »
Фичерия - featurea
dimakolesДата: Пятница, 29 Июля 2016, 12:44 | Сообщение # 121
почетный гость
Сейчас нет на сайте
Цитата bodya_WM ()
Я говорил о универсальном классе GameObject.

Цитата bodya_WM ()
Почему я должен реализовывать вслепую GameObject? Почему бы не сделать его сразу, полностью универсальным? Есть поддержка компонентов на игровых объектах? Behaviours?


я подумаю о том, чтобы сделать wrapper над Area в виде GameObject, назову его unity. будет лежать в движках https://github.com/dmitrykolesnikovich/featurea/tree/master/engines


Сообщение отредактировал dimakoles - Пятница, 29 Июля 2016, 12:46
bodya_WMДата: Пятница, 29 Июля 2016, 12:48 | Сообщение # 122
постоянный участник
Сейчас нет на сайте
Зачем?

Добавлено (29 июля 2016, 12:48)
---------------------------------------------
Зачем называть его Unity blink :D


Разработчик игрового движка WaveGameEnvironment2D
dimakolesДата: Пятница, 29 Июля 2016, 12:49 | Сообщение # 123
почетный гость
Сейчас нет на сайте
Цитата bodya_WM ()
Зачем называть его Unity

по факту существует возможность сделать API как в юнити, просто имплементация этого апи будет опираться на классы модуля platform

с behaviours и т.д. и т.п.


Сообщение отредактировал dimakoles - Пятница, 29 Июля 2016, 12:51
bodya_WMДата: Пятница, 29 Июля 2016, 12:54 | Сообщение # 124
постоянный участник
Сейчас нет на сайте
Цитата
по факту существует возможность сделать API как в юнити, просто имплементация этого апи будет опираться на классы модуля platform

Зачем заниматься извращениями, если сразу можно было запилить нормальную компонентную систему. Где биндинг луа?

Добавлено (29 июля 2016, 12:54)
---------------------------------------------

Цитата
с behaviours и т.д. и т.п.

у вас ни одного биндинга нет, какие behaviours?


Разработчик игрового движка WaveGameEnvironment2D
dimakolesДата: Пятница, 29 Июля 2016, 13:25 | Сообщение # 125
почетный гость
Сейчас нет на сайте
Цитата bodya_WM ()
Зачем заниматься извращениями, если сразу можно было запилить нормальную компонентную систему. Где биндинг луа?

компонентная система может быть реализована по-разному, а не только так как в юнити

Цитата bodya_WM ()
у вас ни одного биндинга нет, какие behaviours?

xml схема это биндинг
тег или атрибут будут behaviour
bodya_WMДата: Пятница, 29 Июля 2016, 13:43 | Сообщение # 126
постоянный участник
Сейчас нет на сайте
Цитата
компонентная система может быть реализована по-разному, а не только так как в юнити

а причем тут юнити? Компонентная система как в юнити есть и в уе4.
Цитата
xml схема это биндинг

Я о биндинге к скриптовому языку а не сериализацию данных
Цитата
тег или атрибут будут behaviour

а это тут причём? В данном случае имелся ввиду скрипт, унаследованный от базового суперкласса - компонента(как в юнити monobehaviour).


Разработчик игрового движка WaveGameEnvironment2D
dimakolesДата: Суббота, 30 Июля 2016, 00:17 | Сообщение # 127
почетный гость
Сейчас нет на сайте
Цитата bodya_WM ()
а это тут причём? В данном случае имелся ввиду скрипт, унаследованный от базового суперкласса - компонента(как в юнити monobehaviour).

Какой угодно объект можно сделать атрибутом или тегом. В том числе объект скрипта.

Добавлено (30 июля 2016, 00:17)
---------------------------------------------
Цитата bodya_WM ()
Я о биндинге к скриптовому языку а не сериализацию данных


Java-centric Lua interpreter

Биндинг посредством xml схемы это не про сериализацию, а как раз про интеграцию стандартных компонентов с визуальным редактором (фичерией).

поскольку есть "порт" луа на джаву, то есть техническая возможность написать скрипт на луа, сохранить его в файлик например customBehaviour.lua, а потом из xml файлика указать на него путь

Код
<MyGameObject>
  <Behaviour file="customBehaviour.lua"/>
</MyGameObject>


и в рантайме за счет xml схемы сбилдаем из этого xml файлика джава объект MyGameObject с поведением customBehaviour.lua. Это будет редактируемо из визуального редактора, показанного на видео. Вплане выбор какой Behaviour какому GameObject добавить - просто как дочерний тег.


Сообщение отредактировал dimakoles - Суббота, 30 Июля 2016, 00:37
bodya_WMДата: Суббота, 30 Июля 2016, 18:02 | Сообщение # 128
постоянный участник
Сейчас нет на сайте
Цитата
и в рантайме за счет xml схемы сбилдаем из этого xml файлика джава объект MyGameObject с поведением customBehaviour.lua. Это будет редактируемо из визуального редактора, показанного на видео. Вплане выбор какой Behaviour какому GameObject добавить - просто как дочерний тег.

Что blink ? Трансляция Lua в Java crazy ?


Разработчик игрового движка WaveGameEnvironment2D
ShortKedrДата: Суббота, 30 Июля 2016, 18:32 | Сообщение # 129
Renword Studio
Сейчас нет на сайте
bodya_WM, а почему бы и нет?
Только я сначала советую заняться более важными делами и реализовать сначала сам движок для java, а потом уже всякие трансляторы писать
bodya_WMДата: Суббота, 30 Июля 2016, 18:33 | Сообщение # 130
постоянный участник
Сейчас нет на сайте
Цитата
а почему бы и нет?

Это очень медленно в рантайме. Разве что писать компилятор Lua -> Compiled Class.


Разработчик игрового движка WaveGameEnvironment2D
dimakolesДата: Суббота, 30 Июля 2016, 23:07 | Сообщение # 131
почетный гость
Сейчас нет на сайте
Запушил окончательно саппорт батчей на гитхаб. Перформанс повысился значительно. Тесты проводил пока только на маломощном железе http://catalog.onliner.by/mobile/samsung/samsung_g350e. До вечера понедельника планирую прокрутить тесты на более мощных моделях.

Тест 6k спрайтов по 16x16: (исходник https://github.com/dmitryk....nceTest, билд с google drive https://drive.google.com/file....sharing)
на десктопе 200 FPS
на мобилке 50 FPS (железо маломощное, 1 процессор 1 200 МГц, 512 МБ оперативной)

Тест Марио:
на десктопе 500 FPS (раньше было 100)
на мобилке 50 (раньше было 40 на более мощном девайсе http://catalog.onliner.by/compare/htc_desire516ds+samsung_g350e)

Какой тест еще провести? Каковы вообще критерии барахло-не барахло по перформансу? Какова стратегия задания capacity батчам? Конфиурить динасмически? Константой? Увеличивать, если надо на лету? Поделитесь best practice про выделение памяти под буферы, пожалуйста.

Добавлено (30 июля 2016, 23:07)
---------------------------------------------
Вопрос всем по LUA. Кто его заводил когда своими руками на мобилке? Имеет резон?


Сообщение отредактировал dimakoles - Вторник, 02 Августа 2016, 22:52
bodya_WMДата: Воскресенье, 31 Июля 2016, 00:12 | Сообщение # 132
постоянный участник
Сейчас нет на сайте
Цитата
билд с google drive https://drive.google.com/file....sharing)

зачем ты скинул билд для ведра blink ?
Цитата
Вопрос всем по LUA. Кто его заводил когда своими руками на мобилке? Имеет резон?

Он есть под арм. Можно завести.


Разработчик игрового движка WaveGameEnvironment2D
dimakolesДата: Понедельник, 01 Августа 2016, 03:48 | Сообщение # 133
почетный гость
Сейчас нет на сайте
show case
sfabrikanДата: Понедельник, 01 Августа 2016, 11:51 | Сообщение # 134
БЕЗУМЕЦ!!!
Сейчас нет на сайте
Цитата dimakoles ()
Вопрос всем по LUA. Кто его заводил когда своими руками на мобилке? Имеет резон?

Да, заводится.
Например движок love2d поставить на андроид и на андроиде скриптовать игры.


Это я
dimakolesДата: Понедельник, 08 Августа 2016, 15:09 | Сообщение # 135
почетный гость
Сейчас нет на сайте
Прикрутил Tool Windows. Цвета и размеры - промежуточный вариант. Пока только голый UI. Плавающие окна поверх главного окна по принципу фотошопа: трекать координаты мышки, FPS, Palette, отображать загрузку батчей во времени, ...

Видео

Добавлено (05 августа 2016, 22:26)
---------------------------------------------
Добавил Info (x, y, w, h, fps) и Draw All Batches (отрисовывать все батчи, или как в продакшне - только "видимые")

Видео

Добавлено (08 августа 2016, 15:09)
---------------------------------------------
Профайлю gl код. В тестовом примере у меня всего только один батч. capacity = 10. size (загрузка) = 6.
Код
// готовлю буферы
void onPrepareDraw(){
gl.bind(currentTextureId);
gl.glPushMatrix()
gl.glVertexPointer(VERTEX_POINTER_COUNT, GL_FLOAT, 0, vertexPointer);
gl.glColorPointer(COLOR_POINTER_COUNT, GL_FLOAT, 0, colorPointer);
gl.glTexCoordPointer(TEXTURE_COORD_POINTER_COUNT, GL_FLOAT, 0, texCoordPointer);
}

// отрисовка
void onDraw(){
gl.glDrawArrays(GL_TRIANGLES, 0, COUNT_OF_VERTICES_FOR_DRAWING_TWO_TRIANGLES * size);
}

onPrepareDraw отрабатывает только один раз за весь lifetime. нагрузку на fps дает только onDraw(). Если тело метода onDraw() полностью закомментировать, то FPS = 500, а если оставить как есть, то FPS падает до 50.

Девайсы, на которых делаю тесты:
1) samsung g350e http://catalog.onliner.by/mobile/samsung/samsung_g350e
Оперативная память 512 МБ
Тактовая частота процессора 1 200 МГц
Количество ядер 1

2) LG http://catalog.onliner.by/mobile/lg/g4h815
Оперативная память 3 ГБ
Тактовая частота процессора 1 800 МГц
Количество ядер 2 (+ 4 ядра Cortex-A53 с частотой 1440 МГц)
Графический ускоритель Adreno 418

То есть FPS проседает только из-за отрисовки

Код
gl.glDrawArrays(GL_TRIANGLES, 0, COUNT_OF_VERTICES_FOR_DRAWING_TWO_TRIANGLES * size);

Как это решать? Значит ли это, что без перехода на шейдеры уже нельзя ничего сделать?


Сообщение отредактировал dimakoles - Понедельник, 08 Августа 2016, 17:05
dalikivugДата: Понедельник, 08 Августа 2016, 20:05 | Сообщение # 136
почетный гость
Сейчас нет на сайте
Немного смущает PushMatrix без PopMatrix
и вообще какой либо работы с матрицами, после этого вызова

DrawArrays - максимально невыгодный метод в твоем случае (+ еше и без шейдеров)
если рисуешь все спрайтами (квадратами с текстуркой)
в таком случае нужен инстансинг и шейдеры (кэп)

судя по "gl.bind(currentTextureId);", у тебя это для каждого спрайта?
если геометрия не повторяется, то бинд геометрии надо вообще перенести в инициализацию, и забыть о ней

советую с этим не париться, т.к. грамотный рендер это тема побольше целого движка будет;
лучше взять что то готовое и не очень тяжелое (хотя не знаю как с этим дела на Java и Android)

Добавлено (08 августа 2016, 20:05)
---------------------------------------------
надо еще убедиться, что у тебя правильное кол-во полигонов передается в Draw*
возможно больше чем реально есть вершин в буферах, и fps падает из за генерируемых ошибок графического драйвера


Сообщение отредактировал dalikivug - Понедельник, 08 Августа 2016, 20:05
dimakolesДата: Понедельник, 08 Августа 2016, 22:00 | Сообщение # 137
почетный гость
Сейчас нет на сайте
Цитата dalikivug ()
Немного смущает PushMatrix без PopMatrix

это псевдокод, по факту все есть

Цитата dalikivug ()
судя по "gl.bind(currentTextureId);", у тебя это для каждого спрайта? если геометрия не повторяется, то бинд геометрии надо вообще перенести в инициализацию, и забыть о ней

она у меня в predraw, то есть в инициализации

Цитата dalikivug ()
надо еще убедиться, что у тебя правильное кол-во полигонов передается в Draw*
возможно больше чем реально есть вершин в буферах, и fps падает из за генерируемых ошибок графического драйвера

там все в порядке

Цитата dalikivug ()
DrawArrays - максимально невыгодный метод в твоем случае (+ еше и без шейдеров)
если рисуешь все спрайтами (квадратами с текстуркой)
в таком случае нужен инстансинг и шейдеры (кэп)

что такое инстансинг? неужели только из-за перехода на шейдеры все должно взлететь? DrawArrays такой медленный?
dalikivugДата: Понедельник, 08 Августа 2016, 22:18 | Сообщение # 138
почетный гость
Сейчас нет на сайте
Цитата dimakoles ()
неужели только из-за перехода на шейдеры все должно взлететь?

это не "только";
при правильном использовании

Цитата dimakoles ()
DrawArrays

в этом случае да
а так, он ничем не отличается (по скорости выполнения) от большинства других Draw* методов
(говорю именно о чистой скорости API вызовов, без учета сложности отрисовки)

Цитата dimakoles ()
что такое инстансинг?

Instancing
dimakolesДата: Четверг, 05 Января 2017, 03:48 | Сообщение # 139
почетный гость
Сейчас нет на сайте
Что сделал.
Доработал OpenGL до 50-60 на мобилке и 500-600 на десктопе. Прикрутил классную менюшку к студии (Featurea Studio - так называется level editor). Сделал Grid фичу. Сделал Status Bar, он у меня как в Paint (на видео не показан).

https://www.youtube.com/watch?v=F_QHdOm8WiI

Что буду делать ближайшую неделю.
Из нерешенного - FPS проваливается иногда, но это уже плотная работа с кодом проекта. Соответственно ждать стоит билд под андроид с человеческим FPS.

За что хочу взяться, но не знаю, как лучше
Также хочу поинтересоваться, было бы кому-нибудь интересно посмотреть как я делаю марио с нуля? Может кто-нибудь поделиться видео на ютуб в качестве примера идеального туториала making game from scratch с точки зрения "режиссуры"?

Добавлено (18 августа 2016, 22:29)
---------------------------------------------
В следующем видео я показываю, что Featurea Studio подходит не только для платформеров, но для проектов любого жанра. Например, тетрис.

https://www.youtube.com/watch?v=wGMlohhj9ys

Девелопмент тетриса почти закончен. Хочу завтра паблишить в play store

Добавлено (22 августа 2016, 18:25)
---------------------------------------------
Законченный кусочек из девлога

https://www.youtube.com/watch?v=iV7sTAzbjz4

Добавлено (30 августа 2016, 12:16)
---------------------------------------------
В следующем видео - пример "Chain" и сэндбокса уже в рантайме фичерии. Физика написана на Dyn4j http://www.dyn4j.org/

Видео

Добавлено (05 января 2017, 03:48)
---------------------------------------------
Закрыто.

Сообщение отредактировал dimakoles - Понедельник, 22 Августа 2016, 18:27
JohnnyHamДата: Четверг, 05 Января 2017, 11:16 | Сообщение # 140
MadBro
Сейчас нет на сайте
Тоесть закрыто? Разработка остановлена?

Чем лучше—тем хуже
  • Страница 7 из 8
  • «
  • 1
  • 2
  • 5
  • 6
  • 7
  • 8
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг