Marble Match-3 - ещё игра на конкурс (игра выпущена)

Entertainment for 5 minutes, hours, days
  • I think it's a good idea.
    "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
  • Производительность действительно стала ввше, особенно заметно на стареньком IBM.
    to infinity and beyond
  • punk_joker wrote:Производительность действительно стала ввше, особенно заметно на стареньком IBM.
    На самом деле просто меньше лишних отрисовок. Во время анимации взрывов производительность прежняя (но анимация длится недолго, поэтому в среднем нагрузка на ЦП упала). Будет ещё ниже, т.к. простор для оптимизации есть. Если я конечно новых ресурсоёмких фич не напридумываю :)
    Roman Shuvalov
  • Маленький вопрос по ассемблерной вставке в Си.

    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) );
    Roman Shuvalov
  • Никак.
    Обходной вариант номер 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), ...)
    Сделаем мир лучше!
  • По умолчанию флаги компиляции сделаны для оптимизации по размеру. Для критических по производительности файлов можно в Tupfile.lua переключить CFLAGS = CFLAGS_OPTIMIZE_SPEED перед вызовами compile_gcc - которых может быть несколько. Вызов 7-й функции в вызов 65-й функции это, естественно, не превратит, но может быть полезно иметь в виду.
    Сделаем мир лучше!
  • Опаньки, неожиданно. Спасибо за объяснение.

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

    Скриншотик:

    Image
    Roman Shuvalov
  • Гы.. :) Оставь так, только едкий рыжий цифровой/калькуляторный шрифт на фоне гранита как-то мне глаз режет.. ИМХО уже выглядит целостно, а фичи движка можно и позже допилить.. ИМХО игровая логика, поле и графика работают, можно сосредоточиться на контенте..
    Last edited by kiv on Tue Dec 30, 2014 2:36 am, edited 1 time in total.
  • А, да, забыл написать, что шрифт - следующий кандидат на доработку. Ну и как писал выше, возможно, добавлю новый режим игры. Только это будет уже не матч-3. Возможно, сменю название.
    Roman Shuvalov
  • Обновление. Сделал нормальный шрифт.

    Image
    Roman Shuvalov
  • А можно голубые камушки сделать более голубыми, а то у меня на ноутбуке синии и голубые сливаются...часто ошибаюсь..:)
  • Спасибо за отзыв. Сделал их почти бирюзовыми, залью при следующем коммите вместе с локализацией.
    Roman Shuvalov
  • Обновление
    - все строки вынесены в отдельные файлы для удобной локализации на другие языки
    - мелкие косметические изменения
    Roman Shuvalov
  • Who is online

    Users browsing this forum: No registered users and 7 guests