Мысли по процессу разработки игры REFLECT

в 5:30, , рубрики: html5, javascript, метки: ,

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

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

Поясню. На тот момент результатом был квадрат, с вращающимся вокруг него прямоугольником, управляемым мышкой, и wasd, перемещающие квадрат (игрока) по территории с фоном.

Заглянув в список разработчиков, я удивился, что собралась такая серьезная команда. Я подумал, что неужели разработка такой игры, судя по текущему результату, — сложное занятие, и пошел посмотреть на исходники в github.

И вот тут хочется перейти к сути моего послания. Это хорошо описано тут (перестаньте писать классы).

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

На мой взгляд, разработчики увлеклись декомпозицией и создали классы в невероятных количествах. Вообще — это хорошие навыки (в разумных пределах). Но я убежден, что для разработки игры в кратчайшие сроки «just for fun» используемый подход не годится.

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

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

Хочу обратить внимание на то, что в некоторых местах есть откровенный копи-паст. И это сделано отчасти специально, так как все это рефакторится за полчаса, но во время разработки я не запаривался за красивости, и процесс для меня был реально «for fun». К тому же, я не заморачивался за фон, не делал главное меню игры и тому подобное.

Искренне сожалею, что не успел доделать уменьшение жизни при попадании снаряда в «тело» и отражение от щита.

В итоге сделаю небольшое резюме — не усложняйте себе жизнь, не плодите сущности в самом начале разработки и как можно скорее доводите проект до состояния минимальной играбельности.

Автор: amiqrious

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js