Рубрика «джон кармак»

Маленькие программки на С — победители конкурса IOCCC - 1

Международный конкурс запутанного кода на С (IOCCC) — известное соревнование по программированию, которое проводилось до 2020 года.

В отличие от традиционных чемпионатов по спортивному программированию, здесь не нужно решать задачи на скорость. У участников сколько угодно времени, но размер программы ограничен 1536 байтами (не считая пробелы, табы и прочие служебные символы), в сумме обычно получается не более 2 кб.

Но программки делают реально сложные вещи: например, победитель 2004 года — это операционная система, исходный код 166 строк.

Посмотрим на шедевры разных лет и откуда вообще взялся этот конкурс.
Читать полностью »

История игростроения — захватывающая и многогранная тема, за долгие годы обросшая мифами, стереотипами и интересными историями. Конец ХХ века, эпоха расцвета игр и становления многих жанров, особенно богат на такие вещи.

В этой статье мы познакомимся с некоторыми интересными образцами технологий, применявшихся в геймдеве с 1980-х до конца 1990-х годов. И своими глазами увидим, какими тернистыми путями шли разработчики к тому, чтобы воплотить свои мечты.

Ротоскопирование: Karateka и Prince of Persia

Читать полностью »

Зимой 2024 года я восстанавливал IBM PS/1 486-DX2 66Mhz, «Mini-Tower», model 2168. В подростковом возрасте я мечтал о таком компьютере, но не мог себе его позволить. Не могу выразить словами, насколько меня радовала работа над этой машиной.

В чём причина высокой скорости fastDOOM - 1

Как только мне удалось его запустить, я сразу же провёл бенчмарк одного ПО.

C:DOOM>doom.exe -timedemo demo1
timed 1710 gametics in 2783 realtics  

Читать полностью »

Doom практически на всём - 1


Многие годы на ресурсах около-компьютерной тематики регулярно всплывают сенсационные новости про «невозможные» порты легендарной игры Doom — как очередной энтузиаст и Кулибин запустил её и на этом, и на том, и каждый раз на всё более странных и неподходящих предметах. По разнообразию версий и безумию некоторых из них этот культурный феномен вполне может потягаться с Bad Apple.

Главное в этом, конечно, вау-фактор: «а что, так можно было?», подивиться и пойти дальше. Мало кто интересуется деталями, можно ли в это играть, действительно ли это Doom, действительно ли есть, чему удивляться, а если есть, то чему именно. И в целом — как и что именно на самом деле было сделано. Но мало кто — это не про нас. Мы — поинтересуемся!Читать полностью »

Как ID Software удалось выжать невозможное из EGA-карт - 1


Я прочитал превосходную книгу Doom Guy Джона Ромеро, которую крайне рекомендую. В девятой главе Джон рассказывает о том, как его поразила увиденная им технология Adaptive Tile Refresh (ATR). Благодаря этому я понял, что пока не анализировал очень важную методику, лежавшую в основе серии игр Commander Keen (CK).

В процессе исследований я выяснил, что ATR использовалась только в первой трилогии CK. Во второй разработчики начали использовать нечто гораздо лучшее.Читать полностью »

Величайшие программисты 21 века. Джон-Движок Кармак - 1


Джон Кармак вместе с тёзкой Джоном Ромеро стали родоначальниками игрового жанра FPS. На слабеньких 486SX, без видеокарт (!) они выдали настоящий 3D-шутер без лагов с эффектом присутствия, что стало бомбой для 1993 года — в эпоху пошаговых стратегий и отсутствия скроллинга. Казалось, тут вмешалась чёрная магия…

В принципе, примерно так и есть. В разработке Wolfenstein 3D, Doom и движка Quake Джон Кармак действительно использовал кучу нестандартных приёмов вроде конверсии указателей или выхода за границы объектов, чтобы в циклах получать доступ к другому объекту, который гарантировано идёт следом.

Уровень программирования Doom и Quake до сих пор считается непревзойдённым образцом хакерских оптимизаций, а сам Джон Кармак — эталон сверхэффективного разработчика. Благодаря высочайшему качеству программирования Doom стал феноменом, который изменил мир.
Читать полностью »

image

Закончен и выложен на Ваш суд перевод книги Дэвида Кушнера «Masters of DOOM».

Как полностью подготовленный для печати вариант, так и исходный код, в случае, если кто-то решит внести свои изменения.

Когда брался за перевод — было интересно узнать подлинную историю одной из знаменитейших компаний мира. И книга полностью оправдала ожидание.

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

Помимо чисто художественного интереса книга несёт очень много исторических фактов как о развитии игровой индустрии, так и о истории компьютерных технологий.

Очень много выдержек из американских масс-медиа, которые как в зеркале отражают отношение общества к компьютерным играм.
Ну и разумеется рассказана вся история основных главных героев — Джона Кармака, Джона Ромеро, Кевина Клауда, Адриана Кармака. А так же истории многих других разработчиков игр того времени.

Повествование проведёт через каждый шаг роста компании «id software». От первой совместной игры, до игр, которые навсегда вошли в историю компьютерной индустрии.

В заключение хочется процитировать высказывание Кармака, которое является советом всем начинающим программистам, и молодым людям, которые находятся только в начале этого пути — (цитата из книги)

«Кармак с презрением относился к разным напыщенным фразам и речам, но одно высказывание, его собственное, ему нравилось. Оно звучало так – “В наш информационный век барьеров больше не существует.”- повторил он её сам себе. “Барьеры появляются если только мы их придумываем себе сами. Если вы горите желанием создать что-то новое и грандиозное, вам не нужны миллионы долларов вложений. Вам надо только пиццу и диет-колу, чтобы забить холодильник, дешевый персональный компьютер для работы, и преданность своей идее. Мы спали на полу. Мы перебирались когда-то для этого через реки.
Читать полностью »

Действительно ли использование BSP в Doom стало гениальным ходом? - 1

Вершина технологий того времени.

В 1993 году id Software выпустила шутер от первого лица Doom, который быстро превратился в феномен. Сегодня считается, что это одна из игр, оказавших самое большое влияние за всю историю.

Десять лет спустя после выпуска Doom, в 2003 году, журналист Дэвид Кушнер опубликовал книгу об id Software под названием Masters of Doom, которая с тех пор стала каноническим описанием процесса создания Doom. Я прочитал Masters of Doom несколько лет назад и почти ничего уже не помню, но одна история из книги о ведущем программисте Джоне Кармаке сохранилась в моей памяти. Моё описание будет не совсем точным (подробнее см. ниже), но если вкратце, то на раннем этапе разработки Doom Кармак осознал, что написанный им для игры 3D-рендерер при рендеринге отдельных уровней начинал тормозить. Это было неприемлемо, потому что Doom должен был стать активной и даже бешеной игрой. Осознав, что проблема рендерера была настолько фундаментальной, что ему придётся искать более оптимальный алгоритм рендеринга, Кармак начал читать исследовательские статьи. В результате он реализовал технику под названием «двоичное разбиение пространства» (binary space partitioning, BSP), которая раньше никогда не применялась в видеоиграх, и значительно ускорил таким образом движок Doom.

Эта история о том, как Кармак применил передовые научные исследования к видеоиграм, всегда впечатляла меня. По-моему, именно благодаря этому Кармак стал такой легендарной фигурой. Он заслуживает быть известным в качестве архетипичного гениального программиста видеоигр по множеству причин, но в качестве главной мне всегда вспоминается эпизод с чтением научных статей и двоичным разбиением пространства.
Читать полностью »

В каждом выпуске Joe Rogan Experience шоумен, комик и мастер боевых искусств Джо Роган общается с гостем такого калибра, какому позавидовали бы многие телепередачи крупных телеканалов. Такое возможно за счёт охвата JRE — это самый популярный подкаст в мире.

28 августа в студию в Лос-Анджелесе заглянул легендарный Джон Кармак. Внутри этого поста находится выжимка 2,5 часов эфира.
Читать полностью »

image

Ветеран программирования трёхмерной графики Майкл Абраш на примере разработки первого Quake рассказывает о необходимости творческого мышления в программировании.

Много лет назад я работал в теперь уже не существующей компании-производителе видеоадаптеров Video Seven. Там я помогал в разработке клона VGA. Мой коллега Том Уилсон, долгие месяцы круглосуточно работавший над разработкой VGA-чипа Video Seven, стремился сделать VGA как можно более быстрым, и был уверен, что его производительность оптимизирована почти по максимуму. Однако когда Том уже вносил в конструкцию чипа последние штрихи, до нас донеслись слухи, что наш конкурент Paradise достиг ещё большей производительности в своём разрабатываемом клоне, добавив в него FIFO.

На этом слухи заканчивались — мы не знали, ни что это за FIFO, ни насколько он помог, ничего другого. Тем не менее, Том, обычно приветливый и расслабленный человек, превратился в активного, одержимого фанатика со слишком большим процентом кофеина в крови. Исходя из этих крупиц информации, он пытался выяснить, что же удалось сделать Paradise. В конце концов он пришёл к выводу, что Paradise вероятно вставил FIFO-буфер записи между системной шиной и VGA, чтобы когда ЦП выполнял запись в видеопамять, записываемые данные сразу же попадали в FIFO, и это позволяло ЦП продолжать обработку, а не простаивать каждый раз, когда он выполнял запись в память дисплея.

У Тома не было ни логических элементов, ни достаточно времени на реализацию полного FIFO, но ему удалось реализовать FIFO глубиной в одну операцию, что позволяло процессору обгонять VGA-чип на одну операцию записи. Том не был уверен, что это даст хорошие результаты, но это было единственное, что он смог сделать, поэтому он реализовал эту систему и передал чип в производство.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js