пятница, 28 февраля 2014 г.

Записки программиста #8. Не переоценивайте свои силы!

До этого я обещал, что следующая статья выйдет после релиза, но прошло довольно много уже времени, сроки сдвинулись и я решил написать почему.
Начну из далека, точный временной расчет выполнения программы или игры очень важен, по многим причинам: это расходы на зп сотрудникам (если они есть); программа может быть актуально к планируемому сроку, а после уже нет; заранее подготовленные рекламные ресурсы; не правильное разделение временных ресурсов и как следствие - долей проекта и тд. Не для кого не секрет, что программисты очень часто ошибаются со сроками, но в целом опыт дает знать и можно оценивать сроки выполнения задач вполне сносно, но что делать когда ты не делал какую либо работу, как например в моем случае дизайн уровней. В целом, работу по созданию движка, как я планировал, так все и вышло, но я совсем не думал, что уйдет такое количество часов на проработку уровней и выравнивания баланса, это оказалась кропотливая и длительная работа, вот о ней я расскажу подробнее.
Я уже не раз сталкивался с принцип Парето, когда 20% усилий дают 80% результата, а остальные 80% усилий — лишь 20% результата, но про него, постоянно забывается. Вот собственно я уже полтора месяца борюсь с этими 20%.
На текущий момент игра состоит из 14 различных блоков, точнее первая карта состоит из 3 блоков, вторая из 7, третья из 10 и четвертая с пятой из 14. Это и войдет в первый релиз, постепенно количество блоков будет увеличиваться. На разных картах блоки конечно повторяются с небольшими отличиями, но случайной расположения их между собой дает интересные комбинации, которые порой очень тяжело преодолевать.
Создавать и тестировать всю карту целиком довольно проблематично, поэтому блоки на карте создаются по одному и проверяются на проходимость, после того как каждый блок по отдельности протестирован и получилась полноценная карта, приложение уходит на тестирование, вот тут и проявляются различные особенности: «вот эти препятствия слишком сложные», «тут можно на третей машине проехать зажав газ без проблем» и тд.  Пока идей как ускорить или автоматизировать процесс тестирование нету, точнее идее есть, но они требует серьезных временных затрат и от них временно решил отказаться.
Чтобы тестирование не проходила зря, я решил сразу прикрутить статистику по заездам, это помогает собирать необходимую информацию для дальнейшего выставления цен на карты, автомобили и создания достижений.
И что самое печально, пришлось очередной раз сдвигать сроки по релизу, на текущий момент бета для тестирования, выйдет в начале марта, но об этом я сообщу позднее.