Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Aug 21, 2019 9:56 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 54 posts ]  Go to page Previous 1 2 3 4 Next
Author Message
 Post subject:
PostPosted: Tue Dec 16, 2014 11:51 pm 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1150
Извеняюсь, это не лаги, а ступенчатая анимация :) А ФПС около 12 держится.

_________________
я лишь учусь


Top
   
PostPosted: Wed Dec 17, 2014 12:36 am 
Offline
User avatar

Joined: Tue Nov 25, 2014 5:08 pm
Posts: 109
Quote:
А ФПС около 12 держится.
Понятно. Ну, я ожидал, что с производительностью будут проблемы, т.к. совершенно бесцеремонно не жалел вычислительных ресурсов. У меня весь кадр (512х512, 32 bit) перерисовывается, еще и с альфа-каналом, пиксели смешиваются... оптимизирую. Собственно, уже оптимизировал, теперь кадры рисуются только при необходимости (пока обдумываем ход - картинка статична, отрисовки нет). Кое-чего еще исправлю и залью.

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

_________________
Roman Shuvalov


Top
   
PostPosted: Wed Dec 17, 2014 12:41 am 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1150
Попробовал для интереса запустить на своем IBM ThinkPad 600E с Intel Pentium II 366Mhz под капотом. Ну в общем получил около 3 ФПС :)

_________________
я лишь учусь


Top
   
PostPosted: Wed Dec 17, 2014 1:14 am 
Offline
User avatar

Joined: Tue Nov 25, 2014 5:08 pm
Posts: 109
punk_joker wrote:
Попробовал для интереса запустить на своем IBM ThinkPad 600E с Intel Pentium II 366Mhz под капотом. Ну в общем получил около 3 ФПС :)

Интересно, а Heliothryx пашет быстрее? Там разрешение не 512х512, а 320х180 (в 4.5 раза меньше). Апскейл до размеров окна конечно есть, но он менее ресурсоёмкий, чем смешивание полупрозрачных цветов.

_________________
Roman Shuvalov


Top
   
PostPosted: Wed Dec 17, 2014 1:37 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Last edited by Mario_r4 on Sun Jan 04, 2015 9:47 pm, edited 1 time in total.

Top
   
PostPosted: Wed Dec 17, 2014 2:08 am 
Offline
User avatar

Joined: Tue Nov 25, 2014 5:08 pm
Posts: 109
Обновление
- немного улучшена производительность
- перерисовка теперь происходит только при необходимости, уменьшается нагрузка на процессор
- изменил размер и масштаб игрового поля
- небольшие косметические изменения

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

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

_________________
Roman Shuvalov


Top
   
PostPosted: Wed Dec 17, 2014 2:51 am 
Offline
Just Flooding
User avatar

Joined: Thu Dec 11, 2014 1:31 am
Posts: 173
Думаю кристаллы и их анимацию можно прорендрить при запуске и частично во время простоев игры в спрайты, чтобы во время игры просто доставать нужные из оперативки. Обычно в подобных играх так всегда делали (да, и производительность улучшит).


Top
   
PostPosted: Wed Dec 17, 2014 3:04 am 
Offline
User avatar

Joined: Tue Nov 25, 2014 5:08 pm
Posts: 109
Конечно всё именно так и делается, при запуске всё один раз генерируется и потом достаётся из оперативки. В том числе все кадры взрывов. Но например у меня есть текстура фона и полупрозрачное игровое поле. Раньше они смешивались каждый кадр, а сейчас я завёл просто еще одну текстуру фона - в ней хранися дубликат фона с уже нарисованным игровом полем, таким образом смешивание этих текстур делается только один раз. Но и хранить данные приходится дважды.

_________________
Roman Shuvalov


Top
   
PostPosted: Wed Dec 17, 2014 3:19 am 
Offline
Just Flooding
User avatar

Joined: Thu Dec 11, 2014 1:31 am
Posts: 173
Есть много вариантов... Например, хранить только изменения... Софтрендер позволяет бОльшую гибкость при прочих ограничениях... Кстати, могу материала по теме олдскульного демокодинга нахамячить тебе, но только в сыром виде (выдирать долго, а я ленивый)...


Top
   
PostPosted: Wed Dec 17, 2014 3:36 am 
Offline
User avatar

Joined: Tue Nov 25, 2014 5:08 pm
Posts: 109
Quote:
хранить только изменения
И чтобы получить картинку, опять нужны вычисления :)
Quote:
Кстати, могу материала по теме олдскульного демокодинга
Спасибо, но я как-нибудь сам. Многое уже сейчас неоптимально, когда (и если) оптимизирую очевидные вещи - тогда уже буду прибегать к более суровым методам.

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

_________________
Roman Shuvalov


Top
   
PostPosted: Wed Dec 17, 2014 3:37 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Last edited by Mario_r4 on Sun Jan 04, 2015 9:47 pm, edited 1 time in total.

Top
   
PostPosted: Wed Dec 17, 2014 3:46 am 
Offline
User avatar

Joined: Tue Nov 25, 2014 5:08 pm
Posts: 109
Mario_r4 wrote:
ф.65.

Ну ёшкин же ж крот, а.
Спасибо.

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

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

_________________
Roman Shuvalov


Top
   
PostPosted: Wed Dec 17, 2014 12:22 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Fri Jun 30, 2006 9:01 am
Posts: 1248
ALPINE: Have you seen the KolibriOS game "pharaohs crypt" ?
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


Top
   
PostPosted: Wed Dec 17, 2014 12:59 pm 
Offline
User avatar

Joined: Tue Nov 25, 2014 5:08 pm
Posts: 109
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) :)

_________________
Roman Shuvalov


Top
   
PostPosted: Wed Dec 17, 2014 1:00 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Fri Jun 30, 2006 9:01 am
Posts: 1248
Ok, just wanted to let you know.
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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 54 posts ]  Go to page Previous 1 2 3 4 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited