Вчера заходил Робик. Принёс свой старенький компьютер и долго возился, скрипел, пытаясь к нему подключиться.
Подключился, открыл простенькую игру, написанную на своём любимом «Паскале». Пришёл с ней как ребёнок с самодельным корабликом: «Смотри, что у меня получилось! Давай сделаем так, чтобы все могли поиграть!»
На чёрном фоне появился белый треугольник - космический корабль. Робик взволнованно защёлкал регистрами, передавая команды по проводу: он долго что-то объяснял и в процессе сам заигрался, забыв обо мне. «Сейчас, сейчас...» - бормочет, пытаясь поднять жёлтый кружок бонуса, и тут же снова его упуская. Поднял - уронил, поднял - уронил, и экран на секунду расплывается, покрываясь тонкой рябью. Несколько раз я видел, как изображение кораблика переворачивалось, и он продолжал играть дальше, пока картинка не вставала на место. Я чуть улыбался, глядя на знакомую ошибку.
Он взволнованно рассказывает про каждого врага так, будто знает их лично: «Вот этот, красный - он хитрый, всегда норовит зайти сбоку. А зелёный - медленный, но упрямый, его не собьёшь, даже если стрелять в упор...» Я смотрю на простенькую графику и удивляюсь, откуда в ней столько характера... Может, дело в микрозадержках движения, в этих случайных дёрганьях, которые Робик воспринимает как проявления личности?
Но поиграть толком не получается. Половину игры Робик держит в голове: звуки, эффекты - всё это существует только когда он сам играет. В эти моменты экран выдаёт помехи, а сам Робик чуть нагревается, будто додумывая игру на ходу. И только когда он сосредоточен, экран вдруг проясняется, и на нём проявляются чёткие линии его кораблика.
«Музыку пока не слушай... слушай-те...» - смущённо сбивается на «ты», замечая мой вопросительный взгляд. И спешно объясняет, что музыка будет очень крутая, просто он пока её не записал. Кажется, будто в голове у него звучит что-то грандиозное
, но выразить может только «бип-бип-бах» - на середине фразы звук ломается, превращаясь в еле различимый писк модема.
После игры он притих, даже немного подсела батарейка. Системный блок загудел тише, будто на малых оборотах. Он смотрел на меня с надеждой, желая поделиться творением с друзьями, но я не знал, что ему предложить. Этот «Паскаль»... старые кубики, из которых не собрать мост до друзей. Рассыплется уже на середине.
И тут меня осенило - а что если не тащить старый мост, а возвести новый?
«Давай переселим твою игру в веб.» - предложил я - «Там и музыка зазвучит, и частицы заискрятся - и все друзья смогут поиграть прямо в браузере, не бегая к твоему компьютеру.»
Робик задумался — экранчик мигнул, чуть размывая изображение. Мне показалось, что все враги собрались в углу экрана, притихли, ожидая нашего вердикта. «А сохранят ли они характеры?» - спрашивает он почти шёпотом, косясь на них - «Красный... красный будет так же хитрить? Зелёный - упираться?»
«Сохранят...» - пообещал я.
Робик запустил электронный дневник, в комнате стало чуть светлее. Я взял свой старенький стилус, и мы принялись царапать на неподатливом экране.
Мы составили карту путешествия: сначала строим движок для частиц, потом научим программу воспроизводить его мелодии. Затем создадим систему для поведения врагов. Каждый компонент - как отдельная страна с собственными жителями и законами, рельефом и климатом...
А Робик уже видит, как его треугольник летит над новым миром , и от этого его компьютер тихонько гудит, как мотор в предвкушении старта.
До «Голиафа» мы так и не дошли - Робик очень волновался, и мы постоянно проигрывали. То ли босс, то ли какой-то особый враг, или просто ошибка, но он всё никак не хотел появляться. В том месте экран темнел будто там зияла дыра. Позже я подсмотрел: в коде есть заготовка класса Goliath
, но все методы пустые. Нам ещё предстоит вместе их написать.