Pull to refresh
0
0
Send message

Булевы операции двумерных тел

Level of difficultyMedium
Reading time4 min
Views8.6K

В детстве меня всегда завараживали игры с динамическим ландшафтом: The Castle и Worms Armageddon. В то время я не понимал, как реализована эта удивительная механика разрушения и изменения мира. Позже я узнал, что секрет заключался в использовании растровой графики, но интерес к теме не исчез. В этой статье я хочу рассказать о векторном решении аналогичной задачи.

Читать далее
Total votes 25: ↑25 and ↓0+33
Comments15

Linux для игр, Windows для работы. С чего начать, как установить и настроить

Level of difficultyEasy
Reading time12 min
Views83K

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

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

Читать далее
Total votes 68: ↑64 and ↓4+78
Comments197

Зачем процессорам нужен кэш и чем отличаются уровни L1, L2, L3

Reading time10 min
Views125K


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

Наверно, он важен, иначе зачем бы его устанавливать? Но что же делает кэш, и для чего ему разные уровни? И что означает «12-канальный ассоциативный кэш» (12-way set associative)?
Читать дальше →
Total votes 35: ↑33 and ↓2+37
Comments40

Сборка мусора в Unreal Engine

Reading time15 min
Views20K

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

Если вам не интересна теория или то как оно работает в UE4, то можете промотать вниз до практических советов, там описываются вещи из практики по работе с GC. Но лучше знать и теорию.

Эта статья более релеватна к Unreal Engine 4.27 однако много всего работает так же и на версии UE 5.0 и на более низких версиях. Однако, стоит отметить, что, с версии 4.0 до 4.27 сборка мусора претерпела весьма значительные изменения и стала сильно лучше.

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments1

Поля расстояний Raymarching-а: объяснение и реализация в Unity

Reading time24 min
Views29K
image

Raymarching — это достаточно новая техника, используемая для рендеринга сцен реального времени. Она особенно интересна тем, что полностью вычисляется в шейдере экранного пространства. Другими словами, рендерер не получает доступа к данным мешей и сцена отрисовывается на одном четырёхугольнике, покрывающем всю область видимости камеры. Объекты в сцене задаются аналитическим уравнением, описывающим кратчайшее расстояние между точкой и поверхностью всех объектов сцены (поэтому полностью техника называется полями расстояний Raymarching-а). Оказывается, что даже при наличии только этой информации мы можем создавать поразительно сложные и красивые сцены. Более того, благодаря тому, что мы не используем полигональные меши (и вместо них применяются математические уравнения), здесь, в отличие от традиционного рендерера, можно задавать идеально плавные поверхности.


Snail Иниго Килеза была полностью создана при помощи raymarching. Другие примеры подвергнутых raymarching-у сцен можно найти на Shadertoy.

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

Полный код можно найти в этом репозитории Github.
Total votes 21: ↑21 and ↓0+21
Comments5

Космические лучи — причина случайных компьютерных сбоев?

Reading time4 min
Views38K


Если ваш компьютер внезапно завис, выдал «синий экран смерти» или не смог скопировать файл — не спешите обвинять производителя компьютерной техники или глючной памяти. Возможно, причина сбоя — космическая радиация. Такие события называются «нарушением в результате единичного события» (single-event upset, SEU).

Нарушение в результате единичного события — это изменение состояния электронного компонента, вызванное одной частицей ионизирующего излучения (ион, фотон, протон, нейтрон и т.д.), которая сталкивается с чувствительным узлом системы, таким как микропроцессор, полупроводниковая память или мощный транзистор. Изменение состояния происходит из-за возникновения свободного заряда, который появляется в результате ионизации внутри или рядом с чувствительным узлом системы или логическим элементом, таким как бит памяти. В итоге устройство выдаёт ошибку. Эту единичную ошибку и называют «нарушением в результате единичного события», SEU или просто случайным сбоем (soft error).
Читать дальше →
Total votes 32: ↑26 and ↓6+20
Comments70

Неклассические контейнеры в C++

Reading time17 min
Views45K

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

В стандартную библиотеку C++ входит несколько контейнеров. Кроме этого, в Open Source есть несколько контейнеров, которые покрывают больше юзкейсов. Я опишу устройство интересных контейнеров вне STL и их отличия от классических контейнеров.

Читать далее
Total votes 56: ↑54 and ↓2+64
Comments24

Продвинутый левел-дизайн: киноприемы в играх, кор-луп и силуэты

Reading time18 min
Views11K

Всем привет! Пришло время третьей, кульминационной статьи цикла про левел-дизайн. Ранее мы уже говорили об общих терминах и принципах производства локаций, но многим хотелось более существенного deep-dive. Сказано — сделано. Приготовьте блокноты, потому что местами придется записывать!

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

Читать далее
Total votes 31: ↑31 and ↓0+31
Comments3

Что находится в Антарктиде

Reading time11 min
Views28K

Текст: Александра Гордиенко, редактор проекта “Антропогеос. География людей”

Фото: Дина Караваева

Антарктида формально не заселена и не принадлежит ни одному государству. Однако там находится и функционирует множество объектов: туристические лагеря, научные станции, аэропорты и метеостанции. Давайте посмотрим на всю эту инфраструктуру поближе и разберемся, кто и где на самом деле обитает на последнем необитаемом континенте.

Научные станции

По международному договору, любая страна может открыть в Антарктиде научную станцию южнее 60 градуса южной широты. На сегодняшний день таких станций набралось больше 90. Часть из них заброшена или ликвидирована, какие-то функционируют сезонно, а какие-то весь год без остановок.

На этих станциях ведутся метеорологические наблюдения, а также исследования в области геологии, географии, биологии, астрономии.

Первую станцию открыли в 1898-99 годах на мысе Адэра участники Британской антарктической экспедиции под руководством норвежского полярника Карстена Борхгревинка. Хижина, которую они построили, сохранилась до сих пор. Ее периодически использовали другие экспедиции, а сейчас это, скорее, туристический объект.

В 1903 году Шотландская экспедиция построила так называемый Дом Омонда на острове Лори - он стал первым капитальным строением на территории Антарктиды и использовался как круглогодичная метеорологическая станция. В 1904 году его передали в управление Аргентины, где она основала действующую по сей день станцию Оркадас.

С тех пор открылись и закрылись более 90 станций, которые принадлежат разным странам. Сейчас на континенте открыты станции  России, США, Китая, Индии, Австралии, Бразилии, Аргентины, Бельгии, Германии, Японии, Украины, Италии, Франции, Швеции, Великобритании, Южной Кореи. Еще несколько стран имеют исследовательские станции на близлежащих островах.

Читать далее
Total votes 41: ↑40 and ↓1+54
Comments32

Собираем «Тревожный чемоданчик». Мнение спортивного туриста

Reading time18 min
Views209K
Когда началась война, все произошло так быстро, что я не могла ни понять, что происходит, ни подумать о том, что хотела бы взять с собой, когда мы убегали. (из интервью сирийской беженки)

Мне почему-то не хочется делать вид, что ничего не происходит. Потому что нынешняя военная эскалация напоминает затишье перед бурей, похожие ощущения были в январе 2020, когда «коронавирус же не у нас, он в Китае». В итоге жизнь подтвердила несостоятельность подобного «психологического» трюка. Поэтому, думая про худшее и надеясь на лучшее, я написал недавно эмоциональную заметку про «тревожный чемоданчик». Написана она с учетом моего опыта спортивного туризма (инструктор гор/пеш), поэтому профессиональные военным (выживальщикам?) просьба отнестись с пониманием. Писалось с акцентом на беларускую аудиторию, и вот искренне надеюсь, что (НЕ) пригодится всем. Просьба не политизировать данную статью, а воспринимать as is. Те кто затевает войны — Хабр не читают. Мы все в одной лодке, надеюсь написанное под катом хоть немного поможет этой «лодке» быть на плаву…


Собираем тревожный чемоданчик вместе
Total votes 225: ↑198 and ↓27+223
Comments391

Веб-сервер на старом смартфоне Android

Reading time6 min
Views65K


Бывает такое, что смартфон становится ненужным — например, на нём разбивается экран или он просто старенький, тормозит даже браузер. Что делать с таким гаджетом, не выбрасывать же его? В самом деле, американцы летали на Луну с компьютерами, у которых характеристики много хуже, чем в вашем старом смартфоне. Скорее всего, в нём 4−8 процессорных ядер, 2−4 гигабайта оперативной памяти, блок бесперебойного питания с аккумулятором. Не слабее, чем некоторые компьютеры.

Попробуем найти этому смартфону полезное применение.
Читать дальше →
Total votes 40: ↑38 and ↓2+50
Comments91

Почему графику в видеоиграх по-прежнему так сложно создавать?

Reading time28 min
Views33K

Введение


В этом посте будут рассмотрены трудности и аспекты производства, которые нужно учитывать при создании новых методик и алгоритмов рендеринга/графики, особенно в контексте прикладных исследований рендеринга реального времени. Я буду рассказывать о своём личном опыте работы над Witcher 2, Assassin’s Creed 4: Black Flag, Far Cry 4 и God of War.

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

Я слышал вопросы типа «почему эта великолепная исследовательская методика X не используется в продакшене?» и от геймеров, и от коллег из научных кругов. На то всегда бывают очень веские причины!

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

Я вспоминаю об этой теме ещё и каждый раз, когда слышу дискуссии о том, что «фотограмметрия, трассировка лучей, нейронный рендеринг, [вставить любую другую новую тему] станет универсальным решением для рендеринга и заменит всё остальное!». Спойлер: этого не случится (по крайней мере, в ближайшее время).
Читать дальше →
Total votes 60: ↑60 and ↓0+60
Comments40

История одного острова и одного человека

Reading time4 min
Views32K

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

Тортуга была открыта в 1499 году экспедицией Колумба. По легенде, он, увидев форму острова, даже воскликнул: "Вот место для черепахи, на которой покоится мир!", но это крайне сомнительно. Во-первых остров был настолько мал и незначителен, что они его даже на карту не стали наносить, а во-вторых, довольно сложно разглядеть очертания острова, находясь на палубе. Скорее всего это было так:

-Чё там за остров?

-Да какой-то мелкий остров с черепахами.

-Ну ок, будет остров черепах. Всё, двигаем дальше.

Потом на Тортуге периодически тусовались всякие отщепенцы - буканьеры, рыбаки, просто изгои с соседних островов. Власть менялась с испанцев на англичан, потом обратно на испанцев, потом на англичан пополам с французами, короче лихие Карибские, олдфаги помнят. Так продолжалось до 1640го года...

Читать далее
Total votes 56: ↑48 and ↓8+54
Comments12

«Автостопом по галактике» — история невероятного текстового приключения 1984 года

Reading time18 min
Views19K


Жанр интерактивных текстовых игр промелькнул ярким болидом в истории цифровых развлечений. «Автостопом по галактике» стала одним из самых успешных бестселлеров Infocom, который прославился чутким юмором, странной, местами абсурдной, логикой, и, конечно же, безумными головоломками (помните Babel Fish?). Многие игроки бесились от дикой сложности загадок игры, для других же проведенное за ними время легло в память исключительно приятными воспоминаниями.
Читать дальше →
Total votes 60: ↑60 and ↓0+60
Comments9

Совместная игра в Factorio — лучшее собеседование для программистов, что мы проводили

Reading time11 min
Views81K
В последнее время много копий сломано вокруг технических собеседований. Очевидно, что инвертирование двоичного дерева на доске практически никак не связано с практическими навыками реального программиста. Примитивный Fizzbuzz по-прежнему остаётся самым эффективным тестом. Как следствие, выросло внимание к опенсорсным проектам, но оказалось, что это тоже не очень хороший показатель, потому что у большинства профессионалов нет на них времени.

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

Все эти методы интервью не сравнятся с очень простой метрикой: совместная игра в Factorio. Прохождение всего цикла Factorio — практически идеальный показатель, насколько хорошо человек решает общие технические проблемы. Можно даже настроить прохождение игры на основе будущей должности, чтобы лучше понять, как кандидат справится со своей ролью.
Читать дальше →
Total votes 78: ↑74 and ↓4+102
Comments145

8-битный Тьюринг-полный компьютер в Factorio

Reading time13 min
Views22K

Хочу поделиться своим проектом, созданным в Factorio на основе предлагаемой этой игрой логики. На этот проект меня вдохновил великий ум, записавший пошаговое руководство по созданию практически такой же машины, но в реальном мире. Рекомендую посмотреть его, оно поможет вам понять и воссоздать этот проект: 8-bit computer

Я преклоняю голову перед Беном Итером, с помощью своего канала научившему меня столь многому, и хочу посвятить этот небольшой проект ему. Отличная работа, Бен!

Вот компьютер, вычисляющий число Фибоначчи, после превышения лимита 8 бит (числа 255) он выполняет условный переход и начинает заново:

image

Давайте разберёмся, как работает этот компьютер. И не бойтесь — уверен, что, разобравшись с основами, вы тоже сможете его сделать! Начнём с общей схемы компьютера. Здесь я выделил важные области. Ниже я объясню, как создал их.
Total votes 32: ↑32 and ↓0+32
Comments15

Альтернативные аллокаторы памяти

Reading time13 min
Views91K
Написал Стивен Тови в 2:29 утра по программированию (шутка юмора Google Translate)
Вступление от себя: эта заметка, прорекламированная Алёной C++, предназначена в основном разработчикам игр для консолей, но будет, наверное, полезна и всем, кому приходится сталкиваться с экстремальным аллоцированием динамической памяти. Возможно, любители посравнивать управление памятью в C++ и Java тоже найдут над чем задуматься.

Оригинал с небезынтересной дискуссией в комментариях: altdevblogaday.org/2011/02/12/alternatives-to-malloc-and-new


Обязательная вступительная басня

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

Сейчас объясню, почему...
Total votes 75: ↑72 and ↓3+69
Comments59

[Личный опыт] «Повзрослевшая Россия»: тонкости переезда в Канаду

Reading time17 min
Views66K

В июле 2020 года, в разгар уже опостылевшей всем пандемии, ValCanada получил статус резидента Канады и переехал с семьёй в Северную Америку.


Откровенно и искренне он поделился с нами особенностями страны, про которые мало говорят в инструкциях о релокации: как получить максимум баллов для ПМЖ, каким IT-специалистам легче найти работу, как законно сэкономить на съёмном жилье (но, возможно, заработать невроз), почему при переезде стоит одеваться теплее, и как обстоят дела с новомодным дайверсити.


Впереди лонгрид!




Читать дальше →
Total votes 39: ↑33 and ↓6+34
Comments128

Gameplay Ability System: как мы используем плагин для разработки Survival RPG

Reading time14 min
Views22K
В Social Quantum сейчас кипит работа над новыми проектами, которые мы разрабатываем на Unreal Engine 4. Для одной из этих игр мы активно используем плагин Gameplay Ability System (далее GAS). Многие о нем слышали, но редко применяли для своих проектов. Этому есть несколько причин: количество документации, объемность и сложность подсистемы. Наша команда решила подготовить серию материалов, где мы подробно расскажем об опыте работы и развеем некоторые мифы.

Для начала разберем самые базовые принципы GAS и основные ее сущности, а также копнем чуть дальше, чем «делаем зелье для пополнения здоровья».



Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments16

Оцениваем работодателя на собеседовании. Как понять, что за компания перед тобой?

Reading time12 min
Views50K

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

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

Читать далее
Total votes 39: ↑39 and ↓0+39
Comments69

Information

Rating
Does not participate
Registered
Activity