Как ранее упоминали в наших статьях на Хабре, сейчас Social Quantum разрабатывает мобильный Survival Action RPG от третьего лица в зомби сеттинге. Мы поставили цель — подарить игрокам консольный фил, доступный на мобильных девайсах. Один из приемов, который для этого используем — система камер. В этой статье рассказываем, как реализовали её в Unreal Engine 4 на С++.
Вячеслав Боровик @borovikmotion
Пользователь
Случайные эволюционные стратегии в машинном обучении
8 мин
17KНейронные сети учатся совсем не так как люди. Оптимизация нейронной сети — на самом деле градиентный спуск по некоторой функции потерь , где переменными являются веса слоёв . Это очень мощный подход к подстройке системы, который применяется также в физике, экономике и многих других областях. На данный момент предложено немало конкретных методов градиентного спуска, но все они предполагают, что градиент хорошо себя ведёт: нет обрывов, где он скачкообразно возрастает, или плато, где он обращается в ноль. С первой проблемой можно разобраться при помощи gradient clipping, но вторая заставляет тщательно подумать. Кусочно-линейную или дискретную функцию нетривиально ограничить более приятной функцией
Как поступать в таких ситуациях?
Под катом много формул и гифок.
- во многих областях reinforcement learning (далее RL)
- в VAE с дискретными латентными переменными
- в GAN с дискретными генераторами
Как поступать в таких ситуациях?
Под катом много формул и гифок.
+48
Ошибки новичка Unity, испытанные на собственной шкуре
13 мин
157KПривет, Хабр. Это снова я, Илья Кудинов, QA-инженер из компании Badoo. Но сегодня я расскажу не о тестировании (этим я уже занимался в понедельник), а о геймдеве. Нет, этим мы в Badoo не занимаемся, разрабатывать компьютерные игры — моё хобби.
Профессионалы индустрии, не судите строго. Все советы в этой статье адресованы начинающим разработчикам, решившим попробовать свои силы в Unity. Многие советы можно отнести к разработке в целом, но я постараюсь добавить в них Unity-специфику. Если вы можете посоветовать что-то лучше, чем предлагаю я — пишите в комментариях, буду обновлять статью.
Я мечтал разрабатывать игрушки с детства. Наверное, уже в далёком 1994 году, когда мне подарили мою первую Dendy, я думал: “Как была бы здолава, если бы вот в этай иглушке было бы ещё всякое классное...” В средней школе я начал учиться программировать и вместе с товарищем делал свои первые играбельные поделки (ох, как мы их любили!). В институте мы с друзьями строили наполеоновские планы о кардинальном изменении индустрии с помощью нашей совершенно новой темы…
А в 2014 году я начал изучать Unity и наконец-то НА САМОМ ДЕЛЕ начал делать игры. Однако вот беда: я никогда не работал программистом. У меня не было опыта настоящей корпоративной разработки (до этого я всё делал “на коленке”, и, кроме меня, в моём коде никто бы не разобрался). Я умел программировать, но я не умел делать это хорошо. Все мои знания Unity и C# ограничивались скудными ещё на тот момент официальными туториалами. А мой любимый способ познавать мир — делать ошибки и учиться на них. И я наделал их предостаточно.
Сегодня я расскажу о некоторых из них и покажу, как их избежать (ах, если бы я знал всё это три года назад!)
Для того чтобы понять все используемые в материале термины, достаточно предварительно пройти один-два официальных туториала Unity. Ну, и иметь хоть какое-то представление о программировании.
Профессионалы индустрии, не судите строго. Все советы в этой статье адресованы начинающим разработчикам, решившим попробовать свои силы в Unity. Многие советы можно отнести к разработке в целом, но я постараюсь добавить в них Unity-специфику. Если вы можете посоветовать что-то лучше, чем предлагаю я — пишите в комментариях, буду обновлять статью.
Я мечтал разрабатывать игрушки с детства. Наверное, уже в далёком 1994 году, когда мне подарили мою первую Dendy, я думал: “Как была бы здолава, если бы вот в этай иглушке было бы ещё всякое классное...” В средней школе я начал учиться программировать и вместе с товарищем делал свои первые играбельные поделки (ох, как мы их любили!). В институте мы с друзьями строили наполеоновские планы о кардинальном изменении индустрии с помощью нашей совершенно новой темы…
А в 2014 году я начал изучать Unity и наконец-то НА САМОМ ДЕЛЕ начал делать игры. Однако вот беда: я никогда не работал программистом. У меня не было опыта настоящей корпоративной разработки (до этого я всё делал “на коленке”, и, кроме меня, в моём коде никто бы не разобрался). Я умел программировать, но я не умел делать это хорошо. Все мои знания Unity и C# ограничивались скудными ещё на тот момент официальными туториалами. А мой любимый способ познавать мир — делать ошибки и учиться на них. И я наделал их предостаточно.
Сегодня я расскажу о некоторых из них и покажу, как их избежать (ах, если бы я знал всё это три года назад!)
Для того чтобы понять все используемые в материале термины, достаточно предварительно пройти один-два официальных туториала Unity. Ну, и иметь хоть какое-то представление о программировании.
+61
Скелетная анимация в играх. Обзор техник и ресурсов
9 мин
96KAnima — это душа, отличающая живое от мертвого. Аристотелевская душа — это принцип движения, проявляющегося в четырёх видах: перемещение, превращение, убывание и возрастание. Спустя почти две с половиной тысячи лет мы используем те же категории в компьютерной графике. Скелетная анимация определяет перемещение, морфинг служит для превращений, а убывание и возрастание это обычное масштабирование. Анимированная графика оживляет образ, вдыхает в картинку душу, и это, на мой взгляд, даже важнее, чем достоверная игра света и тени.
Создание качественных скелетных 3D анимаций сегодня, пожалуй, самая труднодоступная для инди разработчиков задача. Вероятно поэтому так мало инди игр в 3D, и так много проектов в стилях пиксель арта или примитивизма, а также бродилок без персонажей в кадре. Но теперь это соотношение может измениться…
Создание качественных скелетных 3D анимаций сегодня, пожалуй, самая труднодоступная для инди разработчиков задача. Вероятно поэтому так мало инди игр в 3D, и так много проектов в стилях пиксель арта или примитивизма, а также бродилок без персонажей в кадре. Но теперь это соотношение может измениться…
+41
Интервью с ддосером или на чем зарабатывают вандалы
3 мин
45KПривет, Хабрахабр! Я независимый исследователь вредоносного ПО и безопасности. И пришла мне мысль, чтобы найти человека, предоставляющего услуги по ддосу и устроить ему интервью.
Именно это я и сделал. Прошу под кат, если интересно сколько зарабатывают такие люди, как это делают и вообще, зачем им это все надо.
Именно это я и сделал. Прошу под кат, если интересно сколько зарабатывают такие люди, как это делают и вообще, зачем им это все надо.
+59
Введение в систему 8pt сеток
4 мин
66KПеревод
Любому дизайнеру, над чем бы он ни работал — сайтами, журналами или мобильными приложениями, — наверняка приходилось слышать термин «сетка». Существуют сетки для всевозможных вариантов расположения контента. Мы применяем колоночные сетки, чтобы выстраивать контент по горизонтали, сетки базовых линий, чтобы выравнивать блоки текста по вертикали, гибкие (soft) и жесткие (hard) сетки — в зависимости от того, насколько строго собираемся их придерживаться. Я заинтересовался системой 8pt сеток, когда услышал, с каким увлечением говорит о ней Брин Джексон, и решил посмотреть, какие преимущества она может дать моим дизайнам (и может ли вообще).
+27
Как мы превратили $140 тысяч на Kickstarter в $40 тысяч долга, а затем вышли в ноль
7 мин
19KПеревод
Этот пост является 3-й частью статьи «Создание игры «The Contender» («Соперник»)»: концепция завершения". Здесь ссылки на часть 1 (как мы сделали игру) и часть 2 (как мы запускали проект на Kickstarter).
Есть два больших вопроса, которые должен задать себе каждый разработчик выходящий на Kickstarter с целью добиться успеха. Мы ответили на них неверно.
Я — Джон Тисдэйл. Мы с другом создали «The Contender» («Соперник»): игра на тему президентских дебатов. 9 сентября 2015 года мы собрали 127 827,01 долларов США на Kickstarter. Казалось бы — очень большие деньги, но лишь на этой неделе, 22-го ноября 2016 года, мы, наконец, расплатились с долгами. Прошло 440 дней работы после создания продукта и кампании на Kickstarter, прежде чем мы получили 1 доллар.
Мы не ожидали, что так будет.
Ниже приведены те самые два больших вопроса, наши ответы на них, сделанные в то далёкое время, и то, что мы узнали, в конечном счёте.
Есть два больших вопроса, которые должен задать себе каждый разработчик выходящий на Kickstarter с целью добиться успеха. Мы ответили на них неверно.
Я — Джон Тисдэйл. Мы с другом создали «The Contender» («Соперник»): игра на тему президентских дебатов. 9 сентября 2015 года мы собрали 127 827,01 долларов США на Kickstarter. Казалось бы — очень большие деньги, но лишь на этой неделе, 22-го ноября 2016 года, мы, наконец, расплатились с долгами. Прошло 440 дней работы после создания продукта и кампании на Kickstarter, прежде чем мы получили 1 доллар.
Мы не ожидали, что так будет.
Ниже приведены те самые два больших вопроса, наши ответы на них, сделанные в то далёкое время, и то, что мы узнали, в конечном счёте.
+24
Магия H.264
8 мин
102KПеревод
H.264 — стандарт сжатия видео. И он вездесущ, его используют для сжатия видео в интернете, на Blu-ray, телефонах, камерах наблюдения, дронах, везде. Все сейчас используют H.264.
Нельзя не отметить технологичность H.264. Он появился в результате 30-ти с лишним лет работы с одной единственной целью: уменьшение необходимой пропускной способности канала для передачи качественного видео.
С технической точки зрения это очень интересно. В статье будут поверхностно описаны подробности работы некоторых механизмов сжатия, я постараюсь не наскучить с деталями. К тому же, стоит отметить, что большинство изложенных ниже технологий справедливы для сжатия видео в целом, а не только для H.264.
+64
Математика на пальцах: мендосинский двигатель и теорема Ирншоу
9 мин
115KПостановка задачи
На днях я увидел на просторах интернета крайне любопытную вещь: мендосинский двигатель. Ротор на подшипниках крайне низкого трения: оригинальный имел стеклянный цилиндр, подвешенный на двух иголках, современные имеют магнитный подвес оси. Двигатель бесколлекторный, на роторе подвешены солнечные батареи, которые выдают напряжение на катушки, намотанные на роторе. Ротор проворачивается в фиксированном магнитном поле статора, солнечная батарея уходит от направленного света, на её место приходит другая. Крайне элегантное решение, которое вполне под силу сделать дома каждому.
Вот на этом видео крайне подробно описан (на русском языке) принцип работы:
Но ещё больше самого двигателя мне показалась любопытной следующая вещь. В описании этого видео Дмитрий Коржевский написал следующую вещь: «Боковую опору заменить магнитом НЕВОЗМОЖНО!!! Не задавайте больше этот вопрос!»
+96
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность