Читаем Я – хакер! Хроника потерянного поколения полностью

Сначала я осуществил свою детскую мечту и стал изучать ассемблер. Компилятором был выбран TASM (Turbo Assembler). Для тех, кто не знает, ассемблер – язык программирования низкого уровня. Это система обозначений, используемая для представления в удобочитаемой форме программ, записанных в машинном коде. Другими словами, это самый низкий уровень. Здесь нет стандартных функций «вывести строчку на экране», «получить ввод от пользователя». Все это доступно через вызовы к операционной системе. Например, в MS-DOS, с чего я и начал изучение ассемблера, вызовы к ядру были реализованы через прерывание INT 21H.

Любая ошибка на языке ассемблера может привести к краху всей программы. Поэтому, если вы хотите стать настоящим профи, – вы обязаны понимать, как функционирует CPU, как он обращается к памяти, как он работает с устройствами и многое другое. Этот хороший опыт помог мне потом писать высоконагруженные и производительные системы при минимуме системных требований.

Как раз хорошим дополнением к учебнику по ассемблеру стала книга про архитектуру x86-процессоров. Вы знаете, что Биллу Гейтсу приписывают фразу «640 КБ памяти всем хватит»? Откуда взялось ограничение в 640 КБ памяти, как процессоры, начиная с 286-го, его обходили, как появилась многозадачность и защищенный режим работы процессора, скалярность и суперскалярность? Все это должен знать настоящий профи.



Конечно, на ассемблере сейчас уже не напишешь игру, да и хоть сколько-нибудь сложный проект. Этот язык в основном используется для тех случаев, когда нужно сделать что-то очень небольшое, элегантно, на низком уровне, и обычно в виде вставок в код C/C++.

Уже давно даже новые версии компиляторов языка C пишут на самом C.

Поэтому я принялся изучать язык C и сразу C++ по книгам Герберта Шилдта.

Первое мое более-менее серьезное творение – мини-операционная система. Загрузчик, написанный на ассемблере, записывался на первую дорожку дискеты размером 3,5 дюйма и загружал ядро, написанное на C. Ядро на C переводило процессор в многозадачный 32-битный режим. И на этом, в общем-то, все.

Но это реально круто. Я был горд собой! Даже такая простая вещь требовала хороших знаний системного программирования и архитектуры процессора.

Half-Life

В 1998 году выходит игра Half-Life. Эта игра поменяла очень много в отрасли. В отличие от темного Quake, коридоры и комнаты в Half-Life выглядели светлыми и совсем как настоящие.



Half-Life,разработчик Valve Corporation, издатель Valve Corporation, 1998


Подавляющая часть игр использует технологию Lightmaps.

Lightmap – метод освещения пространства в 3D-приложениях. Он заключается в том, что создается текстура, содержащая информацию об освещенности трехмерных моделей. Метод значительно экономит ресурсы компьютера, поскольку приложению не приходится рассчитывать падение света в режиме реального времени.

Так вот, первые игры, в которых начали считать освещение, подобные Quake, были ужасно темными – рядом с источником света светло, а в тени ничего не видно. Всё потому, что освещение рассчитывалось до первого падения луча на поверхность, без отражения. И мозг постоянно говорил, что здесь как-то нереалистично, что-то здесь не так.


Quake,разработчик id Software, издатель GT Interactive, 1996


А вот Half-Life одним из первых стал рассчитывать Lightmaps, учитывая отраженный свет. То есть тень теперь не была идеально черной, она стала реальной, «живой». Алгоритм расчета отраженного освещения называется Radiosity.

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

В результате алгоритм Radiosity позволяет получать реалистичные эффекты вторичных отражений, неточечных источников света, мягких теней и т. д.

Half-LIfe получился настолько удачным, что к нему создали даже несколько модов, некоторые из которых показывали сюжетную линию глазами других персонажей. Один из самых удачных модов для игры по сети – это Counter-Strike.

Несколько лет спустя вышел Half-Life – 2. И опять разработчики из Valve сделали прорыв – они добавили реалистичную физику на движке Havok. Теперь брошенная банка из-под газировки не просто падала и прилипала к полу, а реалистично отскакивала, ящики плавали на воде, а убитые противники эффектно перекатывались по ступенькам лестницы.

Олимпиада

10-й класс. Мы сидим в кабинете физики, ждем начала урока. Заходит Виктор Валентинович, наш учитель: «Ребята, сегодня вы будете решать олимпиадные задачки. Кто наберет больше баллов, тот пойдет выступать за школу в район».

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

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

100 великих гениев
100 великих гениев

Существует много определений гениальности. Например, Ньютон полагал, что гениальность – это терпение мысли, сосредоточенной в известном направлении. Гёте считал, что отличительная черта гениальности – умение духа распознать, что ему на пользу. Кант говорил, что гениальность – это талант изобретения того, чему нельзя научиться. То есть гению дано открыть нечто неведомое. Автор книги Р.К. Баландин попытался дать свое определение гениальности и составить свой рассказ о наиболее прославленных гениях человечества.Принцип классификации в книге простой – персоналии располагаются по роду занятий (особо выделены универсальные гении). Автор рассматривает достижения великих созидателей, прежде всего, в сфере религии, философии, искусства, литературы и науки, то есть в тех областях духа, где наиболее полно проявились их творческие способности. Раздел «Неведомый гений» призван показать, как много замечательных творцов остаются безымянными и как мало нам известно о них.

Рудольф Константинович Баландин

Биографии и Мемуары
100 великих казаков
100 великих казаков

Книга военного историка и писателя А. В. Шишова повествует о жизни и деяниях ста великих казаков, наиболее выдающихся представителей казачества за всю историю нашего Отечества — от легендарного Ильи Муромца до писателя Михаила Шолохова. Казачество — уникальное военно-служилое сословие, внёсшее огромный вклад в становление Московской Руси и Российской империи. Это сообщество вольных людей, создававшееся столетиями, выдвинуло из своей среды прославленных землепроходцев и военачальников, бунтарей и иерархов православной церкви, исследователей и писателей. Впечатляет даже перечень казачьих войск и формирований: донское и запорожское, яицкое (уральское) и терское, украинское реестровое и кавказское линейное, волжское и астраханское, черноморское и бугское, оренбургское и кубанское, сибирское и якутское, забайкальское и амурское, семиреченское и уссурийское…

Алексей Васильевич Шишов

Биографии и Мемуары / Энциклопедии / Документальное / Словари и Энциклопедии
Образы Италии
Образы Италии

Павел Павлович Муратов (1881 – 1950) – писатель, историк, хранитель отдела изящных искусств и классических древностей Румянцевского музея, тонкий знаток европейской культуры. Над книгой «Образы Италии» писатель работал много лет, вплоть до 1924 года, когда в Берлине была опубликована окончательная редакция. С тех пор все новые поколения читателей открывают для себя муратовскую Италию: "не театр трагический или сентиментальный, не книга воспоминаний, не источник экзотических ощущений, но родной дом нашей души". Изобразительный ряд в настоящем издании составляют произведения петербургского художника Нади Кузнецовой, работающей на стыке двух техник – фотографии и графики. В нее работах замечательно переданы тот особый свет, «итальянская пыль», которой по сей день напоен воздух страны, которая была для Павла Муратова духовной родиной.

Павел Павлович Муратов

Биографии и Мемуары / Искусство и Дизайн / История / Историческая проза / Прочее
10 гениев науки
10 гениев науки

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

Александр Владимирович Фомин

Биографии и Мемуары / Документальное