Minecraft + React

1,921
107
378
Хай всем!
Не так давно работал с react-native и сильно вдохновился — ведь это управление нативными элементами через JavaScript!
И тогда вспомнил свою давнюю боль в моддинге: создание сложных интерфейсов (GUI). Это всегда геморно, особенно если нужно что-то сложное с длинными списками, кучай текстовых полей, сложным позиционированием элементов и т.д.
В голове крутилась идея: а что если сделать что-то вроде React для Minecraft GUI? То есть, описывать интерфейс на JS, а движок будет рендерить его нативно в игре.
Насколько я знаю, ничего подобного ещё не реализовано (если ошибаюсь — поправьте!).
Вот накидал пример, как это могло бы выглядеть (у меня в вообращении):
JavaScript:
function Gui({ minecraftApi }) {
    const [text, setText] = useState("");

    return (
        <View>
            <ScrollView>
                <Button onClick={() => {
                    minecraftApi.sendMessage("Hello, World!");
                }}>
                    <Item name="diamond" />
                    Hello, World!
                    <Item name="diamond" />
                </Button>
                <TextInput text={text} onChanged={setText} />
            </ScrollView>
        </View>
    );
}
Что думаете? Было бы удобно описывать интерфейсы в таком стиле?
 
ничего подобного ещё не реализовано (если ошибаюсь — поправьте!).

Подход тот же самый что и в реакте, но без оверхеда в виде JS прослойки. Декларативно описываешь UI и зависимость от стейта, а тулза сама чекает какие элементы нужно перерендерить при его изменении.

Что думаете? Было бы удобно описывать интерфейсы в таком стиле?
На JS? Нет. На адаптациях композа? Вряд ли, т.к. декларативный UI имеет смысл тащить при реализации действительно сложных интерфейсов (например динамик мапу прямо в игре нативным интерфейсом с панелями поиска, маркерами и чат-баблами как в Яндекс картах). На мой взгляд, совсем не про типовые майнкрафтовкие юзкейсы.
 
Подход тот же самый что и в реакте, но без оверхеда в виде JS прослойки. Декларативно описываешь UI и зависимость от стейта, а тулза сама чекает какие элементы нужно перерендерить при его изменении.
Я про размещение элементов в Screen. А это какое-то странное серверное решение.
Не знаю, просто Java или Kotlin не очень подходят. У них синтаксиз очень многословный.
На адаптациях композа? Вряд ли, т.к. декларативный UI имеет смысл тащить при реализации действительно сложных интерфейсов (например динамик мапу прямо в игре нативным интерфейсом с панелями поиска, маркерами и чат-баблами как в Яндекс картах). На мой взгляд, совсем не про типовые майнкрафтовкие юзкейсы.
Не думаю, пригодится и в лёгких интерфейсах. Почему нет?
Не знаю как другим, но сцентрировать несколько кнопок в своеобразный список уже гемор. А если эти кнопки не помещаются в некоторые экраны, то никакого overflow: scroll не будет (очевидно). А это один из самый простых задач.
Да и плюс разрабы и не делают сложные интерфейсы, т.к. сложно писать это по сути с нуля.
 
Для современного GUI в среде Java есть JavaFX. GUI'шки можно накидать в Scene Builder в виде FXML, есть своя система стилей наподобие CSS, поддержка анимаций, observers и т.п.

Не знаю, просто Java или Kotlin не очень подходят. У них синтаксиз очень многословный.
Koltin как раз призван исправить многословность.
 
Для гуи в майне мне оч понравилось ModularUI
 
Назад
Сверху