В середине июня нам пришла по почте газета «Силикон бэй» со статьей Фигга. Из хороших новостей — интервью напечатали дословно, без попыток вырвать слова из контекста и иных журналистских приемчиков. Про «драку с Джобсом» согласились, что она не имела шансов произойти.
Однако и без плевков в сторону лицензии Си-Пи-Эль не обошлось. Вероятно, репортеру требовалось заполнить полосу и он дополнил статью комментариями «экспертов» про то, как я, выпустив бесплатный софт высокого уровня, хлеб у них отнимаю и лишаю мотивации создавать аналогичные программы. Полные нонеймы из незнакомых мне компаний. Некие Зиберт, Голд и Койнер. Пусть лают, мой караван продолжает идти.
И про нашу штаб-квартиру несколько ремарок Фигг сделал:
Выбор в качестве офиса мрачного готического особняка в Эль-Серрито по соседству со скандальной рок-группой «Бесконечность Тьмы» говорит не только о бунтарском духе коллектива разработчиков, но и о полном неумении распоряжаться свалившимися на юного Криса Коламбуса большими деньгами.
Экскурсию для нашей газеты проводили Линда Ким и бывшая фотомодель мужского журнала Пенни Смит, выступающая в роли специалиста по связям с общественностью. Мрачные скульптуры, украшающие все помещения особняка, создают нездоровую атмосферу лавкрафтианского безумия.
Ничего не сказала ему золотая рыбка… в том смысле, что прочитал и забил. Пусть критикует, работа у него такая. Открыто помоями не поливает и то хлеб.
Где-то в те же дни официально зарегистрировали «Каналья Хардвэр», пока с теми же ответственными лицами. Я — генеральный директор, Линда — секретарь, Лиза — исполнительный директор. Оформили лицензию на Тетрис от «Каналья Интернешнл». Рутина и бюрократия, но полностью необходимая. И с таким количеством юридических лиц как бы отдельный бухгалтер нам не потребовался. Пока что наняли Бренду вести учет еще и в новую фирму, за малую прибавку, так как там и работы пока ноль. Но прогнозируется-то множество всего. Заодно Лео составил договор о возвратных инвестициях со стороны Возняка и передаче тому в обмен 45 % акций новосозданной фирмы.
Эль-Кей для новой корпорации логотип нарисовала. Десяток вариантов логотипа, чтобы нанятые дядей Лёней люди проверили их на уникальность и выбрали максимально далекий от уже используемых кем-нибудь где-нибудь.
Минималистичный, подходящий для того, чтобы оставлять в виде выдавленного клейма на корпусе устройства. Маленькая уточка, естественно. Ничуть не хуже надкушенного яблочка, так считаю.
Тут важно оказаться не первой уткой в стране, с этим мы заведомо опоздали, как бы не на сотню лет. Но шансы стать главной канальей в компьютерной индустрии у нашей утки отличные. Важное условие, поставленное художнице — простая форма лого. Такая, чтобы даже ребенок смог нарисовать — и Линда справилась отлично.
Не уверен, начнем ли мы в двухтысячных выпускать дак-фон, патито-фон, или, может быть, си-си-фон, но недооценивать силу красивого бренда не стоит.
В середине июня к нам в офис Джейн Эспенсон постучалась.
— Привет! — дружелюбно поздоровалась девушка, когда Лиза проводила ее ко мне. — Помните, я пообещала к вам на работу устроиться со второго курса? Первый я закончила, все экзамены сдала, баллы по предметам закрыла. Я готова! Возьмете меня? Только программистом. Над сценариями, я знаю, у вас Эми работает и неплохо справляется, не хочу с ней конкурировать. А вот надрать задницы каким-нибудь парням, считающих себя крутыми программистами, я была бы рада. Кстати, поздравляю с победой в войне роботов. Си-Си-бот ведь твой, я угадала?
— Ага, мой, — смиренно подтвердил я. — Стив Бьорк отправил его исходники на турнир. Забавно, что мой тупой робот одолел всех умных.
— Сразимся с моим? Я заказала у журнала дискету с кодом участников турнира, но она мне пока не пришла.
— Давай для начала с работой определимся. Пойдём решим, к какому проекту тебя подключить. Семь долларов в час для начала тебя устроит?
Столько же, сколько у джуна-олимпиадника Роберто. Уровень компетенции девчонки я уже заранее оценил, как хороший. Самое важное — она увлеченный геймер, а не просто начинающий программист. Заодно увлеченная ещё кино и фантастикой.
— Йеп! — услышать фирменное айовское словечко не от Трейси чуточку странным оказалось, тем более, что Джейн раньше им не злоупотребляла. Но она из того же штата.
— Пойдем тогда, определю тебя в команду…
Вышел вместе с брюнеткой в зарождающийся опенспейс, которому таковым стать мы не позволим. Вот сейчас проведут ремонт-реконструкцию в соседних помещениях и нормально поделимся на кабинеты по два-четыре человека, сгруппированных по проектам.
— Ребят, кто не знаком — познакомьтесь. Это Джейн, она хороший программист и сценарист, но опыта в совместной разработке у нее пока нет.
Сразу в один из сложных проектов ее включать как-то неправильно. Новый человек под дедлайн только затянет сроки.
— Роберто, Говард, примите к себе новенькую? В проект с Химерами.
— Конечно! — дружелюбно улыбнулся опытный программист. — У нас как раз выделяется отдельный модуль с математикой сражений, пока Ар-ту комбинаторикой занимается. Иди сюда, Джейн, покажу тебе диздок.
Практику дизайн-документов, то есть где-то обобщенного, а где-то детального описания будущей игры, конечно, не я изобрел. Эта необходимая бюрократия и в Атари практиковалась, и в Сьерре. Я поначалу, пока один работал, все в голове держал, но вынужденно перешел на светлую сторону силы и начал всё расписывать. «Долину проклятий», «Патито» и экономические игры Бренды сразу с составления списка всего, что хотим получить, начинали. На «Темпл ран 2» целая папочка с описаниями желаемых фич и эскизами Линды заготовлена. Периодически планы пересматриваются, правда. У нас же гибкий подход.
Вот и на «Химерию», как пока названа игра про сафари-парк безумного генетика, мы подробный план с хотелками постфактум написали. При повседневной работе он не очень и требовался — исполнитель и его ментор и так все знали, но для подключения к проекту нового человека — бесценный материал.
— Девчонка-программист! Офигеть! — удивился из своего угла рыжий Блейз. — Я и не знал, что такие бывают!
— Роберта Уильямс? — назвал я. — Линда Ким, Бренда Бойл…
— Не-не-не, Си-Си, — возразил парень, — миссис Уильямс клёвая, но она геймдизайнер, а не программист. Придумывает игры, а не пишет. И Эль-Кей тоже не в тему. Крутая художница, но с кодом не работает. А Бренда…
— Она что? — насупилась бухгалтерша.
— Программист другого толка! — выкрутился Блейз.
Ну не идиот ли — ссориться с человеком, который считает твою зарплату. И с девушкой, чей парень — здоровенный мясник, одним ударом тесака разрубающий кости.
— Крис, не надо за меня вступаться, — попросила Джейн. — Если ребята считают, что я плохой программист — пусть попробуют меня в войне роботов одолеть.
Подавил желание показать парням кулак из-за спины новой сотрудницы — она явно сама за себя умеет постоять. Пусть сами дойдут до той мысли, что программиста делают мозги, а не хуэвосы в штанах.
И робота Джейн алгоритмы парней порвали на британский флаг. Ничего удивительного — все они, считай, форки моего тупого Си-Си-Бота, на которого всяких личных оптимизаций накручено. Подозреваю, оригинал своим копиям тоже проиграл бы.
— Ого! Ребят, а вы крутые, мне приятно с вами в одной команде оказаться, — не стала тушеваться Джейн. — Давайте друзьями будем, а не лошадиными задницами.
— Да я ничего такого и не говорил, — покраснел вдруг рыжий.
— Слушай, а как ты алгоритм торможения у стен сделала, покажешь? — спросил Чак. — Нам как раз нужно заставить ботов в игре не врезаться друг в друга, но они постоянно тормозят с торможением.
И лед тронулся, даже треснул. Правда, новенькая оказалась не за тем столом и занялась не милыми зверушками-гибридами, а машинками и пыщ-пыщ, но это и неплохо.
Постепенно близился дедлайн по «Долине Проклятий», и благодаря тому, что все мы хорошо поработали, выдали первый билд уровня — машина едет, стреляет и накапливает повреждения. Неплохо так получилось, очень похоже на, опять не побоюсь этого слова, легендарную Джакал с Денди, но с характерными для Коммодора 64 приглушенными слегка землистыми цветами. Особая гордость парней — очень упрощенная, но все же физическая модель. Настоящая инерция, благодаря которой броневик ощущался подлинной тяжелой боевой машиной, а не персонажем, что вертится, как хочет.
Эдди и Томми синтвейв-версию «Долины Пистолета» до ума довели, после чего она перестала являться смертью для ушей и зазвучала приятно, хоть подпевай. Линда красочный загрузочный экран нарисовала. Новенькая девушка, как выяснилось, тоже читавшая повесть, даже написала краткий текст для него:
Континент в руинах, в Бостоне бушует чума, в центральной части страны — тысячи миль радиоактивного ада. Вы преступник, которому обещано полное помилование за доставку вакцины. Но шансы доехать равны нулю. Или все же нет?
Результат с огромным трудом уместился на дискету и для демонстрации Роджеру Желязны 5 июля этой демки вполне достаточно. Но для полноценного релиза короткого огрызка маловато! И как впихнуть в носитель невпихуемое? Выпускать игру на огромной пачке дискет, как Сьерра с «Тайм зон»? Заранее обреченная на коммерческий провал стратегия. Отказаться от красивых полноэкранных загрузок, подающих сюжетную информацию? Ну… так-то вариант, если мы будем делать просто постапокалиптические гонки. Но хочется-то красиво и много…
По большому счету, все уже придумано до нас. Сжатие с потерями, уменьшающее размер картинок на порядок ценой потери части качества и появления малой толики артефактов, спасет отца американского геймдева. О слава студенту Питеру! Теперь я фразочки из Ильфа и Петрова легально в речь вставлять имею повод. Их, правда, окружающие не очень поймут. Как заставить всю студию «Двенадцать стульев» прочитать? А лучше всю Калифорнию или даже Америку.
Конечно, премии Тьюринга за внезапное изобретение джипега нам с Джоном не видать. Хотя бы потому, что все теоретические основы уже как бы не лет десять-двадцать назад придуманы умными академиками со светлыми головами и высокими лбами. Да и тяжеловата компрессия из будущего для 1983-го.
Отбрасывая лишние технические подробности — самым перспективным вариантом мне векторное квантование показалось. Использование цветовой карты и карты переопределяемых символов, как и планировал для трехмерного шутера, но пока для статичной картинки. А далее отмасштабируем. То самое, благодаря чему я однажды 3Д шутер отрендерю. Этакий ASCII арт на максималках. Не только рисуем картинку символами, но и переопределяем буквы на мини-спрайты на этапе сжатия. Библиотеку символов и цветов при этом не вручную подбираем. Наверняка я тут Америку не открыл, кто-нибудь умный, вполне вероятно, додумался до того же и, может быть, даже уже где-то зарелизил. Но играем от той расстановки шахмат, что есть.
— Смотри, Джон, какой инструмент я для нас хочу, — обратился я к самому гениальному из своих кодеров. — Анализируем нарисованную Линдой картинку, составляем из нее библиотеку символов и цветовую карту, восстанавливаем картинку, используя переопределенный набор из множества. Мы так и поступаем, когда создаем тайловую графику вручную, я от тебя хочу автоматизации процесса. Программу, которая скушает картинку высокого разрешения, прожует и выплюнет кучку мини-спрайтов и инструкцию, как из них получить картинку.
— У нас не получится повторить изначальное изображение точь-в-точь, — сразу возразил скептик Джон.
— Нам и не надо. Перфекционизм вреден, удовлетворимся приемлемым по качеству. Изначально у нас будет картинка высокого разрешения, созданная на Сан-1, а нам нужна более низкого, упакованная для Коммодора и IBM. Как-то так.
— Я не знаю Ассемблера под Моторола 68000, — нашел другую отмазку Джон.
— И не надо… пока что. Пиши упаковщик на Си. Нам не так важно, за час обработается картинка или за два. Если нужен толковый помощник, а я в это время занят — обращайся к Монтгомери. У него голова работает даже быстрее, чем у нас с тобой, только опыта не хватает.
Линда начала обрабатывать отснятые материалы, поначалу взявшись с великим воодушевлением, но чем дальше, тем потихоньку утрачивая энтузиазм. Делала стопкадры, фотографировала, распечатывала и обводила на графическом планшете. Повторить, повторить, повторить. Не жаловалась, но по глазам видно, что монотонная и не самая творческая работа вгоняла девушку в сон. Но кто, если не она? Точно не я.
Так или иначе, первая анимация — стояние на месте, оказалась за неделю упорного труда оцифрована. Причем, уже с раскрашенными телом, шортиками и подрисованной маечкой. Осталось взять готовый спрайт, чередовать кадры и экранная Пенни Смит… не будет ничего делать. А ведь это еще до кошки не добрались.
Базовый движок у нас все тот же V6 — стоит так его называть в честь первой игры, что мы в не таком и далеком будущем на нем релизнем. Скорее всего, уже осенью. Или, может быть, к рождеству.
Натянул спрайт Пенни Смит на капитана Виридиана и понял, что дискета потенциально трещит по швам. Увы, у нашей героини очевидный лишний вес и гербалайфом это не лечится. Учитываем, что, кроме самой Пенелопы Смит, запланированы Марта Джонс и антагонисты, которых начали отснимать с музыкантов «Бесконечности тьмы», а также всякие мелкие животинки. И кошка! Ее нужно много, не поместится всё.
Решение — в формате данных. Первый кадр каждой анимации храним целиком. Для второго — только отличия от первого через XOR и так далее. Сомневаюсь, что что-то революционное вспомнил, наверняка так уже делают. Но и Джон, и Говард прямо похвалили затею. Скорее это им знаний не хватает, чем я время опередил. Срочно надо заказать себе футболку «хочешь похудеть — спроси меня, как». Рокки оценит.
В двадцатых числах внезапно Рокки Кларк как раз самолично нам позвонил.
— Си-Си? Ты в офисе? Отлично! Прекрасно! Потрясающе! Никуда не уезжай, будь на месте! Я приеду кое-что показать и рассказать.
Куда же я денусь с подводной лодки? На работе я в этот месяц как поселился, так и отлучался лишь поиграть с Монти в козла-каброна, то есть футбольный сквош, да по делам и на ночь. Иногда и ночью не уходил, когда та звала меня или Линду, занятую обработкой отснятых для ротоскопинга материалов.
Возняк — не человек, а стихия. Ворвался в офис с кучей коробок пиццы, всем раздал угощение, со всеми поздоровался и даже обнялся с теми, с кем хорошо знаком, и только утянув Джона и Монти ко мне в кабинет, затараторил по делу.
— Ребят, смотрите, какая крутизна! Это четырехбитный микроконтроллер Hitachi HD44795 со встроенным драйвером для жидкокристаллических дисплеев! Поддерживает больше 200 сегментов при помощи расширения линий! — бережно положил он передо мной маленький чип, похожий на ощетинившееся со всех сторон лапками морское членистоногое. — Потрясающе низкое энергопотребление, на грани погрешности — наша игра сможет работать месяцами на одном комплекте батареек. Нужно только переписать код под его диалект ассемблера. Он очень далек от 6502, но Джон, ты наверняка справишься, ты же потрясающе умный парень! И кастомного экрана с фабрики у нас пока нет, но мы соберем тестовый стенд из светодиодов, как Крис и предлагал. И кросс-ассемблера под этот чип тоже нет, но есть официальная плата-девкит, я ее уже заказал, придет по почте завтра. Две штуки! Для меня и для вас. Уверен, это будет особенный инженерный опыт! Мне понравилась ваша перестановка. Собрать все статуи в одном месте, чтобы не бродить по дому, если хочешь увидеть каждую — отличное инженерное решение.
— Рокки, а что ты хотел рассказать? — спросил я.
— Эл! Видел его сегодня утром в Купертино на Бэндли-драйв, — вздохнул Воз, — но так вышло, что не смог подойти. Но это еще ничего не значит! Он бы сразу сообщил, если бы принял решение!
Тут мысленно вздохнул уже я. Кадры решают всё, и с ними у нас очевидная недоработка. Быть, возможно, тёть Лизе исполнительным директором и обладателем 5 % акций, раз дядя Алик с нами дружить не хочет.