99%

Добавлен , опубликован
Что ж, я почти закончил редактор.
Однако с релизом всё-таки немного обождем, ибо жду от заказчика средств за проект, который включает так же и вот этот инструмент.
Последняя новость как я понял не слишком обрадовала наше сообщество - было много замечаний, которые я в той или иной мере услышал и постарался переделать так, чтобы было хоть чуть-чуть удобнее.
В общем контролы на данный момент выглядят вот так:
Сверху вниз:
  • для типа bool
  • для типа int
  • для типа void
Как можете заметить:
  • кнопки сместились вниз и отображаются только при наведении на элемент (многократное замечание)
  • появилась подсказка по наведению на элемент (замечание Кет)
  • cами элементы более не расширяются по высоте тем ужасным способом, как это было вначале, если "вложений" слишком много (многократное замечание)
  • теперь нет лишних скобок внутри простой арифметики, архитектура арифметики "спрятана" (замечание Doc)
  • так же элементы теперь подстраиваются под размер своего содержимого (замечание ScorpioT1000)
Какие планы есть?
  • Добавить переменные - руки пока не дотянулись
  • Добавить генерацию из строки - замечание prog
  • Скорей всего нижнюю полоску и подсказку нужно сделать выпрыгивающими, не занимающими доп место. Однако тут есть свои нюансы у юньки, что нельзя делать окна поверх без фокуса :(
В чем 1%?
Осталось доделать внешний вид под контекстные действия - условия там, циклы и прочую мурню.
Что еще вообще было сделано за последнее время?
  1. целиком было переписано отображение ГУИ. Собственно контролы теперь полностью попиксельно отрисовываются, потому весь "процесс" легко проконтролировать.
  2. были написаны дополнительные "sub-наработки". Некоторые наработки я представил в сыром виде на этом сайте, надо бы обновить (такие как попап и сериализаторы, например).
  3. Добавлено приведение типов двумя способами - implicit и explicit
implicit это спрятанное приведение типов, не порождающее "отдельного контрола"
explicit это явное приведение типов, пример на 2 скрине сверху - надпись "дробь" у основного поля типа int
Приведения типов позволяет по быстрому добавлять функции смежных типов.
  1. Собственно изменен подход к арифметике
  2. Изменен подход к действиям. Теперь действия вообще умная вещь, и остаются компактными несмотря на все невзгоды.
Ладно, что-то я записался. Уже лень даже дальше строчить - хотя рассказать то вроде и есть чего. Однако, достаточно и того, что вы посмотрите скриншотики разработки и дадите очередную порцию дельных советов - как вам оформление теперь, чего бы еще эдакого хотелось увидеть в тулсе.
Дабы избежать снова вопроса зачем этот редактор - он позволяет визуально вычислять любые значения и запускать сценарии из действий в игре.
`
ОЖИДАНИЕ РЕКЛАМЫ...
27
Clamp, а куда без них.
Вообще хотел бы в библиотеку "кишки" запаковать, а скрипты которые могут понадобиться просто связать с ней и оставить открытыми. Всё-то там вряд ли пригодится. На крайняк под рефлектором посмотрят, если руки дорастают в эти кишки лезть - это не составит проблемы.
Опять же как распространять буду - надо подумать. Ибо это не тупо "опен сорс разработка", собираюсь на ассет сторе ее продавать. Но для юзеров с хгма навскидку за так отдать. Тут опять же главное, чтобы на шар не слили :)
30
Extravert, ИМХО лучше оставь всё запакованное, так как бывают те, кому влом разбираться в настройке инструментария, а хочется взять и сразу юзать.
27
Clamp, просто соль инструмента еще и в том что он расширяемый.
Надо под примерчики пару классов оставить, чтобы сильно не парился народ за вопросы аля "как добавить редактор для своего типа".
А в целом ты прав, торчащие файлики погоды не делают. Тем более что они в таком случае каждый раз рекомпилятся зачем-то.
30
соль инструмента еще и в том что он расширяемый
Ну так сделай две версии - одну запакованную, работающую на принципе plug'n'play, а вторую настраиваемую, типа Pro Version. Ещё и побольше цену поставь второй.
27
Clamp, а так-то, чёткая затея, можно даже первую фришной сделать, типа демонстрации возможностей, ок же :О
30
Extravert, тогда три надо, в первой вообще рудиментарный функционал, во второй полный, но не настраиваемый, а третья полная.
29
Extravert, выглядит уже намного лучше, но меня на первом скриншоте напрягло надпись "Дробь", немного не очевидно было что она значит.
Плюс обязательно добавлять надпись строка? Думаю если просто добавить кавычки, будет понятно что это текст
27
alexprey, я просто хотел как то показать, что это "приведение типов". То есть надпись "дробь" висит на выражении типа int
А надпись "строка" - на выражении типа object.
Есть еще вариант для "дробь" например просто добавлять букву "f" в конце.
Опять же я хз что будет если я начну делать все implicit'ом, не начнет ли логика путаться. Плюс формально любой тип можно привести например к строке, абсолютно любой кроме void. Это породит очень сильно разросшиеся менюшки, ибо там будут отображаться методы для вообще всех типов.
Но честно говоря тоже смущает, нельзя это так оставлять.
24
Умничка! Правда, я как-то скептически отношусь к конструкторам игр в конструкторе игр.)
29
RSQR, юнити не конструктор, а полноценный движок с редактором сцены
27
RSQR, причем тут конструктор игр, да ёмоё. Расчет идет на кастомные сценарии.
Ядро игры на таком не напишешь. Это просто редактор существующей логики.
Мб я что-то неправильно объясняю, но слышу такие заявления уже третий раз здесь
Это не редактор, который напишет за тебя скрипт. Это способ подтягивать и обрабатывать любые функции из проекта удобно со стороны геймдизайна, без постоянного кодинга. И это хороший потенциал для создания сценариев, ибо редактор "понимает" действия во времени - может подождать выполнение скрипта, может оборвать такие действия и так далее.
Но чтобы что-то через него запустить это что-то нужно сначала написать. Как с варкрафтом - вот есть ядро игры, оно написано на ЯП, а есть редактор триггеров, который некоторые операции полученного движка может вызывать и создать из них сценарий, аля
  • Включить режим кинематики
  • (Игровой объект:пацан) сказал (Фраза),
  • (Игровой объект:пацан) сделал (Анимация),
  • Ждать завершения действий
  • (Игровой объект:пацан) перемещается к (Успех)
  • Ждать завершения действий
  • Выключить режим кинематики
24
Extravert, да не, ты молодец. Просто я как-то уже привык полностью код писать, поэтому с недопониманием смотрю на подобного рода фичи). К тому же ты сам понимаешь, что тайм сейверы это хорошо, но полностью написанный код с комментариями - лучший код)
15
Кому это нужно? Вручную написанные вычисления и создаются быстрей и выглядят они наглядней.
В том же ВЕ часто было проще записать формулу при помощи строки с кастом кодом, чем выбирать мастером 10+ переменных и функций.
Лучше дополнил функционал Унити базовыми способностями уровня ВК3 и УИ для них.
Вот это было бы хорошее, годное дело.
29
RSQR, речь идет именно о скриптинге сцены и поведении. Согласись что когда делаешь диалоговую систему проще мышкой потыкать, чем писать 100 строчек однотипного и монотонного кода
Харгард:
Кому это нужно? Вручную написанные вычисления и создаются быстрей и выглядят они наглядней.
В том же ВЕ часто было проще записать формулу при помощи строки с кастом кодом, чем выбирать мастером 10+ переменных и функций.
Для геймдизайнеров, которые плевать хотели на программирование и хотят просто заскриптовать диалог с одним из НПС на уже готовой диалоговой системе от программистов в данном проекте. Этот подход называется разделение обязаностей. И если бы ты немного почитал о чем тут речь идет, то понял бы, что тут таких проблем с вводом нету
24
alexprey:
RSQR, речь идет именно о скриптинге сцены и поведении. Согласись что когда делаешь диалоговую систему проще мышкой потыкать, чем писать 100 строчек однотипного и монотонного кода
Не соглашусь) Массивы никто не отменял
29
RSQR, чувак, причем тут вообще массивы. В любой диалоговой системе проще сделать ручками, чем писать код, хендлить события в нем, вызывая другой скрипт, в котором еще тонны кода, все требует времени на написание. А когда есть такой удобный инструмент, грех не воспользоваться
30
Умникам, которые считают себя тру кодерами и "триггеры не нужны", а именно Харгард'у и RSQR'у.
Что-то я не замечал, что вы деассемблировали движок варкрафта, когда на нём что-то делали, а - внезапно - первые месяцы пользовались триггерами, или я неправ?
24
Clamp:
Умникам, которые считают себя тру кодерами и "триггеры не нужны", а именно Харгард'у и RSQR'у.
Что-то я не замечал, что вы деассемблировали движок варкрафта, когда на нём что-то делали, а - внезапно - первые месяцы пользовались триггерами, или я неправ?
И до сих пор жалею, что потратил на них время.
26
И до сих пор жалею, что потратил на них время.
Вот видишь! Просвещение! :)
15
Clamp:
Что-то я не замечал, что вы деассемблировали движок варкрафта, когда на нём что-то делали, а - внезапно - первые месяцы пользовались триггерами, или я неправ?
Пфф я и до последнего часть работ делал на них. В 95% случаев используя кастом скрипт :)
Очень уж удобно в них разносить код в отдельные файлы и папки и размещать коменты.
Вот только, повторюсь, для серьезных вычислений ими пользоваться накладно.
29
Вот только, повторюсь, для серьезных вычислений ими пользоваться накладно.
дык речь и не идет о том, чтобы писать на нем огромные системы, а для скриптинга. Хотя я уверен найдутся и такие извращенцы
38
Кламп хочет продать походу
27
Лично я нахожу данный инструмент просто сверх полезным, иначе бы не тратил время на реализацию.
Ну если вы брезгуете за скорость - значит не моя целевая аудитория.
Для серьезных вычислений конечно редактор лучше не использовать. Но организовать вызов "серьезный вычислений" - почему бы нет. Один call проблем не сделает все же, разве что для параноика.
Широкие возможности тут опять же не для того делаются, чтобы можно было писать полноценные скрипты, а только потому что "всякие бывают случаи, может пригодиться".
Я просто скажу так, ну сделаем мы скажем массив с отсылкой на кастомный код, да? Ну вот приспичило нам описать новую ситуацию - в итоге нужно под новым индексом добавить запись, в самой игре этот индекс указывать в качестве "ссылки". Когда приспичит снова туда заглянуть, придется бегать по массиву искать что же вы туда положили. Не практично. А самый большой минус в том, что массив однажды подгружается весь. Не всегда это нужно. Ну и массивом расписать можно тоже не любую ситуацию. Скажем чтобы алгоритм во времени расписать придется делать отсылку на запуск каких-то дополнительных скриптов, которые будут нагружать игровую сборку. Пока таких скриптов с десяток это конечно не проблема, но с ростом их количества скажем до 1000 скорость каждого вашего ребилда вырастет настолько, что вы будете успевать поесть за это время. Не знаю, что тут может быть прикольного и сомневаюсь, что это победа.
Опять же есть разные типажи игр. Некоторым играм кастомные сценарии просто не нужны. Аркады какие-нибудь, гонки, арены, мультиплей стратегии - там это нафиг не сдалось, вполне реально все реализовать в коде. А скажем РПГ, квесты - вот там это уже необходимо. Но опять же, у вас может быть на это свое мнение.
ScorpioT1000:
Кламп хочет продать походу
Ну, лично я собираюсь продавать только на ассет сторе, потому если захочет куда-то еще втюхать - не проблема, а если процентом от навара будет делиться так вообще замечательно. Главное только чтобы на шару не оказалось слишком уж быстро, задаром.
Харгард:
чем выбирать мастером 10+ переменных и функций.
Вот я редактор как раз пытаюсь делать так, чтобы и заполнять тоже было хоть чуть-чуть проще. У меня все редактирование находится "на виду", без необходимость лазить по окошкам. Ну и разумеется в свое время добавлю эдакий "String To Expression"
Бтв, немного поработал над тем, чтобы контролы были менее громоздкими вчера.
Теперь подсказка и кнопки не занимают доп места для рисования и появляются только если контрол был выбран, в остальных случаях просто сворачиваются. Так что +50 к компактности.
На этом скрине минимальное расстояние между контролами теперь:
А на этом выбранный контрол, у которого показывается подсказка и кнопка. Если нажать где угодно вне контрола - он свернется обратно.
Загруженные файлы
Чтобы оставить комментарий, пожалуйста, войдите на сайт.