Доклад о том, как мы добились идеально ровной балансировки нагрузки по кластеру из 200+ серверов, реализовали автоматический подбор весов и получили разброс CPU usage в 2,5% в пике трафика. Это позволило сэкономить нам около 40-50 серверов и улучшить время отклика мобильного сайта в пике нагрузки. Реализацию приведенного алгоритма мы выложим в open-sourсe. Доклад Юрия Насретдинова на Highload 2015.
Mihail Zachepilo - WebAssembly powered Machine LearningMaria Kuneva
Stop talking about WebAssembly specification, let's solve a problems using it! How to WebAssembly work and how we can use it to enhance Machine Learning in browser experience.
Доклад о том, как мы добились идеально ровной балансировки нагрузки по кластеру из 200+ серверов, реализовали автоматический подбор весов и получили разброс CPU usage в 2,5% в пике трафика. Это позволило сэкономить нам около 40-50 серверов и улучшить время отклика мобильного сайта в пике нагрузки. Реализацию приведенного алгоритма мы выложим в open-sourсe. Доклад Юрия Насретдинова на Highload 2015.
Mihail Zachepilo - WebAssembly powered Machine LearningMaria Kuneva
Stop talking about WebAssembly specification, let's solve a problems using it! How to WebAssembly work and how we can use it to enhance Machine Learning in browser experience.
При создании интерактивного мобильного или веб-приложений нужна серверная часть, которую будет использовать приложение и разработчик этого приложения. Он должен знать маршруты, по которым можно найти методы, их описание, входные параметры и варианты ответов.
В идеале хочется, чтобы из API можно было мгновенно сгенерировать клиентский код. А ещё реализация метода всегда может измениться, и нужно предусмотреть версионность, чтобы старые клиенты могли продолжать работать без ошибок.
Можно подумать, что реализация этого может занять месяцы, но я покажу, как реализовать это на ASP.NET Core за 20 минут.
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Fwdays
On this talk, we will share unusual back streets of ASP.NET MVC for increase performance:
- brief review of usual improvements
- fast and strong typed url generation
- increase Razor performance
Последовательная и параллельная загрузка, преимущества и недостатки. Разбираемся с основами сетей. Померим размер js файлов. Посмотрим на паттерны использования. Обратимся к основам программирования и базовым структурам данных. Разберёмся с механизмом пошаговой загрузки изображений. Напишем queue/sliding-buffer, посмотрим на девственно-чистый js/es2015.
Лицо разработчика — это качество его кода. А что может быть лучше, чем плавный интерфейс без глитчей. Разберемся, как рендерится UI, где возникают проблемы и как их лечить.
Лицо разработчика — это качество его кода. А что может быть лучше, чем плавный интерфейс без глитчей. Разберемся, как рендерится UI, где возникают проблемы и как их лечить.
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Ontico
HighLoad - новый взгляд на инфраструктуру центра обработки данных для современных нужд и приложений. Эволюция инфраструктуры датацентра. Как Facebook совершил “открытие” в железной инфраструктуре.
- Тенденции и принципы развития открытых платформ
Как крупный заказчик может заставить работать производителей железа в своих интересах и полностью уйти от зависимости от производителя;
- “Проблема импортозамещения” – видение и решения
Как уйти от порочной зависимости от производителя оборудования? Переработать, переосмыслить, открыть и заставить мировых производителей IТ-оборудования работать на себя на конкурсной основе.
- Открытые системы сегодня и завтра
Это заставило потребителей, производителей оборудования и разработчиков программного обеспечения совместно переосмыслить все аспекты эксплуатации и производства оборудования.
Примеры открытых систем, преимущества и недостатки:
- Facebook OCP. Проблемы, которые стояли перед Facebook и не решались эффективно известными компаниями лидерами IT-нфраструктуры:
-- Виртуальная программно-определяемая инфраструктура;
-- Максимальная унификация;
-- Сверхпреемственность и защита инвестиций;
-- Энергопотребление и тепловыделение;
-- Компактность и плотность платформ;
-- Обслуживание и ремонтопригодность;
-- Минимизация сервисных затрат.
"Как остаться в светлой памяти: доклад о том, почему наши приложения вылетают...Egor Petrov
В своих проектах мы часто забываем об out of memory error. Доклад посвящен причинам появления таких ошибок, механизмам контроля со стороны iOS, а также инструментам их отслеживания. Отдельно разберем, как бороться с потерей памяти превентивными мерами: работой с изображениями, контролем кэша, выгрузкой неиспользуемых экранов и другими. Такой доклад забыть не получится.
Первый доклад дня будет посвящён современным методам создания алгоритмов ЦОС, решению типовых задач обработки, а также преодолению таких трудностей, как обработка и визуализация потоковых данных, генерация специализированных сигналов, связь с контрольно-измерительным оборудованием.
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)Ontico
Сегодня термин "программно-определяемые сети" используется во множестве случаев — начиная с демонстрационных стендов с OpenVSwitch и заканчивая внедрениями распределенной программно-аппаратной оркестровки от профильных вендоров.
Разработка собственной модели сетевого транспорта и написание SDN обычно целесообразно и посильно лишь крупнейшим компаниям, но в нашем случае это также оказалось возможным, более того, SDN упростила взаимодействие с аппаратной начинкой кластеров и привела к снижению ее общей стоимости.
Мы хотим рассказать о практическом опыте разработки и использования полностью программной сети для клиентов публичного облака — от определения требований к функциональности такого решения до нюансов работы крупного отказоустойчивого SDN-кластера.
Лучшие практики для повышения надежности разрабатываемых вами систем начиная от организации командной разработки до автоматизации тестирования алгоритмов и применения формальных методов для доказательства отсутствия ошибок.
Agile Kitchen November 2013
Долгое время наша команда работала с собственным кодом, применяя различные методологии и подходы, писала качественный код и можно сказать жила в раю, но вот настал день, когда изменилось всё☺. Когда мы взяли на поддержку чужой объемный продукт и завязли по колено в легаси. Нам пришлось активно подключить наш agile mindset, чтобы изменить ситуацию и адаптироваться под новые условия. В общем, мы расскажем почему базовые практики того же scrum плохо работают с legacy, что нам пришлось изменить в команде и во взаимоотношениях со стейкхолдерами, и к чему это привело.
Ну а если вы еще сомневаетесь, то попробуйте ответить себе на пару следующие вопросов: приходилось ли вам брать на поддержку чужой продукт целиком с его непонятными правилами, устаревшим поведением, неработающим функционалом? Приходилось ли отвечать за него по SLA? Если хотя бы на часть из этих вопросов вы ответили да, то вам точно будет интересен наш доклад, в котором мы расскажем, как наша сплоченная команда выбиралась из этого ада.
При создании интерактивного мобильного или веб-приложений нужна серверная часть, которую будет использовать приложение и разработчик этого приложения. Он должен знать маршруты, по которым можно найти методы, их описание, входные параметры и варианты ответов.
В идеале хочется, чтобы из API можно было мгновенно сгенерировать клиентский код. А ещё реализация метода всегда может измениться, и нужно предусмотреть версионность, чтобы старые клиенты могли продолжать работать без ошибок.
Можно подумать, что реализация этого может занять месяцы, но я покажу, как реализовать это на ASP.NET Core за 20 минут.
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Fwdays
On this talk, we will share unusual back streets of ASP.NET MVC for increase performance:
- brief review of usual improvements
- fast and strong typed url generation
- increase Razor performance
Последовательная и параллельная загрузка, преимущества и недостатки. Разбираемся с основами сетей. Померим размер js файлов. Посмотрим на паттерны использования. Обратимся к основам программирования и базовым структурам данных. Разберёмся с механизмом пошаговой загрузки изображений. Напишем queue/sliding-buffer, посмотрим на девственно-чистый js/es2015.
Лицо разработчика — это качество его кода. А что может быть лучше, чем плавный интерфейс без глитчей. Разберемся, как рендерится UI, где возникают проблемы и как их лечить.
Лицо разработчика — это качество его кода. А что может быть лучше, чем плавный интерфейс без глитчей. Разберемся, как рендерится UI, где возникают проблемы и как их лечить.
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Ontico
HighLoad - новый взгляд на инфраструктуру центра обработки данных для современных нужд и приложений. Эволюция инфраструктуры датацентра. Как Facebook совершил “открытие” в железной инфраструктуре.
- Тенденции и принципы развития открытых платформ
Как крупный заказчик может заставить работать производителей железа в своих интересах и полностью уйти от зависимости от производителя;
- “Проблема импортозамещения” – видение и решения
Как уйти от порочной зависимости от производителя оборудования? Переработать, переосмыслить, открыть и заставить мировых производителей IТ-оборудования работать на себя на конкурсной основе.
- Открытые системы сегодня и завтра
Это заставило потребителей, производителей оборудования и разработчиков программного обеспечения совместно переосмыслить все аспекты эксплуатации и производства оборудования.
Примеры открытых систем, преимущества и недостатки:
- Facebook OCP. Проблемы, которые стояли перед Facebook и не решались эффективно известными компаниями лидерами IT-нфраструктуры:
-- Виртуальная программно-определяемая инфраструктура;
-- Максимальная унификация;
-- Сверхпреемственность и защита инвестиций;
-- Энергопотребление и тепловыделение;
-- Компактность и плотность платформ;
-- Обслуживание и ремонтопригодность;
-- Минимизация сервисных затрат.
"Как остаться в светлой памяти: доклад о том, почему наши приложения вылетают...Egor Petrov
В своих проектах мы часто забываем об out of memory error. Доклад посвящен причинам появления таких ошибок, механизмам контроля со стороны iOS, а также инструментам их отслеживания. Отдельно разберем, как бороться с потерей памяти превентивными мерами: работой с изображениями, контролем кэша, выгрузкой неиспользуемых экранов и другими. Такой доклад забыть не получится.
Первый доклад дня будет посвящён современным методам создания алгоритмов ЦОС, решению типовых задач обработки, а также преодолению таких трудностей, как обработка и визуализация потоковых данных, генерация специализированных сигналов, связь с контрольно-измерительным оборудованием.
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)Ontico
Сегодня термин "программно-определяемые сети" используется во множестве случаев — начиная с демонстрационных стендов с OpenVSwitch и заканчивая внедрениями распределенной программно-аппаратной оркестровки от профильных вендоров.
Разработка собственной модели сетевого транспорта и написание SDN обычно целесообразно и посильно лишь крупнейшим компаниям, но в нашем случае это также оказалось возможным, более того, SDN упростила взаимодействие с аппаратной начинкой кластеров и привела к снижению ее общей стоимости.
Мы хотим рассказать о практическом опыте разработки и использования полностью программной сети для клиентов публичного облака — от определения требований к функциональности такого решения до нюансов работы крупного отказоустойчивого SDN-кластера.
Лучшие практики для повышения надежности разрабатываемых вами систем начиная от организации командной разработки до автоматизации тестирования алгоритмов и применения формальных методов для доказательства отсутствия ошибок.
Agile Kitchen November 2013
Долгое время наша команда работала с собственным кодом, применяя различные методологии и подходы, писала качественный код и можно сказать жила в раю, но вот настал день, когда изменилось всё☺. Когда мы взяли на поддержку чужой объемный продукт и завязли по колено в легаси. Нам пришлось активно подключить наш agile mindset, чтобы изменить ситуацию и адаптироваться под новые условия. В общем, мы расскажем почему базовые практики того же scrum плохо работают с legacy, что нам пришлось изменить в команде и во взаимоотношениях со стейкхолдерами, и к чему это привело.
Ну а если вы еще сомневаетесь, то попробуйте ответить себе на пару следующие вопросов: приходилось ли вам брать на поддержку чужой продукт целиком с его непонятными правилами, устаревшим поведением, неработающим функционалом? Приходилось ли отвечать за него по SLA? Если хотя бы на часть из этих вопросов вы ответили да, то вам точно будет интересен наш доклад, в котором мы расскажем, как наша сплоченная команда выбиралась из этого ада.
В скором времени, Unity получит поддержку еще одной платформы — WebGL, что позволит запускать игры в браузере без каких-либо плагинов. Валентин покажет, как работает процесс паблишинга, подробно остановится на IL2CPP — внутренней разработке Unity, которая и делает всю основную магию, а так же расскажет о дальнейших планах внедрения этой технологии на другие платформы.
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Ontico
Выбор системы мониторинга - это практически holy-war-ная тема среди администраторов и разработчиков. Какая система лучше? Что удобнее? Какая система сможет выдержать большое количество статистики, а какая - лучше собрать и представить данные?
В своем докладе мы попробуем предельно непредвзято рассмотреть существующие решения и понять, что и когда можно использовать.
См. тезисы - http://rootconf.ru/2015/abstracts/1746
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Anton Baranov
Выбор системы мониторинга - это практически holy-war-ная тема среди администраторов и разработчиков. Какая система лучше? Что удобнее? Какая система сможет выдержать большое количество статистики, а какая - лучше собрать и представить данные?
В своем докладе мы попробуем предельно непредвзято рассмотреть существующие решения и понять, что и когда можно использовать.
Прежде всего, мы постараемся сделать доклад не сравнением feature-листов, а рассмотреть особенности практического применения разных систем для конкретной задачи - для сайта, который не должен падать (а точнее - для возможности оперативно отреагировать на аварию, понять что к ней привело, и как можно ее исправить).
ERP-системы в облаке: разбор кейсов DataLineDataLine
Рассматриваем реальные кейсы виртуализированных ERP-систем в ритейле, e-commerce и промышленности и изучаем "подводные камни" на примере Oracle E-Business Suite, SAP ERP и Microsoft Dynamics AX.
Все знакомы с различными способами ускорения загрузки страницы. Эта тема уже давно исследована. Но в обычной ситуации при выпуске новой версии сайта у пользователя сбрасывается кеш, и ему приходится заново загружать все статические ресурсы, что увеличивает время загрузки страницы. Как сделать так, чтобы пользователь скачивал только действительно изменившиеся ресурсы? В докладе речь идет о простом, но мощном опенсорсном инструменте borschik (https://github.com/veged/borschik), который поможет ускорить загрузку в условиях постоянных релизов.
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
HighLoad++ 2017
Зал «Рио-де-Жанейро», 8 ноября, 18:00
Тезисы:
http://www.highload.ru/2017/abstracts/2905.html
Прошло более года с того момента, как Microsoft выпустила первую версию своего нового фреймворка для разработки web-приложений ASP.NET Core, и с каждым днем он находит все больше поклонников. ASP.NET Core базируется на платформе .NET Core, кроссплатформенной версии платформы .NET c открытым исходным кодом. Теперь у С#-разработчиков появилась возможность использовать Mac в качестве среды разработки, и запускать приложения на Linux или внутри Docker-контейнеров.
...
Как правильно делать анимацию и добиться 60fps на различных девайсах | Odessa...OdessaFrontend
Анимация — неотъемлемая часть любого нынешнего веб-интерфейса. Виталий Калашников рассказывает про аппаратное ускорение анимаций, как использовать вычислительную технику при создании динамического веб-приложения. Как с его помощью заставить анимацию работать 60 кадров в секунду даже на мобильном устройстве и при этом не допустить падение браузера у пользователей. А также рассказывает про CSS vs JS анимации и сравнивает производительность.
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Yandex
Рассказ о том, что представляет собой наш «станок» верстальщика сегодня. Рассказывается с примерами, какие браузеры поддерживаем, как производим кроссбраузерное тестирование и какие инструменты используем, готовя проект к выходу в свет.
Similar to Moving from Flash to HTML5 – converting large projects (20)
The art of small steps, or how to make sound for games in conditions of war /...DevGAMM Conference
During a year of the war, our studio continues working and creating audio for video games. What helps us to stay productive and meet the deadlines under rocket attacks and blackouts? My short story is about choices and real steps which help us to adapt the mind and business to the new reality.
Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...DevGAMM Conference
Are you tired of being in a stagnant relationship with your game's audio system? Our team felt the same way, so we broke up with FMOD and started seeing Metasounds instead. We had to navigate some challenges during the transition, but we built custom editor scripts to automate certain processes, and we found that while FMOD made it easier to design sounds and music, Unreal provides fewer bugs. And while both Unreal Audio and Metasounds have their quirks, we decided to take matters into our own hands and build our own custom tools and features to make the workflow as efficient as we can.. Our bumpy journey from transitioning to Unreal Audio is not without any problems, but we feel like we are on the right track. We have the flexibility to create the sounds we want and take our game's audio to new heights. So if you're ready to break free from your boring audio engine, join us as we share our story of breaking up with FMOD and embracing the wacky world of Metasounds.
As "3D Audio" is rapidly becoming a sought out feature in games, it's no longer enough to just define a channel-based mix. The benefits of using Audio Objects quickly outshine having to squeeze all sounds into a fixed channel format, by delivering the best possible spatial precision no matter the output and can even be hardware accelerated with certain systems. In this talk, you'll get a quick introduction to the concept and benefits of Object-based Audio and then we'll go hands-on and create, edit and profile Audio Objects in Wwise.
Why indie developers should consider hyper-casual right now / Igor Gurenyov (...DevGAMM Conference
GameDev community has very mixed feeling about hyper-casual in general
Some admire it, majority don't understand and hates it
3 years ago it was really strange market filled with questionable people, low-quality projects and a lot of hype
Years have passed, industry matured, adequate business ethics established
And most important, this is not about mobile anymore!
Almost every publisher have PC (Steam) or Console department right now
They are porting successful mobile hits to our favourite platforms
Combine it with very fast passed and data driven production cycles, opportunity to try different staff on monthly or even weekly basis and you get perfect environment to apply your passion of making great games and predictable financial conditions
In this talk we'll cover the complexities of the AI/ML landscape and what that means for independent studios. We'll look at tools for image, text, video, and multimedia and how these tools could be used to help smaller studios stand out in a competitive landscape. We'll also explore the potential legal and ethical ramifications of utilizing these tools and provide a roadmap for how to navigate this tumultuous ocean of technology
Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...DevGAMM Conference
Agile processes have been widely adopted in software development for over a decade, but their adoption in game development studios is relatively new. In this talk, Epam Management experts Ganna Ivanicheva and Boris Lesun will discuss the benefits of adopting Agile processes in game development studios, drawing from their expertise and industry research. They will also explore the similarities and differences between software and game development processes, and common pain points studios face. Additionally, the speakers will delve into the acceleration of game development processes due to the adoption of artificial intelligence (AI).
New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...DevGAMM Conference
This session is jam-packed with valuable info. Explore the software that will make your life easier in PR, sales and other forms of outreach. Discover the latest software tools for finding emails, tracking replies, scheduling demos, and more. Explore AI-powered writing technology that will elevate your messaging. Leave with a wealth of options and practical tips to streamline your workflow and boost productivity
Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...DevGAMM Conference
Explore the world of playable ads and their impact on mobile gaming advertising. In this presentation, I'll walk you through the pros and cons of playable ads, providing insight into how they perform and how they can be used to gain and retain users. I'll also walk you through the technical details of creating and testing playable ads, and provide tools and tips on how to maximize their impact.
Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...DevGAMM Conference
Does managing an art team differ from managing any other team?
This speech is based on personal experience in managing an art team. It is a story about forging and sustaining a healthy and trusting atmosphere that allows artistic growth. It is about a collaborative team culture, clear communication, professional development, and alignment with project goals.
Discover how focusing on these areas has allowed us to create a space where personal goals can help achieve the project goals.
From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)DevGAMM Conference
Join Jan Kuhlmann, Marketing Manager for Europe at Xsolla, as he shares his expertise on taking your game to new heights. Discover the power of incorporating payments and direct-to-consumer strategies, and learn how to effectively connect with players globally. With Xsolla's fully customizable solutions, you'll have the tools to tailor your game to your players' specific needs, resulting in increased revenue and profitability.
Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)DevGAMM Conference
While CPI is rising and monetization is getting harder, mobile developers explore ways to leverage the full potential of in-app purchases. This session uncovers how to stand the competition by maximizing your in-app revenue with LiveOps at any stage of the product. You will get practical steps and real-life case studies from Balancy’s work with mobile game studios.
Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...DevGAMM Conference
What will we talk about today? - What App Store Optimizationion - Main mistakes done in App Store Optimization - How to make ASO work for app succes - How to use keyword promotion in combination with ASO
How to increase wishlists & game sales from China? Growth marketing tactics &...DevGAMM Conference
Author draws from the experience of providing marketing services for 10 game development studios, the majority of which are PC developers. Presentation is divided into 3 parts: - Chinese social media & distribution platforms introduction - logic behind selected tactics - case study: games we worked on, actions taken & most effective practices
Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)DevGAMM Conference
This time Zindhu's CEO will share more about Turkish gaming industry and its numbers. The salary ranges in Turkey, turn-over ratios, most popular reasons of turn-over and Game Studio insights diversified by genre, size and their performance
Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...DevGAMM Conference
When scaling up creative production, one of the biggest headaches is ensuring consistent quality, managing a higher volume of iterations, onboarding and training new team members, and handling unexpected challenges. In this discussion, we will explore real-life case studies that provide strategies for streamlining the scaling process while prioritizing mental well-being and maintaining quality standards.
Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...DevGAMM Conference
Are you struggling with LiveOps and can't seem to figure out what's going wrong? You're not the only one. In this talk, Alexander Devyaterikov, a game producer at Belka Games, will dive into the seven most common reasons why LiveOps isn't working and provide practical solutions to overcome these challenges.
The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...DevGAMM Conference
In this talk, we'll explore the power of music collaborations and how they can help reach and engage gameindustries’ audience. With music and games being among the most popular entertainments among the youthful demographic, so they make a perfect match. We'll share real-life examples of how games are using music collabs to captivate players and drive success. From game soundtracks to in-game events, we'll show how to use music to connect with audience in meaningful ways and turn it into essential tool for every developer and publisher.
Branded Content: How to overcome players' immunity to advertising / Alex Brod...DevGAMM Conference
Branded content is the ultimate tool for building strong emotional connections with players. Alex Brodsky will share success stories and explain how to extend and deepen game titles with compelling storytelling. Learn how to communicate with existing and potential audiences at a new level.
Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...DevGAMM Conference
Discover the story behind the impressive remastering of Chasm: The Rift, originally developed by Ukrainian developer Action Forms. In this talk, we unravel the challenges of reverse engineering, asset restoration, and game mechanic reconstruction. Learn how our team breathed new life into this cult classic, overcoming the absence of the original source code to create a captivating modern gaming experience. Witness video game preservation in action, as we celebrate and cherish digital heritage.
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...DevGAMM Conference
In the end of 2022 we hosted Midnight Show, a cinematic showcase event with announcements of our new projects. But before we started the broadcast, it was almost 2 years of preparations and development, two weeks of filming and lots of mistakes we made during production of this show and projects that were announced. In this talk Andrew, original author, director and producer of Midnight Show, will tell about its history and what you definitely shouldn't do if you come up with idea to make your own showcase event.
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...
Moving from Flash to HTML5 – converting large projects
1.
2. Плавный переход к HTML5
• 2 версии игры для тестирования пользователями
• Еженедельные апдейты в плановом порядке
• Возможность отключить HTML5 версию либо
ограничить ее использование
3. Варианты решения
• Переписать все с нуля
• Единовременная конвертация кода в язык, генерирующий и AS,
и JS код.
• Реализация Flash API на JavaScript и конвертера кода AS -> JS
7. Производительность клиента в
одинаковых условиях в зависимости от браузера
5
60
12
30
11
60
30
2220
40
0
10
20
30
40
50
60
70
Render time
(ms)
Fps Render time
(ms)
Fps
Chrome
Mozilla
Edge
PC1 PC2
8. RAM
Основная проблема – загрузка swf пакета ресурсов с
множеством [Embed]
[Embed(source = “img/0.png")] public var IMG_0:Class;
[Embed(source = "img/1.png")] public var IMG_1:Class;
[Embed(source = "img/2.png")] public var IMG_2:Class;
9. RAM
Варианты решения:
Грузить ресурсы отдельным
запросом при попытке доступа к
ним в приложении либо сразу
(минус – изначальное
переполнение)
Грузить ресурсы в упакованном
виде сразу и распаковывать
при первой попытке доступа к
ним
IMG_0:
IMG_1:
IMG_2:
IMG_0:
IMG_1:
IMG_2: IMG_0
10. Текст
На примере Google Сhrome:
- BitmapFont
- Векторизация шрифта
- Иногда помогает увеличение
текста в 2 раза, отрисовка его на
HTMLCanvas и отрисовка на
результирующий HTMLCanvas с
масштабом 0.5
11. GPU
Выключение hardware antialiasing дает до 50% производительности, но
приводит к угловатости кривых (скругленный прямоугольник)
Решение: рисовать линию как множество прямоугольников с
градиентом по бокам
12. GPU
Минимизация количества объектов типа ShaderProgram либо
их прекомпиляция уменьшит заметные лаги в Mozilla
Размер ресурсов на GPU можно снизить, если первый
BitmapData.copyPixels в (0,0) из атласа заменить рамкой в
исходном атласе, если есть уверенность в том, что исходный
объект BitmapData не будет меняться
13. GPU
Единовременная загрузка множества картинок из Embed
ресурсов может быть организована динамическим атласом,
если отрисовка картинок происходит подряд
Для этого на этапе сборки проекта необходимо
сгенерировать прямоугольники – будущие места картинок в
этом атласе.
14. Модификация рендерера
При >5000 объектов в дисплей листе большой процент по
загруженности CPU занимает перерасчет результирующих
трансформаций и границ
15. Решение
• Введем понятие камеры
• Трехуровневый кэш границ и трансформаций (локальные, мировые и
экранные)
• Камера врезается в дисплей лист на объекте, относительно которого
происходят минимальные изменения трансформации объектов (x, y,
width, height, rotation, …), и перерасчет происходит только у
экранных трансформаций