После завершения легкого пятого уровня, настало время заняться одним из сложных уровней и уровень четыре несомненно подходит под это определение. Основной проблемой были Рыбные Икринки. Сразу при запуске четвертого уровня игрок сталкивается с маленьким красным инопланетянином, который летает по экрану, оставляя за собой след из зеленых шариков, или рыбных икринок, как мы называли их с Марком, которые затем становятся частью фона и прокручиваются вместе с остальной графикой по пикселям. Необходимо совсем немного времени, чтобы заполнить экран икринками, накладывая их слой за слоем, присоединяя к основному фону игры, но, к сожалению, они ведут себя не как графика основного фона, потому что могут быть уничтожены аналогично спрайтам. Еще более усложняет ситуацию то, что только определённые виды оружия могут уничтожать икринки, Отражающийся Лазер не оказывает на них никакого эффекта. Попадание в одну из них обрабатывается так же, как и в целую часть фона. А если вам этого недостаточно, то у вас есть еще Пожиратели Икры, еще одни красные пришельцы, летающие по экрану, удаляя все икринки на их пути. Уже до этого мой код был похож на свалку, а теперь мне нужно вернуться назад, обработав почти каждую подпрограмму, включая все виды исключений только для работы в одном этом проклятом уровне!

Оригинальная графика четвертого Финального Босса для ST

… и тоже самое для Спектрума, невероятно точная репродукция Марка

Нельзя было реализовать каждую икринку спрайтом, так как их число могло достигать двухсот на экран и скорость игры могла упасть до ползанья. Я закончил вносить правки в код, отвечающий за систему подбора улучшений оружия, что, по крайней мере, давало преимущество тем, что было уже написано. Этот код вставлял капсулы Улучшения, при уничтожении Кокона в фон, так что они прокручивались попиксельно, но были отнесены к спрайтам системой обработки столкновений, это было необходимо, так как отнесение их к нормальным спрайтам подразумевало перемещение сразу на восемь пикселей (движение только по знакоместам). Я все еще должен был убедиться, что икринки появляются на границах символов: я просто не мог просто так положить одну из них куда мне захочется, что было нормально, когда символ был пустой, но быстро усложнялось, когда здесь уже была икринка, делая положение вещей еще запутанней, чтобы учесть все это при прокручивании.

В конце концов я пришел к аккуратной маленькой системе парных икринок, предварительно сдвинутых на один, два, три и т. д. пикселей с частичной графикой, которая будет перезаписываться с соседними икринками (при перемещении с одного знакоместа в другое символ делится на две части, как бы перетекая попиксельно за 8 шагов). Я проверял, на какой стадии была прокрутка фона, имея ввиду границу символа (число от нуля до семи), далее была ли икринка справа от нее, выбирал правильную сдвинутую пару символов, если там была икринка или одну сдвинутую икринку если нет, и вклинивал это в фон. И так далее прокручивая экран. Чтобы убрать икринку, я просто все делал наоборот с другим набором сдвинутых спрайтов, на этот раз с пустым пространством чем с икринкой, что должно было очистить от нее экран. Это работало прекрасно без глюков, просто очень жаль, что эта процедура так и не увидела свет.

* * *

Наступил июль, когда все пошло не так. Для меня, тратящему наибольшее количество времени, находясь перед компьютером в Ферхаме, не было новостью, что я не получу за это много денег, но для Карла (и в какой-то степени для Дейва) регулярные денежные платежи от Catalyst были тем, что поддерживало их как самих, так и продолжение дела. Мы все привыкли, что наша зарплата приходила с опозданием, но, как оказалось позднее, в июле мы не получили ничего на наши счета в банке и начали немного беспокоиться. Затем Уэйнрайт ошеломил нас, сказав, что денег больше не будет и мы не получим больше никаких платежей!

Из того, что нам сказал в то время Уэйнрайт и по разговорам с другими кодерами из Catalyst, нам удалось как-то уяснить, что происходит, что лучше проиллюстрирует старая английская метафора "грабь Петра, чтобы заплатить Павлу". С какого-то момента Уэйнрайт стал использовать деньги из будущих проектов, чтобы окупить текущий, что вызвало резкое обрушение дел. Как только он подписывал контракт на новую игру и получал предоплату, то деньги, очевидно, уходили на неоплаченные счета вместо фонда финансирования программистов, работающих над текущими играми.

Перейти на страницу:

Похожие книги