Pull to refresh
8
0
Michael S. Kataev @lPestl

Game/Software Developer

Send message

Ну так для этого этот код и генерируемый) Чтобы лишний код не писать руками. Если взять это добро и оформить в нормальную библиотеку, то ничего из этого "торчать" на показ не будет. Если QT "под капот" заглянуть, то там тоже куча телодвижений для создания пустого окна. Просто оформлен он так, чтобы для конечного пользователя это было спрятано. А Slate никто не оформлял, он не предназначен был для шаринга широкой публике.

У Slate необычный способ вёрстки и биндинга данных, а то что я описал в статье - это скорее относится к "не нормальному" применению Slate. В статье я рассказал про такую возможность. По мне, так в этом есть потенциал.

добавить файл в проект тот ещё квест

Эта проблема полностью решена в IDE Rider for Unreal Engine. Там просто берёшь и добавляешь файл. Всё. Увы, Visual Studio так не умеет в unreal проектах.

<промахнулся комментом>

Дополнил статью.

А именно добавил список шагов, которые помогают понять, что нужно сделать и собрать, чтобы получить автономное Slate приложение. И добавил табличку с данными о том, что сколько весит.

Я думаю Slate так или иначе достоин внимания. Да, он не идеален (идеального вообще ничего нет). Да, он является побочным продуктом от UE4, и, возможно, именно поэтому он не так хорош как мог бы быть. Я не топлю за то чтобы тотально писать программы на Slate, а лишь рассказываю что такая возможность есть.

В любом случае, Slate это полноценный UI-kit, хоть и неотделимый от Unreal Engine. Не так уж и много существует кросплатформенных фреймворков или SDK для UI на C++. Мне кроме QT и ImGUI в памяти ничего не всплывает. Может быть именно поэтому мне эта тема показалась очень интересной.

Если бы Epic Games отделили бы Slate от движка и отправили бы в свободное плавание openSource, я думаю его бы быстро оптимизировали, улучшили и повысили бы качество. Всё в наших руках, было бы желание...

Это субъективное мнение. Мне кажется тормознутость, глючность и тяжёлость там вовсе не из-за Slate, а из-за реализации.

Unreal Editor тоже написан на Slate и обладает теми же недостатками, но в 99% случаев глюки и тормоза не из-за Slate модуля. По редактору проще судить, потому что его код открыт.

Это верно. Поэтому и думаю периодически что-нибудь писать про Slate, чтобы хотя бы в русскоязычном сегменте появились какие-то статьи, примеры и пояснения.

Хорошее замечание! Думаю стоит добавить эту информацию в статью и немного описать что-где-куда собирается. Увы, действительно это боль, что исходники Slate пока существуют только с огромной кодовой базой движка. Но бинари пустого приложения действительно весят 227 MB в Development сборке весят 32.6 MB не считая .pdb файла. Думаю в сборке Relese будет меньше, но в данный момент я точно не могу сказать.

Я соберу подобную информацию и добавлю её в статью.

в отрыве от анриала использовать это чудо, как минимум странно

Возможно, но только потому, что так раньше мало кто делал. Это сейчас довольно трудозатратный процесс.

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

Не соглашусь. Как раз в рассмотренном приложении SlateViewer есть отличный пример с демонстрацией и возможностями форматировать текст. Всё из перечисленного там есть.

Rich Text tab in SlateViewer
Rich Text tab in SlateViewer

В крайнем случае есть возможность рендерить UI в Slate приложении на базе html+css+javascript по аналогии с приложениями Electron

нет визуальных эффектов скажем bloom

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

нет возможности организовать уи по слоям(как скажем в юнити) или трейсить элементы уи под мышкой

Странно. Может быть мы с вами друг-друга недопоняли и говорим о разном? Там всё это есть. Возможно вы говорите о UMG. Но UMG - не совсем одно и тоже, что и Slate. У UMG, конечно, возможностей поменьше чем у Slate, но всё равно, даже в нём есть возможность организации UI по слоям и возможность трейсить UI элементы под мышкой...

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

Это субъективно. Хоть Slate и является частью UE, и используются сейчас в основном только EpicGames, но програмные продукты написанные на Slate выглядят хорошо, что побуждает меня сделать вывод, что Slate - достоин обзора.

EpicGamesStore, кстати, тоже написан на Slate.

Застрял на 11-ом задании. Трудновато у меня как-то с GO. Вот бы было что-нибудь подобное на С++.
Намекните хотя бы как пройти 11ое задание «Phone Home»
Возможно имелось ввиду на 45 градусов. И из символа + «брюки превращаются» в x.

UPD: Виноват, долго не обновлял страницу…
Согласен, но просто более подходящего слова в тот момент не придумал! Значит еще раз поблагодарю, но уже за СЛОГ))) Пятница, вечер, что-то туго голова соображает уже)
Отлично! Добавило позитива на остаток дня! Спасибо за интересные рифмы, обязательно парочку запомню, чтобы потом цитировать)))
image
Первая проба подарка от моего Деда Мороза!!!
Сегодня наконец-то отправил подарок в Канаду! И правда думал процедура будет более серьезной. Отправил «Почтой России»))) Просто думаю в Канаде посылка с надписью «Почта России» оценится больше чем какое либо другое! Жалко только что даже не представляю когда эта посылка прийдет))) Посмотрим! Буду отслеживать!
Иииихххааа!!! Сегодня пятница 13-ое и с самого утра у меня замечательный день! И вот уже вечер, мне звонит незнакомый номер и радует весточкой от Дедушки Мороза! Именно сегодня я уже получил свой супер бонус-подарок! Жить теперь точно станет легче! Мне Дедуля подарил вот такую вот супер штуку:
image
В тяжелые дни депрессии, когда сидя в мягком кресле, смотришь любимый сериал, даже руку лень поднять и дотянуться до пива! Вот теперь я в этой каске всегда пивко буду попивать))) Дедушка спасибо огромное! Всегда обожал подарки которые и себе вроде жалко взять, но всегда о них мечтал)))
Иииихххааа!!! Сегодня пятница 13-ое и с самого утра у меня замечательный день! И вот уже вечер, мне звонит незнакомый номер и радует весточкой от Дедушки Мороза! Именно сегодня я уже получил свой супер бонус-подарок! Жить теперь точно станет легче! Мне Дедуля подарил вот такую вот супер штуку:
image
В тяжелые дни депрессии, когда сидя в мягком кресле, смотришь любимый сериал, даже руку лень поднять и дотянуться до пива! Вот теперь я в этой каске всегда пивко буду попивать))) Дедушка спасибо огромное! Всегда обожал подарки которые и себе вроде жалко взять, но всегда о них мечтал)))
Еще раз акцентирую: тут замкнутых областей нету, есть проверка для избежания подобного. Причем я ничего не исправлял с момента публикации поста.
Очень странный скрин))) Замкнутые области возникали только когда не было прописано следующее:
// Проверка на замкнутые области.
        for (i = 0; i < c; i++) {
            var p = l = 0;
            for (j = 0; j < c; j++) a[i] == a[j] && 0 == b[j] ? p++ : l++;
            0 == p && (b[i] = 0, d.clearRect(13 * i + 3, 13 * cr_l + 3, 10, 15))
        }

В ссылке на Fiddle такого не было и нету. Да и с переменной шагов что-то странное твориться. Тот пример скрина который приведен, явно после каких-то изменений. Текущая версия по ссылке без косяков.
Замечания и доработку учту, ознакомлюсь и приму к сведению. Спасибо!

Магическая "+3" — это ширина стенки и без переменной — ради уменьшения строк))) Опять же мухлеж. В первой версии она была как параметр функции, но я ее убрал. Там вообще много магических чисел)))

Да и с доработкой твоей правда что-то не то. Замкнутые области повсюду.
Я понимаю насколько код получается некрасивым и сложно читаемым, когда его безжалостно сокращаешь. Чтобы хоть как-то повысить эстетичность и читаемость кода, в UPD 1 привел все тоже самое, но с толком, с расстановкой и небольшими коментами.
И растянул до 78 строк)))
1

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Software Developer, Game Developer
Lead