Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2013, 13:55   #1
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию Создание игры - взгляд изнутри (дневник разработки и учебное пособие)

Предисловие

Эта тема посвящена проекту, связанному с разработкой однопользовательской компьютерной игры жанра "аркада с элементами РПГ". Здесь я буду последовательно описывать весь ход разработки, так что вы сможете проследить за всеми этапами создания игры. По сути, данная тема будет составлять гибрид лабораторного журнала и учебника по геймдеву.

Сразу хочу предупредить: разработка игр - это далеко не такой простой процесс, как кажется на первый взгляд; но при должном подходе и не такой сложный, как можно подумать, копнув это дело чуть глубже. На примере данного проекта я покажу те средства, помогающие в игрострое, которыми владею в настоящий момент, и какими овладею в процессе работы над проектом.

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

И еще одно важное замечание

Непосредственно к написанию кода игры я приступлю еще не скоро. В разработке приложений уровня выше, чем "Hello, world!" программный код - это вообще не главное. Для начала нужно будет решить несколько очень важных вопросов - поэтому при чтении этой темы отнеситесь с особым вниманием к тому, что я буду писать в самого начала.

Необходимые навыки

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

Актуальная информация

Текущий статус: создание гейм-дизайнерской документации

Уже готово:
- Общая идея
- Сайт проекта

Важные ссылки:
Операция "Погостъ" - мой предыдущий проект, опыт которого будет положен в основу работы над нынешним
Создание игры - взгляд изнутри - сайт проекта

Читайте, комментируйте, обменивайтесь мнениями и опытом!
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же

Последний раз редактировалось Beermonza; 26.08.2013 в 17:22. Причина: Изменение в соответствии с пожеланиями автора
Гром вне форума Ответить с цитированием
Старый 25.06.2013, 13:59   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Цель проекта

Итак, начнем с самого главного. При работе над любым проектом вы обязательно должны ставить перед собой как можно более четкую цель, от которой не должны впоследствии отклоняться. Если такой четко поставленной цели нет, или она постоянно меняется, вы едва ли сможете довести свою работу до конца.

Целью моего проекта является следующее:

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

Составление "портфолио". В дальнейшем я собираюсь заниматься созданием игр на более высоком уровне. Чтобы участвовать в каких-то серьезных проектах, необходимо иметь что предъявить потенциальным соратникам. Максимально крупный проект, который я смогу создать, как раз и должен послужить наилучшей характеристикой, которую я могу получить.

Сбор команды и получение навыков командной разработки игр. Для создания этой игры я планирую собрать небольшую команду. Это важно, поскольку игры почти никогда не делаются в одиночку (см. также ниже) и компаньоны очень важны, чтобы результат получился действительно стоящим. Кроме того, если в этот раз все пройдет гладко, то впоследствии есть возможность начать работу над каким-либо другим проектом в уже собранной и слаженной команде.

Просветительская работа. Многие из нас, программистов, когда-то писали свои небольшие игры - кто змейку, кто арканоид, кто простой файтинг. К сожалению, такие простые игрушки довольно сильно отличаются даже от сравнительно несложных современных казуальных игр. Между ними лежит пропасть, которую простым увеличением объема кода не преодолеть. Чтобы перейти от самых первых опытов в игростроении к действительно серьезным проектам, нужно серьезно изменить свой подход к их созданию. Свой взгляд (которому еще предстоит эволюционировать по ходу работы) на эти изменения я и продемонстрирую здесь. Надеюсь, этот мой опыт поможет как можно большему числу новичков, таких же, каким когда-то был я сам, сделать большой шаг вперед в геймдеве. И, чем черт не шутит, может быть, мое имя запомнят в веках как родоначальника качественно нового этапа в развитии отечественного игростроя? :D

Финансовая выгода. Данный проект совершенно не предполагает какого-либо коммерческого выхода. И едва ли эта позиция изменится в дальнейшем, поскольку для получения денег надо с самого начала закладывать эту цель, а менять лошадей на переправе - заведомо провальная задача. Главная выгода, которую я рассчитываю получить от этого проекта - репутация, которая пригодится мне в дальнейшей работе.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же

Последний раз редактировалось Гром; 25.06.2013 в 14:06.
Гром вне форума Ответить с цитированием
Старый 25.06.2013, 14:00   #3
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Структура проекта

На самом деле, весь проект состоит из двух частей. Первая - это собственно сама игра, сам процесс разработки. Вторая - ее популяризация. Обе эти части взаимосвязаны, причем по нескольким причинам. Почему популяризовать игру нельзя при отсутствии ее самой - понятно. А вот чем должна быть полезна игре ее популяризация.

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

Отчетливо я это понял работая над "Операцией Погостъ" - создание мало-мальски приличной графики заняло у меня массу времени. Не умея толком рисовать на компьютере, я был вынужден сначала изучать уроки по пиксельной графике, а затем очень долго и упорно вырисовывать довольно большое количество сравнительно мелких картинок. Мало того, что пока я смог изобразить хоть что-то приличное, мне пришлось потратить уйму времени, так еще рисовать большие объекты я так толком и не научился. Что же касается звукового сопровождения, то результатом я так и не был удовлетворен, хотя работы над ним тоже пришлось провести немало.

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

Но привлечение хороших художника и звукаря (а также, возможно, и других членов команды) - не такая простая задача. Мало кому захочется идти в никому неизвестный проект. Другое дело, если у меня будет чем их заинтересовать. Проект с уже сформировавшейся аудиторией внушает значительно больше оптимизма и гарантирует повышенную отдачу от работы. Кроме того, потенциальные члены команды сами смогут ознакомиться с предыдущим ходом разработки и составить себе достаточно четкое мнение о проекте.

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

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

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

Данная же тема будет выполнять две функции. Во-первых, она будет выполнять роль представительства проекта на этом форуме и параллельно с блогом на сайте содержать подробный рассказ обо всех этапах развития проекта. Во-вторых, я хотел бы видеть ее базовым источником дискуссии и обсуждения всего проекта и отдельных его аспектов. Как я уже сказал, в пределах одной темы на форуме трудно обеспечить удобную навигацию и доступ к наиболее актуальной информации. Чтобы хоть как-то сгладить этот недостаток, я буду периодически обновлять первый пост темы, добавляя в него наиболее важные ссылки и ключевую информацию о текущем статусе проекта.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же

Последний раз редактировалось Гром; 25.06.2013 в 14:07.
Гром вне форума Ответить с цитированием
Старый 25.06.2013, 17:49   #4
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,876
По умолчанию

Звучит здОрово, "подписался" на тему (хотя я регулярно проверяю весь раздел).
Операция "Погостъ" очень понравилась как проект, но не как игра (сам геймплей, ибо лично я к аркадам холоден), а вот исполнение как проекта считаю хорошим и продуманным, и по графике и по функциональности, по разным гейм-дизанерских мелочам и находкам.

В данном проекте очень хочется посмотреть на этапы, ход работы, препятствия и их преодоление, некоторые советы и мысли и прочие присущие явления. Заинтересован и в прямых контактах с участниками, и наблюдении за общей дискуссией и в т.ч. вопросы популяризации интересны, как будет восприниматься фидбек и как будет поддерживаться сама популяризация в "коммьюнити".
Со своей стороны всячески поддерживаю, и, если потребуется, предлагаю помощь (вот правда я не плюсовик, по графике и по озвучке тоже мало опытов), но вообще гейм-разработчицкий опыт в наличии, в том числе работа и организация работы в команде над кой-какими игровыми проектами.
Понимаю, что Вы формируете материал спланированно, документируете (посты почти подряд, а текста много), но, думаю, многие хотели бы в самое ближайшее время услышать, что за проект, о чем он (помимо жанра, возможно, сеттинг, режимы игры и т.п.), а также на каких инструментальных средствах будет вестись разработка (для начинающих это бывает важно)

Спасибо в целом за такое начинание )

Последний раз редактировалось phomm; 25.06.2013 в 17:54.
phomm вне форума Ответить с цитированием
Старый 25.06.2013, 18:25   #5
intmain
Играюсь с Python
Форумчанин
 
Аватар для intmain
 
Регистрация: 12.12.2012
Сообщений: 340
По умолчанию

Ну чо круто же на самом деле! Хоть кто-то шевелится и что-то делает.
Подробнее про аркадку если можно: кто, чем и зачем?
Погост не смотрел еще, это что игра про движуху на кладбище ?
В общем буду следить за развитием. С наилучшими пожеланиями.
Что ел то - в долг, что жил то - зря.
Для избранных. ))
Секретные разработки
intmain вне форума Ответить с цитированием
Старый 26.06.2013, 10:28   #6
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Спасибо за поддержку!

phomm, вы очень точно подметили основную идею) Практически все, о чем вы говорите, я и планирую описать в скором времени. Я точно останавлюсь на составлении документации (от общих идей через их конкретизацию к готовому тексту), выборе инструментов, проектировании и выражении проекта непосредственно в коде. Помимо этого, буду освещать и все остальные актуальные вопросы.
Материал я выкладываю по мере его создания, в настоящий момент в тексте оформлено только то, что висит выше. Все остальное пока хранится в голове в виде более или менее конкретных идей.
Помощи буду очень рад! Особенно вы мне поможете, если по мере выкладывания мною материалов вы будете высказывать свое мнение на их счет и указывать на ошибки и слабые места в моих рассуждениях.

intmain, "Погост" - это аркада, которая начиналась как недоклон Pacman. Герой бегает по полю, собирает штуки, за которые даются очки, уклоняется от врагов. Дело происходит на кладбище, по которому бегают всякие твари. И дизайн заточен под эту идею.

Та игра прошла путь от прототипа на едва ли сотню строк кода (поле - матрица ячеек типа "свободно/стена/съедобно", все игровые объекты рисуются кружками да квадратиками), в котором я по большому счету совершил качественный переход от "PaintBox1 -> Canvas -> ..." к "Form1 -> Canvas -> ..." - до игры с мало-мальски приличным графическим (основанным, правда, на той же канве) и минимальным звуковым движками, нормальной структурой карты и всякими плюшками типа игрового меню, приличной графики и тому подобного.

Нынешний проект отчасти будет основан на тех наработках, но все же серьезно модифицирован и расширен. Подробности будут чуть позднее.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 27.06.2013, 11:00   #7
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Гром, а Вы не планировали сменить платформу?
Я бы предложил перейти в web - там проще раскрутка и привлечение пользователей.
Виталий Желтяков вне форума Ответить с цитированием
Старый 27.06.2013, 17:02   #8
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от Виталий Желтяков Посмотреть сообщение
Гром, а Вы не планировали сменить платформу?
Я бы предложил перейти в web - там проще раскрутка и привлечение пользователей.
Как я понял, у автора темы иные мотивы нежели раскрутка и деньги.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 27.06.2013, 18:26   #9
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

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

Beermonza, монетизации я на самом деле не чураюсь, и в будущем на нее расчитываю. Фактически этот проект я рассматриваю как подготовительный шаг к коммерческому программированию и геймдеву. Но именно текущий проект - действительно не предполагает никакого извлечения прибыли. Как я уже говорил, главная моя цель - максимально улучшить свои навыки, затем - создать себе некоторую репутацию. Ну и кроме того - создать тот полный обзор процесса игростроя, которого, по-моему, отчаянно не хватает отечественному коммьюнити.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 27.06.2013, 18:50   #10
intmain
Играюсь с Python
Форумчанин
 
Аватар для intmain
 
Регистрация: 12.12.2012
Сообщений: 340
По умолчанию

Цитата:
Ну и кроме того - создать тот полный обзор процесса игростроя, которого, по-моему, отчаянно не хватает отечественному коммьюнити.
Нехватка эта как мне думается вызвана тем что - знающий молчит, а не знающий говорит, тем более если речь идет о коммерческом ПО, кому нужны лишние конкуренты?)
Что ел то - в долг, что жил то - зря.
Для избранных. ))
Секретные разработки
intmain вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Электронно учебное пособие gloomy_jr Общие вопросы Delphi 1 23.05.2012 14:07
Создание игры::особенности коллективной разработки флеш приложений АТИКОН Gamedev - cоздание игр: Unity, OpenGL, DirectX 9 21.08.2011 19:51
Мультимедийное учебное пособие world12_tk Помощь студентам 4 21.04.2011 17:37
статья - Может-ли ПО работать быстрее или взгляд изнутри Pblog Обсуждение статей 0 27.02.2011 23:10
Электронное учебное пособие Zeibel Помощь студентам 10 31.05.2010 10:55