Marble Match-3 - ещё игра на конкурс (игра выпущена)
-
Извеняюсь, это не лаги, а ступенчатая анимация А ФПС около 12 держится.to infinity and beyond
Понятно. Ну, я ожидал, что с производительностью будут проблемы, т.к. совершенно бесцеремонно не жалел вычислительных ресурсов. У меня весь кадр (512х512, 32 bit) перерисовывается, еще и с альфа-каналом, пиксели смешиваются... оптимизирую. Собственно, уже оптимизировал, теперь кадры рисуются только при необходимости (пока обдумываем ход - картинка статична, отрисовки нет). Кое-чего еще исправлю и залью.А ФПС около 12 держится.
Еще при отрисовке высчитывается много лишнего (и одинакового каждый кадр), пожалуй, запихну всё это в память, пусть лучше там будет еще мегабайт картинок, чем эти самые картинки попиксельно будут каждый раз пересчитываться.
Roman Shuvalov
Попробовал для интереса запустить на своем IBM ThinkPad 600E с Intel Pentium II 366Mhz под капотом. Ну в общем получил около 3 ФПС
to infinity and beyond
Интересно, а Heliothryx пашет быстрее? Там разрешение не 512х512, а 320х180 (в 4.5 раза меньше). Апскейл до размеров окна конечно есть, но он менее ресурсоёмкий, чем смешивание полупрозрачных цветов.punk_joker wrote:Попробовал для интереса запустить на своем IBM ThinkPad 600E с Intel Pentium II 366Mhz под капотом. Ну в общем получил около 3 ФПС
Roman Shuvalov
.
Last edited by Mario_r4 on Sun Jan 04, 2015 9:47 pm, edited 1 time in total.
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
Обновление
- немного улучшена производительность
- перерисовка теперь происходит только при необходимости, уменьшается нагрузка на процессор
- изменил размер и масштаб игрового поля
- небольшие косметические изменения
Ссылка прежняя: Marble Match-3 (лежит в SVN, собирается в ISO)
В планах
- взрывы покрасивей
- заменить шарики на красивые кристаллы
- перерисовывать только часть экрана, чтобы еще чуточку повысить производительность и снизить нагрузку на процессор
- немного улучшена производительность
- перерисовка теперь происходит только при необходимости, уменьшается нагрузка на процессор
- изменил размер и масштаб игрового поля
- небольшие косметические изменения
Ссылка прежняя: Marble Match-3 (лежит в SVN, собирается в ISO)
В планах
- взрывы покрасивей
- заменить шарики на красивые кристаллы
- перерисовывать только часть экрана, чтобы еще чуточку повысить производительность и снизить нагрузку на процессор
Roman Shuvalov
Думаю кристаллы и их анимацию можно прорендрить при запуске и частично во время простоев игры в спрайты, чтобы во время игры просто доставать нужные из оперативки. Обычно в подобных играх так всегда делали (да, и производительность улучшит).
Конечно всё именно так и делается, при запуске всё один раз генерируется и потом достаётся из оперативки. В том числе все кадры взрывов. Но например у меня есть текстура фона и полупрозрачное игровое поле. Раньше они смешивались каждый кадр, а сейчас я завёл просто еще одну текстуру фона - в ней хранися дубликат фона с уже нарисованным игровом полем, таким образом смешивание этих текстур делается только один раз. Но и хранить данные приходится дважды.
Roman Shuvalov
Есть много вариантов... Например, хранить только изменения... Софтрендер позволяет бОльшую гибкость при прочих ограничениях... Кстати, могу материала по теме олдскульного демокодинга нахамячить тебе, но только в сыром виде (выдирать долго, а я ленивый)...
И чтобы получить картинку, опять нужны вычисленияхранить только изменения
Спасибо, но я как-нибудь сам. Многое уже сейчас неоптимально, когда (и если) оптимизирую очевидные вещи - тогда уже буду прибегать к более суровым методам.Кстати, могу материала по теме олдскульного демокодинга
Сейчас одна из серьёзных проблем - невозможность вывести в окно часть картинки. То есть если у меня есть большой буфер, я не могу легко вытащить произвольный прямоугольник из него. Седьмая функция выводит только "готовую картинку". Поскольку вывод построчный, можно вырезать несколько строк, это частично решит проблему. Но по закону подлости кристаллы падают вертикально, и мне была бы куда полезней возможность перерисовать столбцы, а не строки.
Roman Shuvalov
.
Last edited by Mario_r4 on Sun Jan 04, 2015 9:47 pm, edited 1 time in total.
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
Ну ёшкин же ж крот, а.Mario_r4 wrote:ф.65.
Спасибо.
P.S. Пора мне отучиваться делать преждевременные выводы по названию и краткому описанию функций. Про сканкоды не читал, думая, что там только про преобразование сканкодов в символы и обратно. А оказалось, что события KeyDown/KeyUp как раз ими ловятся. Про вывод с палитрой не читал, думая, что там не будет ничего про вывод графики с числом бит на пиксель > 8. И уж точно не ожидая там найти вывод фрагмента изображения.
P.P.S. Потребление ОЗУ сейчас снизится на 768 кб Больше не будет преобразования буфера BGRA -> BGR.
Roman Shuvalov
ALPINE: Have you seen the KolibriOS game "pharaohs crypt" ?
It's a similar game which works very smoothly
It's a similar game which works very smoothly
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
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)
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)
Roman Shuvalov
Ok, just wanted to let you know.
Good luck to you!
Good luck to you!
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
Who is online
Users browsing this forum: No registered users and 7 guests