What is the DAVAProject Folder?
my words sometimes mean things
It contains pictures from Blitz. Is it safe to delete?
And what about the runtime folder? What is that? And is that safe to delete?
I need to protect my computer from choppiness.
Delete the System32 folder, it has a lot of stuff in there that could slow your computer down
pls don’t, and if you’re unsure about the two folders in Blitz, just delete them. If anything goes wrong, you can just uninstall and reinstall
my words sometimes mean things
Delete the System32 folder, it has a lot of stuff in there that could slow your computer down
pls don’t, and if you’re unsure about the two folders in Blitz, just delete them. If anything goes wrong, you can just uninstall and reinstall
I know what the System32 folder does.
And only the DAVAProject Folder is for Blitz. The runtime folder I have no idea what it is.
Deleting the DAVAProject folder was a solution for some issues in 2.10:
ᵐʸ ʰᵉˢʰ ʷᶦᶫᶫ ᵖᶦᵉʳᶜᵉ ᵗʰᵉ ʰᵉᵃᵛᵉᶰˢ﹗
And what about the runtime folder? What is that? And is that safe to delete?
I need to protect my computer from choppiness.
. this is not how you go about accomplishing such a task.
if anything, just go whole hog and reinstall windows and only the apps you actually use
Everything you need to learn from on the forum is already written down eons ago. What’s left is a scattering of woe me hobos and wannabe Unis like me. Just do a search on the search bar, and soak up the knowledge from legends who have since moved on to Valhalla. All we can offer you is distilled regurgitation, or worse, incorrect advice.
Delete the System32 folder, it has a lot of stuff in there that could slow your computer down
pls don’t, and if you’re unsure about the two folders in Blitz, just delete them. If anything goes wrong, you can just uninstall and reinstall
As a person who majored in the field of technology and became a dermatologist, i can confirm this statement
my words sometimes mean things
. this is not how you go about accomplishing such a task.
if anything, just go whole hog and reinstall windows and only the apps you actually use
I don’t have that option, unfortunately.
This is technically my dad’s computer, and he has the CD and stuff. It was originally intended to be a family computer, and as a result, this computer has 5 users on it and a bunch of programs that get occasionally used by my parents. It sits in my room and I’m the user 98% of the time. I don’t have the luxury of flushing it clean like I do with my iPad.
Создание World of Tanks Blitz на базе собственного движка DAVA
Пролог
Эта история началась более трех лет назад. Наша небольшая компания DAVA стала частью Wargaming, и мы начали обдумывать, какие проекты делать дальше. Чтобы напомнить, каким был мобайл три года назад, скажу, что тогда не было ни Clash Of Clans, ни Puzzle & Dragons, ни многих очень известных сегодня проектов. Mid-core тогда только-только начинался. Рынок был в разы меньше сегодняшнего.
Изначально всем казалось, что очень хорошей идеей будет сделать несколько мелких игр, которые бы привлекали новых пользователей в большие «танки». После ряда экспериментов оказалось, что это не работает. Несмотря на отличные конверсии в мобильных приложениях, переход от мобильного телефона к PC оказывался пропастью для пользователей.
Тогда в разработке у нас находилось несколько игр. Одна из них носила рабочее название «Sniper». Основной геймплей-идеей была стрельба в снайперском режиме из стоящего в обороне танка, по другим танкам, которыми управлял AI и которые могли атаковать в ответ.
В какой-то момент нам показалось, что стоящий танк — это очень скучно, и за неделю мы сделали прототип мультиплеера, где танки уже могли ездить и атаковать друг друга.
С этого все и началось!
Когда мы начинали разработку “Снайпера”, то рассматривали технологии, которые тогда были доступны для мобильных платформ. На тот момент Unity был еще на достаточно ранней стадии своего развития: по сути, необходимых нам технологий еще не было.
Основной вещью, которой нам не хватало, был рендеринг ландшафта c динамической детализацией, что является жизненно необходимым для создания игры с открытыми пространствами. Было несколько сторонних библиотек для Unity, однако их качество оставляло желать лучшего.
Также мы понимали, что на C# мы не сможем выжать максимум из устройств, под которые мы разрабатываем, и всегда будем ограничены.
Unreal Engine 3 тоже не подходил по ряду похожих причин.
В итоге, мы решили дорабатывать свой движок!
Он на тот момент уже использовался в наших предыдущих казуальных проектах. Движок имел достаточно хорошо написанный низкий уровень работы с платформами и поддерживал iOS, PC, Mac, плюс были начаты работы по Android. Было написано много функциональности для создания 2D-игр. То есть, был неплохой UI и много всего для работы с 2D. В нем были первые шаги по 3D-части, так как одна из наших игр была полностью трехмерной.
Что у нас было в 3D-части движка:
Начало работ
Началось все с доказательства возможности отрисовать ландшафт на мобильных устройствах: тогда это были iPhone 4 и iPad 1.
После нескольких дней работы мы получили вполне функциональный динамический ландшафт, который работал довольно сносно, требовал где-то 8MB памяти и давал 60fps на этих устройствах. После этого мы начали полноценную разработку игры.
Прошло около полугода, и маленький мини-проект превратился в то, чем сейчас является Blitz. Появились совершенно новые требования: MMO, AAA-качество и другие требования, которые движок в его изначальном виде на тот момент уже не мог обеспечить. Но работа кипела полным ходом. Игра работала и работала неплохо. Однако производительность была средней, объектов на картах было мало, и, собственно, было множество других ограничений.
На этом этапе мы начали понимать, что фундамент, который мы заложили в движок, не выдержит пресса реального проекта.
Как все работало на тот момент
Вся отрисовка сцен была основана на простой концепции Scene Graph.
Основной концепции являлись два класса:
Первые шаги по улучшению ситуации
Для начала мы решили полечить проблемы с производительностью и сделать это быстро.
Собственно, сделали мы это, введя дополнительный флаг NEED_UPDATE в каждой ноде. Он определял, нужно ли такой ноде вызывать Update. Это действительно повысило производительность, но создало целый ворох проблем. Фактически код функции Update выглядел вот так:
Это вернуло нам часть производительности, однако началось много логических проблем там, где их не ждали.
LodNode, и SwitchNode — ноды, отвечающие, соответственно, за переключение лодов (по расстоянию) и переключение объектов (например, разрушенных и неразрушенных) — начали регулярно ломаться.
Периодически тот, кто пытался исправить поломки, делал следующее: отключал NEED_UPDATE в базовом классе (ведь это было простое решение), и совершенно незаметно FPS опять падал.
Когда код, проверяющий флаг NEED_UPDATE, был закомментирован раза три, мы, решились на радикальные перемены. Мы понимали, что сделать все сразу у нас не получится, поэтому решили действовать поэтапно.
Самым первым шагом было заложить архитектуру, которая позволит в перспективе решить все возникающие у нас проблемы.
Комбинирование компонентного и data-driven-подхода
Решением этой проблемы стал компонентный подход, комбинированный c data-driven подходом. Дальше по тексту я буду употреблять data-driven-подход, так как не нашел удачного перевода.
Вообще понимание компонентного подхода у многих людей самое разное. То же — и с data-driven.
В моем понимании, компонентный подход — это когда некая необходимая функциональность строится на основе независимых компонентов. Самый простой пример — это электроника. Есть чипы, у каждого чипа есть входы и выходы. Если чипы подходят друг к другу, их можно соединить. На базе такого подхода построена вся индустрия электроники. Есть тысячи разных компонентов: соединяя их друг с другом, можно получать совершенно разные вещи.
Основные плюсы этого подхода в том, что каждый компонент изолирован, и с большего независим. Я не беру во внимание тот факт, что на компонент можно подать неправильные данные, и плата сгорит. Плюсы этого подхода очевидны. Сегодня можно взять огромное количество готовых чипов и собрать новое устройство.
Что же такое data-driven. В моем понимании, это подход к проектированию программного обеспечения, когда за основу потока выполнения программы берутся данные, а не логика.
На нашем примере представим следующую иерархию классов:
Код обхода этой иерархии иерархически выглядит так:
В данной иерархии C++ наследования мы имеем три различных независимых потока данных:
Давайте представим, как это должно выглядеть в data-driven подходе. Напишу на псевдокоде, чтобы была понятна идея:
По сути, мы развернули циклы работы программы, сделав это таким образом, чтобы все отталкивалось от данных.
Данные в data-driven подходе являются ключевым элементом программы. Логика — лишь механизмы обработки данных.
Новая архитектура
В какой-то момент стало понятно, что надо идти в сторону Entity-based подхода к организации сцены, где Entity являлась сущностью, состоящей из многих независимых компонентов. Хотелось, чтобы компоненты были полностью произвольными и легко комбинировались между собой.
Читая информацию по этой теме, я наткнулся на блог T-Machine.
Он мне дал множество ответов, на мои вопросы, однако основным ответом было следующее:
• Entity не содержит никакой логики, это просто ID (или указатель).
• Entity знает только ID компоненты, которые ей принадлежат (или указатель).
• Компонент — это только данные, то есть. компонент не содержит никакой логики.
• Система — это код, который умеет обрабатывать определенный набор данных и выдавать на выходе другой набор данных.
Когда я понял это, в процессе дальнейшего изучения различной информации наткнулся на Artemis Framework и увидел хорошую реализацию этого подхода.
Исходники тут, если предыдущий линк не работает: Artemis Original Java Source Code
Если вы разрабатываете на Java, то очень рекомендую посмотреть на него. Очень простой и концептуально правильный Framework. На сегодняшний день он спортирован на кучу языков.
То, чем является Artemis, сегодня называют ECS (Entity Component System). Вариантов организации сцены на базе Entity, компонентов и data-driven достаточно много, однако мы по итогу пришли к архитектуре ECS. Сложно сказать, насколько это общепринятый термин, однако ECS значит, что есть следующие сущности: Entity, Component, System.
Самое главное отличие от других подходов это: Обязательное отсутствие логики поведения в компонентах, и отделение кода в системы.
Этот пункт очень важен в “православном” компонентном подходе. Если нарушить первый принцип, появится очень много соблазнов. Один из первых — сделать наследование компонентов.
Несмотря на гибкость, заканчивается обычно макаронами.
Изначально кажется, что при таком подходе можно будет сделать множество компонентов, которые ведут себя похожим образом, но чуть-чуть по-разному. Общие интерфейсы компонентов. В общем, можно опять свалиться в ловушку наследования. Да, это будет чуть лучше, чем классическое наследование, однако постарайтесь не попасть в эту ловушку.
ECS — более чистый подход, и решает больше проблем.
Чтобы посмотреть на примере, как это работает в Artemis, можете глянуть вот тут.
Я на примере покажу, как это работает у нас.
Главным классом контейнером является Entity. Это класс, который содержит массив компонентов.
Вторым классом является Component. В нашем случае, это просто данные.
Вот список компонентов, используемых у нас в движке, на сегодняшний день:
Третим классом является SceneSystem:
Функции RegisterEntity, UnregisterEntity вызываются для всех систем в сцене тогда, когда мы добавляем или удаляем Entity из сцены.
Функции RegisterComponent, UnregisterComponent вызываются для всех систем в сцене, тогда, когда мы добавляем или удаляем Component в Entity в сцене.
Также для удобства есть еще две функции:
Эти функции вызываются, когда уже создан заказанный набор компонентов с помощью функции SetRequiredComponents.
Например, мы можем заказать получение только тех Entities, у которых есть ACTION_COMPONENT и SOUND_COMPONENT. Передаю это в SetRequiredComponents и — вуаля.
Чтобы понять, как это работает, распишу на примерах, какие у нас есть системы:
В практически любой системе код выглядит следующим образом:
Системы можно классифицировать по тому как они обрабатывают объекты:
Соответственно, если есть желание можете заходить и смотреть на нашу имплементацию в деталях.
Учитывайте тот факт, что все писалось в реальном проекте, и, конечно, это не академическая реализация.
Планы на будущее:
Mainsale Ended: Soldout!
Join the first step of the decentralized avatar ecosystem.
Story
In the future, scientists revealed that the origins of the universe and humans were actually digital zeros and ones. Human beings started to upgrade their bodies with digital humanoids, and finite life has become a matter of choice. Medicine and religion disappeared, and humanity has expanded into space.
Human life soon became prosperous, but their individuality is gone, because everybody’s physical body became standardized into a similar appearance. It’s natural that they become obsessed with possessing and celebrating the finite and rare. Some of them were active in these activities, and used to gather items around the universe.
Soon, 0xdava quickly became famous and a popular place all over the universe. Now they are creating a membership called DAVA, and started various activities to make the entire universe a more beautiful and exciting place.
We make a decentralized avatar ecosystem.
We’re making an avatar that allows you to express yourself anywhere without being tied to a specific company or service. It can hold everything you need in a brand-new metaverse, like a 3D appearance, unique username, information, and assets. We’re building a sustainable ecosystem that rewards all participants on the blockchain.
Вечеринка в стиле Круэллы, Дава ведущий и гигантский торт: дочь Киркорова празднует юбилей
В Москве прошел праздник в честь юбилея Аллы-Виктории Киркоровой. На вечеринку приехал весь цвет российского-шоу бизнеса, которую для любимой дочери устроил поп-король.
За несколько дней до праздника Киркоров разослал всем приглашение, где указывалось: на мероприятие стоит приходить в стиле диснеевской героине Круэллы, которая очень понравилась Алле-Виктории. Она посмотрела фильм и даже стала сравнивать себя с героиней этой истории.
На мероприятии она появилась в знакомом наряде — в нем она уже блистала на «Модном приговоре». Поддержали ее гости и знаменитый отец: Филипп надел костюм из последней коллекции модного бренда.
В подмосковном особняке в этот вечер от звезд рябило в глазах: певица Зара, Ксения Собчак, Григорий Лепс, Ани Лорак с дочкой, Михаил Галустян. Ведущим мероприятия был рэпер Дава, а специальным гостем стал Даня Милохин — любимчик Аллы-Виктории.
По всему видно, что 10-летняя девочка выросла скромной: чувствовалось, как она стеснялась большого количества народа, но, когда увидела своего кумира тут же растаяла. Он подарил ей игрушку, а также вышел на сцену и исполнил несколько композиций.
«Как вчера помню, стою 10 лет назад на сцене, и объявляю: «У меня родилась дочь», — сказал растроганный Киркоров.
В подарок дочери и публике он исполнил свой новый хит авторства Андрея Резникова «Раненный» — композиция войдет в новую серию «Елок».
Технические проблемы в версии 2.10: FAQ
Уважаемые танкисты!
В обновлении 2.10 некоторые из вас столкнулись с техническими проблемами, и мы собрали возможные варианты решения некоторых из них, а также статусы решения этих проблем. Для нас очень важно, чтобы вам было комфортно играть в нашу игру, поэтому мы решили поделиться с вами информацией о решениях, которые были приняты по итогу выхода обновления 2.10 в отношении технических проблем.
| ► Win10/Mac увеличилась чувствительность мыши при зажатии ПКМ |









