Я веб-разработчик, но в последнее время в свободное время я разработал настольную игру. Делая это, я узнал кое-что очень ценное. Вот история!

Проблема

В моей игре есть монеты, и у игроков они довольно часто заканчивались. "Легкий! Я просто добавлю больше монет», — подумал я сначала. НО это обошлось бы мне в 8,34 доллара дороже (поскольку мне понадобился бы еще один лист), и это делает это решение неприемлемым!

Решение

Сначала я получил 70 монет, составленных из 40 номиналом 5, 20 номиналом 10 и 10 номиналом 20. В сумме получается 600. Мне пришлось изменить состав, чтобы увеличить общую стоимость, я выбрал 20 монет каждого из которых сумма до 700р.

Но тогда у меня было меньше монет и при нынешних правилах игры мне не хватило 5 монет. Argh, мне пришлось переосмыслить весь процесс получения и потери монет, чтобы это соответствовало. Это было довольно утомительно, но как только я это сделал, игровой процесс стал еще лучше, меньше считалось и торговалось монетами. Это было прекрасно, и моим игрокам очень понравились новые настройки!

Что я выучил

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

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

Но сделать это можно только в том случае, если код, который они рефакторят, полностью покрыт тестами. И это будет темой следующей статьи!

Кстати, если вы тоже хотите создавать свои игры, загляните на thegamecrafter.com, они потрясающие!