Page 3 of 4

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

Posted: Wed Dec 17, 2014 1:03 pm
by ALPINE
By the way, I have an idea to convert match-3 to other genre, I don't know name of this genre - instead of swapping blocks to reach column/row with 3 similar pictures, you just click on any block and it and all near similar block explodes too. It's not very hard to implement it, and if there is no same game already released for KolibriOS, maybe I will do it.

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

Posted: Wed Dec 17, 2014 1:44 pm
by hidnplayr
I think it's a good idea.

Posted: Thu Dec 18, 2014 2:57 am
by punk_joker
Производительность действительно стала ввше, особенно заметно на стареньком IBM.

Re:

Posted: Thu Dec 18, 2014 3:55 am
by ALPINE
punk_joker wrote:Производительность действительно стала ввше, особенно заметно на стареньком IBM.
На самом деле просто меньше лишних отрисовок. Во время анимации взрывов производительность прежняя (но анимация длится недолго, поэтому в среднем нагрузка на ЦП упала). Будет ещё ниже, т.к. простор для оптимизации есть. Если я конечно новых ресурсоёмких фич не напридумываю :)

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

Posted: Thu Dec 18, 2014 5:46 pm
by ALPINE
Маленький вопрос по ассемблерной вставке в Си.

Code: Select all

+---+--------------------+
| r |    Register(s)     |
+---+--------------------+
| a |   %eax, %ax, %al   |
| b |   %ebx, %bx, %bl   |
| c |   %ecx, %cx, %cl   |
| d |   %edx, %dx, %dl   |
| S |   %esi, %si        |
| D |   %edi, %di        |
+---+--------------------+
А каким операндом обозначить ebp?
Функция 65 - вывести изображение с палитрой в окно.

Параметры:

eax = 65 - номер функции
ebx = указатель на изображение
ecx = [размер по оси x]*65536 + [размер по оси y]
edx = [координата по оси x]*65536 + [координата по оси y]
esi = число бит на пиксель, должно быть 1, 4, 8, 15, 16, 24 или 32
edi = указатель на палитру (2 в степени esi цветов 0x00RRGGBB); игнорируется при esi > 8
ebp = байтовое смещение между концом предыдущей строки изображения и началом следующей строки
asm volatile ("int $0x40"::"a"(65), "b"(data), "c"(w*65536+h), "d"(0*65536+0), "D"(0), "S"(32), "ebp???"(0) );

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

Posted: Thu Dec 18, 2014 6:28 pm
by CleverMouse
Никак.
Обходной вариант номер 1 - https://gcc.gnu.org/onlinedocs/gcc/Loca ... l-Reg-Vars. Не сможет скомпилироваться при отсутствии опции -fomit-frame-pointer.
Обходной вариант номер 2 - заполнять его самостоятельно внутри asm-блока, не забыв сохранить и восстановить его, asm("pushl %%ebp\n\tmovl %2, %%ebp\n\tint $0x40\n\tpopl %%ebp" : "=a"(...),"=b"(...) : "rmi"(delta), ...)

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

Posted: Thu Dec 18, 2014 6:46 pm
by CleverMouse
По умолчанию флаги компиляции сделаны для оптимизации по размеру. Для критических по производительности файлов можно в Tupfile.lua переключить CFLAGS = CFLAGS_OPTIMIZE_SPEED перед вызовами compile_gcc - которых может быть несколько. Вызов 7-й функции в вызов 65-й функции это, естественно, не превратит, но может быть полезно иметь в виду.

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

Posted: Thu Dec 18, 2014 7:01 pm
by ALPINE
Опаньки, неожиданно. Спасибо за объяснение.

В моём случае самым правильным решением будет реализовать у себя не только 32-битные, но и 24-битные текстуры, чтобы можно было просто 7-й функцией рисовать и всё.

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

Posted: Thu Dec 18, 2014 9:42 pm
by ALPINE
Обновление.
- плавные анимации
- разукрасил шарики, кристаллы не получились, пока оставлю так.

Скриншотик:

Image

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

Posted: Fri Dec 19, 2014 3:22 am
by kiv
Гы.. :) Оставь так, только едкий рыжий цифровой/калькуляторный шрифт на фоне гранита как-то мне глаз режет.. ИМХО уже выглядит целостно, а фичи движка можно и позже допилить.. ИМХО игровая логика, поле и графика работают, можно сосредоточиться на контенте..

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

Posted: Fri Dec 19, 2014 7:01 am
by ALPINE
А, да, забыл написать, что шрифт - следующий кандидат на доработку. Ну и как писал выше, возможно, добавлю новый режим игры. Только это будет уже не матч-3. Возможно, сменю название.

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

Posted: Fri Dec 19, 2014 1:45 pm
by ALPINE
Обновление. Сделал нормальный шрифт.

Image

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

Posted: Fri Dec 19, 2014 2:41 pm
by popovpa
А можно голубые камушки сделать более голубыми, а то у меня на ноутбуке синии и голубые сливаются...часто ошибаюсь..:)

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

Posted: Fri Dec 19, 2014 3:11 pm
by ALPINE
Спасибо за отзыв. Сделал их почти бирюзовыми, залью при следующем коммите вместе с локализацией.

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

Posted: Fri Dec 19, 2014 8:37 pm
by ALPINE
Обновление
- все строки вынесены в отдельные файлы для удобной локализации на другие языки
- мелкие косметические изменения