XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Барахолка
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
prog

offline
Опыт: 32,865
Активность:
alexprey, опыт имеется, просто мне еще ни разу не понадобилось настолько сложного инструмента - как-то обходился стандартными абилами и их комбинациями, статами героя и прямым изменением привязанных к юниту нестандартных параметров. Но что-то в этом есть - можно как два пальца об асфальт реализовать, например, сеты, сокеты и зачарование.
А насчет vJass, который не так уж плох и очень удобен тем что "держит структуры", но ты им при этом не пользуешься из-за синтаксиса - спасибо, улыбнул ;)
Старый 09.05.2011, 23:25
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
prog, я не юзаю cJass, а от vJass меня теперь не от тащить. =) Эммммм я просто был очень сонный и перепутал v с c в твоем вопросе =)
Старый 10.05.2011, 14:48
prog

offline
Опыт: 32,865
Активность:
Начата разработка системы кеширования, если это можно так назвать
Благодаря этому будет значительно сокращена работа со строками - любой скрипт разбирается на команды и параметры только один раз, после чего записывается в глобальные массивы, а в хештаблицу по хендлу строки заносится точка входа. Для любителей орать что хештаблицы и строки это медленно повторяю - каждый скрипт будет разбираться на составляющие только при первом вызове один раз, после чего будут использоваться данные из массива, а однократным обращением к хештаблице при каждом последующем вызове скрипта вполне можно пренебречь.
Дополнительные средства оптимизации:
  • рассматривается возможность замены команд их номерами для кешированного представления скрипта (в виде строк сохраняются только параметры, а команда хранится уже как целое число)
  • рассматривается возможность повторного использования одинаковых строк (при совпадении двух параметров в одном или разных скриптах в массиве делается только одна запись, на которую и ссылаются оба скрипта)
  • рассматривается возможность хранения некоторых параметров в преобразованном виде для уменьшения количества обращений к ф-циям преобразования строки в число (в массиве при определенных условиях сохраняется не строковый параметр, а его численное представление)
  • рассматривается возможность добавления ф-ций принудительного кеширования (например может быть полезно для устранения падения производительности при первом запуске больших скриптов за счет их предварительного кеширования)
Таким образом в идеале скрипт представляется как последовательных целых чисел в основном массиве и строковых, целочисленных и действительных значений во вспомогательных массивах. В то же время этот механизм остается скрытым для пользователя и ему не приходится задумываться над размещением данных в массиве - достаточно правильно написать текст скрипта. Также этот подход позволит безболезненно уйти от излишеств вроде передачи текстовых флагов и числовых значений одним параметром, к которым приходилось прибегать в некоторых случаях.
Ну и о главном, а именно когда же наконец демонстрационная карта с древней версией интерпретатора будет заменена новой со всеми этими свистелками-перделками и мануалом? Ответ до банального прост - вскоре после завершения сессии.
Старый 24.06.2011, 22:39
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
prog, добавь чтобы можно было принудительно заставить разбить скрипт. Чтобы при ините загрузить все скрипты и потом не было лагов
Старый 24.06.2011, 23:07
prog

offline
Опыт: 32,865
Активность:
смотри 4 пункт в предполагаемых возможностях)
Кстати, сомневаюсь что лаги будут даже на достаточно медленных машинах.
на данный момент скрипт длиной около 400 символов не вызывал лагов ни на одной машине, на которой тестировался(при однократном запуске в один момент времени). И это с текущей кривой обработкой, проходящей строку скрипта посимвольно в среднем два с половиной раза за каждый вызов скрипта. В новой системе скрипт проходится посимвольно только один раз за кеширование.
Старый 24.06.2011, 23:36
prog

offline
Опыт: 32,865
Активность:
Добавлена карта с системой кеширования скрипта. Поскольку до интерпретатора руки у меня еще не дошли - в карте просто кешируется любой введенный текст, а затем извлекается обратно.
Целочисленные и действительные параметры команд хранятся в виде целых и действительных чисел, соответственно, а команды - временно в виде хеш-кода строки команды, позже будет использоваться номер ячейки в массиве команд.
Кроме того система устойчива к неправильному использованию разделителей команд и параметров (а вот в коде относящемуся к разделителям блоков я что-то напутал и конструкции вида ## приводят к неправильной обработке скрипта)
Ну и еще одна новая возможность: можно указать собственные разделители для каждого скрипта - для этого достаточно начать скрипт с текущего разделителя блоков (по умолчанию #) и следующие три символа будут использованы в процессе обработки этого скрипта как разделитель блоков, разделитель команд и разделитель параметров, соответственно.
Старый 26.06.2011, 20:39
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
gj, очень, сам планирую сделать нечто подобное.
Старый 27.06.2011, 19:17
prog

offline
Опыт: 32,865
Активность:
обновлен первый пост - в разделе "новости" добавлено подробное описание текущего состояния разрабатываемого обновления
Старый 30.06.2011, 22:52
silumin

offline
Опыт: 11,153
Активность:
Уверен, что все подобные наработки мало кому пригодятся, можно уверенно сказать, что 1 из 100 или ещё меньше.

Автору набраться скилла - да. Узнать будет работать или нет - да. Удивить верхи на форуме - да. 1 из 100 начинающих мапмейкеров побаловаться - да.

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

Не фейл, но безделушка...
Старый 01.07.2011, 22:51
prog

offline
Опыт: 32,865
Активность:
silumin, вот и отличненько)
Буду пилить свою безделушку дальше)
Но впредь попрошу воздержаться от необоснованного негатива)
П.С. Мне тоже пофиг, да. Кстати, данная наработка пишется для решения конкретной задачи и меня не расстроит если исходная задача останется единственной решенной с помощью этого инструмента, но возможности что это кому-то да пригодится на каком-то этапе достаточно чтобы оправдать существование темы на форуме.
Старый 02.07.2011, 01:53
Helpmeplz

offline
Опыт: 11,738
Активность:
silumin, большинство вещей и делается "чисто для себя". а факт того, что их еще кто то будет использовать - просто небольшой бонус.
Старый 02.07.2011, 03:53
silumin

offline
Опыт: 11,153
Активность:
prog, нет, вовсе не негатив. Я вообще соглашусь с мнением Helpmeplz по поводу разработки. Просто я в своё время этого не понял, а допилил в процессе.
Старый 02.07.2011, 13:11
prog

offline
Опыт: 32,865
Активность:
После того как доделаю базовую комплектацию (включает немного больше чем то что анонсировано) готов потягаться с кем-нибудь на дуэли - с моей стороны способность на основе fly-script и вся "свобода обычного jass" на стороне моего оппонента.
есть желающие?
Старый 03.07.2011, 16:54
silumin

offline
Опыт: 11,153
Активность:
prog, я согласен потягаться... Какие условия предлагаешь? По каким критериям будем оценивать работы? =)
Старый 03.07.2011, 19:40
prog

offline
Опыт: 32,865
Активность:
ну для начала надо доделать интерпретатор, так что время определиться с условиями еще есть
критерии оценки можно взять со спел контеста, а насчет условий - я согласен на любые, разве что предложил бы использовать стандартные модели или минимум импорта и не меньше двух сценариев поведения заклинания в разных условиях
Старый 03.07.2011, 20:21
silumin

offline
Опыт: 11,153
Активность:
К чертям импорт. Стандартные эффекты + грамотная компоновка + триггерная работа - есть хорошо в данном случае. Имхо.
Всмысле более двух сценариев воздействия? Недопонял...
Старый 03.07.2011, 20:58
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
Может быть в зависимости от типа цели? Юнит-здание или в таком духе
Старый 03.07.2011, 21:03
prog

offline
Опыт: 32,865
Активность:
Nerevar, понял правильно, присоединишься? ;)
silumin,
классический пример способности с двумя сценариями воздействия - благодать
вот не полный список возможных модификаторов поведения заклинания
  • состояние цели
  • классификация цели
  • наличие эффекта
  • наличие способности
  • наличие предмета в инвентаре
  • соотношение характеристик цели и их максимального значения
  • соотношение характеристик у цели и мага
  • союз
  • время суток
  • текстура почвы
  • количество целей (для массового заклинания)
  • наличие рядом союзников
  • время с момента последнего применения заклинания
продолжать можно до бесконечности
Старый 03.07.2011, 21:22
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
Мб и присоединюсь...Только какая тематика будет спела(двух(?))?
Старый 03.07.2011, 21:33
silumin

offline
Опыт: 11,153
Активность:
prog, понятно, это нужно обязательно учесть.
Старый 03.07.2011, 21:46
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

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

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 07:02.