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