Izibook.club
Читать онлайн книги!
  • Главная
  • Жанры
  • Авторы
  • ТОП книг
  • ТОП авторов
  • Контакты

Товарищ маск (СИ)

Часть 11 из 56 Информация о книге

```c

void UpdateNPC() {

float dx = player.x - npc.x;

float dy = player.y - npc.y;

float distance = sqrt(dx * dx + dy * dy);

if (distance detectionRange) {

npc.x += dx / distance * npcSpeed;

npc.y += dy / distance * npcSpeed;

}

}

```

Теперь каждый раз при запуске игры бот начинал следовать за игроком, словно его кто-то преследовал по пустым коридорам. Даже представил, что этот противник будет бормотать и издавать звуки – что-то зловещее, чтобы добавить немного напряжения. Однако, звуковая система для будущего была планом максимум, поэтому на время отложил эту задачу.

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

Пару дней в мастерской, пару ночей за кодом – и вот, наконец, выдался момент, чтобы отдохнуть. Нашёл тихое кафе неподалёку, заказал крепкий чай и свежую булочку, уселся у окна. Открытый ноутбук, хоть и грелся заметно, стойко справлялся с нагрузкой. Сосредоточиться на разработке для "прототипа Дум" в этих условиях было удивительно удобно: пульсирующий шум улицы за окном и гул разговоров вокруг погружали меня в состояние, где мысли шли яснее.

Я понимал: на настоящие 3D-ускорители здесь надеяться не приходится, потому главный вызов был в том, чтобы создать иллюзию трёхмерного пространства с тем, что имелось – в сущности, с теми же вычислительными мощностями, что и в середине восьмидесятых. Запустил компилятор, снова вернулся к коду. Словно бы мелькнуло нечто – магия простых вычислений, которые, при правильном использовании, творят чудеса.

```c

// Код для базовой структуры трассировки лучей

int rayCasting(float playerX, float playerY, float playerAngle) {

for (int x = 0; x screenWidth; x++) {

// Преобразуем угол для каждого пикселя на экране

float rayAngle = (playerAngle - fov / 2.0) + (x / (float)screenWidth) * fov;

float distanceToWall = 0;

// Проверяем пересечение с стенами

float eyeX = cos(rayAngle); // единичный вектор по оси X

float eyeY = sin(rayAngle); // единичный вектор по оси Y

while (!hitWall distanceToWall maxDepth) {

distanceToWall += stepSize;

int testX = (int)(playerX + eyeX * distanceToWall);

int testY = (int)(playerY + eyeY * distanceToWall);

// Проверка выхода за пределы карты

if (testX 0 || testX = mapWidth || testY 0 || testY = mapHeight) {

hitWall = true; // если за пределами — считаем, что есть "стена"

distanceToWall = maxDepth;

} else if (map[testY * mapWidth + testX] == '#') {

hitWall = true;

}

}

// Простое затемнение для глубины

int ceiling = (screenHeight / 2.0) - screenHeight / ((float)distanceToWall);

int floor = screenHeight - ceiling;

for (int y = 0; y screenHeight; y++) {

if (y ceiling) { setPixel(x, y, skyColor); }

else if (y ceiling y = floor) { setPixel(x, y, wallColor); }

else { setPixel(x, y, floorColor); }

}

}

return 0;

}

```

Смысл был прост: пока луч, выпущенный от игрока, не упирается в стену, он продолжает двигаться вперёд, точка за точкой, создавая иллюзию трёхмерного мира. В Raycasting мне нравилось то, что метод работал почти как адаптивный – чем дальше от игрока находился объект, тем меньше подробностей обрабатывалось, и тем менее требовательным к процессору становился код. Пока шёл процесс, сделал глоток чая, тёплая горечь отозвалась бодрящей ясностью. Даже, пожалуй, чувствовалось какое-то детское волнение. Представлялось, как однажды игрок увидит, будто бы на экране он шагает по тёмному, замкнутому коридору, его окружает неизвестность, каждое движение приносит чувство таинственности и лёгкой тревоги – настоящая магия. Да блин, словно вновь переместился в свою юность и мочил всех тих врагов без разбору. А добавить кооперативный режим…. Точно говорю, бомба. Да, потом всё это позабылось, но сейчас-то ничего почти такого нет.

Работа шла почти машинально, по уже заведенному алгоритму. Как будто нащупываешь потайную дверь – улавливаешь, что где-то там, за поворотом, есть свет, и, следуя на ощупь, открываешь его, постигаешь потихоньку механику, будто бы всю жизнь был частью этого мира кодов и пульсирующих пикселей. А ведь мне программирование не давалось. Не хватало усидчивости. Нет, если припирало, то вполне себе сдавал всё что надо, но как только заканчивал, будто взрывался, вырываясь с рабочего места. А сейчас сижу, пишу и не жужжу. И мне даже это всё нравится. Вот и говори потом, что первично, тело или дух. Для меня в этом конкретном случае именно тело Маска подарила возможность делать то, что сейчас творил.

Ну, да ладно, пробую запустить тестовый рендер на небольшом участке карты. Лёгкая анимация показывает – сцена ожила: на экране меняется положение теней и проекций стен, меняется восприятие расстояния. Правда того давнего восторга всё равно не ощущаю. Поскольку всё уже перепробовал, но теперь моя очередь дарить другим радость! А потому снова открыл блокнот и в несколько строк набросал список планов:

1. Добавить базовое освещение для усиления эффекта глубины;

2. Реализовать переходы в зависимости от дальности объектов;

3. Разработать простейшие спрайты для анимации персонажей.

Даже не заметил, как подошла официантка, поставила новую кружку чая. Мелькнула мысль, что, может, это знак, что пора сделать перерыв, – а потом отмахнулся от неё, раз за разом откатываясь в ту же механику кода, в то же воображаемое погружение в мир, который ещё только создаётся. И так за разом то возвращаясь к работе, то вновь выныривая в реальный мир, не заметил, как наступил вечер, а значит, пора бы и честь знать.

***

Вечерний Торонто восемьдесят девятого года был укрытым в тонкую пелену мягких туманов, как будто город был обволакиваем в шёпот старых времён. Улицы были пусты, только разве что тихий шорох листьев на ветвях деревьев, погруженных в серебристый свет лунного диска, прерывал этот молчание. Дороги были покрыты тонким слоем воды от дневного ещё дождя. Воздух был насыщен свежестью осенью, запахами влажной земли и нежным ароматом листвы, которая медленно падала на проулки города. Вдали можно было слышать отдаленные голоса людей, которые уже успели вернуться домой после трудного дня, но большинство жителей уже находились в своих квартирах, готовясь к отдыху.

На фоне этого спокойного города шёл домой медленно, наслаждаясь каждым мгновением. Под ногами слышался приятный хруст листьев, которые упали на асфальт. Вокруг играли тени деревьев, создавая штрихи и пятна на одежде. Свет фонарей мерцал, как звезды, падающие на землю, создавая впечатление, будто весь мир оживает под ногами.

Сквозь туман проносился легкий ветерок, принося с собой прохладу и запах осени. Он очищал воздух города от грязи дня, оставляя только чистоту и свежесть. Вокруг спешили машины, но они казались такими далекими, будто это был другой мир. Автомобили двигались быстро, но я не обращал на них внимания, продолжая свой медленный путь и наслаждался каждым моментом, каждым местом этого города мимо которых проходил. И, наконец, направился к своему дому. Завтра будет новый день, и снова займусь работой, а вечером также стану наслаждаться всеми красотами Торонто, и снова смогу услышать этот шорох листьев и почувствовать мягкий ветерок.

Перейти к странице:
Предыдущая страница
Следующая страница
Жанры
  • Военное дело 3
    • Спецслужбы 3
  • Деловая литература 179
    • Банковское дело 2
    • Деловая литература 2
    • Корпоративная культура 12
    • Личные финансы 19
    • Малый бизнес 2
    • Маркетинг, PR, реклама 41
    • О бизнесе популярно 100
    • Отраслевые издания 2
    • Управление, подбор персонала 14
    • Ценные бумаги, инвестиции 2
    • Экономика 23
  • Детективы и триллеры 2545
    • Боевики 288
    • Дамский детективный роман 20
    • Детективы 424
    • Иронические детективы 166
    • Исторические детективы 398
    • Классические детективы 199
    • Криминальные детективы 141
    • Крутой детектив 108
    • Маньяки 14
    • Медицинский триллер 2
    • Политические детективы 42
    • Полицейские детективы 217
    • Прочие Детективы 773
    • Техно триллер 3
    • Триллеры 1092
    • Шпионские детективы 91
  • Детские 439
    • Детская образовательная литература 13
    • Детская проза 152
    • Детские остросюжетные 51
    • Детские приключения 226
    • Детские стихи 17
    • Детский фольклор 1
    • Книга-игра 1
    • Прочая детская литература 72
  • Детские книги 479
    • Детская фантастика 186
    • Детские детективы 3
    • Книги для подростков 23
    • Сказки 221
  • Документальная литература 763
    • Биографии и мемуары 497
    • Военная документалистика 7
    • Искусство и Дизайн 13
    • Критика 11
    • Научпоп 9
    • Прочая документальная литература 69
    • Публицистика 250
  • Дом и Семья 203
    • Домашние животные 14
    • Здоровье и красота 33
    • Кулинария 32
    • Прочее домоводство 8
    • Развлечения 3
    • Сад и Огород 7
    • Сделай сам 2
    • Спорт 9
    • Хобби и ремесла 7
    • Эротика и секс 102
  • Драматургия 104
    • Драма 101
    • Киносценарии 3
    • Мистерия 1
    • Трагедия 1
  • Жанр не определен 8
    • Разное 8
  • Компьютеры и Интернет 15
    • Базы данных 3
    • Интернет 3
    • Программирование 1
    • Программное обеспечение 1
    • Прочая компьютерная литература 10
  • Любовные романы 25666
    • Исторические любовные романы 908
    • Короткие любовные романы 2515
    • Любовно-фантастические романы 10791
    • Остросюжетные любовные романы 900
    • Порно 87
    • Прочие любовные романы 53
    • Слеш 415
    • Современные любовные романы 10604
    • Фемслеш 43
    • Эротика 6245
  • Научно-образовательная 356
    • Альтернативная медицина 5
    • Астрономия и Космос 7
    • Биология 31
    • Биофизика 2
    • Биохимия 2
    • Ботаника 3
    • Военная история 4
    • Геология и география 2
    • Государство и право 1
    • Детская психология 14
    • Зоология 3
    • Иностранные языки 2
    • Культурология 45
    • Литературоведение 19
    • Медицина 34
    • Обществознание 6
    • Педагогика 19
    • Политика 21
    • Прочая научная литература 57
    • Психотерапия и консультирование 45
    • Религиоведение 7
    • Секс и семейная психология 29
    • Технические науки 4
    • Физика 9
    • Философия 34
    • Химия 3
    • Экология 3
    • Юриспруденция 7
    • Языкознание 18
  • Образование 513
    • Бизнес 45
    • Биография и мемуары 46
    • Здоровье 10
    • История 292
    • Карьера 4
    • Психология 225
  • Поэзия и драматургия 38
    • Басни 2
    • Драматургия 9
    • Лирика 1
    • Поэзия 28
  • Приключения 719
    • Вестерны 14
    • Исторические приключения 390
    • Морские приключения 70
    • Природа и животные 29
    • Прочие приключения 206
    • Путешествия и география 51
  • Проза 2250
    • Антисоветская литература 5
    • Афоризмы 1
    • Военная проза 104
    • Историческая проза 305
    • Классическая проза 128
    • Контркультура 12
    • Магический реализм 87
    • Новелла 13
    • Повесть 24
    • Проза прочее 20
    • Рассказ 72
    • Роман 102
    • Русская классическая проза 71
    • Семейный роман/Семейная сага 3
    • Сентиментальная проза 10
    • Советская классическая проза 46
    • Современная проза 1728
    • Эпистолярная проза 2
    • Эпопея 4
    • Эссе, очерк, этюд, набросок 2
  • Прочее 1464
    • Газеты и журналы 5
    • Изобразительное искусство, фотография 10
    • Кино 13
    • Музыка 11
    • Подростковая литература 6
    • Театр 5
    • Фанфик 1419
  • Религия и духовность 331
    • Астрология 1
    • Буддизм 4
    • Православие 1
    • Прочая религиозная литература 4
    • Религия 24
    • Самосовершенствование 126
    • Хиромантия 1
    • Эзотерика 191
    • Язычество 1
  • Справочная литература 41
    • Прочая справочная литература 3
    • Путеводители 9
    • Руководства 12
    • Справочники 15
    • Энциклопедии 9
  • Старинная литература 134
    • Античная литература 1
    • Древневосточная литература 5
    • Мифы. Легенды. Эпос 34
    • Прочая старинная литература 95
  • Техника 2
    • Автомобили и ПДД 1
    • Архитектура 1
  • Фантастика и фентези 27424
    • Альтернативная история 3979
    • Боевая фантастика 5151
    • Героическая фантастика 1426
    • Городское фэнтези 2114
    • Готический роман 12
    • Детективная фантастика 720
    • Ироническая фантастика 102
    • Ироническое фэнтези 81
    • Историческое фэнтези 507
    • Киберпанк 301
    • Космическая фантастика 1742
    • Космоопера 52
    • ЛитРПГ 1289
    • Любовная фантастика 186
    • Любовное фэнтези 115
    • Мистика 495
    • Научная фантастика 878
    • Попаданцы 9101
    • Постапокалипсис 859
    • Сказочная фантастика 25
    • Социально-философская фантастика 501
    • Стимпанк 144
    • Технофэнтези 125
    • Ужасы 103
    • Ужасы и мистика 772
    • Фантастика 254
    • Фантастика: прочее 223
    • Фэнтези 11351
    • Эпическая фантастика 225
    • Юмористическая фантастика 1049
    • Юмористическое фэнтези 1573
  • Фольклор 7
    • Загадки 1
    • Народные сказки 5
    • Фольклор: прочее 2
  • Юмор 182
    • Анекдоты 1
    • Комедии 1
    • Прочий юмор 63
    • Сатира 3
    • Юмористическая проза 115
    • Юмористические стихи 5
Izibook.club

Бесплатная онлайн библиотека для чтения книг без регистрации с телефона или компьютера. У нас собраны последние новинки, мировые бестселлеры книжного мира.

Контакты
  • pereezdsayta@yandex.ru
Информация
  • Карта сайта
© izibook.club, 2026. | Вход
Этот сайт использует cookie для хранения данных. Продолжая пользоваться сайтом, вы даете свое согласие на работу с этими данными в соответствии с нашей политикой конфиденциальности.
Я согласен