Как стать автором
Поиск
Написать публикацию
Обновить
13
0
Algorithm engineer @CrazyFizik

Пользователь

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

Разбор графики Supreme Commander

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

Total Annihilation занимает в моём сердце особое место, потому что это была моя первая RTS; вместе с Command & Conquer и Starcraft это одна из самых лучших RTS, выпущенных во второй половине 90-х.

Через десять лет, в 2007 году, был выпущена её наследница: Supreme Commander. Благодаря тому, что над игрой работали одни из основных создателей Total Annihilation (дизайнер Крис Тейлор, программист движка Джонатан Мейвор и композитор Джереми Соул), ожидания фанатов были очень высокими.

Supreme Commander была тепло принята критиками и игроками благодаря своим интересным особенностям, таким как «стратегический зум» и физически реалистичная баллистика.

Давайте посмотрим, как движок SupCom под названием Moho рендерит кадр игры. RenderDoc не поддерживает игры под DirectX 9, поэтому реверс-инжиниринг выполнялся при помощи старого доброго PIX.
Читать дальше →

Межзвездные путешествия: из пункта А в пункт Б

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


По космическим меркам человеческая раса весьма хрупкая и слабая: повышение температуры на 50 градусов, увеличение ионизирующего и ультрафиолетового излучения, отсутствие воды, уменьшение кислорода в атмосфере — все это ведет к ее неминуемой гибели. И нет ничего удивительного в том, что человеческий разум стал искать возможность существования других планет с благоприятными для нашей жизни условиями, дабы «развернуть» на них backup. Однако если планета и будет найдена, вопрос транспортировки остается открытым. В сегодняшнем посте речь пойдет о способах и перспективах межпланетных и межзвездных путешествий.

Читать дальше →

Unity3d. Реализация зон видимости и слышимости

Время на прочтение5 мин
Количество просмотров39K
Добрый день, хабра.

Сегодня расскажу о том, как можно реализовать систему видимости и слышимости для ваших проектов. Получилось нечто схожее с игрой Commandos.
Немного скриншотов.

Больше видимости.


Читать дальше →

Pool объектов для Unity3d

Время на прочтение6 мин
Количество просмотров35K
Все знают что операции создания и удаления объектов не дешевые. Например создавать каждый раз пулю и уничтожать, довольно накладно для тех же мобильных устройств. Может стоит не уничтожать пулю, а скрывать ее. Вот решил поделится своей реализацией Pool Manager.
Читать дальше →

Вкусная курочка

Время на прочтение3 мин
Количество просмотров23K
Перелет к ближайшей звезде очень долог. Но что делать, если другого выбора нет? Космический корабль класса “Shadow” бороздит космос уже несколько десятков лет. Цель столь долгого круизного путешествия – найти новую Землю. Найти место, которое смогут назвать своим домом две сотни пассажиров и команда корабля, состоящая из тридцати человек.

image

Джессика занимает на корабле должность медсестры, и неплохо справляется со своими обязанностями. Ее сын Томми, мальчик семи лет, родился уже не на Земле, и никогда не видел ни синего неба, ни моря. Да чего уж лукавить, он не видел ничего земного. Особенно сильно Томми переживал, что не сможет в живую встретиться с земными животными, про которых он очень любил читать книжки и смотреть голографическое кино. Больше всего ему нравились панды и кенгуру. А как только в руки Томми попала книга про орнитологию, она сразу стала его любимым чтивом перед сном. С огромным интересом он разглядывал на картинках страусов, орлов, пеликанов, голубей и куриц.
Читать дальше →

Оптимизация 2d-приложений для мобильных устройств в Unity3d

Время на прочтение13 мин
Количество просмотров107K
Недавно наша студия завершила разработку большого обновления — Captain Antarctica: Endless Run — для устройств на iOs. Кропотливая работа над обновлением затронула производительность, которая оказалась очень низкой на слабых устройствах. Я боролся с этим целую неделю и добился как минимум 30 FPS, а также значительного сокращения размера приложения. Хочу рассказать, как я это сделал, ну и как делать не стоит.
Статья пригодится любым разработчикам на Unity (причем не только менеджерам проектов и техническим специалистам, но и просто программистам, художникам и дизайнерам), потому что она затрагивает как оптимизацию на Unity в целом, так и конкретно оптимизацию 2d-приложений для мобильных устройств.

Читать дальше →

Генетический алгоритм на примере бота Robocode

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


Когда писалась эта статья, хабрапоиск по словосочетанию «Генетический алгоритм» выдавал благородную пустоту. Однако недостаточный уровень *вырезано цензурой* отодвинул дату публикации, и вот только сейчас после позорного нудливого попрошайничества с моей стороны эта статья получила возможность показать себя миру. За этот промежуток времени успели выйти в свет как минимум три (столько мне на глаза попалось) статьи на подобную тему, и, вполне вероятно, что-то из написанного ниже вы прочитаете не впервые. Таким людям я предлагаю не хмурить носики от очередной попытки неопытного юнца научно-популярно объяснить ГА, а проходить к следующему экспонату ко второй части, где описывается создание на основе ГА бота для программистской игры Robocode. Это, по последним сведениям разведки, еще не встречалось на хабре.

Часть первая. Жизнь и творчество генетического алгоритма.


Начнем издалека. Есть некоторый набор задач, которые требуют решения. Наша цель — найти действия, которые смогут преобразовать Дано (начальные условия задач) в Ответ (целевое состояние).

Если ситуация простая, и решение такой задачи можно явно посчитать из условий при помощи этих ваших матанов, то и славно, тут и без наших премудростей все хорошо, нас наебали, все расходимся. Например, при решении квадратного уравнения ответ (значения x1, x2) получаются из начального условия (коэффициентов a, b, c) путем применения формулы, которую мы все учили в школе. А что делать в более печальном случае, когда нужной формулы в учебнике нету? Можно попробовать с помощью мозгового штурма решить одну из задач. Аналитически. Численными методами. Силой отчаянного перебора функций. Через некоторое время послышатся мечтательное студенческое «хоть бы оно само решилось». Ага, тут-то мы и вылезаем из-за занавесок. Итак, цель — написать программу, которая бы находила функцию (программу), получающую на вход исходные данные и возвращающую годные циферки. Сила метапрограммирования, в бой!

пучина невежества

Математика на пальцах: давайте посчитаем хотя бы один ряд Фурье в уме

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

Нужно ли вам читать этот текст?


Давайте проверим. Прочтите следующее:

Тригонометрическим рядом Фурье функции  называют функциональный ряд вида



где







Страшно, но всё же хочется понять, что это значит?


Значит, вам под кат. Постараюсь формул не использовать.
Читать дальше →

Нейронные сети для чайников. Сеть Кохонена

Время на прочтение3 мин
Количество просмотров349K
В статье Нейросети для чайников. Начало автор Paul_Smith доступно показал насколько просто создать нейронную сеть для распознования картинок. Но есть одно но — то что он описал нейронной сетью не является. Перед его следующей статьей хочу рассказать вам как решить ту же задачу, но с использованием нейронной сети Кохонена.

Итак, распознавать мы будем цифры, написанные белым по черному, такие как эти:
image image image image image image
Читать дальше →

Нейропластичность в искусственных нейронных сетях

Время на прочтение17 мин
Количество просмотров53K
Привет, Хабр, давно не виделись. В этом посте мне хотелось бы рассказать о таком относительно новом понятии в машинном обучении, как transfer learning. Так как я не нашел какого-либо устоявшегося перевода этого термина, то и в названии поста фигурирует хоть и другой, но близкий по смыслу термин, который как бы является биологической предпосылкой к формализации теории передачи знаний от одной модели к другой. Итак, план такой: для начала рассмотрим биологические предпосылки; после коснемся отличия transfer learning от очень похожей идеи предобучения глубокой нейронной сети; а в конце обсудим реальную задачу семантического хеширования изображений. Для этого мы не будем скромничать и возьмем глубокую (19 слоев) сверточную нейросеть победителей конкурса imagenet 2014 года в разделе «локализация и классификация» (Visual Geometry Group, University of Oxford), сделаем ей небольшую трепанацию, извлечем часть слоев и используем их в своих целях. Поехали.
Читать дальше →

Броня для чайников и разработчиков игр

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

Введение


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

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

Зачем нужна броня


Почему кто-то решает надеть на себя большое количество металла и кожи, если он не собирается посетить концерт хэви-метал? Скорее всего, в ближайшем будущем он рассчитывает оказаться в бою и не хочет пострадать в нём или умереть. Он рассчитывает, что броня помешает острым объектам войти в его тело и смягчит удар тупого объекта, который иначе бы, например, переломал им кости. Чем сильнее удары от оружия и интенсивность ожидаемой битвы, тем тяжелее должна быть броня. К примеру, рыцарь, ожидающий атаки копьями, должен обратиться за вдохновением к жестяным банкам, а человек с мощным луком может отправиться в бой хоть в пижаме.

Свойства металлов


Вес


Читать дальше →

Пузырьковая сортировка и все-все-все

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

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

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

image: пузырьки

Сделать первый шаг в изучении сортировок

Как наша нейросеть пообщалась с ФCБ

Время на прочтение1 мин
Количество просмотров24K
В начале августа наша нейросеть OneBox Next вступила в переписку с ФCБ и до победного пыталась себя продать, так же как ведут себя наши продавцы.
Читать дальше →

Космическая ошибка: $370 000 000 за Integer overflow

Время на прочтение9 мин
Количество просмотров113K
Пуск.
37 секунд полета… бабах!
10 лет и 7 миллиардов долларов, потраченных на разработку.
Четыре полуторатонных спутника научной программы Cluster (изучение взаимодействия солнечного излучения с магнитным полем Земли) и ракета носитель Ariane 5 превратились в «конфети» 4 июня 1996 года.
А вину свалили на программистов.



Предыдущая модель — ракета Ariane 4 — успешно запускалась более 100 раз. Что пошло не так?

Чтобы штурмовать небеса, нужно хорошо знать язык Ада.

Какой была виртуальная реальность 1990-х

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

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


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


image
Кадр из фильма "Джонни Мнемоник"

Читать дальше →

Практика программирования игр на python: жизнь

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


Недавно стало известно, что python признан самым популярным языком для обучения студентов в США. Я, будучи студентом Технопарка, решил не отставать от тренда, поподробнее изучить этот модный язык и заодно написать несколько постов. Для разминки я решил реализовать Conway's Game of Life. Это довольно-таки забавная «игра», в которой мы можем в некотором смысле моделировать развитие группы организмов в окружающей среде. Правила такие: делим пространство на клетки, которые могут быть либо живыми, либо пустыми. А затем на каждом шаге состояние клетки обновляем в зависимости от числа живых соседей. Например, слишком много — клетка умирает, а если нет — рождается. Можно от души экспериментировать с конфигурациями, получаются разные странные вещи, иногда корабли. Корабли (gliders) — отдельная тема, это такие группы клеток, которые изменяются и вместе с тем путешествуют в пространстве. Кроме кораблей могут образовываться и другие группы клеток с хитрыми свойствами, но о них — в Википедии.
Читать дальше →

Стилизация изображений с помощью нейронных сетей: никакой мистики, просто матан

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

Приветствую тебя, Хабр! Наверняка вы заметили, что тема стилизации фотографий под различные художественные стили активно обсуждается в этих ваших интернетах. Читая все эти популярные статьи, вы можете подумать, что под капотом этих приложений творится магия, и нейронная сеть действительно фантазирует и перерисовывает изображение с нуля. Так уж получилось, что наша команда столкнулась с подобной задачей: в рамках внутрикорпоративного хакатона мы сделали стилизацию видео, т.к. приложение для фоточек уже было. В этом посте мы с вами разберемся, как это сеть "перерисовывает" изображения, и разберем статьи, благодаря которым это стало возможно. Рекомендую ознакомиться с прошлым постом перед прочтением этого материала и вообще с основами сверточных нейронных сетей. Вас ждет немного формул, немного кода (примеры я буду приводить на Theano и Lasagne), а также много картинок. Этот пост построен в хронологическом порядке появления статей и, соответственно, самих идей. Иногда я буду его разбавлять нашим недавним опытом. Вот вам мальчик из ада для привлечения внимания.


Читать дальше →

Что едят солдаты разных стран в бою? История армейских сухпайков

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

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


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


Необходимо учесть, в каких условиях человек будет использовать набор. Индивидуальные рационы питания для пилотов команды Solar Impulse, недавно завершивших кругосветное путешествие на "солнечном" самолёте, разрабатывали восемь учёных из компании Nestle.


image

Читать дальше →

Персонажи сказок Старой Руси, Эпизод II

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


Некоторое время назад на этом ресурсе была опубликована первая часть картинок из моего проекта «Сказки Старой Руси». Если вы не читали статью, я бы посоветовал сделать это, поскольку там представлена полная информация о самом проекте — как он появился на свет, и с какой целью. С тех пор произошло немало событий, я нарисовал много картинок, провел массу исследований и определился с точной формулировкой проекта: «рисовальная кабинетная мифология» в чистом виде (потому что сижу в домашнем кабинете, придумываю новую игровую мифологию и рисую). Еще раз напомню, что проект этот не для детей, но взрослым его не стоит воспринимать слишком серьезно.
Читать дальше →

Магия тензорной алгебры: Часть 14 — Нестандартное введение в динамику твердого тела

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

Содержание


  1. Что такое тензор и для чего он нужен?
  2. Векторные и тензорные операции. Ранги тензоров
  3. Криволинейные координаты
  4. Динамика точки в тензорном изложении
  5. Действия над тензорами и некоторые другие теоретические вопросы
  6. Кинематика свободного твердого тела. Природа угловой скорости
  7. Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления
  8. О свертках тензора Леви-Чивиты
  9. Вывод тензора угловой скорости через параметры конечного поворота. Применяем голову и Maxima
  10. Получаем вектор угловой скорости. Работаем над недочетами
  11. Ускорение точки тела при свободном движении. Угловое ускорение твердого тела
  12. Параметры Родрига-Гамильтона в кинематике твердого тела
  13. СКА Maxima в задачах преобразования тензорных выражений. Угловые скорость и ускорения в параметрах Родрига-Гамильтона
  14. Нестандартное введение в динамику твердого тела
  15. Движение несвободного твердого тела
  16. Свойства тензора инерции твердого тела
  17. Зарисовка о гайке Джанибекова
  18. Математическое моделирование эффекта Джанибекова


Введение


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

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


Интегрирование уравнений движения этой детской игрушки — одна из до сих пор не решенных задач механики...

Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность