Долгий путь к Mahjong 0.7
Внимание! Этот документ ещё не опубликован.
Автор: Стас Перевалов
Здравствуйте. Я Михаил Капелько – программист команды OGS. Я хочу рассказать вам о том, какой ценой нам с Иваном Корыстиным дался очередной релиз игры OGS Mahjong.
Всего задач для Маджонга 0.7 было 86.
Между релизами версий 0.6 и 0.7 прошло 9 месяцев и 7 дней.
За это время (38 недель) я потратил около 325 часов чистого времени на Маджонг. Получается, что 2 задачи я решал где-то за календарную неделю. Задача занимала около 4 часов чистого времени. Т.е. в неделю я в среднем тратил 9 часов на Маджонг.
Что означают эти 9 часов в неделю для команды Opensource Game Studio?
Конечной целью команды OGS является создание полномасштабной РПГ уровня Dragon Age, Mass Effect, Witcher и т.д., однако на данном этапе мы разрабатываем небольшие игры, изучаем новые технологии и ищем людей, разделяющих наши взгляды.
Всё началось с того, что в августе 2005, когда я был на 3-м курсе университета, я написал фанатичный призыв на форуме создать игру, которая будет сочетать в себе всё лучшее от Gothic, Morrowind и Half-Life 2. В то время много людей решили попробовать себя в этом проекте, будучи такими же фанатиками как и я, полагая, что мы сделаем это за год или, максимум, 2. Время показало, что большой сложный ценный проект невозможно создать с фанатичным подходом. То, что человек любит игры, совсем не означает, что он как-то может помочь в их создании. Мне понадобилось много времени (5 лет), чтобы вырасти как специалист, попробовать разные графические движки, окончить университет, устроиться на работу на полный 8-часовой рабочий день, прочитать несколько умных книг (Design patterns, Pragmatic programmer, Effective C++ and STL, Thinking in C++) и ещё прикупить дюжину книг, которые ждут своего часа.
Эпизодическая разработка Маджонга началась в Ноябре 2009. О качестве “игры” того времени можно судить по этим видео:
http://www.youtube.com/watch?v=X5DW4HMlGPg
http://www.youtube.com/watch?v=xp1VeooCgLw
Просто куча кнопок с видеоэффектами, ничего более. Такая картина очень часто встречается в молодых открытых проектах, что напоминает ситуацию в Ливии: повстанцам дали новое Американское оружие, но толку от этого было мало, т.к. нет никакой организации и никто не умеет им пользоваться.
Неудивительно, что данные видео никого не привлекли. Таких технологических демок в мире Open source вагон и маленькая тележка.
В начале 2010 года появился Маджонг 0.3:
http://www.youtube.com/watch?v=Y23T0XhFJSg
В феврале 2010 был Маджонг 0.4:
http://www.youtube.com/watch?v=t72QhhQFjOg
В конце февраля я посмотрел архитектуру OGRE и влюбился в этот графический движок. Это был единственный известный мне открытый движок, который использовал исключения. В то время я как раз узнал, как и для чего нужно использовать исключения C++. До этого я просто, наслушавшись не самых умных дядек, принял, что это плохо и от лукавого.
За пару месяцев к апрелю 2010 я получил на OGRE то, что имел на Lightfeather:
http://www.youtube.com/watch?v=QYt91sJn8nU
4-го мая 2010 состоялся всё ещё неофициальный релиз Маджонг 0.5 уже на OGRE:
http://www.youtube.com/watch?v=I6TpngqBAfU
В это время разработка всё ещё была эпизодической. После релиза версии 0.5 мы стали использовать менеджер задач Google, Иван составил список задач для версии 0.6. С мая по июль было сделано 50 задач. С использование менеджера задач прогресс стал видимым и более ощутимым.
2-го августа 2010 состоялся официальный релиз Маджонг 0.6:
http://www.youtube.com/watch?v=UE1bTW1n1tQ
http://www.youtube.com/watch?v=voOAstn9z0k
Сообщение о релизе было размещено на нескольких форумах и было принято пользователями в положительно. Посмотрите сейчас видео версии 0.2 ещё раз и увидите разницу. Этот релиз был так хорош, что даже попал в один из обзоров игр для Linux: http://maketecheasier.com/5-more-linux-games-you-probably-havent-… ed/2010/08/11 Мы узнали об этом спустя полгода после релиза, хотя обзор вышел через неделю после релиза. Было очень приятно увидеть себя в списке. Это подтвердило, что мы наконец ступили на верный путь развития.
4-го сентября 2010 Стив Стритинг написал о Work2.0: http://www.stevestreeting.com/2010/09/04/work-2-0/
Эта статья изменила мою жизнь. Я принял идею. Я нашёл одну из книг, посвящённую учёту времени, из которой узнал о Любищеве А. А., который учитывал своё время на протяжение 56 лет жизни с точностью до 5 минут. Во время поиска информации об этом великом человеке я нашёл книгу о нём, написанную Граниным Д. А.: “Эта странная жизнь”. Я прочитал книгу и решил тоже учитывать потраченное время жизни. Сначала я использовал программу Mozilla Sunbird, но, т.к. это было неудобно, написал свою и назвал её Lubishev: https://bitbucket.org/kornerr/lubishev/overview
Переход с Sunbird на Lubishev состоялся 20-го декабря 2010, именно поэтому в начале статьи говорится о 20-м декабря. Данные до этого периода очень сложно обработать, поэтому я просто использовал примерные показатели. В программе Lubishev все данные хранятся в базе SQLite, поэтому подсчёт потраченных часов с 20-го декабря был очень прост и являлся обычным запросом SQL с агрегированием.
Так что же всё-таки значат 9 часов в неделю на проект? Взглянем на большую картину.
Многие люди хотят сделать что-то крутое вроде огромной игры в течение года или двух. У них нет опыта, но есть вера. Одна вера не далеко меня увела. Только до технологических демок. Время разработки Маджонг 0.7 учитывалось (с 20-го декабря 2010) с точностью до 5 минут. Учитываю даже время написания этой статьи (как время, затраченное на Маджонг). Точные траты времени позволяют мне судить, сколько времени занимает создание простой игры вроде Маджонг.
Я тратил 9 часов в неделю на проект. Программист, работающий 40 часов в неделю на работе, потратил бы эти 9 часов за полтора дня, если считать 6 часов чистого времени, отданного разработке. Т.е. если бы я работал на работе и делал Маджонг, я бы делал его в 3 раза быстрее. Я бы затратил лишь 3 месяца на решение 86 задач и выпуск Маджонг 0.7. Поэтому обычный рабочий за неделю сделал бы эту работу в 3 раза быстрее любителя.
Сейчас в менеджере задач 29 задач для Маджонг 0.8. Их решение займёт около 15 недель, или 3-х месяцев. Если бы я разрабатывал Маджонг на работе, версия 0.8 вышла бы через месяц. Если принять, что я продолжу работать с текущей скоростью, то Маджонг 1.0 увидит свет в конце 2011 года. Итого разработка Маджонга заняла полтора года. У рабочего она бы заняла полгода.
Сложно посчитать, сколько времени нужно, чтобы создать полномасштабную РПГ уровня Witcher в одиночку. Но есть некоторые данные, на которые можно опереться. В одном из интервью Тодд Ховард, глава Bethesda, подарившей миру серию РПГ The elder scrolls, сказал, что у них в команде 60 человек. Создание Skyrim заняло у 60 человек (по данным Wikipedia, разработка Skyrim началась сразу после выхода Fallout 3 в самом конце 2008-го) около 3 лет. Это означает, что нужно потратить 180 лет на создание подобной сложной игры в одиночку. 180 лет, если только работать 8 часов по будням как на обычной работе. Любителю же (мне) потребуется 540 лет.
Эта цифра выведена, если принять, что все 60 человек в команде программисты. Конечно, это не так, но если Вы один в команде, то подсчёт вполне правдоподобен.
Это означает, что нам нужно больше людей для создания РПГ в разумные сроки. Поэтому я не люблю, когда каждый пытается написать свой движок, который будут использовать 10 калек. Очень много времени уходит в пустую на дублирование. Уже есть OGRE, пожалуйста, не дублируйте вещи. Лучше работайте над следующем уровнем – созданием реальной игры. Уже создано достаточно графических движков. Нет нужды изобретать колесо, его уже давно изобрели. Создавайте новые вещи. Делайте настоящий прогресс.
Ссылка на Оригинал :
http://opengamestudio.org/lang/ru/blog/178
21 февраля 2013