Page 1 of 4

2048

Posted: Thu Dec 11, 2014 1:24 am
by raandoom
Привет. В одной популярной игре под названием '2048' мной был обнаружен фатальный недостаток: ее не было для KolibriOS. Исправляем :)
Image

Признаюсь, что портировать игру меня подтолкнул конкурс, но я не уверен подходит ли она под условия. Если да, то пусть участвует :)
В свое оправдание могу сказать, что, портируя, опирался на свой же порт этой игры для Nokia N9.

Критика очень приветствуется.

P.S. Исходники выложу на svn как только получу доступ :)

Posted: Thu Dec 11, 2014 1:47 am
by punk_joker
Спасибо за порт, особенно для Nokia N9. Под него и так мало нормальных игр, и она самое то.
Исходники на С++ так полагаю?

Re: 2048

Posted: Thu Dec 11, 2014 1:53 am
by yogev_ezra
raandoom wrote:Привет. В одной популярной игре под названием '2048' мной был обнаружен фатальный недостаток: ее не было для KolibriOS. Исправляем :)
Привет :-) Один из самых годных первых постов юзера на нашем форуме, какие я только видел 8) Ты не Finom с Хабра? ;-) Или он только подал идею? :idea:
raandoom wrote:Признаюсь, что портировать игру меня подтолкнул конкурс, но я не уверен подходит ли она под условия. Если да, то пусть участвует :)
В свое оправдание могу сказать, что, портируя, опирался на свой же порт этой игры для Nokia N9.
Если это порт твоей же собственной игры, то по условиям конкурса конечно подходит, почему нет?
raandoom wrote:P.S. Исходники выложу на svn как только получу доступ :)
Вышли мне или CleverMouse в личку какие хочешь username/password на наш SVN, и я/она дадим тебе доступ.

Re: 2048

Posted: Thu Dec 11, 2014 6:38 am
by ALPINE
О, 2048, отлично! Я так и знал, что рано или поздно портируют.

Re: 2048

Posted: Thu Dec 11, 2014 1:26 pm
by raandoom
punk_joker wrote:Спасибо за порт, особенно для Nokia N9. Под него и так мало нормальных игр, и она самое то.
Исходники на С++ так полагаю?
Нет, просто на C. Использую функции некоторые функции из menuetlibc. Можно попробовать отвязаться от них :)
yogev_ezra wrote:Привет :-) Один из самых годных первых постов юзера на нашем форуме, какие я только видел 8) Ты не Finom с Хабра? ;-) Или он только подал идею? :idea:
Спасибо :) Нее, я не Finom, но видел его комментарий, правда наткнулся я на него лишь пару дней назад, когда уже была в принципе рабочая версия, вбив в поисковик 'kolibrios 2048' - в голову стукнуло поискать: вдруг кто то уже портировал эту игру до меня.
yogev_ezra wrote:Если это порт твоей же собственной игры, то по условиям конкурса конечно подходит, почему нет?
Прекрасно. Тогда я в деле 8)

Вопрос для уже поигравших: сильно ли мешают мерцания? И есть ли они вообще?

Re: 2048

Posted: Thu Dec 11, 2014 2:13 pm
by punk_joker
raandoom wrote:
punk_joker wrote: Вопрос для уже поигравших: сильно ли мешают мерцания? И есть ли они вообще?
Проверял в qemu, и мерцания там сильные, что мешает сильно. Поправить бы. А запоминание рекорда будет?

Re: 2048

Posted: Thu Dec 11, 2014 4:28 pm
by raandoom
Плохо, значит надо будет буферизацию сделать для отрисовки.
Запоминание надо конечно сделать :) Займусь вечером.

Re: 2048

Posted: Thu Dec 11, 2014 6:01 pm
by lev
Реакцию какую-нибудь при наборе 2048 добавить бы. И при вылете более явную реакцию.
Цвета с оригинала взяты? Мне кажется, что я их там легче различал.

Re: 2048

Posted: Thu Dec 11, 2014 6:21 pm
by raandoom
Если честно, я считаю, что набор 2048 не должен быть достижением или олицетворять конец игры, ведь это не предел :)
lev wrote: И при вылете более явную реакцию.
О каком вылете идет речь?
lev wrote: Цвета с оригинала взяты? Мне кажется, что я их там легче различал.
Абсолютно все цвета взяты с оригинала. А точнее с одной из ранних версий, когда еще набор фишки с числом 2048 был пределом. Далее я не следил за цветами оригинала, возможно что то изменилось.
В данном случае фишки менее различимы из-за шрифта, как минимум, так как глаз цепляется не только за цвет, но и за очертания текста.

Re: 2048

Posted: Thu Dec 11, 2014 6:37 pm
by lev
raandoom wrote:О каком вылете идет речь?
Когда засыпаешься в данный момент просто появляется кнопка начала новой игры, хотелось более явной реакции.

Re: 2048

Posted: Thu Dec 11, 2014 7:08 pm
by e-andrew
Как вариант, можно рисовать вокруг текста черную обводку, тогда текст будет различим. Для этого нужно просто нарисовать текст черным цветом на <x-1, y-1> и <x+1, y+1>, а потом уже белым на <x, y>.

Re: 2048

Posted: Thu Dec 11, 2014 11:34 pm
by raandoom
Выложил исходники на svn. В сборку пока не добавлял :)
e-andrew wrote:Как вариант, можно рисовать вокруг текста черную обводку, тогда текст будет различим. Для этого нужно просто нарисовать текст черным цветом на <x-1, y-1> и <x+1, y+1>, а потом уже белым на <x, y>.
Сделал черный текст и белую обводку. Так лучше? Есть ли мерцания? Прикрепляю последнее, что собрал.

Re: 2048

Posted: Thu Dec 11, 2014 11:42 pm
by hidnplayr
I don't like the new text with surrounding, maybe it will be better if you reverse black and white?
There is still a lot of flicker :(

Re: 2048

Posted: Fri Dec 12, 2014 3:18 pm
by ALPINE
1) Не наблюдаю собранной игры здесь: http://builds.kolibrios.org/rus/data/pr ... ames/2048/
Похоже, что-то не так при сборке.
В Tupfile.lua вижу на второй строчке

Code: Select all

HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../.." or tup.getconfig("HELPERDIR")
Лишняя "/..", надо два раза вверх же, а не три.
И кстати,

Code: Select all

compile_gcc{"main.c" "defines.c" "rect.c" "cell.c" "board.c" "game.c"}
Запятые, что ли, не обязательны?

2) Мерцания однозначно надо исправлять (обновление: в последней версии как будто стало еще хуже, мерцания усилились; белая обводка не нужна)

3) Хотелось бы, чтоб игра работала шустрее. В веб-версии бац-бац и можно очень быстро играть, а тут очень долго приходится ждать, пока анимация доиграет.

4) Игра ну просто очень похожа на оригинал, если она действительно написана с нуля, без использования исходников, которые автор выложил на гитхабе, то это круто.

Re: 2048

Posted: Fri Dec 12, 2014 5:02 pm
by raandoom
ALPINE wrote:1) Не наблюдаю собранной игры
Я же написал, что пока не добавлял в общую сборку. За указание ошибок: спасибо :)
ALPINE wrote:2) Мерцания однозначно надо исправлять
Уже добавил рисование в памяти с выводом на экран. Мерцаний не заметно. Но не коммитил пока, так как не могу разобраться, как в память текст писать. Знаю что есть флаг для 4-ой функции, но уж больно неудобна она форматом области памяти :)
hidnplayr wrote:3) Хотелось бы, чтоб игра работала шустрее
Скорость можно настроить поигравшись со значениями ANIM_STEP и ANIM_DELAY в файле 'defines.h', так что это не проблема.
hidnplayr wrote:4) Игра ну просто очень похожа на оригинал, если она действительно написана с нуля
Об этом тоже уже писал в первом посте: опирался на свой порт, написанный на QML для Nokia N9 (исходники здесь). Да, для N9 писал, опираясь на оригинал, но логику пришлось думать самому, так как в оригинале не хватило сил разобраться :) И как по мне, сложно в JS найти что то полезное для однопоточного приложения на голом Си :)