Комментарии 53
Это RLE — Run Length Encoding. %)
Это была первая игрушка которую я написал в конце далеких 80-х в рамках своих первых потуг программирования(не именно эта). И как выяснилось позже, таких людей кто писал свой собственный сокобан было не мало. Почти все мои друзья кто нынче является программистом написали по своему сокобану в начале програмерского пути.
Много ли людей тут кто прошел такой же путь?
Много ли людей тут кто прошел такой же путь?
Было такое. Тоже писал сокобан как минимум три раза на разных языках програмирования :)
Я начинал с сапера в текстовом режиме на basic'е, а потом заново начал, уже с пак-мэном на C++ в связке с голым OpenGL. Так что не все, не все… :)
Я писал, в основном, тетрисы и пэкмэна. Над сокобаном думаю сейчас — ни разу не видел его трехмерного варианта, а значит, что-то в этом мире пропущено.
Где-то мне попадалось нечто трехмерное, псевдо 3д еще на 486, но смутно помню. А в целом конечно затея хорошая, как минимум для развития собственных навыков в 3д графике.
Может быть, Future classics? ;)
этих 3d-сокобанов уже тоже легион — только на андроиде с десяток вариаций встречалось
Они действительно трехмерные, или это 3D-визуализация плоских уровней?
А это классная мысль — вынести в 3D не только интерьер, но и склад сделать многоэтажным, с лифтами и штуками, которыми пользуются пожарники, чтобы быстро спускаться с верхнего этажа. Погрузчиками, чтобы на разные полки склада ставить.
И чтобы можно было грабить корованы
Такой себе симулятор кладовщика.
Такой себе симулятор кладовщика.
Боюсь, что это разрушит математическую элегантность игрушки. Я думаю, скорее, над «космическим» складом, без гравитации. Где ящики можно толкать во всех 6 направлениях.
А можно сразу в 4D.
Это основная идея. Но без промежуточного 3D-этапа будет трудно понять, что там можно делать и что придумывать. Например, у того же сапера увеличивать число измерений большого смысла нет (если оставлять окрестность кубической). У пэкмэна, как выяснилось, и подавно — он для любого числа измерений будет казаться нам трехмерным.
На андроиде мне понравился Psychoban 3D.
Он с сюжетом (подаётся между уровнями), проходить интересно.
Он с сюжетом (подаётся между уровнями), проходить интересно.
Так вот что мне нужно написать! :) Спасибо за идею!
Трехмерные варианты есть. Правда, сам геймплей классический — в 2х, а не в 3х измерениях. Есть один по iOS. Еще в блоге Emanuele Feronato был пост с прототипом на Unity. Кстати, прототип получился достаточно симпатичный.
Одна из OSS вариаций на тему сокобана, с православным Beastie: beastieworker.sourceforge.net/, написана хабраюзером anmartex.
Я тоже начинал с сокобана. На ZX + Basic.
Та же фигня. Севастопольский ZX Spectrum на встроенном Васике
Я писал сокобан в рамках программерского конкурса Caos Construction'09, но у организаторов на компе не оказалось требуемой версии дотнета, так что у меня вместо консольки был отображён диалог с ошибкой :-
Один из первых подобных self-challenge проектов — Тетрис-клон под DOS на Quick C с некоторыми функциями (инициализация графического режима, вывод точки) на ASM. Это была первая курсовая работа в универе. Эх, ностальгия!
Да, я первый раз написал сокобан на ZX Spectrum, по-моему. Там был всего один уровень.
Я писал, из «техники молодёжи» брал идею и для Правеца переписывал.
Я писал раза три точно, на разных машинах и языках.
Сокобан очень просто пишется, и при этом сама игра хорошая. В ту же кучу можно засунуть тетрис — тоже просто пишется и хорошо играется. Что-то даже не вспоминается чего-то еще с подобным сочетанием играбельности и простоты реализации.
Сокобан очень просто пишется, и при этом сама игра хорошая. В ту же кучу можно засунуть тетрис — тоже просто пишется и хорошо играется. Что-то даже не вспоминается чего-то еще с подобным сочетанием играбельности и простоты реализации.
Змейка
Арканоид
Арканоид все-таки посложнее — там не такая простая физика. Шарик летает не по клеточкам, надо как-то считать пересечения. В общем да, довольно просто, но не настолько.
Что змейка, что сокобан, что арканоид — игры из разряда тривиальных. Можно на скорость даже соревноваться.
Один из мох знакомых как-то прототип быстренько писал по просьбе заказчика, за 4-е часа успели написать 80% логики финального продукта на удивление безглючную, более менее связную анимацию и с десяток уровней. Трудилось 2 человека в целом, этот знакомый и аниматор. Само собой за плечами был мощный внутренний фреймворк который позволял творить достаточно прилично выглядящие вещи в короткие сроки. Результат был впечатляющим. Сделка состоялась. Через месяц продукт бы отполирован до блеска и отдан заказчику.
Один из мох знакомых как-то прототип быстренько писал по просьбе заказчика, за 4-е часа успели написать 80% логики финального продукта на удивление безглючную, более менее связную анимацию и с десяток уровней. Трудилось 2 человека в целом, этот знакомый и аниматор. Само собой за плечами был мощный внутренний фреймворк который позволял творить достаточно прилично выглядящие вещи в короткие сроки. Результат был впечатляющим. Сделка состоялась. Через месяц продукт бы отполирован до блеска и отдан заказчику.
Помнится, у нас в компьютерном классе были голые терминалы с доступом только к своему каталогу и компилятору.
А игрушек хотелось, так что написал себе как раз сокобан и сапёра.
А игрушек хотелось, так что написал себе как раз сокобан и сапёра.
Нет, я писал питона, писал тетрис. В рамках изучения ассемблера «цветной тетрис» aka Coloris. Сокобан никогда не писал, потому что там не было динамики :)
И я, и я писал сокобан:


Будучи ещё совсем ребёнком — писал похожую игрушку (но не sokoban, а скорее больше — boulder dash) — у меня там было четыре бита на одну клетку, для поля 62x17.
Спасибо за пост — ностальгия…
Спасибо за пост — ностальгия…
Для такой игрушки 10кб — не «небольшой бинарь» по тем временам :)
А разновидность сокобана тоже писал, помнится, на асме.
А разновидность сокобана тоже писал, помнится, на асме.
По мне самый симпатичный сокобан был с грузином в кепке. Если ты задумывался, грузин доставал беломорину и закуривал. Уровни были этажами в высотке. Все оттуда тащили расклады для своих поделок.
Как по мне, можно жать и гораздо плотнее, даже не привлекая тяжелую артиллерию. А тут просто на коленке сделанный RLE, наверняка без попыток особо его улучшить — как придумали, так и слепили.
А как в данном конкретном случае можно сжать еще плотнее?
Например, воспользоваться тем, что статистика стен и ящиков сильно различается. Закодировать сначала битовую маску стен (тем же указанием длин отрезков — только придумать, как не тратить лишний бит на переключение между стеной и пустотой), а потом ящики и места для них — последовательностью разностей одномерных координат (его можно ужать, если каждый раз тратить на очередную разность число бит, соответствующих месту до конца массива). При этом не учитывается, что места для ящиков обычно идут плотно — но там можно нулем обозначать разность 1, а 1xxxx… — все остальные разности. Будет ли выигрыш, надо смотреть.
А мне сразу вспомнилось, как я в далёком 2003 закодировал фигурки для тетриса на Delphi
f:array [1..8,1..8] of byte= {1'st type 2'nd num}
((98,4, 192,6, 32,70, 96,3),
(100,2,96,12,64,38,48,6),
(68,6,32,14,96,34,112,4),
(34,6,224,2,96,68,64,7),
(98,2,224,4,64,70,32,7),
(100,4,64,14,98,2,224,4),
(96,6,96,6,96,6,96,6),
(34,34,240,0,68,68,0,15));
Пятая и шестая фигуры совпадают…
Спасибо, про формат я догадался (не считая ориентации верх-низ) :)
Пятая фигура:
Шестая:
По-моему, они одинаковые. Отличаются только положением в квадрате (одна при ориентации в виде T смещена влево, другая вправо).
Пятая фигура:
..x.
.xx.
..x.
....
Шестая:
.x..
.xx.
.x..
....
По-моему, они одинаковые. Отличаются только положением в квадрате (одна при ориентации в виде T смещена влево, другая вправо).
Неужели только я писал танчики?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Уровни для Сокобана