company_banner
  • Интервью с Александром Филипповым, Lead Game Designer World of Tanks Blitz

      14 и 15 мая мы будем участвовать в конференции DevGAMM, на которой будут выступать наши спикеры. И мы подумали, почему бы не разузнать у одного из них о бекграунде, опыте и работе над проектом World of Tanks Blitz, о котором пойдем речь в презентации. Что получилось из этого, читайте в интервью с Александром Филипповым, Lead Game Designer WOT Blitz.

      image
      Читать дальше →
    • Как стать толковым джуном: что делать, чтобы не завалить собеседование в IT-компанию

        Привет, меня зовут Кирилл Савченко. Уже 4 года я занимаюсь анализом данных, из них 2 года работаю руководителем департамента продуктовой аналитики World of Tanks. По образованию я инженер-программист.

        image
        Читать дальше →
        • –4
        • 6,7k
        • 1
      • Как устроен балансировщик команд в World of Tanks Blitz



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

          У танков есть следующие важные для матчмейкинга параметры:

          • Уровень. В зависимости от уровня, у танков меняются различные характеристики (например, скорость, бронепробитие). На 1-ом уровне — самые слабые танки, на 10-ом — самые сильные.
          • Тип. В WoT Blitz существует 4 типа танков: лёгкий, средний, тяжёлый и ПТ-САУ (противотанковые самоходные артиллерийские установки)

          Самая простая реализация матчмейкера — закидывание игроков в команды случайным образом. Но в данном случае у игроков на низких уровнях не будет никаких шансов нанести хоть какой-то урон, и играть станет неинтересно.
          Читать дальше →
        • WG Contract API: zoo of services



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

            Если хотите познакомиться поближе с тем как команда Wargaming Platform справляется со сложностью системы из более чем сотни взаимодействующих друг с другом web-сервисов, то добро пожаловать под кат.
            Читать дальше →
          • Wargaming Platform: Hello World

              WTF is Platform?


              В Wargaming есть отдельное подразделение, которое занимается… занимается разработкой некой «платформы» для издания игр. Объяснить, что такое Платформа, чем она является и не является, весьма сложно — но я попробую.


              Почему появилась статья


              Привет! Меня зовут Максим. И я тут работаю [в компании Wargaming].


              У нас есть отдельное подразделение, которые занимается… занимается разработкой некой «платформы» для издания игр. У меня и моих коллег есть желание рассказать вам о Платформе и ее внутренней «кухне»: кто мы, что мы делаем, какие технические решения принимаем, что у нас получилось, а что не очень. Я один из «старых» сотрудников этой команды, и в этой статье я хочу рассказать о том, как мы пришли к необходимости создания Платформы и основных этапах ее развития.


              Читать дальше →
            • Быстрое создания SELinux-модулей с помощью утилиты sepolicy

              • Tutorial
              В пакет policycoreutils-devel входит python-утилита sepolicy, которая сильно облегчает написание модуля. В этой статье мы рассмотрим процесс создания модуля для nmap с помощью этой утилиты.


              Читать дальше →
            • DataTalks #8: изучение пользователей

                Всем привет! 25 ноября в Минске состоялась восьмая встреча белорусского сообщества аналитиков DataTalks. В этот раз речь шла о том, как исследовать покупателей/игроков/клиентов и на основе полученных данных делать выводы, полезные для бизнеса и пользователей. В этот раз встречу посетили более 200 участников из Беларуси и России.

                Под катом вы найдете записи выступлений:

                — «Как быстро и просто исследовать продукт с помощью пользователей?» — Софья Чебанова, руководитель лаборатории исследования пользовательского опыта Wargaming.
                — «Как меняется покупатель?» — Валентин Соколовский, глава направления по работе с розницей Nielsen Belarus.
                — «Удовлетворенность пользователей: от индивидуального мнения к бизнес-решению» — Ирина Малова, руководитель отдела исследований Wargaming; Андрей Ярмола, руководитель отдела Data Science Wargaming; Екатерина Яворская, специалист отдела исследований Wargaming.
                — «Данные с человеческим лицом» — Амельков Александр, директор исследовательской компании Amelkov.by.
                — «Medtech и кросс-дисциплинарные проекты на стыке IT и профессиональной медицины» — Роман Громов, сoоснователь и соинвестор проектов Ariadna (computer assisted surgery) & ARRM.IO (gesture recognition platforms for mobile platforms).
                — «Мне не нужно мнение – я хочу знать, как ты себя поведешь: 10 способов улучшить интервью с пользователем» — Тамара Кулинкович, совладелец «Студии Сорокина и Кулинкович».


                Читать дальше →
              • Python Meetup 14.11.2017: Python в Порту, Aiohttp и снова тесты

                  Всем привет! После долгого перерыва, блудная питоновка снова в деле! 14 ноября состаялась очередная встреча минского сообщества Python-разработичков Python Meetup. В этот раз доклады представили:

                  — Как я нечаянно стал главным по питону в Порту / Роман Иманкулов, Doist
                  — The test which will save your day / Иван Стяжкин, DataRobot
                  — Django и Aiohttp / Юлия Темушева, Wargaming
                  — Блицдоклад: распространенные ошибки программирования на Python / Юрий Красовский

                  Записи выступлений вы найдете под катом.


                  Читать дальше →
                • Типографика и современный CSS

                  • Tutorial
                  Типографика и CSS

                  Пока некоторые CSS свойства, отвечающие за разного рода красивости (вроде filter, mix-blend-mode или transition) привлекают внимание всех и каждого, другие совсем мало освещаются в интернете. Взять хотя бы свойства, отвечающие за типографику. Они весьма полезны и эффектны, но широко не известны. Давайте же исправим несправедливость и осветим то, что обычно остается в тени.
                  Читать дальше →
                • Трансляция с геймдев-конференции 4C в Санкт-Петербурге. День первый

                    Привет, Хабр! Мы ведем текстовую трансляцию с первого дня геймдев-конференции 4С в Петербурге. Сегодня поговорим о тонкостях разработки игр, работе с аудиторией, монетизации VR и многом другом. Присоединяйтесь!

                    День второй - текстовая трансляция.

                    Читать дальше →
                  • Как мы ловим Deadlock`и на PostgreSQL и чиним их

                      Предисловие


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

                      Всё это неизбежно приводит к дедлокам. Так вот, хочу вам поведать историю о том, как мы эти периодические проблемы держим в допустимых рамках.


                      Читать дальше →
                    • 4C: Kyiv — конференция разработчиков видеоигр

                        23–24 сентября 2016 года состоится международная конференция разработчиков видеоигр 4C:Kyiv. Не важно, сколько проектов в портфолио вашей компании. Если вы живете играми — вам непременно следует посетить 4С: Kyiv.

                        4С: Kyiv — это два дня докладов и мастер-классов от 50+ экспертов игровой индустрии, выпустивших в релиз не одну легендарную игру. Участники услышат выступления Криса Тейлора (создателя Totall Anihilation), Чета Фалисзека (сценариста Half-Life и Portal), Рейнира Хардарсона (креативного директора EVE Online), Эрика Симонича (креативного директора Alan Wake и Evolve), а также других авторитетных разработчиков.

                        Подробности под катом.


                        Читать дальше →
                      • PostgreSQL. Как правильно хранить котов или история одной миграции

                          История взята из реального проекта. Но поскольку реальный проект слишком скучный (и под NDA), в этой статье используется упрощенный пример.

                          Жил-был один проект. И была у него база данных. И была в базе таблица для хранения, ну, скажем, котов. Вот такая:
                          CREATE TABLE cats (
                              id serial,
                              cname varchar(20),
                              ctype varchar(20),
                              primary key(id)
                          );
                          

                          Все довольно просто: у каждого кота есть id, имя и некий тип.

                          Конечно, у нас были бизнес-требования к котам и их типам. Например, мы точно знали, что у нас есть типы big furry, neko и sudden danger. Предполагали, что могут появиться типы long tail и sleeper-eater. Но мы ожидали, что требования будут меняться. И пока не известно, какие в итоге понадобятся типы. Поэтому использовали тип данных varchar(20).
                          Читать дальше →
                        • Лучшие выступления WGDF

                            Всем привет! Этой весной в Санкт-Петербурге состоялась West Game Development Forum — международная конференция, посвящённая разработке игр и всему, что с ней связано. Участники WGDF услышали более 40 докладов о разработке, геймдизайне, маркетинге, дизайне, юзабилити и тестировании в видеоиграх класса ААА. Своим опытом и знаниями поделились эксперты из компаний с мировым именем: Wargaming, Blizzard Entertainment, Rockstar Games, Remedy Entertainment, Unity Technologies, Autodesk и др.



                            И теперь мы бы хотели поделиться записями лучших докладов с хабровчанами. Под катом вы найдете выступления:
                            • Blending Eastern and Western Development Cultures / Thaine Lyman / WoTs PC Executive Producer, Wargaming
                            • Through the Grinder: Refining Diablo III's game systems / Wyatt Cheng / Technical Game Designer, Blizzard Entertainment
                            • Five Questions to Ask Everyday: The fun-damentals of strong game design / Alexander Brazie / Game Design Consultant
                            • Leadership Traits Your Company Should Have (and you can teach yourself!) / Keith Fuller / Leadership Consultant, Fuller Game Production
                            • Мотивация и эмоциональные потребности игроков / Надежда Иванова / IXD Researcher, Wargaming
                            • Разработка идей в условиях высокой неопределенности / Никита Денисов / Senior Game Designer, Wargaming


                            Приятного просмотра!
                            Читать дальше →
                          • Open WG Talk #3: Новые процессы и продуктовое управление

                              В минском офисе Wargaming регулярно проходят встречи, на которых сотрудники компании делятся опытом и обсуждают насущные вопросы, волнующие разработчиков, менеджеров, дизайнеров, продюсеров, художников – словом, всех тех, кто работает в IT и геймдеве. Эти митапы мы называем WG Talk и проводим в закрытом формате, только для сотрудников компании.
                              Но есть темы и знания, которыми нельзя не поделиться с широкой аудиторией. Поэтому мы организуем Open WG Talk.

                              Сегодня мы хотим поделиться с вами видеозаписями выступлений последнего Open WG Talk, темой которого стало продуктовое управление и внедрение новых процессов. Под катом вы найдете доклады Сергея Бережного, директора разработки Wargaming, и Ярополка Раша, руководителя медиасервисов Wargaming.



                              Приятного просмотра!
                              Читать дальше →
                            • Python: строим распределенную систему c PySyncObj

                                Представьте, что у вас есть класс:
                                class MyCounter(object):
                                    def __init__(self):
                                        self.__counter = 0
                                    def incCounter(self):
                                        self.__counter += 1
                                    def getCounter(self):
                                        return self.__counter
                                

                                И вы хотите сделать его распределённым. Просто наследуете его от SyncObj (передав ему список серверов, с которыми нужно синхронизироваться) и отмечаете декоратором @replicated все методы, которые изменяют внутреннее состояние класса:
                                class MyCounter(SyncObj):
                                    def __init__(self):
                                        super(MyCounter, self).__init__('serverA:4321', ['serverB:4321', 'serverC:4321'])
                                        self.__counter = 0
                                    @replicated
                                    def incCounter(self):
                                        self.__counter += 1
                                    def getCounter(self):
                                        return self.__counter
                                

                                PySyncObj автоматически обеспечит репликацию вашего класса между серверами, отказоустойчивость (всё будет работать до тех пор, пока живо больше половины серверов), а также (при необходимости) асинхронный дамп содержимого на диск.
                                На базе PySyncObj можно строить различные распределенные системы, например распределенный мьютекс, децентрализованные базы данных, биллинговые системы и другие подобные штуки. Все те, где на первом месте стоит надёжность и отказоустойчивость.
                                Читать дальше →
                              • Грязные трюки мобильной разработки от J2ME до Android

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


                                  Читать дальше →
                                • Мартовский Python Meetup: Python VS Erlang и возможности PostgreSQL

                                    Всем привет!
                                    После долгого перерыва блудный Python Meetup снова с нами. На долгожданной мартовской встрече сообщества любителей и профессионалов языка программирования Python обсуждались животрепещущие темы: противостояние Python и Erlang, а также дополнительные возможности PostgreSQL.
                                    Видеозаписи выступлений под катом. Приятного просмотра!

                                    Читать дальше →
                                    • +9
                                    • 10,7k
                                    • 3
                                  • Erlang в Wargaming

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

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

                                      В компании Wargaming Erlang применяется более 3 лет. Есть около десятка разработчиков и несколько проектов, работающих под большими нагрузками. И в этой статье мы поделимся своим опытом и видением Erlang.


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

                                    Самое читаемое