forge of empires скрипт

FOE Utility

splat

Оруженосец

Остальные разделы закреплены к основному окну программы и могут быть открыты только в случае необходимости. Пользоваться разделами стало гораздо проще и удобнее.

forge of empires скрипт

Раздел «Вклады в ВС»

forge of empires скрипт

Раздел «Калькулятор попыток ЭГ и СО»

forge of empires скрипт

Будильник грабежей позволить вам не пропустить ваше очередное ограбление соседа.

Укажите # соседа и время напоминания, после чего добавьте его в список грабежей.
Для изменения уже существующего элемента в списке выделите его, укажите следующее время срабатывания и нажмите «Изменить».
Выбранный элемент также удаляется по соответствующей кнопке.

forge of empires скрипт

В указанное время вы получите оповещение нажав на которое откроется ваш браузер по умолчанию с ссылкой на игру.

forge of empires скрипт

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

Внимание. Напоминания работают только при включенной программе.

При вводе количества попыток ЭГ и СО значение медалей и монет рассчитываются автоматически. При обратном подсчете необходимо нажать кнопку обновления.

forge of empires скрипт
forge of empires скрипт

forge of empires скрипт

forge of empires скрипт

forge of empires скрипт

forge of empires скрипт

forge of empires скрипт

forge of empires скрипт

forge of empires скрипт

forge of empires скрипт

Скачать файлы можно по ссылке (обновлено 23.04.2021): https://dropmefiles.com/h71iN

Устанавливать ничего не требуется. Для запуска достаточно распаковать архив в любое место на ПК.
Предыдущую версию программы необходимо удалить! Вирусов нет!

Найденные ошибки, а так же ваши пожелания для дальнейшей разработки оставляйте в комментариях или на почту: foeutility@gmail.com

Всем спасибо! Ваши замечания и пожелания помогают учить и разбираться в материале.

forge of empires скрипт

MIP-ZmeY

Император

Вторая часть бесполезна тем фактом что дробными продажами замарачиваться редко кто из торговцев будет.
Да и если у Вас есть товар данной эпохи значит Вам проще наменять его чем покупать за сошки
Ну и собственно снова огрызок калькулятора, а именно в «сухом остатке» вычитание и сложение!

ИТОГ: люди в простом Экселе делают более понятные и функциональные вещи!
А подобного уровня программками мы с ребятами баловались еще в 2003-2005 годах (когда закончили начальные 4 года школьного обучения)

Источник

Чит на бриллианты FoE

Чит на бриллианты Forge of Empires – это тот самый способ, который ищут многие игроки FoE, позволяющий получить множество бриллиантов, не вкладывая денежных средств. Почему-то многие уверены, что если ввести на компьютере некий код или запустить скрипт, то количество бриллиантов в Forge of Empires увеличится само собой. На самом деле, такого никакого такого кода, конечно же, не существует, однако в игре есть множество способов получить бриллианты честным путем. В данной статье будут рассмотрены основные из них.

Что такое бриллианты в FoE

Бриллианты – это особый ресурс, позволяющий упростить различные задачи в игре, например, вы можете:

Способы заработка бриллиантов в Forge of Empires

140 рублей за 110 бриллиантов (доступно при оплате через SMS).

Прежде чем перейти к остальным способам получить бриллианты в Forge of Empires, необходимо сделать небольшое отступление и рассказать об одной особенности игры. Дело в том, что в FoE можно развиваться на нескольких серверах, причем, на каждом из них у вас будет отдельный город со своими технологиями, ресурсами и Великими строениями. Однако если количество монет, «молотков» и товаров на разных серверах абсолютно не связано друг с другом, бриллиантовый счет всегда будет единым, что позволяет создавать в FoE дополнительные миры, которые будут использоваться для заработка бриллиантов для основного города. Такие «допы» получили название брюлефермы.

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

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

Для увеличения числа бриллиантов, получаемых таким способом, очень важное значение имеет Великое строение Шато-Фронтенак (или просто Шато). Оно увеличивает получаемую награду на определенное количество процентов, в зависимости от уровня. Так на 20 уровне ВС увеличивает получаемую награду вдвое.

forge of empires скрипт

Вероятность получения бриллиантов в сундуках такова:

Обычно именно из таких зданий и создаются так называемые брюлефермы – своего рода чит на бриллианты в Forge of Empires. Если вы хоть раз заходили в город игрока, где нет практически ничего, кроме множества колодцев желаний, вы знаете, как выглядит ферма для фарма бриллиантов. Подробнее ее создание мы рассмотрим ниже.

Некоторые игроки «приглашают» по ссылке самих себя и развивают собственных мультов. Однако, в отличие от некоторых браузерных игр, разработчики Forge of Empires относятся к мультоводству крайне негативно, и в какой-то момент вы будете забанены.

forge of empires скрипт

Не чит на бриллианты, а создание брюлефермы в FoE!

Брюлеферма – это основной способ фарма бриллиантов в Forge of Empires, причем, абсолютно легальный и одобряемый разработчиками, не возражающими против того, чтобы игроки развивались в разных мирах, но тратили премиальный ресурс только в основном.

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

Наиболее удобный способ добычи бриллиантов – это постоянный сбор с вышеназванных строений (колодец, фонтан молодости и лабиринт из живой изгороди). Хотя вероятность «выбить» с них бриллианты составляет всего 1%, если установить в городе несколько десятков таких зданий, то шанс на их получение заметно увеличится. Поэтому основной задачей при создании брюлефермы является установка в ней множества колодцев и фонтанов молодости.

Строения, с которых можно получить бриллианты, выдаются игрой во время различных ивентов. Однако создавать новый мир во время необходимо заблаговременно (хотя бы за месяц) до начала события, иначе вы просто не сможете выполнить многие квесты: например, у вас не хватит монет, чтобы купить сошки, в таверне не будет серебра, чтобы активировать усиление, а армия окажется слишком слаба, чтобы пройти точки в экспедиции.

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

После того, как вы получите первые 2-3 колодца, можно сказать, что ваша брюлеферма начала свою работу. Теперь вы можете заходить в свой дополнительный город раз в сутки и собирать то, что произведут колодцы.

Для увеличения наград за квесты следует поставить такое Великое строение как Шато-Фронтенак, оно уже было упомянуто выше. Это ВС относится к эпохе Прогрессивизма, поэтому товары для его возведения понадобится купить у кого-то из топовых игроков. Искать продавца можно в глобальном чате. Желательно найти того, кто предложит товар в обмен на СО для вклада в тоже Шато, чтобы получить и товар, и чертежи ВС одновременно.

Строить или нет другие Великие Строения, смотрите по обстоятельствам – наличию чертежей, места в городе. Если вы планируете зарабатывать бриллианты не только с квестов, но и с прохождения экспедиций, ставьте ВС с бонусом к атаке – Зевс, Ахенский собор и Кастель. Особое внимание следует обратить на Зевса, так как собрать чертежи на него достаточно просто. Кастель, помимо прибавки к атаке дает определенное количество СО в сутки, однако набирать для него чертежи несколько сложнее.

Для товара, который может понадобиться для открытия некоторых технологий или квестов в ивенте, поставьте Вавилонскую башню (Бронзовый век, очень легко собрать чертежи) или Собор Святого Марка. Это гораздо удобнее, нежели множество промышленных строений, которые, к тому же, можно ограбить.

То, как часто вы будете апать эпоху, решайте сами. Чем выше эпоха, тем опаснее (опытнее и активнее) там соседи и тем чаще вас будут грабить, заметив, что ваш мир не является основным. Сложнее становятся и круговые квесты, которые необходимо выполнять.

Вот пример брюлефермы из Железного века:

forge of empires скрипт

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

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

Конечно, такой способ фарма — это не полноценный чит на бриллианты в Forge of Empires, однако фармить определенное количество данного премиального ресурса она вполне позволяет. А то, сколько бриллиантов можно заработать таким образом, зависит только от вас.

Источник

FOE informer

Бот для Forge of empires

Foe informer — это простая в работе программа, значительно облегчающая игру.

На данный момент существует две версии программы, «Architect» и «Autobot».

«Architect»- версия для гильдий, а точнее для того, кто в гильдии считает вклады в фундаменты ВС (Великих Строений). Позволяет за пару кликов увидеть, кто вложился в определенное ВС, а кто нет.

«Autobot»- бот для Forge of Empires, автоматизирует игровой процесс на время вашего отсутствия. ( программу вы используете на свой страх и риск. )

Кратко о возможностях

Видео с кратким описанием и демонстрацией «Autobot», «Architect»

Условия приобретения

Для приобретения данной программы вам нужно оплатить ее стоимость, в зависимости от версии, по средствам «Яндекс денег», отправить письмо на e-mail: foeinformer@gmail.com, в котором указать желаемую версию, реквизиты платежа, и свой ник в игре, к которому и будет привязана программа. Ник нужно указывать точно, самостоятельная смена ника в программе НЕВОЗМОЖНА. В течении 2-3 дней, ответным письмом, Вы получите ссылку для скачивания архива с программой.

Стоимость указана за программу, привязанную к ОДНОМУ аккаунту.

Версия «Architect»- 500р.

Версия «Autobot»- 1000р.

Номер яндекс кошелька: 410015011285869, визитка яндекс

Демоверсия.

Мы сделали демоверсию, полнофункциональную, но ограниченную по времени до 13.01.2018г. (обновлен 17.12.2017)

Обновления

Скачайте файл «update.dat», поместите его в папку с программой. Программа автоматически обновится при запуске. Файл «update.dat» после обновления пропадет.

Скриншоты

forge of empires скрипт
forge of empires скрипт

Контакты

Предложения по добавлению функционала, отзывы, пожелания и коменты, вы можете писать на e-mail, в группу ВК, на канале ютуба.

Программа Foe informer может делать за вас почти все и делать это круглосуточно, но она не заменит вам общения с другими игроками, приятных эмоций после ограбления соседа и захвата сектора на глобальной карте 🙂

Версия «Architect» не противоречит правилам игры, т.к. не дает никаких игровых преимуществ. Хотя зная не понаслышке о работе «уважаемых» админов, не стоит громко в чате кричать о ее использовании, для них слово «программа» как красная тряпка… хлебом не корми, дай забанить…

Версия «Autobot» не является читом. не добавит игровых или премиумных ресурсов, эта версия только автоматизирует игровой геймплей. Поэтому противоречит правилам игры и за ее использование, при условии, что вы об этом будете кричать налево и направо, можно получить перманентный бан 🙂

Источник

Х*ли и бан от Forge of Empires, поржем

Никого не оскорблял, никого не обижал, поведение было нормальным, за столько лет в игре

думаете меня с таким поведением не забанили бы? Прошу пересмотреть повторно, в случае

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

Вы нарушили §3 «Правил игры» : Запрещается употреблять мат (равно как и завуалированный)

«23:21: : ну а х*ли, я же всю жизнь ее терплю»

С уважением, Ольга Комьюнити менеджер Команда Forge of Empires

что, чего, почему, зачем, с какой целью; какой смысл

что, что толку, нечего

а ты как думал, а вы как хотели, а вот так!, ну и что!

что, чего, какого чёрта

ещё бы, что тут скажешь, одно слово, иначе и быть не может, сам посуди, ясно; ясен пень

Берем Синонимы и начинаем подставлять, не ВЫДЕРГИВАЯ ИЗ КОНТЕКСТА!

23:21: : ну а что, я же всю жизнь ее терплю

23:21: : ну а чего, я же всю жизнь ее терплю

23:21: : ну а фиг ли, я же всю жизнь ее терплю

23:21: : ну а чего, я же всю жизнь ее терплю

23:21: : ну а что толку, я же всю жизнь ее терплю

23:21: : ну а нечего, я же всю жизнь ее терплю

23:21: : ну а ты как думал, я же всю жизнь ее терплю

23:21: : ну а почему, я же всю жизнь ее терплю

23:21: : ну а вы как хотели, я же всю жизнь ее терплю

23:21: : ну а какого чёрта, я же всю жизнь ее терплю

23:21: : ну а ещё бы, я же всю жизнь ее терплю

23:21: : ну а что тут скажешь, я же всю жизнь ее терплю

23:21: : ну а посуди, я же всю жизнь ее терплю

И где здесь мат или оскорбления? Это частица, также вопросительное слово; неизменяемое.

Фразеологизмы и устойчивые сочетания

даже разные корни. Встречаются также варианты написания и произношения: хуле, хуль, хуля.

Семантику и родство надеюсь расписывать не надо?

Вырезка со статьи 4 линк в яндексе:

Сейчас сленг молодёжи пополняется всё новыми и новыми словами и жаргонизмами,

например Хипстер, Битник, Хикка и т. д. Некоторые слова кардинально меняют свой смысл,

междометие, вводное слово, наречие, употребляется в качестве связки между словами, а

также являются заменой таких слов, как «что», «что же», «это надо понимать», «а как же»,

Т.Е, я получил БАН за междометие? Комьюнити менеджер Ольга мне долго вас учить

Я прекрасно знаю русский язык, поэтому даже не начинайте.

Ответ Вам был дан выше.

С уважением, Ольга Комьюнити менеджер Команда Forge of Empires

Новый Я этого не заметил. Тогда ответьте на такой вопрос: Кого я оскорбил и как? Но я так

понимаю тут бесполезно спорить.

Дубликаты не найдены

«Хули» это не оскорбление, но все же мат.

Так что как в анекдоте:

Подходит как-то индеец к своему вождю и жалуется:

— Hу почему у нас, индейцев, такие некрасивые имена? То ли дело у

Франсуа, Анри, Габриэль…

Вождь подумал и отвечает:

— Hу почему же, у нас, индейцев, тоже есть очень красивые имена:

Ну и правило бонусом:

forge of empires скрипт

Если «х*ли» не мат, хули ты его точкой маскируешь?

Хули ты нас паришь, дятел?>>>

Хулио он нам тут Иглесиас?

сначала играют в говноигры, потом срутся с комьюнити менеджерами Ольгами, потом я5утся в жеппы. подворачивают штаны и курют вейпы. кашмар.

Порочить, осуждать, бранить.

В малороссийском диалекте русского языка есть глагол «ховать», означает — прятать. От него образовано повелительное наклонение «хуй», по-русски означает — «прячь».

разбанили в итоге? не играешь совсем

Есть ещё такое слово:

Женский род СТАРИННОЕ

То, что порочит кого-что-н., осуждение, порицание.

Вот что говорит викисловарь:

Это полный П прикольная игра, над зайти поматерьтся

forge of empires скрипт

forge of empires скрипт

forge of empires скрипт

Милота-то какая

Битва взглядов перед поединком между чемпионом WBA, WBO, IBF и IBO в тяжелом весе Энтони Джошуа и Александром Усиком.

Бой Джошуа – Усик состоится в ночь на 26 сентября в Лондоне на стадионе «Тоттенхэма».

forge of empires скрипт

Director’s fixed anniversary supercut deluxe edition

forge of empires скрипт

forge of empires скрипт

Семья, просто неблагополучная

forge of empires скрипт

forge of empires скрипт

forge of empires скрипт

Печать

forge of empires скрипт

forge of empires скрипт

Не мог обучить

forge of empires скрипт

Пикабу противоречивый

forge of empires скрипт

forge of empires скрипт

Собеседование.

Источник

Forge of Empires из AS3 в Haxe. Постмортем

В комментариях к переводу доклада с HaxeUp Sessions 2020 Hamburg — Зимний отчет о состоянии Haxe — был задан вопрос о том, зачем нужен Haxe. На него, конечно же, ответили там же, в комментариях. Предлагаемый вашему вниманию перевод еще одного доклада с прошедшего HaxeUp должен, по моему мнению, стать дополнительным аргументом в защиту Haxe, т.к. данный доклад посвящен игре, заработавшей более 500 млн. евро.

Автор доклада Ненад — один из программистов InnoGames, работавших над конвертацией Forge of Empires из ActionScript в Haxe. 2 года назад в Амстердаме InnoGames рассказывали о своей работе в данном направлении. Сегодня же можно сказать, что им это удалось в полной мере — теперь обе версии веб-клиента (Flash и html5) собираются из единой кодовой базы на Haxe. И данный доклад является по сути обзором проделанной работы и принятых решений, как удачных, так и не очень.

forge of empires скрипт

Начнем с представления — кто такие InnoGames?

InnoGames — один из крупнейших разработчиков игр в Германии (г. Гамбург) со штатом более 400 человек. В настоящее время компания в основном занимается мобильными играми, но также продолжает поддержку и развитие браузерных игр, созданных ранее (у большинства их браузерных игр также есть и мобильные клиенты). В этом году доход компании за все время ее существования (lifetime revenue) достиг отметки в 1 млрд. евро.

forge of empires скрипт

Forge of Empires — это:

forge of empires скрипт

Как можно понять, Forge of Empires приносит существенную долю прибыли, и InnoGames не могли позволить ей умереть вместе с Flash. Таким образом, возникла необходимость создания html5-версии игры, которая работала бы не хуже Flash-версии.

Давайте рассмотрим удачные, по мнению компании, решения, принятые в ходе работы по созданию html5-клиента:

forge of empires скрипт

1. Для оценки возможностей и ограничений существующих технологий, а также для минимизации рисков в InnoGames приступили к прототипированию — созданию небольшой демонстрации, показывающей игровой город с анимированными зданиями, работающими tween-анимациями, работающим пользовательским интерфейсом и взаимодействием с бэкендом игры.

forge of empires скрипт

В рамках прототипирования было испробовано множество технологий, при этом не все из них позволили создать работающий прототип (например, CreateJS не подошел по причине слабой поддержки Flash API и проблем конвертации ActionScript-кода в JavaScript). До стадии работающего прототипа дошли только Egret и OpenFL — обе технологии соответствовали предъявляемым требованиям. Но в случае с Egret дополнительным минусом было то, что это проприетарная технология. Имеющийся в Egret конвертер кода не всегда выдает оптимальный код — в тех частях кода, которые конвертер не смог «понять», избыточно использовалась рефлексия. А так как код самого конвертера закрыт, то на его работу невозможно повлиять.
Случай Haxe и OpenFL — это совершенно другая история, т.к. это технологии с открытым кодом. Кроме того, на создание работающего прототипа на OpenFL потребовалось значительно меньше времени.

forge of empires скрипт

2. Управление проектом:
С самого начала перед нами стояли ясные цели:

У нас был хороший план:

forge of empires скрипт

В феврале 2018 была выпущена бета html5-клиента, в которую по своему желанию могли поиграть наши пользователи. Два месяца мы занимались сбором обратной связи и исправлением выявленных проблем.

В апреле html5-версия стала версией беты по-умолчанию.

Еще два месяца спустя мы добавили возможность выбора версии клиента пользователям, играющим в стабильную версию игры.

Затем в июле было проведено A/B тестирование, в ходе которого половине новых пользователей выдавался html5-клиент, а другой половине — flash-клиент. Тестирование показало хорошие результаты и в ноябре 2018 года html5-версия клиента стала использоваться по-умолчанию. И сейчас в html5-версию играет 85-86% всех пользователей.

forge of empires скрипт

3. Решение использовать технологии с открытым исходным кодом было одним из важнейших:

forge of empires скрипт

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

forge of empires скрипт

Рассмотрим подробнее, что такое mocked-компиляция:
Исходный ActionScript-код подготавливается с помощью препарсера — из кода удаляется реализация методов, в нем остаются только публичные свойства и методы, таким образом получается mocked-код на ActionScript. Этот код затем конвертируется в Haxe-код (также без реализации методов). Полученный код компилируется и проверяется таким образом на наличие ошибок компиляции.

Затем то же самое делается с «нормальным» кодом (кодом, из которого не вырезана реализация методов). Для каждого из полученных Haxe-классов с реализацией методов выполняем следующее:

Такой подход дает очень хорошее представление об имеющихся ошибках (их количестве и важности) и помогает расставить приоритеты в составлении планов по исправлению найденных ошибок.

forge of empires скрипт

5. Аннотации — инструмент, который использовался в ActionScript-коде для того, чтобы «помочь» конвертеру в принятии решений:

Т.к. аннотации — это просто комментарии в исходном коде, то они никак не влияли на работу ActionScript-кода.

forge of empires скрипт

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

Для flash-версии использовались ассет-бандлы в формате swf, а также ATF-текстуры. Ни те, ни другие не подходили для использования в html5-версии. Поэтому возник вопрос: либо использовать отдельный набор ассетов для html5-версии, или же внести изменения во flash-клиент и использовать один набор ассетов для обеих версий клиента.

В итоге было принято решение в пользу второго варианта: все swf-бандлы были заменены на текстурные атласы, а в OpenFL была добавлена поддержка сжатых текстур.

forge of empires скрипт

7. Одно из неправильных решений (о котором чуть позже) привело в итоге к принятию правильного решения — использованию непрерывной конвертации, когда каждый коммит в репозиторий клиента автоматически запускал конвертацию проекта. Каждый Pull Request также компилировался под Flash и JavaScript.

В дополнение к этому, оба клиента проверялись с помощью UI-тестов.

Данные меры позволяли оперативно сравнивать качество работы html5-клиента и Flash-клиента.

forge of empires скрипт

8. Для внедрения зависимостей (dependency injection) в проекте используется фреймворк Robotlegs, который в свою очередь базируется на библиотеке swiftsuspenders. Для работы инжектора в swiftsuspenders необходима информация об используемых типах. Для получения данной информации в Haxe-версии изначально использовался метатег @:rtti — данный метатег сохраняет информацию о типе в xml-формате, который затем необходимо распарсить. Т.к. в коде проекта очень активно используется механизм внедрения зависимостей, то для html5-клиента данный подход работал недостаточно быстро (приходилось обрабатывать слишком много xml-строк уже во время исполнения программы). Для решения этой проблемы Даниил Коростелев создал инжектор, основанный на макросах: вместо метатега @:rtti используется интерфейс ITypeDescriptionAware — макрос, встретив класс, помеченный таким интерфейсом, сгенерирует для него метод, возвращающий описание типа (которое в свою очередь будет использоваться инжектором зависимостей). Таким образом, часть работы удалось перенести с этапа выполнения программы на этап ее компиляции.

forge of empires скрипт

9. Использование Canvas-элементов было сведено к минимуму, т.к. они сильно влияли на скорость работы клиента, особенно в случае Microsoft Edge — по этой причине все дальнейшие тесты скорости работы клиента теперь основывались на этом браузере (все остальные браузеры показывали лучшую производительность).

forge of empires скрипт

10. Было ли этого достаточно для обеспечения быстрой работы клиента? Нет, нужно было сделать еще что-то для его ускорения.
InnoGames пришлось добавить в OpenFL поддержку батчинга, когда несколько объектов, использующих одно и то же состояние WebGL, можно отрисовать в один drawcall.

forge of empires скрипт

11. Чтобы эффективнее использовать батчинг в форк OpenFL была добавлена поддержка текстурных атласов. Для этого был добавлен класс SubBitmapData — объект, представляющий собой только часть атласа (до этого нововведения атласы использовались совершенно неэффективно с точки зрения потребления памяти и оптимизации отрисовки — для каждого игрового объекта создавалась новая текстура!). Теперь, используя батчинг, стало возможным отрисовать весь игровой интерфейс в один drawcall.

forge of empires скрипт

12. Было ли этого достаточно? Конечно, нет!
html5-клиент продолжал работать недостаточно быстро. Для дальнейшего улучшения производительности было необходимо улучшить батчинг — следующей его итерацией стал мультитекстурный батчинг, способный отрисовать в один drawcall объекты с разными текстурами (количество текстур, которые можно использовать в рамках drawcall’а, зависит от видеокарты; получить его можно с помощью вызова метода gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS) ). Данная оптимизация значительно снизила количество drawcall’ов. Подробнее о ней вы можете узнать из доклада Даниила Коростелева.

forge of empires скрипт

13. Было ли этого достаточно? И ответ — снова нет!
Наконец-то html5-клиент начал выдавать стабильные 60 кадров в секунду, но в Internet Explorer он работал не стабильно — часто происходила потеря webgl-контекста, после которой клиент не мог восстановиться. При этом, что важно, пользователи Internet Explorer приносят около 10% прибыли, поэтому «бросать» их нельзя!

Было принято решение выдавать пользователям Internet Explorer Flash-версию клиента.

forge of empires скрипт

Но используя текущий рабочий процесс, InnoGames не могли перейти на Haxe, т.к. Flash-клиент все еще собирался из ActionScript-кода, а html5-клиент — из Haxe-кода, полученного с помощью конвертера. При этом конвертер кода был оптимизирован только для генерации кода html5-клиента, форк OpenFL тоже был оптимизирован только для html5.

Да, в InnoGames могли продолжать использовать построенный ранее рабочий процесс (см. п. 4), но это, по их мнению, был бы тупиковый путь, разработка так и продолжалась бы на ActionScript. А полный переход на Haxe позволил бы значительно упростить процесс. В дополнение к этому следует заметить, что старый конвертер генерировал слишком «неудобоваримый» код.
Поэтому было принято решение о необходимости создания нового конвертера.

Новый конвертер позволил получить Haxe-код, который можно скомпилировать как во Flash, так и в JavaScript. Кроме того, полученный Haxe-код меньше использовал рефлексию и был лучше типизирован.

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

forge of empires скрипт

Интересный момент: OpenFL используется только для компиляции html5-клиента, Flash-клиент собирается напрямую, без использования данной библиотеки.

Подробнее о новом конвертере можно узнать из еще одного доклада Даниила Коростелева с октябрьского HaxeUp.

forge of empires скрипт

14. И последний (но не по значению) пункт — полный переход на Haxe, произошедший примерно 2 месяца назад. Хотя кажется, что это должно быть очень просто (просто возьми и закоммить Haxe-код в репозиторий, да поменяй несколько расширений в IDE), но данный процесс занял некоторое время:

Это были удачные решения, а теперь давайте рассмотрим не самые удачные:

forge of empires скрипт

1. Был построен довольно сложный рабочий процесс (workflow) — использовалось 2 инструмента: препарсер и конвертер. При этом одни правила конвертации применялись в препарсере, а другие — в конвертере. Причина этого заключается в том, что изначально команда работала над препарсером и mocked-компиляцией, и только значительно позже приступила к работе над конвертером и его улучшениями.

Если команде пришлось бы заново приступить к конвертации проекта с ActionScript в Haxe, то все правила конвертации кода применялись бы только в одном инструменте (новый конвертер как раз реализует данный подход).

forge of empires скрипт

2. Второй момент — был выбран довольно сложный процесс управления изменениями в проекте. Для Haxe-кода был заведен отдельный репозиторий:

При этом часто возникали merge-конфликты, когда одновременно вносились изменения в код какого-либо класса на ActionScript и в develop-ветке Haxe-репозитория. Приходилось постоянно разрешать их вручную, кодовая база начинала «расходиться». Поэтому довольно скоро от такого подхода отказались и перешли к непрерывной автоматической конвертации кода.

forge of empires скрипт

3. И третий момент — команда изначально сфокусировалась на html5-версии клиента, поэтому созданный конвертер кода подходил только для нее. Но когда оказалось, что для поддержки Internet Explorer необходима Flash-версия, возникла необходимость разработки нового конвертера, иначе переход на Haxe оказался бы невозможным.

Поэтому если команде пришлось бы заново приступить к разработке конвертера, то он был бы как можно более кросс-платформенным.

forge of empires скрипт

Но теперь обе версии браузерного клиента Forge of Empires используют код на Haxe. Спасибо за внимание!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *