Size: a a a

RU Rust GameDev — русскоговорящее сообщество

2020 February 10

KK

Kirill (Cykooz) Kuzminykh in RU Rust GameDev — русскоговорящее сообщество
Я думаю в случае игр не редкая ситуация, когда хочется на живую менять в рантайме настройки. И если их много, то возможность их сохранить в файл - это только плюс.
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
на самом деле я не спорю, я разбираюсь и хочу понять как можно и то и другое реализовать тогда когда в этом будет какая-то необходимость
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
для моей игрульки пока хватит через фичу показывать/нет дебажные меши )
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
SET001
для моей игрульки пока хватит через фичу показывать/нет дебажные меши )
Вот для такого это нормально. Всмысле для debug/release фич.
источник

KK

Kirill (Cykooz) Kuzminykh in RU Rust GameDev — русскоговорящее сообщество
SET001
ну а чем плохо let foo = config.foo?
Не уверен, но думаю как минимум тем, что придётся перекомпилять все файлы, которые зависят от config.foo
источник

KK

Kirill (Cykooz) Kuzminykh in RU Rust GameDev — русскоговорящее сообщество
SET001
для моей игрульки пока хватит через фичу показывать/нет дебажные меши )
Я бы просто подвесил это на кнопку клавиатуры и включал/выключал когда надо - работы на копейки, а удобства гораздо больше.
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
Kirill (Cykooz) Kuzminykh
Вообще не понял зачем такие сложности развели. Неужели нельзя взять, например serde, читать в рантайме конфиг (yaml, toml, json или др.), десериализовать с растовые структуры и использовать как угодно? Зачем всё через фичи хардкодить?
в рантайме одно, а cfg это в компайл тайме
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
все фичи которые не включены в итоговый билд не попадут (если грубо)
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
Kirill (Cykooz) Kuzminykh
Не уверен, но думаю как минимум тем, что придётся перекомпилять все файлы, которые зависят от config.foo
в ближайшее десятиления я вряд ли буду писать программы время компиляции которых будет сколь-либо значительным )
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
SET001
пока прямой необходимости у меня в том чтоб вот прям не юзать внекшний файл нету но я хочу знать что эта ситуация обыгрывается при необходимости
есть крейты для работы с файлами настроек разных видов
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
но то что я видел было так себе, может что-то проапгрейдилось
лучший вариант который я взял себе это dotenv
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
https://github.com/berkus/AeglBot/blob/rust/src/bin/bot.rs#L100-L104 вот эту всю фигню можно либо написать в файлик .env либо через переменные окружения передавать
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
Berkus Decker
но то что я видел было так себе, может что-то проапгрейдилось
лучший вариант который я взял себе это dotenv
я тоже к нему приспматриваюсь, в основном потому что такое же название как в модуле и node.js )
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
да это похоже то что мне нужно
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
именно то что нужно )
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
https://lib.rs/crates/dotenv там как раз достаточно просто и удобно всё
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
и всякие подстановки есть и комментарии, для конфиг файлов самое то
источник

KK

Kirill (Cykooz) Kuzminykh in RU Rust GameDev — русскоговорящее сообщество
Env файлы ведь не типизированные, обычные строки. Придётся самому "обмазываться" конвертированием строк в другие типы данных. Мне кажется будет удобнее если как-то привертеть к этому serde. А где serde, там можно использовать toml, или даже ron.
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
Kirill (Cykooz) Kuzminykh
Env файлы ведь не типизированные, обычные строки. Придётся самому "обмазываться" конвертированием строк в другие типы данных. Мне кажется будет удобнее если как-то привертеть к этому serde. А где serde, там можно использовать toml, или даже ron.
или over, или что угодно, но всё это жутко неудобно вышло
источник

KK

Kirill (Cykooz) Kuzminykh in RU Rust GameDev — русскоговорящее сообщество
SET001
в ближайшее десятиления я вряд ли буду писать программы время компиляции которых будет сколь-либо значительным )
Если не ошибаюсь, то кроме компиляции твоего кода есть ещё линковка и сборка готового бинарника с оптимизациями (гемдев в дебаг профиле не очень кошерный, особенно всякое 3d). У меня, например, примитивная 2d игруля на ggez, но время линковки после изменения хотя бы одного файла довольно ощутимое.
источник