Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЖОВТЯК 4016 КУРСОВАЯ

.pdf
Скачиваний:
4
Добавлен:
27.08.2024
Размер:
769.24 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

КАФЕДРА ИНФОРМАЦИОННО-СЕТЕВЫХ ТЕХНОЛОГИЙ

КУРСОВАЯ РАБОТА (ПРОЕКТ) ЗАЩИЩЕНА С ОЦЕНКОЙ

РУКОВОДИТЕЛЬ

Старший преподаватель

 

 

 

Куртяник Д.В.

должность, уч. степень, звание

 

подпись, дата

 

инициалы, фамилия

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОЙ РАБОТЕ (ПРОЕКТУ)

СОЗДАНИЕ ИГРОВОГО ПРИЛОЖЕНИЯ

по дисциплине: ОСНОВЫ ПРОГРАММИРОВАНИЯ

РАБОТУ ВЫПОЛНИЛ

 

 

 

 

 

СТУДЕНТ ГР. №

4016

 

 

 

М.О. Жовтяк

 

 

 

 

подпись, дата

 

инициалы, фамилия

Санкт-Петербург 2021

СОДЕРЖАНИЕ

СОЗДАНИЕ ИГРОВОГО ПРИЛОЖЕНИЯ.....................................................................................

1

ВВЕДЕНИЕ ........................................................................................................................................

3

1.

Постановка задачи......................................................................................................................

5

2. Основные положение и аспекты разработки...........................................................................

9

3.

ОСНОВНАЯ ЧАСТЬ ...............................................................................................................

10

 

3.1. Создание персонажа. ........................................................................................................

11

 

3.2. Создание игрового барьера, генератора игровых препятствий и земли. ....................

15

 

3.3. Реализация стартового, прощального меню и счетчика очков. ...................................

17

 

3.4. Создание основной сцены игры, главного меню...........................................................

20

ЗАКЛЮЧЕНИЕ .............................................................................................................................

23

СПИСОК ИСПОЛЬЗОВАННЫХ РЕСУРСОВ .......................................................................

24

ПРИЛОЖЕНИЕ А ...........................................................................................................................

25

ПРИЛОЖЕНИЕ Б ............................................................................................................................

27

ПРИЛОЖЕНИЕ В............................................................................................................................

28

ПРИЛОЖЕНИЕ Г ............................................................................................................................

29

ПРИЛОЖЕНИЕ Д............................................................................................................................

31

2

ВВЕДЕНИЕ Ни для кого не секрет, что видео игры прочно заняли свою позицию в

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

годах. Они работали на таких платформах, как осциллографы, университетские мейнфреймы и компьютеры EDSAC. Самой первой компьютерной игрой стал симулятор ракеты, созданный в 1942 году Томасом Голдсмитом Младшим

(англ. Thomas T. Goldsmith Jr.) и Истл Рей Менном (англ. Estle Ray Mann).

Позже, в 1952 году, появилась программа "OXO", имитирующая игру

"крестики-нолики", созданная А.С. Дугласом как часть его докторской диссертации в Кембриджском Университете. Игра работала на большом университетском компьютере, известном как EDSAC (Electronic Delay Storage

Automatic Calculator). В настоящее время, разработка игры - это многомиллионный процесс, в котором задействована целая команда разработчиков, сложные современные технологии и даже маркетинговые ходы.

В настоящее время игры являются неотъемлемой частью жизни как детей, так и взрослых.

Цель нашей же курсовой работы – разработать игровой программный продукт под названием «flappy bird» с дополненным и более разнообразным геймплеем. Актуальность нашей курсовой работы заключается в создании не сложной игры, которую сможет использовать каждый пользователь, не смотря на маломощное оборудование своего компьютера.

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

3

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

ориентированным, так как представление архитектуры проекта и взаимодействия его компонентов является не менее важной частью проекта,

чем написание кода.

Первоначально мы хотели двигаться в сторону развивающих игр или приложения для детей, где присутствовала бы мини-игра «flappy bird» в

качестве дополнения, но, как только мы задумались о грамотности построения проекта и том, что по сути должно заинтересовать пользователя, чаша весов перевесила в пользу реализации только игры «flappy bird», и дополнения ее различными новыми функциями, которых в оригинальной версии не существовало. Это сделает игру более интересной и разнообразит игровой процесс.

4

1.Постановка задачи

Итак, цель курсовой работы – реализация игры «Flappy bird» на игровом

движке Godot.

Игра «Flappy bird» имеет игровой процесс с участием 2D-графики. Цель игры состоит в управлении полѐтом птицы, которая непрерывно передвигается между рядами зелѐных труб. При столкновении с ними птица падает и игра завершается. Управление производится нажатием на клавишу табуляции, при котором птица совершает небольшой рывок вверх. При отсутствии рывков птица падает из-за прописанной в коде силы притяжения, и игра также завершается. Очки набираются при каждом успешном перелѐте между двумя трубами. При наборе 30 очков открывается новый скин птицы, при наборе 60

открывается третий. Таким образом мотивация игрока увеличивается в разы.

Оригинальная версия данной игры была разработана вьетнамским разработчиком Донгом Нгуеном, который в то время был обычным студентом.

Игра была выпущена 24 мая 2013 года и получила внезапный рост популярности в начале 2014 года. В «flappy bird» играли практически все, она привлекла к себе критиков и практически «завирусилась» в сети. Игра выстрелила так, что оказалась на вершине рейтинга в магазине онлайн-

дистрибуции Apple.

В «Flappy bird» сочетаются два казалось бы несочетаемых факта:

относительно легкий геймплей и сложность прохождения, зачастую более 10

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

Движок игры – это ее основное ядро, базовое программное обеспечение,

на основе которого строятся все остальные составляющие игры, программный код, который может использоваться для создания вариаций игры или даже совершенно нового игрового мира.

Для разработки был выбран игровой движок Godot. Godot — это бесплатная платформа для разработки 2D и 3D игр с открытым исходным кодом, которая разрабатывается сообществом Godot Engine Community.

5

Программисты Хуан Линетски (англ. Juan Linietsky) и Ариель Манзур

(англ. Ariel Manzur) начали разработку движка в 2007 году, и через некоторое время он уже использовался как закрытый программный продукт в некоторых компаниях Латинской Америки. В феврале 2014 года разработчики приняли решение сделать технологию открытой, и выложили исходники движка под лицензией MIT на GitHub под названием Godot. Среда разработчика работает на Linux, OS X, Windows, BSD и Haiku и может экспортировать игровые проекты на ПК, консоли, мобильные и веб-платформы.

Почему именно Godot:

1)Godot является бесплатным и открытым исходным кодом, и нас это,

пожалуй, является ключевым фактом.

2)Стандартный исполняемый файл Godot составляет чуть более 60

МБ и не требует установки. Это не требует высокой производительности компьютера и не занимает много памяти. Так же созданные на этом движке игры не являются тяжелыми.

3)Godot действительно кроссплатформенный, с разработчиками для

Mac, Windows и Linux.

4)Годот поддерживает создание как 2D, так и 3D игр, в то время как

Unity первоначально был ориентирован лишь на 3D разработке, а функционал

2D появился в движке относительно недавно.

5)Самая гибкая система анимации.

6)Достаточно прост в освоении, что является безусловным плюсом для новичков.

7)Еще один очень важный плюс изучения Годо прямо сейчас это то,

что движок постоянно эволюционирует и развивается и возможно, вскоре станет самым востребованном в мире GameDew. Хуан Линьетски на одной из презентаций сообщил, что название «Godot» является прямой отсылкой к пьесе Сэмюеля Беккета «В ожидании Годо». Она характеризует непрекращающееся желание добавлять новые возможности в движок, что будет постоянно

6

приближать его состояние к идеальному инструменту всѐ ближе и ближе, но этот процесс не будет иметь завершения.

Задача Godot — быть максимально интегрированной и самодостаточной средой для разработки игр. Среда позволяет разработчикам создавать игры с нуля, не пользуясь более никакими инструментами, за исключением тех,

которые необходимы для создания игрового контента (элементы графики,

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

Godot предоставляет другой подход к работе с объектами. Большинство игровых движков используют сцены, обычно для представления уровня в игре.

Объекты существуют в этой сцене. В Unity это GameObjects, в Unreal Engine —

актеры. В Godot сцена — это набор узлов. Каждый узел является отдельным объектом, и каждый узел может наследовать от любого другого. Группа узлов называется сценой. Сцены также могут наследовать друг от друга, если они имеют общий корневой узел. Поэтому при разработке можно легко изменять полностью всю архитектуру проекта, расширять еѐ элементы в любую сторону и работать с комплексными сценами на уровне простых абстракций.

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

скрипты и сцены, в отличие от моделей и текстур). Эти решения позволяют значительно упростить разным командам разработчиков работу с системами управления версиями.

Godot позволяет создавать игры используя графический интерфейс, но также можно писать игры за счет собственного высокоуровневого динамически типизированного скриптового языка программирования GodoScript - аналога языка Python, также можно использовать С++ или же C. В настоящее время движок развивается и его популярность растет, это похоже на рождение новой

7

эпохи, эпохи становления компании Godot. Именно благодаря этому мы выбрали именно этот движок.

Для написания скриптов мы выбрали собственный язык программирования Godot - GodoScript из-за простоты написания на нем кода. В

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

Python является в первую очередь обязательное определение области видимости переменной через ключевое слово var и оптимизация языка под нужды системы сцен и узлов движка.

8

2.Основные положение и аспекты разработки

Вразработке игровой программы существуют такие аспекты, как:

• Проектирование

1)Цель: идея, жанр, сеттинг.

2)Средство: программный код, игровой движок.

• Творчество

1)Игровая механика: объекты, управление, физический движок, ИИ.

2)Уровни: расстановка объектов (левелдизайн).

3)Графика: арты, 2D модели, анимации, фоны, спецэффекты,

оформление экрана и меню.

4)Звук: звуковые эффекты, музыка, озвучка.

5)Для разработки игры используется движок Godot.

6)За концепцию взята механика игры «Flappy bird».

7)Применяется язык программирования GodoScript в игровой сфере.

8)В ходе написания игрового кода изучены многие возможности движка

Godot и его языка GodoScript.

9)Реализована начальная кодовая база для развития данного проекта:

Стартовое меню;

меню проигрыша;

механизм движения и анимации игрового объекта «Bird»;

изменение игрового окружения (эффект параллакса);

подсчѐт очков;

изменение дизайна птицы сообразно достигнутым игроком рекордам

10)Разработка курсовой работы с целью создания игровой программы.

9

3. ОСНОВНАЯ ЧАСТЬ

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

854 пикселей. Этот формат не совсем подходит под современные стандарты,

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

которая выполняется нажатием правой кнопки мыши. Приложение – мобильное, поэтому нажатие на кнопку мыши эмулируется в качестве нажатия на экран (Touch). Начальная игровая сцена представлена на рисунке 1.

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

дизайне присутствуют следующие элементы:

1)Игровой персонаж – летающая птица

2)Труба

3)Земля

10

Соседние файлы в предмете Основы программирования