Гамин-Коллаб 6: Анонс

Painted Heart

Blosics

Grove

Fart Simulator 2017 - такого ещё не было!

Избранное пользователя

В привычном значении слова, у этой игры наверное нет шейдеров. Здесь весь код постпроцессинга картинки прямо в самом коде игры на Си, как и вся игра.

Сама игрушка изначально черно-белая, все ассеты тоже черно белые. Если отрендерить без кода постпроцессинга, то получится вот так:

GZaQJnW

Дальше каждый пиксель затемняется в зависимости от его глубины в кадре:

Ic8tvX3

И дальше главная функция постпроцессинга опять же проходит про каждому пикселю и заменяет его на один из 8 цветов палитры, попутно применяя кое-какой дизеринг:

GYL0dI4

unsigned char pal[8][3] = {
    {  1,  63,  79  },
    { 22,  70,  96  },
    { 74,  78,  104 },
    { 131, 105, 122 },
    { 198, 129, 89  },
    { 235, 170, 94  },
    { 245, 212, 163 },
    { 255, 236, 214 }
};

void set_with_pal(unsigned int x, unsigned int y, int pal_idx) {
    set(x, y, pal[pal_idx][0], pal[pal_idx][1], pal[pal_idx][2]);
}

void postproc() {
    unsigned char r, g, b;
    for (unsigned int x = 0; x < WIDTH; x ++)
    for (unsigned int y = 0; y < HEIGHT; y ++) {
        get(x, y, &r, &g, &b);

        r /= 8;
        r -= 3;
        if (r > 32) {
            r = 0;
        }

        if (r % 4 == 0) {
            set_with_pal(x, y, r / 4);
        } else if (r % 2 == 0) {
            int one = (r - 2) / 4;
            int two = (r - 2) / 4 + 1;

            if ((y + x) % 2) {
                set_with_pal(x, y, one);
            } else {
                set_with_pal(x, y, two);
            }
        } else {
            int one = (r % 4 == 1) ? (r - 1) / 4 + 1 : (r - 3) / 4;
            int two = (r % 4 == 1) ? (r - 1) / 4 : (r - 3) / 4 + 1;

            if ((y % 2) == (r % 4 == 1) && x % 2) {
                set_with_pal(x, y, one);
            } else {
                set_with_pal(x, y, two);
            }
        }
    }
}

get(x, y, r, g, b) и set(x, y, r, b, g) - это соответственно функции чтобы достать и проставить пиксель (x, y)

Ну, если честно, то немного разочаровался, извините уж.
Если начать с плюсов - спрайты и анимации машинок и прочей техники - огонь. Очень круто. Барханчики тоже неплохие. Бензин и боеприпасы выделаяются как-то по стилю. Взрывы в целом прикольные, однако у вас иногда будто что-то с сортировкой - иногда как будто поверх нашей машины рисуется что-то, что по факту должно быть сзади.

Музыка классная в целом. Ещё бы синт аля дискотека 90х заменить на партию соло-гитары - было бы вообще пушечно. Впрчоем, там потмо соло есть, и это хорошо, но синт тут как-то не к месту. Чего-то более сырого и примордиального хочется к такой тематике)

Ну, в целом вроде много чего сделано, это плюс. Таблица рекордов - плюс.

Про минусы - геймплей какой-то слишком уж трехкнопочный, на мой вкус. Я ожидал скроллшутер, но тут скроллшутер с 3 линеечками. Как-то простовато по мне. Хотя кому-то и пойдет.

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

Но, в общем, самое главное, что меня огорчило - это динамика. Музыка задаёт такой бодрый грув, думаешь ЩА КАК КАК НАЧНЕТСЯ ЖАРА. Но жара не начинается. Хочется скорость прокрутки параллакса раза эдак в 2-3 увеличить. И скорость вообще повысить. Хочется, чтобы экран трясся от каждого взрыва. Возможно, чтобы машинка следы оставляла. Хочется смачно таранить врагов в бок, а не просто тихонько касаться. Это всё не так долго было бы сделать, особенно относительно того, что уже есть, но сочность была бы в разы. Я понимаю, что не каждая игра создана для того, чтобы там всё люто колбасилось и тряслось, но тут как раз тот случай. Драйва очень не хватает. Сейчас кажется, будто просто красивые спрайты машинок вяло тягают по карте. В общем, чувственной обратной связи маловато.

Ну вот. Может будет полезен мой отзыв.