Этот сайт посвящен проекту, связанному с разработкой однопользовательской компьютерной игры жанра "аркада с элементами РПГ". В этом блоге я буду последовательно описывать весь ход разработки, так что вы сможете проследить за всеми этапами создания игры. По сути, блог будет составлять гибрид лабораторного журнала и учебника по геймдеву.
Сразу хочу предупредить: разработка игр - это далеко не такой простой процесс, как кажется на первый взгляд; но при должном подходе и не такой сложный, как можно подумать, копнув это дело чуть глубже. На примере данного проекта я покажу те средства, помогающие в игрострое, которыми владею в настоящий момент, и какими овладею в процессе работы над проектом.
Отмечу также, что я пока не являюсь профессиональным программистом, поэтому все нижеизложенное не стоит воспринимать как истину в последней инстанции. На сегодняшний день у меня накопилось немало теоретических познаний по данной теме, которые в процессе работы над игрой я хочу научиться использовать практически. Я также надеюсь, что комментарии более опытных разработчиков помогут улучшить качество как моих навыков, так и материала, который будет здесь излагаться.
И еще одно важное замечание
Непосредственно к написанию кода игры я приступлю еще не скоро. В разработке приложений уровня выше, чем "Hello, world!" программный код - это вообще не главное. Для начала нужно будет решить несколько очень важных вопросов - поэтому при чтении этого блога отнеситесь с особым вниманием к тому, что я буду писать в самого начала.
Необходимые навыки
Все нижеизложенное предполагает, что читатель уверенно ориентируется в базовых средствах какого-либо языка программирования и может писать хотя бы небольшие приложения. Также желателен опыт написания хотя бы простейших игр (змейка, pacman, тетрис и т.п.).
Цель проекта
Итак, начнем с самого главного. При работе над любым проектом вы обязательно должны ставить перед собой как можно более четкую цель, от которой не должны впоследствии отклоняться. Если такой четко поставленной цели нет, или она постоянно меняется, вы едва ли сможете довести свою работу до конца.
Целью моего проекта является следующее:
Повышение навыков разработки различных программ, в том числе игр. На любительском уровне я занимаюсь программированием уже довольно много лет, и за прошедшее время хорошо отточил свои навыки на разнообразных небольших приложениях. Однако, решая простые задачи нельзя выйти на следующий уровень. Это возможно только во время работы над действительно сложным проектом, когда приходится искать новые, не известные еще решения, и качественно повышать уровень своих умений. Предыдущим проектом, позволившим мне получить действительно новый опыт, была аркада "Операция Погостъ", краткую информацию о которой можно найти на сайте. Впоследствии, нарастив мяса на каркасе полученных тогда знаний, я получил возможность больше не считать себя всего лишь начинающим программистом. Теперь же, накопив еще большое количество теоретического материала, я собираюсь научиться полноценно его использовать и перейти еще на ступеньку выше.
Составление "портфолио". В дальнейшем я собираюсь заниматься созданием игр на более высоком уровне. Чтобы участвовать в каких-то серьезных проектах, необходимо иметь что предъявить потенциальным соратникам. Максимально крупный проект, который я смогу создать, как раз и должен послужить наилучшей характеристикой, которую я могу получить.
Сбор команды и получение навыков командной разработки игр. Для создания этой игры я планирую собрать небольшую команду. Это важно, поскольку игры почти никогда не делаются в одиночку (см. также ниже) и компаньоны очень важны, чтобы результат получился действительно стоящим. Кроме того, если в этот раз все пройдет гладко, то впоследствии есть возможность начать работу над каким-либо другим проектом в уже собранной и слаженной команде.
Просветительская работа. Многие из нас, программистов, когда-то писали свои небольшие игры - кто змейку, кто арканоид, кто простой файтинг. К сожалению, такие простые игрушки довольно сильно отличаются даже от сравнительно несложных современных казуальных игр. Между ними лежит пропасть, которую простым увеличением объема кода не преодолеть. Чтобы перейти от самых первых опытов в игростроении к действительно серьезным проектам, нужно значительно изменить подход к их созданию. Свой взгляд (которому еще предстоит эволюционировать по ходу работы) на эти изменения я и продемонстрирую здесь. Надеюсь, этот мой опыт поможет как можно большему числу новичков, таких же, каким когда-то был я сам, сделать большой шаг вперед в геймдеве. И, чем черт не шутит, может быть, мое имя запомнят в веках как родоначальника качественно нового этапа в развитии отечественного игростроя? :D
Финансовая выгода. Данный проект совершенно не предполагает какого-либо коммерческого выхода. И едва ли эта позиция изменится в дальнейшем, поскольку для получения денег надо с самого начала закладывать эту цель, а менять лошадей на переправе - заведомо провальная задача. Главная выгода, которую я рассчитываю получить от этого проекта - репутация, которая пригодится мне в дальнейшей работе.
Структура проекта
На самом деле, весь проект состоит из двух частей. Первая - это собственно сама игра, сам процесс разработки. Вторая - ее популяризация. Обе эти части взаимосвязаны, причем по нескольким причинам. Почему популяризовать игру нельзя при отсутствии ее самой - понятно. А вот чем должна быть полезна игре ее популяризация.
Во-первых, это привлечение в процесс создания новых участников. Готовая игра - это труд не только программиста. Даже в самом простом случае ей необходимы графика и звук. Работа и над тем, и над другим - занятие непростое.
Отчетливо я это понял работая над "Операцией Погостъ" - создание мало-мальски приличной графики заняло у меня массу времени. Не умея толком рисовать на компьютере, я был вынужден сначала изучать уроки по пиксельной графике, а затем очень долго и упорно вырисовывать довольно большое количество сравнительно мелких картинок. Мало того, что пока я смог изобразить хоть что-то приличное, мне пришлось потратить уйму времени, так еще рисовать большие объекты я так толком и не научился. Что же касается звукового сопровождения, то результатом я так и не был удовлетворен, хотя работы над ним тоже пришлось провести немало.
Отсюда можно сделать простой вывод - созданием графики и звука должны заниматься люди, которые хорошо разбираются в этих областях. Они сделают это и быстрее, и качественнее. А я в это время смогу заниматься кодом.
Но привлечение хороших художника и звукаря (а также, возможно, и других членов команды) - не такая простая задача. Мало кому захочется идти в никому не известный проект. Другое дело, если у меня будет чем их заинтересовать. Проект с уже сформировавшейся аудиторией внушает значительно больше оптимизма и гарантирует повышенную отдачу от работы. Кроме того, потенциальные члены команды сами смогут ознакомиться с предыдущим ходом разработки и составить себе достаточно четкое мнение о проекте.
Во-вторых, популяризация игры приводит к более активному ее обсуждению, и как следствие, дает ценнейший материал для размышления и очень полезные новые сведения. Выкладывая в публичный доступ свои мысли и наработки по мере их появления, можно получить независимую их оценку, и в случае необходимости, достаточно быстро исправить ошибки. Трудно переоценить ценность этой возможности, поскольку сложность исправления закравшихся ошибок прямо пропорциональна времени их жизни. Чем позже обнаружен просчет, тем на большем количестве позднейших наработок он успел сказаться, и тем труднее потом избавиться и от него, и от его последствий.
И теперь несколько слов о том, как именно будет воплощаться весь проект. Помимо самой игры он будет включать этот сайт (а также тему на форуме программистов, являющуюся зеркалом блога разработки), а также зеркала в социальных сетях (планируются группа в контакте и твиттер).
Сайт содержит в себе всю информацию о игре и ходе ее разработки в хорошо структурированном виде. В частности, это:
- Блог разработки, содержащий всю информацию о ходе создания игры;
- Каталог статей, связанных с геймдевом, но не относящихся напрямую к заглавной игре;
- Каталог файлов, содержащий все рабочие документы, исходные коды игры, саму игру и сопутствующие инструменты (типа редактора карт);
- Галерея изображений, в которой находятся концепт-арт, игровые текстуры и скриншоты.
- Форум, на котором можно обсудить весь процесс создания заглавной игры, а также любых вопросов геймдева.
Тема на форуме программистов является зеркалом блога разработки (информация в ней обычно обновляется вскоре после обновления блога), а также платформой для обсуждения проекта с посетителями форума.
Зеркала в соцсетях по сути будут новостными лентами и содержать ссылки на все главные новости сайта (новые посты в блоге, статьи, интересные темы на форуме). Второе их предназначение - продвижение проекта в этих соцсетях.
Комментарии
Постараюсь не обмануть ожиданий!
RSS лента комментариев этой записи