"А теперь скажи мне, как ты это запрограммировал?" - он скрестил руки и с лёгким недоверием прищурился.
Так что пустился в объяснения, стараясь сдерживать волнение. Понимал, что от этой встречи многое зависит. С каждым новым пояснением Ричард становился чуть менее настороженным, и вскоре он уже наклонялся ближе к экрану, задавал вопросы, уточнял детали. Видимо, ему приглянулся – он наконец-то выпрямился и с удовлетворённой ухмылкой кивнул:
"Ладно, парень. Я тебе поверю. Тоже был молод, - его глаза чуть смягчились. - Программирование – это вещь полезная. Но ты знаешь, что одного только этого мало?
Естественно кивнул. Внутри всё трепетало от успеха, но сдержался, не став демонстрировать на публику свои реальные чувства.
"Поэтому ты будешь учиться дальше? - Он скептически посмотрел на меня. - Надеюсь, это в твоих планах?"
Это было как раз то, ради чего и взялся за подтверждение своих знаний. В голове уже прорабатывались маршруты: обдумывал дальнейшее поступление в университет. Ведь тоже прекрасно знал, что одним программированием большого успеха не добьёшься, нужны были связи, репутация и формальное подтверждение моего интеллектуального багажа. И так, впахивая в одиночку, команду не соберёшь, даже для создания игры, не говоря уж об остальном, что пока только в отдаленных планах.
Глава 4
Удобно так устроился в углу уютного торонтского кафе. Тихий уголок с видом на улицу позволял мне сосредоточиться, но при этом оставаться в курсе того, что происходит снаружи, – эта привычка сильно укрепилась с тех пор, как оказался в этом времени. Передо мной – тёплая булочка и дымящийся чай. Глотнув терпкого чая, вновь взглянул на экран. Да, почти всё заработанное на проекте с Томом потратил на местный вариант ноутбука. Не выдержал. Он не блистал характеристиками, зато давал возможность работать! Не когда было можно, а когда горело. Отрабатывать результат можно и потом, на нормальных машинах, когда к ним будет доступ, а пока так. Да и в целом, сейчас не такие уж и большие требования к графическому окружению программного обеспечения и много чего и на такой машинке можно писать полностью.
Для того чтобы игра могла функционировать на машинах нынешнего времени, придётся отбросить много "фишек" из будущего. Ускорители 3D-графики, как 3D-графические карты, ещё не появились на массовом рынке, и нужно было работать с тем, что есть. Следовательно, всё, что обычно обрабатывалось графическим оборудованием, теперь должно было выполняться центральным процессором со всеми вытекающими из этого последствиями. И основной идеей было задействовать возможности процессоров для построения псевдо-3D графики. Вдохновляясь подходами к рендерингу старых систем, стал думать над алгоритмом, который позволил бы симулировать трёхмерное пространство без полного построения сцены. Пальцы лихо побежали по клавишам, вводя очередные строчки кода:
```c
// Основная функция рендеринга
void RenderScene() {
for (int y = 0; y screenHeight; y++) {
for (int x = 0; x screenWidth; x++) {
// Перевод экрана в псевдо-3D координаты
int mapX = x 3;
int mapY = y 3;
int tileType = map[mapY][mapX];
// Проверка для текстурирования
if (tileType == WALL) {
DrawWall(x, y);
} else {
DrawFloor(x, y);
}
}
}
}
```