Неделя 29-31 (апрель 4 — май 2): Окончание работы над редактором конфигов.

Я не умер. Я все еще занимаюсь проектом. Просто рассказать было особо нечего. Только то, что мы и так знаем. Длительные праздники — зло. Сложные переделки проекта, долгое время не дающие видимого результата — зло. Есть только одна вещь, которая оказалась для меня вновинку: боль мешает работать. Так что постарайтесь работать побольше, планировать все заранее и не болеть.

Спасибо за внимание, можете расходиться.

***

Итак за прошедшие три недели я вроде как доделал свой редактор конфигов. Да, с учетом того, что наверное недели полторы у меня выпали из-за праздников и болезни. Хотя это все оправдания. Нужно больше работать. А то убил месяц на редактор — жесть.

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

В области навигации собственно, остались только те объекты, которые имеют самостоятельную логику: артикулы, постройки, склады, рецепты, заказы и магазин. Бонусов и рестрикшенов как самостоятельных сущностей больше не существует.

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

Почти так же я поступил и с рестрикшенами. У них тоже больше нет отдельной таблицы и соответственно нет необходимости иметь поля типа «тип родителя» и «айди родителя».

Рецепты со всеми своими бонусами и рестрикшенами редактируются в интерфейсе построек. Редактор не самый удобный, да еще и с сортировкой проблемы имеет (она не работает), но расположен там где нужно и не показывает ничего лишнего. Ну и еще из-за того что отображается не в своем интерфейсе не работает удаление — пришлось свою кнопку вкрячить в не самое безопасное для нее место.

Некоторую грусть еще вызывает тот факт что часть интерфейсов сделано таки с использованием юнитевой логики, а не Одиновской. Все сводные таблицы сделаны на юнитевом интерфейсе и если в какой-то таблице есть встроенная таблица (например в магазине, в таблице построек есть таблица рестрикшенов), то эта встроенная таблица скорей всего будет юнитевой. У юнити же в интерфейсе очень сложное отображение картинок из-за чего во встроенных таблицах их не получается показать. Вот в интерфейсе построек в разделе рецептов картинки были бы очень вкассу. Но нет.

Еще сохранение изменений очень не надежное. Например в интерфейсе постройки изменения полей самой постройки сохраняются, а вот изменения полей рецептов могут не сохраниться. Происходит это опять же из-за того что в интерфейсе постройки отображаются не совсем те рецепты. Там показывается результат поиска по рецептам, связь которого с основной таблицей может внезапно разорваться. Поэтому на верхней панели сверкает кнопка Force Save — она работает надежно.

Что-то местами глючит, не хватает проверки уникальности айдишников при переименовывании объектов, не все необходимые поля выведены, но с этим уже реально можно работать.

***

Теперь можно и нужно сделать много других страшных вещей:

  • Можно сделать синхронизацию с сервером.
  • Нужно разделить механизмы локальных данных (взаимодействие с сервером) и механизм логики. Чтобы все взаимодействие происходило через какой-то один коридор — шину данных.
  • Нужно восстановить работоспособность игры — с изменением механизмов бонусов и рестрикшенов игра в значительной степени развалилась. Причем делать это без разделения механизмов бесполезно — потом придется переделывать.

В общем я ступил на очень сложное техническое поле и кажется только дальше от своей цели ухожу. Это печально.

Оглавление