Pull to refresh
23
0
Анатолий Малков @malan

Игровой разработчик, защита информации

Send message

Unity, ECS, Actors: как поднять FPS в своей игре в десять раз, когда оптимизировать уже нечего [с правками]

Reading time7 min
Views9.3K
Что такое ECS
Что такое Actors

Не раз слышал, как хорош шаблон ECS, и что Jobs и Burst из библиотеки Unity — решение всех проблем с быстродействием. Чтобы не добавлять каждый раз слово «наверное» и «может», рассуждая о быстродействии кода, решил проверить всё лично.

Моей целью было непредвзято разобраться, насколько это быстрый инструмент разработки, и стоит ли использовать распараллеливание для вычислений. И если стоит, то лучше использовать Unity.Jobs или System.Threading? Заодно выяснил, какова польза от ECS в реальных задачах.
Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments12

Илон Маск: колонистов на Марсе защитят локальные генераторы электромагнитного поля

Reading time4 min
Views40K

Концепция марсианского магнитного щита в точке Лагранжа L1, которая находится на расстоянии примерно 320 радиусов Марса. Иллюстрация: NASA/J.Green

Илон Маск (директор компании SpaceX) в своём твиттере предложил защитить колонистов на Марсе локализованными генераторам электромагнитного поля. Эту фразу он бросил в ответ на критическое замечание, что поселение с людьми невозможно развивать на планете без магнитосферы. Илон Маск тогда и сказал про генераторы.

Тут же развернулась дискуссия насчёт технической реализуемости такого решения.
Читать дальше →
Total votes 59: ↑55 and ↓4+51
Comments383

50 (или 60) лет разработки процессоров… ради этого?

Reading time12 min
Views51K
«Закон масштабирования Деннарда и закон Мура мертвы, что теперь?» — пьеса в четырёх действиях от Дэвида Паттерсона

«Мы сжигаем мосты, по которым сюда мчимся, не имея других доказательств своего движения, кроме воспоминаний о запахе дыма и предположения, что он вызывал слёзы» — «Розенкранц и Гильденштерн мертвы», абсурдистская пьеса Тома Стоппарда

15 марта д-р Дэвид Паттерсон выступил перед аудиторией из примерно 200 наевшихся пиццы инженеров. Доктор вкратце изложил им полувековую историю конструирования компьютеров с трибуны в большом конференц-зале здания E в кампусе Texas Instruments в Санта-Кларе во время лекции IEEE под названием «50 лет компьютерной архитектуры: от центральных процессоров до DNN TPU и Open RISC-V». Это история случайных взлётов и падений, провалов и чёрных дыр, поглотивших целые архитектуры.

Паттерсон начал с 1960-х годов и новаторского проекта IBM System/360, основанного на ранних работах Мориса Уилкса по микропрограммированию 1951 года. По меркам IT это было давным-давно… Ближе к концу выступления Паттерсон показал потрясающую диаграмму. Она наглядно демонстрирует, как именно смерть закона масштабирования Деннарда, за которой следует смерть закона Мура, полностью изменили методы проектирования компьютерных систем. В конце он объяснил посмертные технологические последствия этих потрясений.
Читать дальше →
Total votes 52: ↑51 and ↓1+50
Comments81

Первое исследование привлекательности роболиц

Reading time3 min
Views6.5K

Базовые модели роболиц, взятых за основу первого этапа исследования (всего было изучено 157 роболиц). Экземпляры отсортированы слева направо по увеличению детализации. Число на шкале соответствует количеству отсутствующих элементов, таких как брови или рот. Иллюстрация: Вашингтонский университет

На международной конференции ACM/IEEE по взаимодействию людей с роботами в марте 2018 года (HRI 2018) представлены результаты масштабного исследования «Характеристика пространства проектирования для рендеринга роболиц» (Characterizing the Design Space of Rendered Robot Faces). Непосвящённому человеку сразу трудно понять, о чём тут речь. Какой ещё рендеринг?

Дело в том, что в последнее время создатели гуманоидных (и не только) роботов устанавливают им компьютерные экраны вместо железных лиц. На экране робот может демонстрировать всю гамму чувств — улыбаться или грозно хмурить брови — и для этого не придётся монтировать десятки дорогих сервомоторов для эмуляции мимики.

Так вот, вашингтонские учёные под руководством Алисы Калегиной впервые подробно изучили, как люди реагируют на изменения в характеристиках лица робота.
Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments14

Оценить PPFD при освещении растения белыми светодиодами просто: 1000 лк = 15 мкмоль/с/м2

Reading time9 min
Views62K
Статья «Освещение растений белыми светодиодами» вызывала живое обсуждение практических задач, и стало ясно — методы нужно упрощать.



Как элементарно пересчитать освещенность в единицы фотосинтетической активной радиации: PPFD, YPFD и радиометрическую плотность мощности? И что из этого действительно нужно?
Давайте разберемся...
Total votes 25: ↑23 and ↓2+21
Comments47

«Fallout 1.5: Resurrection»: игровой постапокалипсис, каким он должен быть

Reading time3 min
Views66K


Кто не знает Fallout? Наверное, эту игру знают все. И большинство поклонников серии постапокалиптических приключений обитателей Убежищ знакомы не только с трехмерными играми, но и с первыми изометрическими вариантами. Сейчас любители «лампового» Fallout могут быть довольны: можно поиграть в мод для Fallout 2, который называется «Fallout 1.5: Resurrection».

Те, кто ознакомился с этим модом, утверждают, что «это тот Fallout 3, каким он должен был быть». Все начинается в с пробуждения персонажа в грязной канаве. Главный герой мало что помнит, а вокруг — множество мутантов. Для того, чтобы отсюда выбраться, сначала нужно победить парочку радскоприонов. Это сразу напоминает игроку, что он находится в среде старого доброго Fallout, а не современных его инкарнаций.
Total votes 53: ↑50 and ↓3+47
Comments130

Гадаем о причинах и последствиях аварии Falcon 9 первого сентября

Reading time7 min
Views32K


Вечером первого сентября, примерно за восемь минут до начала тестового прожига двигателей первой ступени ракеты Falcon 9 Full Thrust, в районе верхней части второй ступени произошел взрыв. Вместе с ракетой была уничтожена полезная нагрузка — израильский телекоммуникационный спутник AMOS 6, также повреждения неизвестной степени тяжести получил стартовый комплекс. Попробуем угадать, что произошло, и определить, к каким последствиям приведет эта авария.
Total votes 59: ↑58 and ↓1+57
Comments274

EmDrive: Работа от НАСА Eagleworks прошла независимую экспертизу

Reading time4 min
Views36K


Независимый учёный подтвердил, что работа, проделанная учёными лаборатории НАСА Eagleworks Laboratories по достижению тяги с использованием крайне спорной технологии космических двигателей EmDrive, прошла независимую экспертизу и вскоре будет опубликована в Американском институте аэронавтики и астронавтики (AIAA).

Доктор Хосе Родал разместил на форуме NASA Spaceflight – этот его комментарий уже удалён – сообщение о том, что новая работа будет называться «Измерение импульсной тяги закрытой радиочастотной полости в вакууме», и её авторами указаны Гарольд Уайт, Пол Марч, Лоуренс, Вера, Сильвестр, Брэйди и Бэйли [Harold White, Paul March, Lawrence, Vera, Sylvester, Brady and Bailey].

Поклонники EmDrive считают, что одно найденное ими предложение как раз цитирует эту статью: «Данные по тяге у модели TM212 при давлении, не превышающем 8*10-6 мм рт. ст., полученные от тестов по прямому, обратному и нулевому движению, позволяют заключить, что система выдаёт постоянную тягу с отношением тяги к мощности равным 1,2 ± 0.1 мН/КВт ()».
Читать дальше →
Total votes 52: ↑44 and ↓8+36
Comments330

Основы геймдизайна: 20 настольных игр. Часть первая

Reading time12 min
Views45K
В статье Джона Харриса из серии «Основы геймдизайна» представлен подробный обзор самых популярных настольных игр, включая традиционные вроде шахмат и го, ролевые вроде «Зова Ктулху», европейские вроде «Колонизаторов» и многие другие, у которых есть чему поучиться.

Читать дальше →
Total votes 18: ↑15 and ↓3+12
Comments37

Runtime программирование промышленного робота на RCML

Reading time13 min
Views37K


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

Под катом описание и реальный пример того, как работает runtime программирование.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments12

WebGL на Unity3d — двенадцать проблем при сборке проекта

Reading time6 min
Views45K
Не так давно в Unity вышла из беты возможность создания проектов для WebGL. Делюсь своим опытом сборки под эту платформу большого игрового проекта.

Disclaimer: Статья только для тех, кто сам собирается сделать что-то подобное — она очень техническая и использует специфическую для Unity терминологию.
Я хочу собрать Unity проект под WebGL!
Total votes 23: ↑22 and ↓1+21
Comments36

Число Грэма и взгляд в бесконечность

Reading time4 min
Views24K
Фрактал «Сокровища Атлантиды» (автор: Phoenix-22)

Вглядываться в бесконечность можно по-разному. Можно представлять себе всё увеличивающиеся астрономические числа и сопоставлять их с физическими явлениями. Можно всматриваться в выбранную точку фрактала Мандельброта, плавно увеличивая масштаб в 10198 раз (можно и больше, но в угоду скорости страдает наглядность). Фрактал, сколь малую часть его не бери, остаётся самоподобным и сохраняет дробную структуру.

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

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

Для меня в своё время взгляд бесконечность, подобный описанному «на пальцах» числу Грэма, дала функция Аккермана (которую приводят как пример сложной рекурсивной функции в теории алгоритмов). Она тесно связана со стрелочной записью Кнута, используемой в статье про число Грэма.

Идея очень простая
Total votes 35: ↑29 and ↓6+23
Comments68

Процедурно генерируемые карты мира на Unity C#, часть 4 (трафик)

Reading time9 min
Views30K
image

Это последняя статья из цикла о процедурно генерируемых с помощью Unity и C# картах мира. Осторожно, под катом 7 МБ картинок.
Читать дальше →
Total votes 31: ↑29 and ↓2+27
Comments10

Процедурная генерация случайных игровых подземелий

Reading time6 min
Views64K
image

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

Оригинальное описание алгоритма


1. Сначала я задаю нужное количество комнат – к примеру, 150. Естественно, цифра произвольная, и чем она больше, тем сложнее будет подземелье.

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

Вместо равномерно распределённых случайных чисел (какие выдаёт генератор Math.random в большинстве языков), я использую нормальное распределение Парка-Миллера. В результате вероятность появления маленьких комнат превышает вероятность появления больших. Зачем это надо, объясню позже.

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

3. И вот у нас есть 150 случайных комнат, расположенных на небольшом пространстве. Большинство из них наезжают друг на друга. Теперь мы осуществляем их разделение по технологии separation steering, чтобы разделить прямоугольники так, чтоб они не пересекались. В результате они не пересекаются, но находятся достаточно близко друг от друга.

4. Заполняем промежутки клетками размером 1х1. В результате у нас получается квадратная решётка из комнат различного размера.

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

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

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

8. Дерево получается аккуратным, но скучным – никаких вам замкнутых ходов. Поэтому мы случайным образом добавляем обратно примерно 15% ранее исключённых рёбер графа. В результате получится граф, где все комнаты гарантированно достижимы, с несколькими замкнутыми ходами.

9. Чтобы превратить его в коридоры, для каждого ребра строится серия прямых линий (в форме Г), идущих по рёбрам графа, соединяющим комнаты. Тут нам пригождаются те клетки, которые остались неиспользованными (те, что не превратились в комнаты). Все клетки, накладывающиеся на Г-образные линии, становятся коридорами. А из-за разнообразия размеров клеток стены коридоров будут неровными, что как раз хорошо для подземелья.

И вот пример результата!

Осторожно — под катом много монстров анимированных гифок!
Читать дальше →
Total votes 53: ↑49 and ↓4+45
Comments16

Разбор «Марсианина»: Марс, наука, политика

Reading time6 min
Views40K


Надеюсь все уже посмотрели фильм, поэтому обойдемся без спойлеров. Если еще не смотрели — лучше не читайте, а то впечатления от просмотра могут измениться. Сегодня разберем фильм на детали, и посмотрим, что в нем выдумка, а что похоже на реальность.
Читать дальше →
Total votes 108: ↑105 and ↓3+102
Comments153

Создание игровых уровней: советы и хитрости (часть 2)

Reading time11 min
Views86K
Это вторая часть моей статьи с левел-дизайнерскими Tips and Tricks, которые разработчик может использовать, чтобы повысить общее качество своей игры. Это ни в коем случае не пошаговое руководство, а только сборник идей и полезных советов, основанных на моём личном опыте. Первая часть статьи была больше ориентирована на визуальную составляющую дизайна уровней, в этот же раз мы поговорим о ещё более фундаментальных вещах, начиная с прототипирования и заканчивая плэйтестингом с аналитикой.

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

TOP (10) бесплатных плагинов для SSMS

Reading time3 min
Views50K


До того, как начать работать с SQL Server я толком то и баз данных в лицо не видел… Помню, что мне установили SQL Server Management Studio 2005 и дали задание активно «крутить педали». По прошествии пары недель, как бы так сказать, моя производительность по написанию запросов была явно в районе плинтуса…

Более опытный коллега с недоумением на меня посмотрел и посоветовал поставить пару плагинов для SSMS… после этого работать стало явно веселее.

В данном посте я хочу поделиться моим топ списком бесплатных плагинов для SSMS, которыми чаще всего пользовался.
Подробнее
Total votes 24: ↑20 and ↓4+16
Comments12

Марс-2 – первый изготовленный человеком аппарат, коснувшийся поверхности Марса

Reading time2 min
Views11K
image

44 года назад, 27 ноября 1971 года, поверхности Марса коснулся первый из аппаратов, созданных человеком. Это был спускаемый аппарат советской автоматической межпланетной станции "Марс-2". К сожалению, первая в мире попытка мягкой посадки на Красную планету закончилась неудачей.

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

Орбитальная станция была снабжена магнитометром, радиометром, измерявшим распределение температуры по поверхности планеты, различные фотометры для изучения рельефа, отражательной способности поверхности, плотности атмосферы, и т.п. Также на борту были две фототелевизионные камеры. Спускаемый аппарат снизу закрывал конический тормозной экран. Аппарат был снабжён парашютами и твердотопливным двигателем.
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments3

Project Naptha — выделяй, копируй и переводи тексты с любых картинок

Reading time2 min
Views37K
На hh/gt не нашел ни единого упоминания о этом замечательном расширении для Google Chrome. Хочу поделиться им с сообществом, потому как в последнее время оно помогает мне каждодневно экономить минут 10 — уж очень много скриншотов из социальных сетей на разных языках которые с помощью этого плагина переводятся в два клика.

Встречайте — Project Naptha (Chrome webstore).

image

Список возможностей:
  • копировать текст с картинки
  • выделить весь текст
  • гуглить выделенный текст
  • переводить выделенное (бета)
  • проговорить (TTS) выделенное

Читать дальше →
Total votes 30: ↑28 and ↓2+26
Comments31
1
23 ...

Information

Rating
Does not participate
Location
Пермь, Пермский край, Россия
Registered
Activity