В проекте рассматривается язык программирования Python, его плюсы и минусы, встраиваемые модули. Разобраны виды игр, история их создания и разработана своя игра.
Вложение | Размер |
---|---|
yakovlev_n.docx | 967.62 КБ |
Паспорт проекта
Название проекта: Создание игры на Python
Руководитель проекта: Борисова Анастасия Владимировна
Автор проекта: Яковлев Николай Сергеевич
Учебная дисциплина: Информатика
Тип проекта: Практико-ориентировочный проект
Цель исследования: разработка игры на языке программирования Python.
Объект исследования: язык программирования Python, модуль pygame.
Предмет: компьютерная игра
Задачи исследования:
- рассмотреть технологию создания игры на языке программирования Python
- изучить алгоритмы создания игры
- изучить синтаксис языка и разработать игру в Python
- протестировать продукт среди друзей и одноклассников
Вопрос проекта: Может ли любой школьник может создать свою игру, при этом зная только азы программирования.
Краткое содержание проекта:
В проекте рассматривается язык программирования Python, его плюсы и минусы, встраиваемые модули. Разобраны виды игр, история их создания и разработана своя игра.
Результат проекта (продукт): игра на Python
Оглавление
1 Введение
2 Теоретическая часть
2.1 Python — простой язык
2.2 Популярность Python. Преимущества Python и недостатки Python.
2.3 История создания игр.
2.4 Компьютерные игры. Их классификация и особенности
3.Практическая часть
4. Заключение
Введение
В современном мире компьютер играет все большую роль в жизни людей. Одним из способов проведения досуга среди подростков и даже взрослых людей стали компьютерные игры. А распространение интернета и появление возможности скачать игры в глобальной сети сделало их ещё более популярными. Разработчики компьютерных игр в последние годы особое внимание уделяют созданию таких программ, которые позволяли бы привлечь к участию в игре максимальное число людей со всех концов мира и сделать эту игру многоэтапной и растянутой во времени. Я тоже увлекаюсь играми, но в последнее время меня заинтересовал именно процесс создания компьютерных игр. Было прочитано много интересной литературы, изучены алгоритмы создания игр. Было также выяснено, что самым популярным и перспективным на данный момент является язык программирования Python. Поэтому игра в данной работе будет разработана с помощью этого языка. Исходя из вышеизложенного, была определена тема исследования: «Создание игры на языке программирования Python»
Цель исследования: разработка игры на языке программирования Python.
Объект исследования: язык программирования Python, модуль pygame.
Предмет: компьютерная игра
Гипотеза: Я предполагаю, что любой школьник может создать свою игру, при этом не знать азов программирования.
Задачи исследования:
- рассмотреть технологию создания игры на языке программирования Python
- изучить алгоритмы создания игры
- изучить синтаксис языка и разработать игру в Python
- протестировать продукт среди друзей и одноклассников
Ход выполнения работы:
1 Изучить литературы по данной теме
2 Написать код программы
3 Протестировать игру
2. Теоретический раздел:
2.1 Python — простой язык.
Синтаксис Питона всегда выделял его на фоне других языков программирования. Он не страдает избыточностью, схожесть синтаксиса с обычным английским позволяет понять код даже обычному пользователю, кроме того, программист пишет меньше строк кода, потому что нет необходимости использовать символы: «;», «{», «}». Вложенность обозначается отступами, что повышает читаемость кода и приучает новичков к правильному оформлению.
Python упрощает написание кода и делает разработку быстрой, всё потому, что он обладает следующими особенностями:
• Динамическая типизация. Программисту не нужно указывать тип переменных, язык присвоит его сам. Операнды разных типов, участвующие в одной операции, автоматически приводится к нужному по определённым правилам.
• Удобный возврат нескольких значений функцией. Их можно перечислить через запятую и они автоматически преобразуются в список. Чтобы вернуть массив из функции, достаточно написать «return имя массива«. Не нужно выделять память и передавать указатели в функцию.
• Автоматическое выделение памяти. Программисту не нужно самостоятельно выделять память под что-либо. С одной стороны это уменьшает контроль программиста над программой, с другой, разработка значительно ускоряется.
• Сборщик мусора. Если объект становится бесполезным (на него перестаёт что-либо ссылаться), он автоматически удаляется сборщиком мусора. Сборщик мусора позволяет оптимизировано использовать память и не удалять бесполезные объекты вручную.
• a, b = b, a. Эта строка меняет местами значения переменных, теперь то, что было в a, находится в b и наоборот. Такое возможно, потому что Питон сначала рассматривает переменные справа от знака «=» и помещает их в список, то же он делает с элементами слева от «=», затем он связывает каждый элемент правого списка с левым. Таким способом можно обменивать значения не только двух переменных, но и трёх, пяти и так далее.
• Привязка типа данных. Тип данных привязан к значению, а не к переменной. То есть значение — это какой-то объект с атрибутами, которые определяют его тип и другие характеристики, а переменная — просто ссылка на этот объект. Такой подход позволил обойтись без явного определения типов и значительно упростил повторное присваивание значения переменной (особенно, если тип нового значения отличен от начального).
• Цикл for. Работать с массивами, списками и другими контейнерами в Питоне просто и удобно. Когда необходимо перебрать все его элементы, конструкция выглядит так: «for x in контейнер:» (перебор идёт от 0 до последнего элемента, его индекс можно обозначить как -1). Если нужно, чтобы прошло определённое количество циклов, пишут так: «for x in range(1,9):» (цикл будет выполняться со значениями x от 1 до 8).
• Интерпретируемый язык. Написанный код не нужно компилировать, достаточно запустить его и получить результат. Более того, можно работать в интерактивном режиме и получать результат буквально после каждой операции.
Модули pygame и random
Pygame — набор модулей языка программирования Python, предназначенный для написания компьютерных игр и мультимедиа-приложений. Эта библиотека популярна для создания игр под различные устройства на Windows, macOS, Linux или Android. Она помогает разработчику не только описать геймплей, но и работать с клавиатурой, мышью, акселерометром, звуком и видео.
Модуль random предоставляет функции для генерации случайных чисел, букв, случайного выбора элементов последовательности
2.2 Популярность Python. Преимущества и недостатки.
Несмотря на то, что языку уже более 31 года, он популярен среди программистов всего мира. Python используется почти в каждом среднем или крупном проекте, если не как основной инструмент разработки, то как инструмент для создания прототипа или написания какой-то его части. Он собрал вокруг себя огромное сообщество разработчиков, предпочитающих именно этот язык программирования
Преимущества Python
Специалисты в этой сфере выделяют огромное множество преимуществ у Python. К ним относятся:
· Простота и минималистичность . Чтение программы на Python очень напоминает текст английского языка, хотя и достаточно строгого. Такая конструкция Python является одной из его самых сильных сторон.
· Простота синтаксиса. Низкий порог0вхождения (при изучении нового языка программирования можно быстро и без больших усилий добиться значительных результатов). Код языка чистый и понятный, без лишних символов и выражений.
· Расширяемость и гибкость. Python можно легко расширить для взаимодействия с другими программными системами и библиотеками или встроить в другие программы в качестве компонента. Например, если вам нужно, чтобы какая-то часть программы работала очень быстро или вы вынуждены скрыть часть алгоритма, вы можете написать эту часть программы на C или C++, а затем вызывать её из программы на Python.
· Интерпретируемость. Интерпретатор Python есть для всех популярных платформ и по умолчанию входит в большинство дистрибутивов Linux. Программа просто выполняется из исходного текста. Python сам преобразует этот исходный текст в некоторую промежуточную форму, называемую байт-кодом. Байт-код - это код виртуального процессора, который обычно интерпретируется в машинный. Всё это заметно облегчает использование Python, поскольку нет необходимости заботиться о компиляции программы, подключении и загрузке нужных библиотек и т.д.
· Кроссплатформенность. Python имеет возможность запускать программы не только для программных компьютеров, но и для телефонов, приставках и другое. Все ваши программы смогут запускаться на любой из этих платформ без каких-либо изменений, если только вы не использовали системно-зависимые функции.
· Стандартизированность. У Python есть единый стандарт для написания кода — Python Enhancement Proposal или PEP, что в переводе означает Предложения по развитию Python, благодаря чему язык остаётся читабельным даже при переходе от одного программиста к другому.
· Open Source. Open Source – это обширный и постоянно растущий ресурс для разработчиков, изучая который, они прокачивают свои навыки, начинают понимать больше и становятся лучше как программисты. У интерпретатора Python открытый код, то есть любой, кто заинтересован в развитии языка, может поучаствовать в его разработке и улучшении.
· Большое сообщество. Вокруг Python образовалось дружественное сообщество, которое поможет новичку или уже опытному разработчику и разобраться в его проблеме. Во всём мире проходит много мероприятий, где можно познакомиться с коллегами и узнать много нового.
· Востребованность на рынке труда и поддержка гигантами IT- сферы. Python-разработчики0востребованы во многих проектах и им несложно найти работу. Разработку на Python ведут в Google, Facebook, Spotify, Netflix, Microsoft Intel, а в России — «Яндекс», «ВКонтакте» и «Сбербанк». Это серьёзно влияет на статус языка.
Недостатки Python
У Python, как и у любого другого языка, есть не только плюсы, но и минусы,а среди разработчиков - не только фанаты, но и ненавистники. К недостаткам Python можно отнести следующее:
Низкая производительность.
Python требует высоких вычислительных мощностей серверов и компьютеров. Это делает его не таким быстрым, он отстаёт от других языков по производительности. В условиях сильного развития мощности это не так заметно, как раньше, но всё равно даёт о себе знать. Чтобы нивелировать эту проблему, разработчики обращаются к языку программирования C для реализации проблемного участка кода. Динамическая типизация. Python относится к языкам с динамической типизацией, что делает его невероятно гибким при разработке. Но несмотря на это, он потребляет много ресурсов и имеет низкую скорость выполнения программы. Глобальная блокировка интерпретатора (GIL). Это способ синхронизации потоков, который используется в некоторых интерпретируемых языках программирования. Хотя GIL является самым простым способом избежать конфликтов при одновременном обращении разных потоков к одним и тем же участкам памяти, у такого подхода есть недостаток — ограничение параллельности вычислений. Также он не позволяет достигать высокой эффективности вычислений при работе на многоядерных системах.
Что можно написать на Python? Python используют во многих областях программирования, поэтому на нём можно создать что душе угодно: Интерфейс и внутренний функционал web-сайта. Программист легко может работать со связями URL адресов, обращениями к базам данных и созданием HTML файлов, которые пользователь видит в браузере.
Blockchain. Блокчейн — это последовательная цепочка блоков, где каждый блок содержит информацию и всегда связан с предыдущим. Технология особенно популярна в финансовой сфере и криптовалюте. Блокчейн совмещает в себе защищенность и открытость информации, он позволяет получить доступ к данным из любой точки мира, но в то же время его практически невозможно взломать, данные хранятся на каком-то главном компьютере, а взламывать каждый блок очень затратно и долго.
Бот. Бот - Это программа, автоматически выполняющая какие-либо действия в заданное время или в ответ на поступивший сигнал. Боты могут примитивно симулировать поведение человека, поэтому они часто используются для работы в технической поддержке и поиска информации в интернете База данных. База данных — это информация, систематизированная по общим признакам и специальным правилам. В любом большом проекте используются базы данных, в них хранится информацию о пользователях, изменениях в программе и т. д.VR-объекты. VR дополняет физический мир с помощью виртуальных технологий. То есть виртуальные объекты проецируются на реальное окружение, и имитируют признаки и поведение обычных физически объектов. Игра. В Python в основном создаются самые простые игры, начиная от змейки закачивая 2D платформером. Создавать 3D игры – очень трудно. Python используется либо для разработки прототипа, либо для реализации какой-то части игры. Для написания простенькой игры можно воспользоваться библиотекой Pygame или Arcade, которые дают все необходимые инструменты и возможности для создания небольшой 2D игры. Язык программирования. Python достаточно высокоуровневый язык, поэтому создавать на нём ещё один язык программирования будет глупо, но возможно. Полезнее будет разработать интерпретатор или библиотеку для Python или другого языка программирования. Конечно, это не весь перечень вещей, которые поддаются созданию на Python. Создать можно что угодно, начиная с обычного калькулятора, заканчивая масштабными работающими серверами, необходимо только время и знания.
2.3 История создания игр
История появления первых компьютерных игр начинается с 1940 года. Долгое время игры были непопулярны из-за того, что люди не имели компьютеров. Уже с 1970 годов начинают появляться аркадные автоматы, игровые консоли и домашние ПК – Персональные компьютеры.
Первый прототип компьютерной игры был создан в США. Эта игра получила название Space War, что в переводе означает Космическая война и была рассчитана на двух игроков. Суть игры была уничтожить своего противника с помощью ракет. К сожалению, в те времена игра не получила должного внимания и популярности из-за дороговизны ПК, и нужного оборудования.
В 1984 году в России появилась всеми известная электронная игра «Ну,погоди». Этот был небольшой планшет с экраном был произведён под торговой маркой «Электроника ИМ-2», помимо игровой функции, данное устройство умело показывать время и работать в качестве будильника. Данная игрушка является полной копией игры Nintendo EG-26 Egg. Заграничный волк был заменён на нашего волка из советского мультика, а петушок на зайца. Думаю, все знают в чем заключается задача этой игры, поэтому рассказывать об этом нет смысла
2.4 Компьютерные игры. Их классификация и особенности
Компьютерные игры – это разработанные программы, предназначенные для организации игрового процесса, которые использует человек в качестве обучения или развлечения. К компьютерным играм также относят видеоигры и мобильные игры. Изначально существовали определенные отличия между видеоиграми и компьютерными играми. Видеоигры ассоциировались с отдельными устройствами, компьютеры же представляли собой программные разработки, требующие реализации на стационарных компьютерах. Уже с начала 1980-х годов эта грань стала стремительно стираться, и термины «видеоигра» и «компьютерная игра» превратились в синонимы. На сегодняшний день почти каждый ребенок проводит определенное количество времени за компьютерными играми. Даже взрослый и состоятельным мужчина любит потрепать свои нервишки в видеоиграх. Компьютерные игры рассчитаны на разные возрастные категории, начиная с детей, заканчивая взрослыми людьми. Пик популярности компьютерных игр начался в момент технологического прогресса середины XX века. Компьютерные игры появились раньше игровых компьютерных программ. Это связано с особенностями постановления и развития компьютерных технологий. Электронные устройства были компактнее, нежели первые компьютеры, которые едва ли умещались в отдельную комнату.
Классификация жанров компьютерных игр.
· Приключенческие. Эти компьютерные игры называются «бродилки», которые опираются на исторические сюжеты. Они оформлены как мультфильм с возможностью управлять главным персонажем. Такие игры тренируют сообразительность и логику. Главный герой на своём пути встречает разные предметы, которые помогают ему увеличить свои способности или, наоборот, могут нанести вред, а также попадает в различные квесты.
· Стратегии. В жанре этой игре необходимо уметь планировать, рассчитывать свои силы, анализировать ситуацию и принимать верные решения. Это достаточно сложные игры, но именно они формируют усидчивость и умение планировать свои действия заранее.
· Аркады. Это многоуровневые игрушки. Задачей игры является прохождение от уровня к уровню, которую можно выполнить, проделывая конкретные задания и получив специальную награду. Для такой игры характерна система баллов, которые получает игрок за прохождение каждого уровня. Такая игра хорошо развивает глазомер и внимание.
· Обучающие игры. В их основе лежит необходимость совершения тех или иных действий, направленных на тренировку своих определенных навыков.
· Симуляторы. Это виртуальные игры, в которых ты можешь почувствовать себя учителем, таксистом, стримером и другими.
· Экшены. Это игры, с захватывающим сюжетом, предполагающим активные и непрекращающиеся действия со стороны игрока, основанные на постоянных нажатиях клавиатуры и использования игровой мышки
· Головоломки и логически игры. К ним можно отнести все настольные игры, например, пасьянс, шахматы, монополия.
· Смешанные. Эти игры имеют в себе не один, а несколько жанров из перечисленных выше.
Основным жанром в игровой индустрии последних лет является смешанный жанр, реализации качественной 3D графики, наполненный игровым сюжетом, историей и динамикой.
Особенности компьютерных игр.
Компьютерные игры всегда поднимают настроение людям. Это происходит из-за того, что они имеют определенные характерные особенности, с помощью которых не дают заскучать и дарят игроку положительные эмоции.
К таким особенностям относятся следующие:
3. Практическая часть
PyCharm. Для начала, чтобы написать программу, нужно выбрать редактор кода. Мой выбор остановился на PyCharm, так как я считаю его самым удобным и функциональным для себя.
PyCharm — интегрированная среда разработки для языка программирования Python. Предоставляет средства для анализа кода, графический отладчик, инструмент для запуска юнит-тестов и поддерживает веб-разработку на Django.
Вызываем модули pygame и random. Создаем окно и указываем его размеры:
Указываем размеры существ и поверхности и указываем путь и размеры их моделей.
Юнит — название боевой или рабочей единицы, предполагающей возможность управления в компьютерных играх жанра «Стратегия» и «RPG». Часто под юнитом подразумевается любая «живая единица», которая может самостоятельно перемещаться, вступать в бой, собирать ресурсы, строить здания и т. д.
Создаем отдельный класс юнитов и указываем его параметры (скорость, модель).
Гумбы — это плотоядные грибы, способные бегать и иногда летать. Обычно, это стандартные и самые слабые противники Марио. Создаем еще один класс для Гумб. Делаем их спавн (появление на экране) рандомным (случайным).
Указываем таймер спавна губм чтобы они не появились сразу и в дальнейшем сделать их появление быстрее
Делаем спавн гумб зависящий от очков (чем больше очков тем быстрее спавн гумб) и их уничтожение за границами поля (очиста списка всех гумб), а затем и завершение игры.
Тестирование игры
Первый запуск.
4. ЗАКЛЮЧЕНИЕ
В ходе моей проделанной исследовательской работы нам удалось добиться желаемого результата. У меня получилось создать игру на языке программирования Python, конечно, не без каких-либо проблем и недочётов. К такому недочёту можно отнести отсутствие звуков, что в дальнейшем я постараюсь исправить. Я ожидал, что создание игры не будет какой-то тяжелой работой, но оказалось все совсем иначе. Написание кода и автоматизация работы функций в моих кодах было очень трудоемким занятием, ведь если я сделаю хоть один не правильный шаг, то будто бы попадаем в зыбучие пески, из которых очень тяжело выбраться. Но все же я справился с поставленными задачами и целью, в дальнейшем постараюсь доработать свою игру и выйти на еще более высокий уровень.
Я попросил своих друзей оценить мою игру и что удивительно, игра, по их мнению, оказалась очень даже хороша для первого раза и понравилась всем.
Список использованных источников
Весенняя сказка
Музыка космоса
Рисуют дети водопад
Рисуем весеннюю вербу гуашью
Н. Гумилёв. Жираф