Запилил exe-враппер. Записи в Path вроде не требует, работает как лаунчер, без включения jar-ника в exe. Не обошлось без побочных эффектов - теперь во время работы утилиты отображается консоль с выводом текста от логгера. Убрать это можно, но пока оставлю как есть - это лучше чем зависание редактора без видимых признаков работы на время обработки данных утилитой.
Заманчивое предложение. Но это не раньше чем я осилю добавление менюшек через JNGP - у рядовых пользователей должна быть возможность без проблем отключить мою утилиту, не редактируя файлы JNGP вручную. Это не сложно, как мне кажется, но требует времени, которого мне и так не хватает.
Дык глава то посвящена именно препроцессору) практика будет в следующих двух главах, в основном в последней. В демонстрационной карте точно будет способность на основе БД, описанная во вступлении к руководству, ну и всякой другой фигни по мелочи.
С шаблонами в описании особо заморачиваться не буду пока - там есть несколько проблем, не только потеря шаблонов при импорте обработанного файла строк. Если эти проблемы будут решены, то для шаблонов в описаниях появятся дополнительные возможности и глава, посвященная этим возможностям. Например я хочу ввести локальные переменные, видимые только в описаниях и принимающие значения, актуальные для текущего описания. Это, как минимум, ${this} и ${level}.
Doc, около четырех секунд при достаточно большом количестве данных, если верить логам. Главная задержка на этапе считывания данных по объектам из файлов данных. Это можно попробовать ускорить за счет использования нескольких потоков. Тогда, как минимум, время считывания сократится примерно до времени считывания самого большого файла.
Также можно попробовать оптимизировать работу парсера и компилятора шаблонов, отдавая ему только заведомо содержащие шаблоны блоки, но это даст сомнительный прирост в скорости работы.
Еще можно отключать обработку файла строк и выполнять ее только для тех версий карты, которые будут выложены в общий доступ. Это оправдано, учитывая что сейчас готовый файл строк не импортируется обратно в карту чтобы не затереть шаблоны. Только затраты времени на это несоизмеримы с временем загрузки данных из файлов.
Руководство дополнено разделом с достаточно подробной спецификацией шаблонов. На очереди карта-пример и несколько трюков, не упомянутых в спецификации.
В ходе рефакторинга возникла идея попытаться реорганизовать работу с категориями и ввести параметризованные категории.
возможно введение нового синтаксиса проверки на принадлежность объекта категории в виде "категория.объект"
синтаксис присвоения объекту категории в РО будет дополнен: [категория:параметр]
для категорий с параметром при обращении вида "объект.категория" будет возвращаться значение параметра, в случае возникновения конфликтов или введения поддержки множественных параметров, синтаксис будет дополнен
Систематизировать бы всю эту пугающую стену текста, оставив на главной только самое важное, а остальное вынести в отдельные ресурсы на основе статей. А чтобы не засорять главную сайта, публикуется только корневая статья, а все подстатьи делаются видимыми всем, но доступными только по прямым ссылкам, без публикации. Все-таки это не форум, где просто не было другого выбора кроме как запихнуть все в одно сообщение.
Хоть я и не играю в доту уже пару лет, выскажу свое мнение:
Убирать деревья и показывать дальность башен - бред для нубов, мапхака не хватает только для полноты картины.
ИМХО, этот мод можно смело приравнивать к читерству т.к. он дает незаслуженное преимущество перед другими игроками. Ничего удивительного что после этого мода "неудобно" играть на оригинале.
ScorpioT1000, дались тебе эти кампании) для них всеравно надо допиливать чтобы данные из двух файлов брались - из файла данных кампании и из файла данных карты. А завернуть в загрузчик не проблема.
Doc, я пользовался в последний раз launch4j, там дофига всяких настроек, включая загрузку джавы с сайта, если нет нужной версии, но мне не до того было чтобы проверять требует ли он записи пути к java в PATH.
В общем, следующую версию буду выкладывать завернутую в exe.
Пришло время перепилить утилиту так чтобы она состояла из нескольких плагинов и центрального ядра. Так будет удобнее.
Doc, хорошая мысль, спасибо. Если это избавит от необходимости прописывать PATH, то следующую версию обязательно заверну в какой-нибудь загрузчик, ну а если нет, то это подождет т.к. особого удобства не принесет - не думаю что найдутся извращенцы, которые будут пользоваться этим в консольном режиме, а не через JNGP.
Да, я так и собирался сделать, но пока занимаюсь руководством по использованию. Если тебе видны скрытые неопубликованные ресурсы - там пока только структура страниц готова.
Да не за что, надумаешь осваивать - буду рад помочь.
В целом я просто почему-то думал, что actionscript нетипизирован, поэтому и подумал о значительных отличиях синтаксиса.
Так и было на заре его развития - тип переменных жестко не отслеживался, а объектность языка тщательно скрывалась от непосвященных. Сейчас даже пакетная структура для пользовательских классов очень похожа на джаву. Единственное что меня расстраивает - отсутствие анонимных классов и сложности при попытке поместить несколько классов в один файл. Раньше расстраивало что нельзя отследить правый клик и скролл, но это недавно допилили т.к. флеш позиционируется теперь, в первую очередь, как платформа для разработки игр.
Совершенно согласен - распыляться до релиза не стоит.
Все очень сильно зависит от архитектуры, конечно - основное что приходится переделывать при портировании с джавы на флеш или обратно это визуализация и взаимодействие с пользователем, а перенос логики это скорее вопрос незначительных отличий синтаксиса и работы с данными, что неплохо поддается автоматизации.
Зачем заново? actionscript, как и java, объектный по самые помидоры - в процессе портирования большую часть кода можно использовать с минимальными изменениями, половину которых, к тому же, можно автоматизировать. Да, это затратно по времени, но мне кажется что это окупается выходом на яблочный рынок.
А кто запрещает? Двигаешь в нужную точку, задаёшь скорость.
Имелось ввиду не вбивая вручную скорости, а с помощью пресета, аналогичного тому что есть для создания физического объекта. Если эта возможность есть - извиняюсь, не заметил.
Использование ExecuteFunc, а не TriggerEvaluate чем-то обусловлено? кажется ,второе же немного быстрее было на момент когда я в последний раз видел их сравнение.
Снаряды лучше создавать сразу повернутыми в сторону полета (в горизонтальной плоскости). Тогда запуск снарядов будет более естественно выглядеть.
Очень интересной могла бы быть такая штука, как наборы физических констант, что позволит одновременно иметь на карте объекты, подчиняющиеся различным физическим законам. Не реалистично, зато очень повышает юзабельность.
С точки зрения юзабельности еще можно добавить такие фичи как событие "верхняя точка траектории" и пресет запуска, пытающийся попасть объектом в указанную точку.
Ну и пригодилась бы возможность запустить объект по новой траектории, не пересоздавая его.
Doc,
время респавна крипов увеличивать не стоит - всеравно его не сделаешь больше средней продолжительности боя, а вот время ненападения крипов на героя можно увеличить на пару секунд
ну а я бы выбирал из двух путей решения - групповой респавн крипов после смерти последнего или групповое нападение крипов на героя
кстати, в прошлый раз забыл отписать, хотя это наверняка было уже написано - ИИ временами странно себя ведет, а именно одним из юнитов забивается в нижний левый угол и не учавствует в бою пока кто-нибудь не подойдет к этому юниту поближе
» Fly Data Processor / Руководство пользователя
» Fly Data Processor / Fly Data Processor
» Fly Data Processor / Спецификация шаблонов
» Fly Data Processor / Спецификация шаблонов
» Fly Data Processor / Спецификация шаблонов
С шаблонами в описании особо заморачиваться не буду пока - там есть несколько проблем, не только потеря шаблонов при импорте обработанного файла строк. Если эти проблемы будут решены, то для шаблонов в описаниях появятся дополнительные возможности и глава, посвященная этим возможностям. Например я хочу ввести локальные переменные, видимые только в описаниях и принимающие значения, актуальные для текущего описания. Это, как минимум, ${this} и ${level}.
» Fly Data Processor / Руководство пользователя
Также можно попробовать оптимизировать работу парсера и компилятора шаблонов, отдавая ему только заведомо содержащие шаблоны блоки, но это даст сомнительный прирост в скорости работы.
Еще можно отключать обработку файла строк и выполнять ее только для тех версий карты, которые будут выложены в общий доступ. Это оправдано, учитывая что сейчас готовый файл строк не импортируется обратно в карту чтобы не затереть шаблоны. Только затраты времени на это несоизмеримы с временем загрузки данных из файлов.
» Fly Data Processor / Fly Data Processor
» Fly Data Processor / WIP
» Fly Data Processor / Fly Data Processor
» God's word: The True Way / God's word: The True Way
» WarCraft 3 / Promode DotA v6.74c
Убирать деревья и показывать дальность башен - бред для нубов, мапхака не хватает только для полноты картины.
» Fly Data Processor / Fly Data Processor
Пришло время перепилить утилиту так чтобы она состояла из нескольких плагинов и центрального ядра. Так будет удобнее.
» Fly Data Processor / Руководство пользователя
» Fly Data Processor / Fly Data Processor
» Fly Data Processor / Fly Data Processor
» Fly Data Processor / Fly Data Processor
» Spin Deluxe / Spin Deluxe
» Spin Deluxe / Spin Deluxe
Все очень сильно зависит от архитектуры, конечно - основное что приходится переделывать при портировании с джавы на флеш или обратно это визуализация и взаимодействие с пользователем, а перенос логики это скорее вопрос незначительных отличий синтаксиса и работы с данными, что неплохо поддается автоматизации.
» Spin Deluxe / Spin Deluxe
» Spin Deluxe / Spin Deluxe
» WarCraft 3 / PhysX
» WarCraft 3 / PhysX
С точки зрения юзабельности еще можно добавить такие фичи как событие "верхняя точка траектории" и пресет запуска, пытающийся попасть объектом в указанную точку.
Ну и пригодилась бы возможность запустить объект по новой траектории, не пересоздавая его.
» Wizards World / Общее обсуждение
время респавна крипов увеличивать не стоит - всеравно его не сделаешь больше средней продолжительности боя, а вот время ненападения крипов на героя можно увеличить на пару секунд