Рубрика «Discord» - 3

Что если разделение прибыли 30-70 перестанет быть стандартом геймдева? - 1

Геймдев — индустрия полная неопределенностей. На середине разработки игры могут поменяться движок, жанр, сюжет и сеттинг, но одно известно точно — когда игра выйдет, магазины заберут 30% прибыли.

70 на 30 — привычный стандарт, который, казалось, никто не собирался менять. С одной стороны его диктуют закрытые платформы, вроде игровых консолей или айфонов, с другой — свободный и открытый PC, где по факту тоже давно установилась монополия Steam. Только гиганты вроде EA и Blizzard могут позволить себе выпускать игры без него, но они протаптывают дорожки для себя и не ведут по ним других.

Но возможно с 2019 года стандарты начнут меняться.
Читать полностью »

Вражда, взаимная кража файлов, испытание на прочность серверов Nintendo – обычные вещи растущих сцен взлома и пиратства для Nintendo Switch

Подробности беспорядочной и тёмной стороны пиратских игр для Nintendo Switch - 1

Не было никаких шансов на то, что источник утечки удастся отследить. Кто-то, возможно, профессиональный автор обзоров игр, помог слить копию Diablo III, весьма ожидаемой игры для Nintendo Switch по меньшей мере за несколько дней до её официального выхода. Источник использовал посредника, выпустившего игру для распространения между пиратами.

Подход с сокрытием источника утечки при помощи посредника был правильным способом выпуска игр до их выхода, «до появления на улицах» – так написал один из пиратов, судя по логам чата частной группы, в которой состоят несколько десятков пиратов Nintendo Switch. Кто бы ни был источником, за последние несколько месяцев он выпустил и другие игры, включая и такие, что появились у пиратов за две недели до официального выхода. А в другом случае пираты смогли достать Dark Souls: Remastered, ещё одну сильно ожидаемую игру, портированную на Switch.
Читать полностью »

Как Discord одновременно обслуживает 2,5 млн голосовых чатов с помощью WebRTC - 1

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

В статье рассматриваются различных технологии, которые использует Discord для аудио/видеочатов.

Для ясности всю группу пользователей и каналов мы будем называть «группа» (guild) — в клиенте они называются «серверами». Вместо этого здесь термин «сервер» относится к нашей серверной инфраструктуре.
Читать полностью »

С самого начала Discord активно использовал Elixir. Виртуальная машина Erlang стала идеальным кандидатом для создания высокопараллельной системы реального времени, которую мы собирались создать. Первоначальный прототип Discord был разработан на Elixir; сейчас он лежит в основе нашей инфраструктуры. Задача и предназначение Elixir простые: доступ ко всей мощи Erlang VM через гораздо более современный и дружественный язык и набор инструментов.

Прошло два года. Сейчас у нас пять миллионов одновременных пользователей, а через систему проходят миллионы событий в секунду. Хотя мы абсолютно не сожалеем о выборе архитектуры, пришлось проделать массу исследований и экспериментов, чтобы добиться такого результата. Elixir — это новая экосистема, а экосистеме Erlang не хватает информации о её использовании в продакшне (хотя Erlang in Anger — это нечто). По итогу всего пути, пытаясь приспособить Elixir для работы в Discord, мы извлекли некоторые уроки и создали ряд библиотек.
Читать полностью »

Как Discord индексирует миллиарды сообщений - 1

Миллионы пользователей ежемесячно отправляют миллиарды сообщений в Discord. Поиск в этих сообщениях стал одной из самых востребованных функций, какие мы сделали. Да будет поиск!

Требования

  • Экономически эффективный: Основное взаимодействие пользователя с Discord — это наш текстовый и голосовой чат. Поиск — вспомогательная функция, и стоимость инфраструктуры должна отражать это. В идеале это значит, что поиск не должен стоить дороже, чем фактическое хранение сообщений.
  • Быстрый и интуитивно понятный: Все создаваемые нами функции должны быть быстрыми и интуитивными, в том числе поиск. Он должен выглядеть и ощущаться по высшему стандарту.
  • Самовосстановление: У нас нет отдела DevOps (пока), так что поиск должен выдерживать сбои с минимальным человеческим вмешательством или вообще без него.
  • Линейно масштабируемый: Как и с хранением сообщений, увеличение ёмкости поисковой инфраструктуры должно предусматривать добавление нодов.
  • Ленивая индексация: Не все пользуются поиском — мы не должны индексировать сообщения, пока кто-то не попытается хотя бы раз их найти. Вдобавок, после сбоя индекса должна быть возможность переиндексации серверов на лету.

Читать полностью »

Как Discord хранит миллиарды сообщений - 1

Discord продолжает расти быстрее, чем мы ожидали, как и пользовательский контент. Чем больше пользователей — тем больше сообщений в чате. В июле мы объявили о 40 млн сообщений в день, в декабре объявили о 100 млн, а в середине января преодолели 120 млн. Мы сразу решили хранить историю чатов вечно, так что пользователи могут вернуться в любой момент и получить доступ к своим данным с любого устройства. Это много данных, поток и объём которых нарастает, и все они должны быть доступными. Как мы это делаем? Cassandra!
Читать полностью »

Chrome 57 будет активно подавлять работу фоновых вкладок - 1

Ближайшие изменения в браузере Chrome вряд ли порадуют разработчиков Slack, Discord и других программ, которые работают во вкладках браузера. В бета-версии Chrome 56 реализован новый механизм оптимизации таймеров для фоновых вкладок.

На первый взгляд, инициатива разработчиков выглядит хорошим делом. В сентябрьском плане внедрения (Intent to Implement) объясняются причины, которые сподвигли разработчиков на такое решение.

Главная причина — некоторые плохо спроектированные приложения (например, скрипты аналитики и javascript-реклама) потребляют много ресурсов CPU, хотя находятся в фоновом режиме. Это негативно отражается на производительности браузера и потребляет энергию аккумулятора на мобильных устройствах. Такая обработка активности в фоновых вкладках совершенно ни к чему. Идея состоит в том, чтобы установить максимальный лимит вычислительных ресурсов, которые можно дать фоновому приложению.
Читать полностью »

Как Discord обрабатывает более 1 000 000 push-запросов в минуту с помощью Elixir GenStage - 1
Discord

Discord испытал небывалый рост. Чтобы справиться с ним, нашему отделу разработки досталась приятная проблема — искать способ масштабирования сервисов бэкенда.

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

Идеальный шторм: Overwatch и Pokémon GO

Этим летом наша система мобильных push-уведомлений стала скрипеть от нагрузки. Чат /r/Overwatch перевалил за 25 000 одновременных пользователей, а чат-группы Pokémon GO возникали повсеместно, так что внезапные всплески потока уведомлений стали серьёзной проблемой.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js