Skip to content

DanilaOsipov/Arkanoid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Arkanoid

Прототип игры в стиле Arkanoid

Сделано на Unity 2022.3.56f1

Как играть

Для запуска игры необходимо запустить сцену Game. Управлять платформой можно с помощью стрелок влево и вправо.

Особенности реализации

Компонентно-ориентированный подход

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

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

UI

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

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

Дополнительно

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

Конец игры подвязан на UnityEvent-ы, но на реальном проекте стоило бы создать специальные компоненты для отслеживания состояния игры и обработки его изменений.

About

Arkanoid game prototype

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published