Page 2 of 4

Posted: Tue Dec 16, 2014 11:51 pm
by punk_joker
Извеняюсь, это не лаги, а ступенчатая анимация :) А ФПС около 12 держится.

Re: Marble Match-3 - ещё игра на конкурс

Posted: Wed Dec 17, 2014 12:36 am
by ALPINE
А ФПС около 12 держится.
Понятно. Ну, я ожидал, что с производительностью будут проблемы, т.к. совершенно бесцеремонно не жалел вычислительных ресурсов. У меня весь кадр (512х512, 32 bit) перерисовывается, еще и с альфа-каналом, пиксели смешиваются... оптимизирую. Собственно, уже оптимизировал, теперь кадры рисуются только при необходимости (пока обдумываем ход - картинка статична, отрисовки нет). Кое-чего еще исправлю и залью.

Еще при отрисовке высчитывается много лишнего (и одинакового каждый кадр), пожалуй, запихну всё это в память, пусть лучше там будет еще мегабайт картинок, чем эти самые картинки попиксельно будут каждый раз пересчитываться.

Re: Marble Match-3 - ещё игра на конкурс

Posted: Wed Dec 17, 2014 12:41 am
by punk_joker
Попробовал для интереса запустить на своем IBM ThinkPad 600E с Intel Pentium II 366Mhz под капотом. Ну в общем получил около 3 ФПС :)

Re: Marble Match-3 - ещё игра на конкурс

Posted: Wed Dec 17, 2014 1:14 am
by ALPINE
punk_joker wrote:Попробовал для интереса запустить на своем IBM ThinkPad 600E с Intel Pentium II 366Mhz под капотом. Ну в общем получил около 3 ФПС :)
Интересно, а Heliothryx пашет быстрее? Там разрешение не 512х512, а 320х180 (в 4.5 раза меньше). Апскейл до размеров окна конечно есть, но он менее ресурсоёмкий, чем смешивание полупрозрачных цветов.

Re: Marble Match-3 - ещё игра на конкурс

Posted: Wed Dec 17, 2014 1:37 am
by Mario_r4
.

Re: Marble Match-3 - ещё игра на конкурс

Posted: Wed Dec 17, 2014 2:08 am
by ALPINE
Обновление
- немного улучшена производительность
- перерисовка теперь происходит только при необходимости, уменьшается нагрузка на процессор
- изменил размер и масштаб игрового поля
- небольшие косметические изменения

Ссылка прежняя: Marble Match-3 (лежит в SVN, собирается в ISO)

В планах
- взрывы покрасивей
- заменить шарики на красивые кристаллы
- перерисовывать только часть экрана, чтобы еще чуточку повысить производительность и снизить нагрузку на процессор

Re: Marble Match-3 - ещё игра на конкурс

Posted: Wed Dec 17, 2014 2:51 am
by kiv
Думаю кристаллы и их анимацию можно прорендрить при запуске и частично во время простоев игры в спрайты, чтобы во время игры просто доставать нужные из оперативки. Обычно в подобных играх так всегда делали (да, и производительность улучшит).

Re: Marble Match-3 - ещё игра на конкурс

Posted: Wed Dec 17, 2014 3:04 am
by ALPINE
Конечно всё именно так и делается, при запуске всё один раз генерируется и потом достаётся из оперативки. В том числе все кадры взрывов. Но например у меня есть текстура фона и полупрозрачное игровое поле. Раньше они смешивались каждый кадр, а сейчас я завёл просто еще одну текстуру фона - в ней хранися дубликат фона с уже нарисованным игровом полем, таким образом смешивание этих текстур делается только один раз. Но и хранить данные приходится дважды.

Re: Marble Match-3 - ещё игра на конкурс

Posted: Wed Dec 17, 2014 3:19 am
by kiv
Есть много вариантов... Например, хранить только изменения... Софтрендер позволяет бОльшую гибкость при прочих ограничениях... Кстати, могу материала по теме олдскульного демокодинга нахамячить тебе, но только в сыром виде (выдирать долго, а я ленивый)...

Re: Marble Match-3 - ещё игра на конкурс

Posted: Wed Dec 17, 2014 3:36 am
by ALPINE
хранить только изменения
И чтобы получить картинку, опять нужны вычисления :)
Кстати, могу материала по теме олдскульного демокодинга
Спасибо, но я как-нибудь сам. Многое уже сейчас неоптимально, когда (и если) оптимизирую очевидные вещи - тогда уже буду прибегать к более суровым методам.

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

Re: Marble Match-3 - ещё игра на конкурс

Posted: Wed Dec 17, 2014 3:37 am
by Mario_r4
.

Re: Marble Match-3 - ещё игра на конкурс

Posted: Wed Dec 17, 2014 3:46 am
by ALPINE
Mario_r4 wrote:ф.65.
Ну ёшкин же ж крот, а.
Спасибо.

P.S. Пора мне отучиваться делать преждевременные выводы по названию и краткому описанию функций. Про сканкоды не читал, думая, что там только про преобразование сканкодов в символы и обратно. А оказалось, что события KeyDown/KeyUp как раз ими ловятся. Про вывод с палитрой не читал, думая, что там не будет ничего про вывод графики с числом бит на пиксель > 8. И уж точно не ожидая там найти вывод фрагмента изображения.

P.P.S. Потребление ОЗУ сейчас снизится на 768 кб :) Больше не будет преобразования буфера BGRA -> BGR.

Re: Marble Match-3 - ещё игра на конкурс

Posted: Wed Dec 17, 2014 12:22 pm
by hidnplayr
ALPINE: Have you seen the KolibriOS game "pharaohs crypt" ?
It's a similar game which works very smoothly :)

Re: Marble Match-3 - ещё игра на конкурс

Posted: Wed Dec 17, 2014 12:59 pm
by ALPINE
Haven't seen... I thought there is no match-3 game on KolibriOS yet :(

About smoothness: I'm working on it, release version will get smooth (not step) animation. As a bonus, my game have procedural-generated textures and very small size (about 11 kb versus pharaohs' 65 kb) :)

Re: Marble Match-3 - ещё игра на конкурс

Posted: Wed Dec 17, 2014 1:00 pm
by hidnplayr
Ok, just wanted to let you know.
Good luck to you!