Pull to refresh
0
@maxpsyhosread⁠-⁠only

User

Send message

Разработка AI для пошаговой игры на Node.js (часть 2)

Reading time16 min
Views8.3K
И снова здравствуйте, друзья!

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

А я перейду к рассказу о следующем этапе работы!
Читать дальше →

Как сегодня создаются 64k intro: погружение в Immersion

Reading time14 min
Views25K
image


В декабре прошлого года мы наконец-то закончили наш проект. В этом видео показана наша последняя работа — четырёхминутная анимация «Immersion». Точнее, это запись того, что обычно называется 64k-интро. Но подробнее об этом чуть позже.


Работа над проектом заняла лучшие свободные часы последних двух лет жизни. Всё это началось во время проведения Revision 2015, большого мероприятия, устраиваемого каждый год в Германии во время пасхальных каникул. Мы вдвоём болтали по дороге из отеля в место проведения мероприятия. Предыдущим вечером уровень конкуренции в области 64kB intro оказался высоким. Очень высоким. Опытная и хорошо известная венгерская группа Conspiracy наконец вернулась с серьёзной, потрясающей работой. Наш лучший враг Approximate идеально успел по времени с завершением цикла выпуска и показал значительные улучшения в сторителлинге. Продуктивная группа Mercury обрела собственный зрелый стиль дизайна в интро, которое не оставляло сомнений в своей победе.

Игрофикация – игра как мотивация в бизнесе

Reading time5 min
Views37K


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

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

Вообще, игрофикация или геймификация — это когда игровые механики накладываются на что-то в реальной жизни. В СССР, например, были соревнования смен, доска с лучшими работниками и так далее — всё это хорошие добрые игры, когда работа идёт не ради плана, а ради того, чтобы доказать свою крутость или просто поучаствовать в процессе. Ещё примеры:
  • Хабр. Карма, рейтинг плюс наши бейджи и инвайты: они создают дополнительную мотивацию писать посты.
  • Террористы. На самой лекции также говорилось, что боевики в Аль-Каиде проходят несколько уровней своего рода игры, каждый из которых разблокирует новые возможности в организации.
  • Обучение. Там же приводился пример про школу, в которой все в начальных классах стали играть роли в экипаже космического корабля. Учиться стало интересно уже не потому что так надо, а потому, что это помогало проходить сюжет.
Читать дальше →

Игра на UWP: расширенный экран-заставка

Reading time21 min
Views5.5K
Привет, Хабр! Мы продолжаем нашу экспериментальную серию статей для программистов-самоучек, в которой Алексей Плотников, один из участников нашего сообщества Microsoft Developer, рассказывает о создании игры на UWP. Сегодня поговорим о расширенном экране-заставке. Не забывайте оставлять комментарии, вы можете повлиять на ход разработки.

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

Генерируем уровни для игры с помощью нейросетей

Reading time12 min
Views18K

Предисловие


За последние несколько лет прогресс в области искусственного интеллекта привёл к созданию методов машинного обучения на основе обучения представлениям (representation-learning) с несколькими слоями абстракции — так называемому «глубокому обучению». Общественное и медийное внимание было привлечено к этой области исследований благодаря древнекитайской настольной игре го. Несмотря на то, что сложность го часто сравнивают со сложностью самой жизни, программе AlphaGo, использующей глубокое обучение с подкреплением (deep reinforcement learning), удалось превзойти мирового чемпиона по го Ли Седоля. Удивительно, что исследования ИИ были использованы в играх и получили такое широкое общественное внимание. Стоит также заметить, что один из разработчиков AlphaGo, Демис Хассабис, был ведущим программистом Theme Park (1994 год) и ведущим программистом ИИ Black & White (2001 год). Игры и современный прогресс ИИ, возможно, имеют некую корреляцию.

Эта статья является постмортемом, отчётом о попытке нашей команды реализации генерирования уровней для Fantasy Raiders с помощью различных методов искусственных нейронных сетей. Раньше генерирование уровней было процессом кодирования знаний разработчика игры с помощью неких вероятностных техник. Однако для Fantasy Raiders мы написали программу, которая могла учиться и генерировать уровни на основании наших данных. Как нам кажется, в результате мы получили всего лишь ключ к решению задачи генерирования уровней, а не общее решение. Чтобы поделиться нашими открытиями с другими разработчиками игр мы хотим подробно рассказать о процессе наших исследований, от начала до конца.
Читать дальше →

Релиз Apache Ignite 2.4 — Distributed Database and Caching Platform

Reading time5 min
Views5K
12 марта 2018 г., спустя 4 месяца после прошлой версии, вышел Apache Ignite 2.4. Этот релиз примечателен целым рядом нововведений: поддержка Java 9, множественные оптимизации и улучшения SQL, поддержка платформой нейронных сетей, новый подход к построению топологии при работе с диском и многое другое.

Apache Ignite Database and Caching Platform — это платформа для распределенного хранения данных (оптимизированная под активное использование RAM), а также для распределенных вычислений в близком к реальному времени.

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

Примеры использования: быстрый распределенный кеш; слой, агрегирующий данные из разрозненных сервисов (например, для Customer 360 View); основное горизонтально масштабируемое хранилище (NoSQL или SQL) оперативных данных; платформа для вычислений и т.д.

Далее рассмотрим основные новшества Ignite 2.4.
Читать дальше →

Иллюстрированное руководство по устройству сети в Kubernetes. Части 1 и 2

Reading time6 min
Views61K
Прим. перев.: Автор статьи — Amanpreet Singh — называет себя «всё ещё начинающим в мире сетей», однако именно это и побудило его разобраться в их базовом устройстве в Kubernetes (который он использует в production), а затем — поделиться с сообществом очень доступным материалом с наглядными иллюстрациями. В оригинале он разбит на две части, однако в этом переводе мы объединили их в одну статью.



Вот вы запустили множество сервисов в кластере Kubernetes и пожинаете плоды… или хотя бы собираетесь это сделать. Однако, даже несмотря на существование ряда утилит для настройки кластера и управления им, вам всё же интересно, как всё работает «под капотом». Куда смотреть, если что-то сломается? По себе знаю, что это важно.
Читать дальше →

Мобильная 3D игра на Unity3D менее чем за 90 часов

Reading time11 min
Views95K
image Приветствую! Сегодня я расскажу вам о своем опыте разработки игры на Unity для платформы Android, менее чем за 90 часов, на примере создания простенького «раннера». В процессе повествования я затрону некоторые детали и ключевые этапы, с описанием всех возможных подводных камней и методов их решения. Данная история описывает процесс создания игры для мобильных платформ, начиная от концепции и заканчивая готовым продуктом. Надеюсь, она вдохновит вас на создание собственного проекта, либо поможет пролить свет на некоторые особенности движка Unity. Без лишних слов, приступим к делу!
Читать дальше →

ТЗ высокой четкости

Reading time6 min
Views58K
Я аналитик, который пишет непонятные ТЗ. Т.е. я пытаюсь писать очень понятные ТЗ. В целом, я слушаю клиентов, потом я слушаю разработчиков, потом голоса в своей голове. Зачем я говорю с ними? В общем, получается то, что получается. Ну вы поняли.



Написать идеальное ТЗ проще простого:

1. Договорился о минимальном этапе (на 2-4 недели).
2. Описал юзер-стори по шагам.
3. Составил список экранов будущей системы.
4. Прописал названия методов API и форматы данных.
5. Запросил тестовый контент и составил таблицы с тестовыми данными.
6. Сформулировал из всего этого цели и задачи.
7. Согласовал план работ и выставил задачи в таск-менеджер.

Но не тут-то было! Давайте я расскажу, как все происходит в реальной жизни, а также поделюсь своими лайфхаками, как я с этим справляюсь.
Читать дальше →

Познаём Нирвану – универсальную вычислительную платформу Яндекса

Reading time8 min
Views53K
Машинное обучение превратилось в модный термин, но при работе с большими объёмами данных оно уже много лет является жизненной необходимостью. Яндекс обрабатывает более 200 миллионов запросов ежедневно! Когда-то в интернете было так мало сайтов, что наилучшие из них помещались в каталог, а теперь за релевантность ссылок на страницы в выдаче отвечают сложные формулы, обучающиеся на новых и новых данных. Задача ложится на так называемые конвейеры, регулярные процессы, обучающие и контролирующие эти формулы.

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



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

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

Мы расскажем, с какими проблемами столкнулись при использовании предыдущего решения, опишем ключевые компоненты Нирваны и объясним, почему для платформы было выбрано именно такое название. А потом посмотрим на скриншот и перейдем к задачам, для которых полезна платформа.
Читать дальше →

Ох уж эти модальные окна или почему я полюбил render-функции в VueJs

Reading time19 min
Views54K
Привет всем!
Моя первая публикация прошла с неприятным осадком. Я обещал исправить это недоразумение и на ваш суд представляю свою первую статью-урок по VueJs. Надеюсь, она окажется полезной. Мыслей много, опыта тоже немало. Всю жизнь учусь по чужим статьям, урокам. Пришло время тоже делиться знаниями.
А будем мы творить модальные окна. Да опять они. Но не такие простые, как описаны в первой моей (не моей) публикации.

Много уже их создано для Vue. Пользовался всякими. И видимо, когда достигаешь какого-то определенного уровня владения инструментом (в данном случае Vue), сразу хочется сделать велосипед, но конечно со своими прибамбасами, типа, чтобы круче всех и т.д. И я не стал исключением из правил.

Из всех доступных модальных компонентов, использовал в основном этот — Vuedals.
Но решил я его проапгрейдить. В принципе от основы остался только EventBus и взаимодействие событий связанных с открытием-закрытием окон. Основной компонент переписан и стал оберткой-контейнером и добавлен новый компонент — само модальное окно.
Но обо всем по порядку. И статья получится очень немаленькая, кто осилит, тот красавчик :)
Читать дальше →

Анализ игр с HDR

Reading time8 min
Views43K

Последнюю пару недель я потратил на исследование HDR-картинки различных игр.

Когда речь идёт об SDR-видео, то вам должны быть знакомы значения RGB в интервале 0-255, где 0 представляет чёрный цвет, а 255 — белый.

HDR10 /Dolby Vision в этом плане немного отличается, не только потому, что использует интервал 0-1023, но и потому, что все эти значения данных представляют не просто чёрно-белый (или цветной) градиент, но и меру освещённости в нитах, то есть в единицах измерения яркости света.

В отличие от используемых в предыдущих видеоформатах значений, эти значения определены и абсолютны. Значение 0 всегда означает полное отсутствие света (полная чернота), значение 1023 всегда представляет 10000 нит освещённости, значение 769 всегда обозначает 1000 нит.

То есть если передать современному HDR-телевизору эти значения, он должен выводить точно такое количество света, которое описано заданным значением.

Эта система используется и в HDR10, и в Dolby Vision. Её могут называть HDR на основе PQ (PQ based HDR).

На сегодняшний момент есть не так много телевизоров с максимальным значением 10000 нит, вам повезло, если у вашего значение превышает 1500 нит.

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

Основы криптографии. Часть 0

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

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

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

Однако с подобным подходом возникает ряд проблем:

  • Сейф можно вскрыть болгаркой или иным силовым методом
  • Производитель сейфов может оставить обходную лазейку и получить доступ к содержимому

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

Уязвимости вашего приложения

Reading time20 min
Views27K

Актуальны ли ещё угрозы XSS? Прошло около 20 лет с тех пор, как Cross Site Scripting (XSS) появился как вид атаки. С тех пор мы получили богатый опыт и знания, защита наших сайтов стала намного сложнее, а многочисленные фреймворки были призваны оберегать нас от ошибок. Но последние данные показывают совсем другую картину: в первых кварталах 2017 года количество сообщений об XSS-атаках и количество найденных уязвимостей выросло в несколько раз.


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


Прототипом статьи является доклад на конференции HolyJS 2017 Moscow. Алексей — фронтенд-тимлид/архитектор в компании EPAM Systems и один из лидеров сообщества FrontSpot в Минске. Основные области профессиональных интересов: архитектура и инфраструктура приложений, управление разработкой.


В этом тексте огромное количество картинок со слайдов. Осторожно, трафик!

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

Почему люди не покупают вашу игру

Reading time10 min
Views21K
image

В постмортемах многих игр часто повторяется одно и то же клише. Оно всплывает и в разговорах с инди-разработчиками. Звучит клише примерно так: «Чёртовы потребители! Они каждый день тратят по пять баксов на один и тот же безвкусный латте из Starbucks, но не могут выделить ту же сумму на покупку моей созданной с любовью, графически красивой инди-игры, которую я, вложив душу, разрабатывал целых три года? Почему, почему люди не могут дать моей игре шанса?»

Да, выбор кажется очевидным: или один и тот же пережаренный кофе или поистине независимое творение мысли.

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

Нежелание покупателя тратить пять долларов на странную инди-игру связано с тем, что он не представляет, какая она. Хорошо ли она сделана? Как долго можно в неё играть? На что похожа эта игра? Но, что более важно — кто её сделал? В конце концов, нам, инди-разработчикам нужно преодолеть огромное препятствие: установить взаимоотношения с нашими игроками, чтобы они доверяли нам и покупали наши игры.

Сравнение: Docker swarm, Kubernetes, Rancher и D2C

Reading time4 min
Views34K

С того момента как мы начали вести корп. блог на Хабре, на демо и при обращениях в поддержку нас стали чаще сравнивать с оркестраторами. И если раньше были вопросы о том, в чем отличия D2C от Heroku, Clou66 и тому подобных сервисов, то теперь, видимо, нас стали рассматривать как альтернативное решение для оркестрации.


Чтож, попробую поправить ситуацию и провести сравнение с несколькими популярными решениями, о которых слышно чаще: Docker swarm, Kubernetes и Rancher. А чтобы зайти не «с конца», кратко дам по маленькому обзору на каждую из них.

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

Прототипирование на продакшн-технологиях

Reading time9 min
Views16K


В Яндекс.Деньгах мы сделали БЭМ-платформу основным инструментом дизайнеров для построения интерфейсов, дополнив ее всем необходимым арсеналом для масштабирования.

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

Разработка игр под NES на C. Главы 4-6. Рисуем персонажа

Reading time7 min
Views18K

В этой части рассмотрим работу с графикой: фон и спрайты персонажей.
<<< предыдущая следующая >>>

image
Источник


Что такое V-blank?


PPU — графический процессор — может или отправлять сигнал в телевизор, или получать информацию от процессора, но не одновременно. Так что единственное время для пересылки это V-blank, период кадрового гасящего импульса.


90% времени PPU отправляет пиксели в видеовыход, строка за строкой слева направо и сверху вниз. Внизу экрана делается пауза, и все повторяется снова. Это происходит 60 раз в секунду. Пауза после отрисовки кадра и есть V-blank. Это весьма короткий промежуток времени. В него реально вложить обновление 2-4 столбцов фоновых тайлов и обновление спрайтов. Обновление фона особенно критично для игр с прокруткой.

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

Создание атмосферного викторианского города из модулей

Reading time7 min
Views24K
Майкл Эндрюс рассказал, как он использовал модульный подход при создании красивого фрагмента выдуманного города; интересная работа с освещением и архитектурой.


Введение


Привет, меня зовут Майкл Эндрюс. Мне двадцать лет, я студент из северного Нью-Джерси. Сейчас я учусь на третьем курсе колледжа Чемплейн по специальности «игровая графика и анимация». Я специализируюсь на моделировании твердотельных пропсов, текстурировании и графике окружений. До недавнего времени я работал только над учебными проектами, создавал различные пропсы и окружения для развития моих художественных и технических навыков. Программа колледжа дала мне инструменты, необходимые для успешной работы после выпуска. Я только что окончил семестр в Монреале, где учился у Винсента Джойала (Vincent Joyal), который помог мне понять графику окружений и научил создавать достойные работы.

Проект


В начале каждого проекта я в первую очередь смотрю на общую картину и решаю, какие основные аспекты я хочу передать. Нынешняя моя работа основывается на концепте Джиорджио Греку (Giorgio Grecu). С самого начала я знал, что хочу передать масштаб и атмосферу картины. Я осознавал, что для меня этот концепт выделился на фоне остальных своим освещением, архитектурой и дымом/туманом. Передача этих аспектов стала основной сложностью проекта. Ещё одной существенной сложностью была компоновка переднего плана. Я решил не использовать в этой работе людей, потому что они сильно отвлекали бы зрителя от композиции. Эта проблема решилась добавлением новых уровней на плоскости земли в виде лестниц. Также я добавил скамейки, фонтан, ещё одну арку, мелкие листья и другие детали, которые сделали пространство более заполненным. Кроме переднего плана, серьёзной задачей было создание большого количества модулей и масштабность самой архитектуры. Потребовались считанные часы, чтобы сделать моделирование интересным и в то же время по-прежнему правдоподобным.
Читать дальше →

Как реклама помогла вспомнить забытый плагиат на Марио

Reading time2 min
Views16K
По телеку сейчас крутят рекламу. Я прислушался, и музыкальное сопровождения показалось мне знакомым.

Вот эту рекламу, кому интересно
Рекламируют не какой-то товар, а полезное дело, так что ее не противно смотреть



Откуда же оно? Что-то было такое… Да! Это была игра, которая на заре компьютерных развлечений вызвала столько же восторга, сколько и споров и скандалов, и эта мелодия именно оттуда!



Что же это за игра, неотличимая от Марио?
Читать дальше →

Information

Rating
Does not participate
Registered
Activity