На этой неделе подробно описана последняя механика, которую я запланировал для игры. Я хотел взять неиспользуемые гексы, которые не были колониями, и я хотел в основном очистить их для больших слотов для колоний с 1 зданием. Первые два, которые я имел в виду, должны были строить авианосцы и строить планетарные орбитальные пушки. Я решил начать с авианосцев, потому что их логика уже была задана в игре.

Я также внес некоторые изменения в баланс. С железом/медью возиться не хотелось, так как это слишком громоздко и похоже на другие игры. Вместо этого я снова переключился на Материю и Энергию. Эти два ресурса в основном производят все промежуточные продукты и необходимы для всего. Я хочу иметь другие продукты, такие как датчики и схемы, но это также потребует балансировки.

Носители будут стоить всего… датчиков/цепей/материи/энергии и большого, большого их количества для постройки, а также длительного таймера постройки для каждого. Это конечные продукты игры, которые победят флот на пути к вашей планете, и вся цель состоит в том, чтобы использовать все ресурсы планеты для их создания, поэтому я хочу, чтобы это было как можно сложнее, но весело.

Большая проблема кодирования заключается в том, что для гексов мегаструктур я не мог придумать никаких различий в том, как я хотел, чтобы они работали, кроме колоний. Как только ресурсы попали на поляну, мне очень не хотелось, чтобы они уходили. А так как мы там не производим никаких продуктов, я хотел, чтобы бонусы и посекундный текст не отображались на экране. Так что если что, я просто скопировал код отображения, который у меня уже был, и удалил большую часть логики, связанной со всем, что мне не нужно.

Что немедленно вызывает мои тревоги «запаха кода». Я начинаю уставать от собственного кода, и это явно нарушает DRY. Но я действительно не уверен, как сделать это чисто, и я хочу сделать это. Это был последний экран, который я действительно хотел отобразить, и я подумал, что копирование здесь будет не таким плохим, как могло бы быть, но если я выйду и захочу расширить все это, мне нужно будет сделать рефакторинг. Надеюсь, мне это не нужно, но это похоже на явную опухоль в моем коде.

Как видите, я также немного подчистил пользовательский интерфейс, добавил несколько заголовков и сделал все немного лучше. Я добавил полосу заполнения для производства товаров, так что теперь вы можете видеть, что роботы производят материю. Так же, если товар не производится, но есть, то пер/сек не показывает или не показывает. Бонусы теперь отображаются на экране для каждой колонии, поэтому мы можем увидеть, чего нам следует избегать. К сожалению, они не показывают, если у вас нет ресурса, вот и все. Экран мегаструктуры выглядит точно так же, но у него есть только один слот для зданий, и теперь здания сортируются по логическому значению мегаструктуры в самом классе, чтобы они знали, где появляться.

Ну и отлично! Я закончил… верно? Когда я начал играть в игру, я понял, что возиться с моей системой логистики совсем не весело. Отправка вещей в другие колонии сбивает с толку и раздражает, особенно если вы пытаетесь идти быстро с движущимся таймером.

Поэтому я решил избавиться от своего текущего отдельного экрана для логистики, и я собираюсь просто отправлять ресурсы с экрана колонии. Это сделает так, что единственные 2 экрана, которые вы будете видеть на протяжении большей части игры, — это экран колонии и экран исследования, что, я думаю, лучше для потока. Я пока оставлю код на случай, если захочу что-то с ним сделать, но я убираю кнопки для перехода на страницу. Теперь все будет основано на щелчке по гексу, в зависимости от того, нажимаем ли мы на гекс исследования или гекс колонии/мегаструктуры.

Я добавил кнопку отправки к каждому из ресурсов… Дроны не будут проблемой при получении, поэтому я решил, что дроны должны иметь возможность отправлять только один ресурс. Возможно, позже у меня будет автоматическая отправка, но пока, чтобы увидеть, насколько это «весело», пусть игрок быстро отправляет ресурсы туда, куда ему нужно.

Итак, первым шагом было отключить весь пользовательский интерфейс при выборе гекса. Мне нужно почистить это и поместить текст для выбора, а также кнопку отмены. Я подумал, что это интересно, мой код был достаточно надежным, чтобы справиться с отключением и по-прежнему работать в фоновом режиме.

Следующим шагом является изучение пользовательского интерфейса. Сетка просто не работает, имхо, и пришло время серьезно заняться макетом UI/UX и дизайном игры. Я хочу, чтобы появилось небольшое всплывающее окно с ползунком для выбора объема ресурса для отправки, а также текст, объясняющий, что происходит. И я хочу, чтобы это было сделано в чистом интерфейсе, поэтому внешний вид и эстетика — это то, что мне нужно развивать.

Пришло время перестать отказываться от эстетики и начать делать все унифицированным и гладким, начиная с этого нового экрана пользовательского интерфейса.