@youkerni
Unity3D developer

Как лучше выстроить архитектуру?

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

На видео мы видим, что по своей сути игра состоит из разных сообщений, которые выскакивают
пользователю.

О реализации:
Сама сцена была реализовано в виде такого ScriptableObject, для того что бы создавать и настраивать новые реплики можно было сразу в эдиторе.

Для показа сцены было собрано окно на UI элементах, на котором висит вот такой скрипт. Он парсит переданный ему SO, после чего окно "всплывает".

Так же есть третья сущность - менеджер окон. Он по своей сути должен стать точкой входа в игру. В зависимости от выбранной пользователем истории он должен начать с того или иного ScriptableObjecta. Он отправляет первому окну какую-либо опцию, окно ее показывает. Когда пользователь нажимает на один из вариантов - кнопка генерит событие и возвращает окну свой индекс (у каждой кнопки с вариантом ответа свой уникальный индекс.). Окно же в свою очередь возвращает менеджеру окон индекс нажатой кнопки, после чего менеджер окон запускает в другое окно следующую опцию. И так в течении игры.

Полагаю что я перемудрил. Хотелось бы сделать все максимально СОЛИДно, но я, видимо, не понимаю сути. Буду рад любым советам и замечаниям. А если кто согласится поделиться опытом в скайпе - буду втройне признателен.
  • Вопрос задан
  • 381 просмотр
Решения вопроса 1
@HellWalk
Цель проекта - впервые сделать архитектуру по-человечески

Что такое архитектура "по человечески"?
Практически каждый программист сталкивался с тем, что глядя на свой код 6-12 месячной давности хочется все переписать с нуля.
А через год происходит тоже самое с новым кодом.

Хотелось бы сделать все максимально СОЛИДно, но я, видимо, не понимаю сути.

Суть и не понять, пока не наступишь на грабли.

Если у вас это домашний проект - я бы предложил плюнуть на все правила хорошего кода, и писать как захочется - без комментариев, без MVC, без SOLID принципов и т.д. Затем, наступая на грабли своего говнокода вы:
1. Поймете, почему надо делать так, а не иначе
2. Перепишите свой код более правильно

Самое главное что вы в таком подходе получите - кучу опыта. И реальное понимание почему нужно делать так, а не иначе.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы