Прототипирую сбор ресурсов и строительство

Небольшой апдейт прогресса в строительной механике и сборе ресурсов.

Также у проекта теперь есть имя и сайт (пока заглушка): https://jarl-game.com/

⚒ В основном доволен тем, как уже работает система строительства. Текущая реализация для новых построек управляется исключительно данными почти без кода. Каждый «чертеж здания» содержит фазы содержащие определяющие префабы структуры (например, мебель), различные сетки (пол, стены и т. д.) и стоимость. Каждая фаза также может содержать команды, запускаемые при входе и завершении, например, для создания рабочих или воспроизведения звуков прогресса. Основной вопрос: должна ли система строиьельства быть гибкой, как в Rimworld, или чем-то вроде «слотовой», как в The Kingdom. Или, может быть, микс, где игрок может разместить оборонительные структуры в произвольном месте, но расположение и количество основных построек предопределено.

🪓 Сбор ресурсов с другой стороны сейчас на зачаточной стадии. Еще есть много вопросов о том, как это должно работать в игре. С одной стороны, различные ресурсы должны добавлять глубину и разнообразие. С другой стороны, предоставление слишком большой гибкости в плане изменения ландшафта карты потребует большей балансировки. Например, если игрок расчищает слишком много леса, это добавит больше направлений для волн монстров.

Бонус, если кому интересно чертежи построек представлены таким форматом на основе RON:

ConstructionBlueprint( label: "Forge", phases: [ ConstructionPhase( cost: PhaseCost(work: 3.0), label: "initial", prefabs: [], grids: [ AutoGrid( label: "floor", layer: GROUND, width: 10, height: 7, origin: (0.0, 0.0), data: [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 1, 5, 5, 5, 5, 1, 1, 5, 5, 5, 5, 5, 1, 5, 5, 1, 1, 1, 1, 5, 1, 1, 5, 5, 5, 1, 1, 5, 5, 1, 5, 1, 5, 5, 5, 1, 1, 5, 1, 5, 1, 5, 1, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ] ), AutoGrid( label: "walls", layer: WALL, width: 10, height: 7, origin: (0.0, 0.0), data: [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ] ), ] ), ConstructionPhase( on_enter: Some("PlayForgeFinishedSound"), cost: PhaseCost(work: 0.0), label: "final", roof: Some(RoofConfig()), prefabs: [ PrefabEntry( label: "Furnace_1", origin: (-36.0, 32.0), ), ... ], grids: [ AutoGrid( label: "floor", layer: GROUND, width: 10, height: 7, origin: (0.0, 0.0), data: [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, ] ), AutoGrid( label: "walls", layer: WALL, width: 10, height: 7, origin: (0.0, 0.0), data: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ] ), ] ) ] )
99
2 комментария

Прочитал ваш первый девлог, рад что вы не сдаетесь и продолжаете работу!!!

1
Автор

Сейчас как раз самая интересная часть разработки) а первые 10 месяцев было сложно