Хорошо размахнувшись, инженер производил мощный удар кулаком сверху монитора. Раздавался треск и… монитор оживал! Тогда, 30 лет назад, когда в свои десять лет я посещал вечерние занятия школы юных программистов в университете, только инженер имел право так чинить мониторы. Только он знал, в какое место и с какой силой приложить компьютерную технику, чтобы она ожила и мы, дети, которым повезло попасть в школу программистов, продолжили, счастливые, писать свои строчки кода.
В то время я жил в промышленном районе города, в деревянном доме, затерянном среди заводов. Дорога от дома до университета занимала полтора часа, а еще надо было отпроситься из школы. Дело в том, что не пропустив последнего урока, не было шансов успеть на занятия в университете. Как правило, выпадало так, что два последних урока были уроками труда. Пришлось заключить с трудовиком соглашение: на первом уроке труда я делаю уборку всех кабинетов, и тогда он отпускает меня со второго.
Освободившись в школе, я стремительно вклинивался в заснеженные тропы между заводами, чтобы в полумраке сибирских вечеров, за полчаса дойти до автобусной остановки.
Потолкавшись час в заполненных автобусах и сделав одну пересадку, я наконец попадал в другой мир. Это была фантастика. Просторные и ослепительно светлые помещения университета были заполнены волшебством: компьютерами.
На первых занятиях мы изучали Фортран на компьютерах Искра-1256. Информация в нем отображалась на монохромном символьном ЭЛТ-мониторе в 16 строках по 64 символа. Символы имели размер 5?7 точек.
Программы можно было записывать на магнитофонные кассеты. Однако тут был нюанс — невозможно было записать несколько разных программ на одну кассету, при чтении они все считывались непрерывно. По какой-то причине Искра не могла определить конец одной программы и начало следующей. Кассеты для нас школьников были в дефиците, а программы хотелось сохранять и тогда, опытным путем, был открыт такой хак: после того как кто-то записывал свою программу, он доставал кассету и на магнитной ленте прорезал вертикальную полоску с помощью гвоздя. Оказалось, что если нанести значительное физическое повреждение магнитному слою, то в этом случае компьютер определял конец программы. Одной кассеты нам хватало, чтобы несколько месяцев «нарезать» наши небольшие программы. Главное, чтобы был гвоздь!
Потом появились «Корветы» — компьютеры с двумя независимыми видео-контроллерами, выводящими изображение на экран одновременно. Один — алфавитно-цифровой, 16 срок по 64 символа, 8?16 точек каждый. Другой — графический, 512?256 пикселей при 8 цветах. «Корвет» был быстр!
Однако с сохранением программ и здесь был нюанс. Только один «Корвет», учительский, имел 5? дюймовый дисковод. Остальные 10 компьютеров в классе подключались к нему по локальной сети со скоростью 19,5 килобит/сек. И сеть эта не была стабильной!
Занятия начинались с того, что с дисковода на локальные компьютеры закачивались наши программы. После нескольких часов работы над своими программами, нам нужно было закачать их обратно на учительский компьютер для сохранения, причем, по очереди. Вот тут разыгрывались подчас настоящие драмы. Достаточно было неосторожно пошевелить клавиатуру, и передача программы могла оборваться, даже если передача была с другого «Корвета». Представляете чувства ребенка, несколько часов «пилившего» свою первую «большую» программу, когда он терял всю свою работу за день? Поэтому период сохранения программ, занимавший иногда до часа-двух, был «карантином». Никто не имел права трогать компьютеры. Обычно все стояли и с замиранием сердца следили за процессом, стараясь потише дышать.
На «Корвете» я впервые сделал игру-платформер и даже с соавторами написал книжку по программированию с примерами спрайтов из этой игры. Тираж был 30 тысяч, который не сразу, но разошелся.
Если «Корветы» открыли для меня графику с несколькими градациями серого, то появившиеся позже MSX и ZX Spectrum открыли бескрайний мир игр с цветной графикой. О, какие там были игры! Помните? Даже сейчас, по прошествии 30-ти лет, я иногда запускаю эмулятор, чтобы поиграть в Zanac Ex, Metal Gear, Vampire Killer (Castlevania). Но до сих пор я с ностальгией вспоминаю те времена, когда мониторы были алфавитно-цифровые, а принтеры — матричные.
Стиль
Так я нашел свой стиль графики, в котором только год назад решился сделать игру. Вся графика игры выполнена с помощью 94 символов, каждый из которых может принимать цвет из 256-цветовой палитры. Вот эти символы:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
При наличии времени и сноровки, с помощью всего лишь этих символов, можно получать вполне атмосферную графику.
Около года назад я решился осуществить «пробу пера» — выпал из жизни на три месяца и сделал пазл-платформер игру Proto Raider. Работая по 10 часов в день, включая выходные, я сделал 64 уровня за три месяца. На каждый уровень уходило не менее одного дня. Это мероприятие подкосило семейный бюджет, но результат того стоил! Не смотря на минимальную ретро графику, игра понравилась моей семье, моим друзьям и потом многим-многим людям. Ресурс Touch Arcade назвал Proto Raider игрой недели.
Графика игры выполнена в стиле ASCII арта, что сразу определило узкую нишу. Не так много людей воспринимают такой стиль графики. Более того, ASCII арт в игре был не классический. Несмотря на «древнюю» графику мне хотелось, чтобы сам процесс игры был современным. Поэтому я отклонился от «канонов» ASCII арта. Движение персонажа, боссов и некоторых других элементов я сделал плавным. Символы перескакивают на соседние позиции текстовой матрицы не рывком, а за несколько кадров. А еще я сделал векторный шлейф за главным героем, за что получил от настоящих ASCII артистов по полной, однако шлейф оказался прикольной фичей, т.к. хорошо отделял человечка от фона и показывал траекторию.
Узость ниши компенсировалась интересом со стороны прессы. К моему удивлению, игра принесла отличные от нуля деньги. Стало понятно, что делать бизнес на таких играх нельзя, но немного заработать можно. Эту идею я попытался сформулировать в кредитсах, которые показывались тем, кто прошел все уровни.
Новая игра — добавляем историю
Этим летом я начал реализовать еще одну вещь, которую хотел сделать уже несколько лет — написать научно-фантастический рассказ и сделать игру по нему. Идея рассказа давно сложилась, но захотелось сделать необычный ход: в своей ленте на Фейсбуке я спросил, не желает ли кто-нибудь поучаствовать своим персонажем в рассказе. Я обещал изучить профайл друга (если не знал его лично) и вписать его в рассказ под настоящим именем.
Откликнулось 20 человек, что вчетверо превышало изначальное количество персонажей в рассказе. Сейчас рассказ превратился в 100-страничную новеллу и закончен на 80%. Рассказ описывает необычный мир планеты Франго, окруженной одноименной аномалией, затрудняющей к ней доступ. Тем не менее, планета была колонизирована 1500 лет назад, но из-за труднодоступности и вызванной аномалией мутаций, развитие общества на планете проходило весьма не однородно. Экран загрузки новой игры показывает это:
С одной стороны, большая доля 500 миллионного населения планеты достаточно хорошо развита.
Пилотам регулярно приходится проходить через аномалию во внешний космос для осуществления связи с человечеством, а также для доставки туристов. Существует школа космических полетов, куда мечтает попасть большинство мальчишек и девчонок. С другой стороны, значительные по численности группы людей регрессировали.
В этом мире описывается судьба пилота Анри — главного героя рассказа и игры, которого называют лучшим пилотом-человеком во Вселенной. Дело в том, что аномалия, окружающая планету, из поколения в поколение воздействует на мозг жителей, что приводит к мутациям, делающим из пилотов планеты идеальные машины пилотирования. Пилоты планеты Франго могут на равных сражаться с дронами, управляемыми искусственными интеллектами. Это не по душе многим иерархам искусственных супер интеллектов.
С такой историей (Sci-fi), стилем графики (ASCII) и игровой механикой (логический платформер) дизайн новой игры будет по истине экстремальным! Но лично я очень вдохновлен и готов тратить сотни часов на создание атмосферы с помощью 94 символов.
То, что получится, можно будет посмотреть на ASCIIDENT. Как вам название, кстати, соответствует ли игре?
Многие родственники и друзья спрашивают — зачем? Зачем тратить столько сил и времени на такую игру? Можно сделать другую, тоже интересную, и заработать в 100 раз больше денег.
С возрастом у мужчины меняется только размер игрушек. Разработка игр — это моя работа. А создание Sci-fi ASCII платформера — это моя дорогостоящая игрушка. Это во-первых. А во вторых, кто-то должен поставить дронов с искусственным интеллектом на место!
Надеюсь, мой рассказ о необычном дизайне игры был интересен. Множество технических моментов было опущено, но я с удовольствием расскажу о них в комментариях если будут вопросы.
Комментарии (55)
dorsett
04.11.2016 00:44+5Очень интересный визуальный стиль.
После работы в разнообразных IDE и текстовых редакторах с подсветкой кода
эти игры выглядят очень приятно. Как будто мир разбит на логические составляющие.
Желаю творческих успехов, спасибо за интересный материал!
lonelymyp
04.11.2016 01:01+2а что насчёт звука? он есть? он современный? ласкающие ухо звуки модема? чиптюн?
DuhaTheBest
04.11.2016 01:02Вот музыка из Proto Rider bandcamp. Для новой игрушки планирую похожую музыку.
pehat
04.11.2016 01:12+1По скринам помню, что к игрушке музыку писал тот же человек, что и к «Бесконечному лету».
datacompboy
04.11.2016 01:01+2Восхитительное свинство! Ну почему в стим нельзя покупать игры пачками? Я бы взял два десятка на засолку…
Пришлось поштучно несколько разослать, задолбался, устал. Поиграю на выходных, еще разошлю. :)
ru_vlad
04.11.2016 01:12+1Спасибо!
Тоже вспоминаю ДВК-2М и игрушки на нем, Марс, первый Тетрис, Теннис и прочие :)
В свое время тоже кодить с них начинали.
daggert
04.11.2016 01:35+5Я как зачарованный смотрю на ваши гифки, да и вообще изображения в статьях… Просто преклоняю голову от такого дизайна, он великолепен!
phoenixweiss
04.11.2016 01:49+1Очень понравилась Proto Raider, с нетерпением жду нового творения.
А вообще было бы круто посмотреть на реализацию в такой стилистике приключения с некоторыми RPG-элементами. Но тут я конечно понимаю что уровень заморочки будет значительно выше. А так я бы с радостью поиграл в игрушку, сопоставимую по глубине с Little Big Adventure, выполненную в ASCII-арте с видом сбоку.DuhaTheBest
04.11.2016 01:52+1Большое спасибо, что поиграли в Proto Raider! Как раз сейчас обдумываю возможность добавить RPG элементы.
zuzuz
04.11.2016 02:54Я помню в школе мы играли на электрониках в игры с подобной графой))рисовали в бэйсике)и решали задачи)при этом чтоб решить простую задачу надо было исписать весь экран командами))проще было посчитать на тетрадке))
fzzr
04.11.2016 03:39Ужасно жаль, что Proto Raider нет на GoG. Пытались ли опубликовать там?
DuhaTheBest
04.11.2016 03:41Пытались. Они ответили, что игра слишком маленькая для GoG. На Стим игра зашла нормально.
zuzuz
04.11.2016 03:55А есть еще какие-нибудь игрушки, которые создал?
DuhaTheBest
04.11.2016 04:30Вот список всех PuzzleLab.com
zuzuz
04.11.2016 05:28ты один все сделал или у тебя команда?
maaGames
04.11.2016 07:31У вас там за 2004-2005 годы все ссылки не рабочие.(
DuhaTheBest
04.11.2016 08:07Издатели, видимо, поменяли ссылки/сняли игры. Спасибо за информацию — проверю.
maaGames
04.11.2016 07:30Это просто супервосхитительно!
Не уверен, удобно ли в такое играть или припадок начнётся (у меня глаза устают от чёрного фона), но со стороны выглядит шикарно.
Может не внимательно читал, но не понял, это именно ASCI графика или всё же спрайты, на которых нарисованы символы?DuhaTheBest
04.11.2016 08:05Спасибо! Это именно ASCII. Игра реалтайм рендерит коды символов выбранным шрифтом. Шрифты можно менять в настройках.
vlreshet
04.11.2016 10:27+8Охрененно. Пожалуйста, запилите статью о технической стороне этого чуда, безумно интересно как и на чём такие вещи пишутся. Просто великолепно, нет слов!
belurd
04.11.2016 12:32+1«Картинка для привлечения внимания» сработала и я этому рад! Обязательно попробую на досуге.
Roma-Pro
04.11.2016 14:21Я не читал, но пролистал и посмотрел картинки. Очень крутые картинки! Нравится такое видеть.
alexvoz
04.11.2016 14:21Персонаж в вашей игре двигается не по «символьной сетке» а плавно перемещается? т.е. если бы это была псевдографика на древнем ПК — то персонаж должен был бы перемещаться рывками на ширину символа.
DuhaTheBest
04.11.2016 14:25Персонаж перемещается по сетке рывками, но каждый такой рывок «сглаживается» плавным перемещением. Т.е. во внутреннем представлении текстовой матрицы персонаж перескакивает, но визуально двигается плавно.
alexvoz
04.11.2016 14:32Интересно было бы посмотреть как выглядит игра без сглаживания движений :). Есть опция отключения сглаживания в настройках?
DuhaTheBest
04.11.2016 14:38Выглядит не очень, особенно на больших мониторах — персонаж заметно дергается. Поэтому не стал даже опцию делать.
ArXen42
04.11.2016 14:38+1Cпасибо за Proto Raider)
Вроде без проблем работает под wine, хотя нативная linux версия новой игры, например, была бы приятным дополнением (если, конечно, платформа позволит портировать без больших изменений).
На девятом уровне возможно баг: при некоторых условиях (позиции игрока на лодке близко к правому краю, кажется) на развороте справа игрок может уйти в "текстуру" дна (MMMMM) лодки. Не особо мешало, просто заметил случайно.
lolmaus
05.11.2016 00:48+1У меня всегда подгорает из-за фальшивой пиксельной графики. Т. е. игра вся такая пиксельная, олдскульная, но при этом пикселы эти двигаются плавно, да еще поворачиваются на малые углы в Full HD.
А тут то же самое, но с ASCII-артом. У меня аж бомбануло!
HardDie
05.11.2016 05:30+1Как только прочитал статью, сразу приобрел копию Proto Rider для себя, сечас буду пробовать, но судя по комментариям игра отличная. Хорошо что есть еще разработчики которые не гонятся за количеством полигонов в своих играх. Так же жду новую игру, на рассылку уже подписался.
DuhaTheBest
05.11.2016 05:31Спасибо!
HardDie
05.11.2016 09:16+1Поиграл в вашу игру, в принципе интересно, но я ожидал все-таки платформера а не ранера головоломку. А можно узнать, следующая ваша игра будет в таком же стиле?
Roman9704
05.11.2016 07:27+2Напишите пожалуйста статью с технической реализацией сего чуда и её особенностями! Если не секрет :)
Прям самому захотелось развлечься чем-то подобным :D Спасибо за статью и пробуждение интереса!
Karpion
06.11.2016 20:25+1Мне было бы гораздо интереснее увидеть эту игру в браузере — например, на JavaScript.
A-Stahl
Я вот тоже развлекаюсь ASCII дизайном для игр: http://asciigames.tk
У меня правда не так забавно и динамично и под Андроид…
DuhaTheBest
Отлично — добавил в закладки! Под Андройд тоже планирую версию.