Как стать автором
Обновить
23
0
Дмитрий Чернов @cher-nov

в экономике, так сказать, необходим

Отправить сообщение

Магия разработки видеоигр id Software

Время на прочтение15 мин
Количество просмотров30K
От переводчика: эта статья написана Дэвидом Кушнером в 2002 году, годом позже он издал известную книгу «Masters of Doom». Статья показалась мне интересной, потому что в ней есть подробности реализации технологий id, почему-то отсутствующие в книге.

За кулисами экшена и агрессии игр id скрыта революция в технологии настольных компьютеров



image
В течение последних 12 лет эволюция реализма графики Id Software поднимает планку для всей отрасли видеоигр. Среди игр-новаторов находятся [снизу вверх, справа налево] Commander Keen (1990) [прим. пер.: на самом деле на скриншоте Dangerous Dave in the Haunted Mansion], Hovertank (1991), Wolfenstein 3D (1992), Doom (1993), Quake (1996) [прим. пер.: на самом деле Quake II] и Return to Castle Wolfenstein (2001).

После полуночи начинается схватка. Солдаты преследуют нацистов по коридорам замка. Огнемёт изрыгает чудовищный язык пламени. Это Return to Castle Wolfenstein, компьютерная игра, ставшая не только спинномозговым приключением, но и чудом науки. Она же — последний продукт Id Software (Мескит, штат Техас). Благодаря своим технологически инновационным играм id оказала огромное влияние на мир компьютерных вычислений: от привычных в современных PC высокоскоростных полноцветных графических карт высокого разрешения до появления армии программистов и игроков в онлайновые игры, внёсших вклад в поп-культуру.
Читать дальше →
Всего голосов 53: ↑53 и ↓0+53
Комментарии19

История игрушки. Поле Чудес

Время на прочтение11 мин
Количество просмотров299K
Случилось это в городе, закрытом от шпионов, цыган и бед социалистической экономики. В Советском Союзе было ровно 10 таких городов, повязанных атомным секретом.

Жизнь мальчиков с математическими способностями в атомных городах была предопределена — школа с пятерками по алгебре и геометрии, мех-мат столичного университета, возвращение в систему, квартира через год, кандидатская степень в 40 лет, ВАЗ 2103 к пятидесяти годам, звание доктора, гараж, шесть соток, четыре квадратных метра.

Бесконечные размышления о математическом моделировании ядерных взрывов разрывали мальчикам мозг. Мозг можно было отвлечь тремя способами — алкоголем, азартными играми и спортом. Секс и музыка помогали не всегда.

Pole Chudes для iPhone

Далее я проваливаюсь в историю компьютерной игры.
Под тегом личные воспоминания ветерана без ссылок, рекламы, картинок и кода.
Спасибо за чудесные комментарии, парни.

Читать дальше →
Всего голосов 934: ↑924 и ↓10+914
Комментарии312

Разница между фальшивыми и истинными смещениями в 3D-графике

Время на прочтение12 мин
Количество просмотров18K
image

Bump maps (рельефные текстуры), Normal maps (карты нормалей), Displacement и Vector Displacement — вероятно, вы уже сталкивались хотя бы с одним из этих терминов. Несмотря на то, что о них уже есть много информации, похоже, многие путают их различия и последствия использования разных типов карт. В статье я расскажу о том, какие проблемы могут вызывать эти карты.

Все четыре типа текстур имеют одинаковое предназначение — они позволяют добавить на поверхность модели дополнительные детали, используя для этого разные способы. Эти способы можно разделить на две категории, которые я буду называть истинными смещениями (True Displacements) и фальшивыми смещениями (Fake Displacements). Истинные смещения перемещают вершины, а фальшивые стремятся достичь того же внешнего вида без изменения геометрии. Пока я сосредоточусь только на различиях между двумя категориями, а не буду анализировать каждую карту по отдельности.

image

В общем случае, истинные смещения обеспечивают более чёткие результаты, но сильно увеличивают время рендеринга.
Всего голосов 19: ↑19 и ↓0+19
Комментарии4

Почта не ходит далее 500 миль – ЧаВо

Время на прочтение9 мин
Количество просмотров14K
История про электронную почту, которая не уходила дальше 500 миль от отправителя, давно стала бородатой классикой. Я думал, что нормальная реакция – просто посмеяться, но нашлось не так мало людей, пожелавших доказать автору, что такого не могло быть, потому что… В конце концов автор не выдержал и выпустил целый FAQ. Итак, встречайте:

ЧаВо по электронной почте, которая не уходила дальше 500 миль


Я получил множество ответов на публикацию «Почта не ходит дальше 500 миль». Мой рассказ был много раз перепечатан и разошёлся гораздо шире, чем я мог надеяться. Большая часть ответов – благодарности за забавную историю и предложения работы (кстати, спасибо за них, и мне бы хотелось, чтобы они продолжали приходить!) Однако немало было и тех, кто выискивал в моём рассказе неточности и противоречия, придираясь к мелочам. Вместо того, чтобы отвечать на каждый такой выпад, я просто собрал наиболее часто встречающиеся вопросы и ответил на все сразу.

1. Это правда было, или история – всего лишь байка?

Это быль. В то время я отвечал за централизованную систему электронной почты в кампусе Университета Северной Каролины в Чапел Хилл (Chapel Hill). Кроме того, я занимался и настройкой электронной почты тех подразделений, которые по каким-то причинам использовали собственные сервера. Главное в контексте этой истории то, что я написал файл конфигурации почтового сервера, sendmail.cf, который использовался большинством серверов кампуса.
Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии12

Андреас Клинг, его операционная система SerenityOS и браузер Ladybird

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров12K


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

Взять к примеру шведского программиста Андреаса Клинга (Andreas Kling). В 2018 году он вышел из государственной клиники реабилитации наркоманов после трёхмесячного курса — и в качестве хобби начал разработку операционной системы SerenityOS. Нужно было чем-то занять свободное время и избавиться от посторонних мыслей. Создание новой ОС вполне подходит для такой задачи.

За несколько лет SerenityOS стала одним из крупнейших опенсорсных проектов в мире с тысячами контрибуторов. Приятный интерфейс в стиле 90-х, Unix-подобное ядро и лучшие идеи из других ОС — вот рецепт успеха.
Читать дальше →
Всего голосов 56: ↑54 и ↓2+70
Комментарии23

Rust и асинхронные функции: как улучшить структуру кода и повысить производительность с помощью абстракций

Время на прочтение26 мин
Количество просмотров2.4K

В начале 2010-х годов в программировании появился новый подход к реализации параллелизма с использованием абстракций future и promise, а также синтаксического приёма async/await. Эти технологии облегчили работу с асинхронным кодом, но вызвали ожесточённые споры среди разработчиков. Автор статьи, системный программист Saoirse Shipwreckt*, рассматривает две противоположные точки зрения на future от их апологета Мариуса Эриксена и критика Боба Нистрома. 

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

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Всего голосов 19: ↑19 и ↓0+20
Комментарии4

Бекпорт на примере Node.js v22 и Windows 7

Уровень сложностиСложный
Время на прочтение12 мин
Количество просмотров3K

Что делать если надо запустить современный софт в устаревшем окружении? Рассказываем о процессе «портирования назад» последней версии Node.js на Windows7.

Погрузиться
Всего голосов 18: ↑18 и ↓0+23
Комментарии23

Знакомство с PowerPC

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров8.6K
Приветствую всех!

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

И так уж вышло, что начал я с PowerPC, а точнее — с компьютеров Apple на базе PowerPC G4.



Итак, в данной статье поговорим о том, что обычно никогда не упоминают в статьях про такое железо: как его запустить тому, кто до этого никогда не имел с ним дела. Попутно узнаем, чем примечателен этот компьютер и на что он вообще способен. Как обычно, будет много интересного.
Читать дальше →
Всего голосов 54: ↑53 и ↓1+67
Комментарии28

Назад в прошлое. Часть 3. Интервью с Кеном Сильверманом, создателем Build. От технических деталей и DN3D до Ion Fury

Уровень сложностиСложный
Время на прочтение21 мин
Количество просмотров1.2K

Новый день. Новое интервью. Новые 30 вопросов.

Краткая справка об основных действующих лицах:

Ken Silverman - создатель Build, а также ряда иных решений, вроде VOXLAP, на основе которых в последующем были созданы игры в диапазоне от Duke Nukem 3D (1996) и Blood (1997) до Ion Fury (2019), а также Electric Highways (2015) и Voxelstein 3D (2008) в отдельности. Домашняя страница - Ken Silverman's Official Home Page.

Читать далее
Всего голосов 8: ↑8 и ↓0+9
Комментарии3

Системы на основе очередей задач

Время на прочтение12 мин
Количество просмотров11K
Привет, Хаброжители!

Мы решили поделиться переводом главы «Системы на основе очередей задач» Из готовящейся к выходу новинки «Распределенные системы. Паттерны проектирования» (уже в типографии).

image

Простейшая форма пакетной обработки — очередь задач. В системе с очередью задач есть набор задач, которые должны быть выполнены. Каждая задача полностью независима от остальных и может быть обработана без всяких взаимодействий с ними. В общем случае цель системы с очередью задач — обеспечить выполнение каждого этапа работы в течение заданного промежутка времени. Количество рабочих потоков увеличивается либо уменьшается сообразно изменению нагрузки. Схема обобщенной очереди задач представлена на рис. 10.1.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии2

Прорывная концепция ракетного двигателя

Уровень сложностиСложный
Время на прочтение25 мин
Количество просмотров86K

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

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

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

Читать далее
Всего голосов 240: ↑233 и ↓7+285
Комментарии491

Руководство по межпроцессному взаимодействию (IPC) в Linux — Часть 1

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров4.2K

Представляю вашему вниманию перевод работы A guide to inter-process communication in Linux. Объём данной работы большой, поэтому перевод будет выполнен в виде нескольких отдельных статей:

Читать далее
Всего голосов 10: ↑10 и ↓0+12
Комментарии2

Краткое сравнение популярных функций измерения времени

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров5.3K

Какую реальную точность можно ожидать от функции возвращающей время, а сколько времени она выполняется сама? Попытка замерить и сравнить несколько десятков функций, доступных программисту на C++.

Вот что получилось
Всего голосов 27: ↑27 и ↓0+31
Комментарии13

Хабр — стоп кран (восклицательный знак)

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров14K

Кто у нас там насегодня за главного? Денис? Алексей?

Давайте поговорим по-честному. Мы все прекрасно понимаем, что СММ и генеративный контент сводят Хабру в могилу. Я не люблю просто блеять о проблемах, и хотел бы предложить решение. Давайте сделаем что-то, чтобы разобраться с раком, убивающим Хабру.

Читать далее
Всего голосов 237: ↑221 и ↓16+264
Комментарии201

Как делать бинарно-совместимые API на компилируемых языках

Время на прочтение10 мин
Количество просмотров2.5K


При разработке продукта на компилируемом языке (таком как C или Rust) рано или поздно может наступить момент, когда нужно разделить продукт на несколько компонентов, развивающихся независимо, или дать возможность расширять функциональность плагинами, разрабатываемыми отдельными коллективами или сообществом.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+23
Комментарии8

Доступно о кватернионах и их преимуществах

Время на прочтение13 мин
Количество просмотров213K

От переводчика: ровно 175 лет и 3 дня назад были изобретены кватернионы. В честь этой круглой даты я решил подобрать материал, объясняющий эту концепцию понятным языком.

Концепция кватернионов была придумана ирландским математиком сэром Уильямом Роуэном Гамильтоном в понедельник 16 октября 1843 года в Дублине, Ирландия. Гамильтон со своей женой шёл в Ирландскую королевскую академию, и переходя через Королевский канал по мосту Брум Бридж, он сделал потрясающее открытие, которое сразу же нацарапал на камне моста.

$i^2=j^2=k^2=ijk=-1$




Памятная табличка на мосту Брум Бридж через Королевский канал в честь открытия фундаментальной формулы умножения кватернионов.

В этой статье я постараюсь объяснить концепцию кватернионов простым для понимания образом. Я объясню, как можно визуализировать кватернион, а также расскажу о разных операциях, которые можно выполнять с кватернионами. Кроме того, я сравню использование матриц, углов Эйлера и кватернионов, а затем попытаюсь объяснить, когда стоит использовать кватернионы вместо углов Эйлера или матриц, а когда этого делать не нужно.
Читать дальше →
Всего голосов 83: ↑83 и ↓0+83
Комментарии54

Демо City In A Bottle – система рейкастинга в 256 байтах

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров3.4K

Привет всем любителям size coding, сегодня я расскажу о чём-то потрясающем: крошечном движке трассировки лучей (raycasting) и генераторе города, умещающихся в автономном файле HTML размером 256 байтов.

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

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

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

Читать далее
Всего голосов 41: ↑38 и ↓3+56
Комментарии7

Карсон Гросс, создатель HTMX

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров11K


Карсон Гросс (Carson Gross) — профессор информатики из Монтаны, который неожиданно стал одним из самых ярких персонажей в индустрии веб-программирования последних лет. Он автор языка HyperScript и популярной библиотеки для фронтенда HTMX, позволяющей создавать сложные интерактивные сайты средствами HTML. Красивая альтернатива клиентскому рендерингу на JavaScript решает сразу несколько проблем современного веба, связанных с избыточной сложностью разработки и поддержки, производительностью и ожирением сайтов.

Создавать сайты очень просто, тот же Хабр написал один программист, а не команда из сотен разработчиков и девопсов, как сейчас принято нанимать в интернет-компании.

Многие веб-разработчики нашего времени выросли со знанием только одностраничных приложений SPA и фреймворков для них. Они начали свои карьеры с приложений на React.js, которые общаются с сервером Node через JSON API. Это настоящая трагедия, считает Гросс. Интерактивные приложения можно делать совершенно иначе.
Читать дальше →
Всего голосов 41: ↑39 и ↓2+54
Комментарии17

Почему для меня так важен алгоритм CORDIC

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров16K

CORDIC — это алгоритм для вычисления тригонометрических функций вроде
sin, cos, tan и тому подобных на маломощных устройствах без использования модуля обработки операций с плавающей запятой или затратных таблиц поиска. По факту он сводит эти сложные функции до простых операций сложения и битового сдвига.

Перейду сразу к делу и скажу, почему я так сильно люблю этот алгоритм, а затем займёмся изучением принципов его работы. По сути, фактические операции CORDIC весьма просты — как я уже сказал, это сдвиги и сложение — но выполняет он их путём комбинирования векторной арифметики, тригонометрии, доказательств сходимости и продуманных техник компьютерных наук. Лично я считаю, что именно это имеют ввиду, описывая его природу, как «элегантную».
Читать дальше →
Всего голосов 87: ↑87 и ↓0+113
Комментарии27

Век поиска кратчайшего решения задачи о кратчайшем пути

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров9.9K

TL;DR Очень подробный разбор алгоритмов решения задачи о кратчайшем пути от классики до двунаправленного А* и ALT с кодом и примерами на OSM

Люди пытались найти более быстрые способы передвижения на протяжении всей своей истории. Появление качественной дорожной системы в римской империи в своё время привело к её расцвету, но со временем выяснилось, что и в продуманных дорожных системах бывают забавные изъяны, как например в небезызвестной задаче о кёнигсбергских мостах, считающейся отправной точкой возникновения теории графов. Неудивительно и то, что с развитием вычислительной техники логистические задачи стали одними из первых, над которыми трудились первопроходцы компьютерных наук. Задача о кратчайшем пути -- одна из них, звучит достаточно просто: есть несколько городов и дорог, соединяющих пару городов между собой, мы хотим попасть из города А в город Б пройдя при этом минимальное расстояние. Первый системный подход к этой задаче был описан в работе Эгервари в 1931г., спустя 25 лет Эдсгер Дейкстра придумал алгоритм, который сейчас является частью любого уважающего себя базового курса алгоритмов на графах. На нём же, будем честны, заканчиваются знания о кратчайших путях у большинства профессиональных разработчиков, ибо сценариев, где реализации с википедии/stackoverflow будет не хватать, крайне мало.

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

Читать далее
Всего голосов 42: ↑42 и ↓0+52
Комментарии14
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Владивосток, Приморский край, Россия
Зарегистрирован
Активность