«Разработка и создание игры на Python с помощью библиотеки Pygame»
Автор публикации: И. Шайхуллин, ученик 11А класса
Муниципальное общеобразовательное бюджетное учреждение средняя школа №1 с.Бакалы муниципального района
Бакалинский район Республики Башкортостан
Индивидуальный проект:
«Разработка и создание игры на Python
помощью библиотеки Pygame»
Автор: |
Шайхуллин Ильнур, |
ученик 11 А класса МОБУ СОШ №1 с.Бакалы |
Гаврикова С.Ф., |
учитель информатики |
МБОУ СОШ № 1 |
с.Бакалы, 2023г.
Содержание:
Введение | 3 |
1. Теоретическая часть 1.1 История создания игр | 4 4 |
1.2 Основные сведения о Pygame | 5 |
1.3 Классификация компьютерных игр | 5 |
1.4. Как создать игру? | 6 |
2. Практическая часть. 2.1 Код игры | 8 8 |
2.2. Тестирование игры | 11 |
Заключение | 11 |
Список использованной литературы | 12 |
Приложение | 13 |
Введение
Самым популярным видом досуга являются компьютерные игры, они стали неотъемлемой частью жизни человека. И каждый задумывался хоть раз: ”Легко ли создать игру? ”
Актуальность: В наши дни все больше детей проводят время за компьютерными играми. Но сейчас большинство игр не учат детей чему-то новому и полезному. В этом проекте, я хочу создать игру, которая научит детей уделять больше времени гигиене. Ведь недавно по миру гулял опасный вирус, а сейчас очень важно ухаживать за своим здоровьем.
Цель работы: Разработать компьютерную игру на Python с помощью библиотеки Pygame.
Задачи:
узнать историю возникновения компьютерных игр и библиотеки Pygame.
выбрать жанр, вид, сценарий и т.д.
установить язык программирования Python и библиотеку Pygame;
создать концепты героя, окружения, врагов и т.д.
написать код для игры.
Пройти стадии тестирования.
Гипотеза: С помощью библиотеки Pygame и языка программирования Python, я смогу создать свою игру.
Объект исследования: Библиотеки Pygame и язык программирования Python.
Предмет исследования: Возможности технологий программирования
1. Теоретическая часть
1.1. История создания игр
История компьютерных игр начинается в 1940-х и 1950-х годах, когда в академической среде разрабатывались простые игры и симуляции. Компьютерные игры длительное время не были популярны, и только в 1970-х и 1980-х годах, когда появились доступные для широкой публики аркадные автоматы, игровые консоли и домашние компьютеры, компьютерные игры становятся частью поп-культуры.
Аркадные игровые автоматы, подобные Computer Space (1971) Нолана Бушнелла и Pong (1972) Ральфа Бера, позже прозванного «отцом видеоигр» превратили компьютерные игры из забавы для программистов в коммерческий продукт.
Переполнение рынка домашних игровых консолей однообразными играми низкого качества привело к кризису индустрии компьютерных игр 1983 года. В результате на мировом рынке компьютерных игр на протяжении долгих лет доминировали компании из Японии, в первую очередь Nintendo. В эту эпоху возникли многие серии игр, существующие по сей день, такие как Mario, Final Fantasy или The Legend of Zelda. Портативная консоль Game Boy (1989) создала обширный рынок портативных консолей и игр для них; не последнюю роль в её популярности сыграла головоломка «Тетрис» Алексея Пажитнова.
1990-е годы стали временем перехода от двухмерной графики в играх к трёхмерной. Возникновения и расцвета новых жанров, таких как шутеры от первого лица, подобных Doom (1993), и стратегии в реальном времени, подобных Dune II (1992), распространение сетей и интерес к многопользовательским играм породил режим deathmatch и массовые многопользовательские онлайн-игры.
Компьютерные игры с каждым годом все больше развиваются, становясь, при этом, более реалистичными и полифункциональными, что вовлекает еще большее количество людей в мир компьютерных игр.
1.2. Pygame
Pygame - набор модулей (библиотек) языка программирования Python, предназначенный для написания компьютерных игр и мультимедиа-приложений.
Изначально Pygame был написан Питом Шиннерсом (Pete Shinners). Начиная примерно с 2004-2005 года, поддерживается и развивается сообществом свободного программного обеспечения.
Pygame использует библиотеку Simple DirectMedia Layer (SDL) с намерением обеспечить разработку компьютерных игр в реальном времени без низкоуровневой механики языка программирования C и его производных. Это основано на предположении, что самые дорогие функции внутри игр могут быть абстрагированы от игровой логики, что позволяет использовать язык программирования высокого уровня , такой как Python, для структурирования игры.
1.3. Классификация компьютерной игры
Компьютерные игры классифицируют по нескольким признакам:
1. Жанр;
2. Количество игроков;
3. Визуальное представление;
4. Платформа.
Жанры игр разнообразны:
3D или 2D шутеры; Файтинги; Слешеры; Стелс-экшен; Аркада; Приключенческие; Ролевые(RPG); Экшен; Симуляторы; Головоломки.
По количеству игроков игры разделяют на 4 вида:
Одиночная игра (Синглплейер, англ. Singleplayer).
Совместная игра на одном устройстве (Hotseat, Splitscreen).
Многопользовательская игра (Мультиплейер, Multiplayer).
Массовая онлайн игра (англ. Massively multiplayer online game, MMO).
По визуальному представлению игры можно разделить на:
2D графику.
3D графику.
Дополненная реальность (мобильные устройства с видеокамерой).
Виртуальная реальность (шлем виртуальной реальности).
По платформе игры можно разделить на следующие виды:
Персональный компьютер (ПК, PC, ноутбук, нетбук).
Игровая консоль или приставка (PS, Xbox, Nintendo).
Мобильное устройство: телефон, планшет и т.д.
Игровой автомат.
Браузерная или флеш-игра (виртуальная интернет платформа).
Для своей игры я выбрал жанр 2D-шутер, игра будет одиночной, использоваться будет 2D-графика, а игра будет на платформе ПК.
1.4. Как создать игру?
Сначала нужно придумать сценарий игры:
Перед тем как начать создавать код игры, нужно продумать сценарий игры. Для начала придумаем краткий сюжет игры с описанием основных персонажей, а так же описания уровней игры. На его основе уже можно будет разработать концепты персонажей и уровней.
Чтобы написать игру на Python необходимо не только установить сам язык программирования, но и библиотеку Pygame (набор модулей, предназначенный для написания игр). Также нужно изучить литературу, связанную с данной темой. Следующим шагом будет создание концепции игры (как она должна работать, в чем ее смысл и на кого она ориентирована).
Далее мы создаем концепт арты:
Рис.1 Главный герой Рис. 2. Враг
Рис.3. Основная локация
А так же я создал концепт арты: сердец, пуль, счетчика пуль, экрана паузы, экран после смерти, главный экран и т.д.
Практическая часть
2.1 Код игры
Теперь же можно приступать написанию кода игры.
Первым делом создаем начальные данные для нашей игры(подключение библиотеке, размер экрана, добавление названия и иконки игры):
Далее создаем массивы, куда закинем изображения, это и будет анимацией объектов (таких анимации я создал очень много):
Так же чтоб заработали анимации нужно создать условие:
Теперь создаем цикл running, для того чтобы игра не закрывалась сразу, но до него нужно написать что gameplay, pause, proigrah приравнять False(потому что игра начинается со старта, поэтому пока что экраны проигрыша, паузы и гемплейя не нужны), а running, quitt, start == True(так как игра начинается со стартового экрана).
Сейчас надо написать условие, если start == True, то запускаем «старт» параметры и изображения (в приложении вы можете ознакомиться с экраном старта):
Такие же условия делаем для геймплея, паузы и проигрыша (с экранами проигрыша и паузы вы можете ознакомиться в приложении):
В условии геймплея мы прописываем все самое важное (ознакомиться с экраном геймплея вы можете в приложении):
Код ходьбы, стрельбы и прыжков героя.
Код перемещения врагов и их смерти.
Код для запуска снарядов, их попадания по врагам.
Код для сердца, счетчика сердец и снарядов.
Код для иконки паузы и перехода в сам экран паузы.
Код при проигрыши игрока и переход на экран проигрыша.
И многое другое.
Теперь чтобы выйти из игры нужно написать ещё условие:
2.2. Тестирование игры
Протестировал игру среди знакомых, у которых есть маленькие дети, и добилась желаемого результата. Также протестированные ребята помогли с выявлением ошибок в игре и предлагали идеи для улучшения игры. Благодаря тестированию завершили разработку этой игры.
Заключение
Изучив библиотеку Pygame и его принципы, я разработал 2D-шутер игру, для того чтобы дети начали следить за гигиеной. Программа игры состоит из огромного цикла и множества условий. Так же в ходе проекта был выбран: жанр, количество игроков, визуальное представление и платформу. Работа игры заключается в том, что герой должен победить все вирусы, и следить за здоровьем. На достигнутом результате я не буду останавливаться и продолжу заниматься созданием игр, а также изучать все тонкости языка программирования Python и его библиотеки Pygame.
Список использованной литературы
1. Программируем на Python | Доусон Майкл – 416 с.
2. Python,PyGame and Raspberry Pi Game Development | Sloan Kell –220 c.
3. https://en.wikipedia.org/wiki/Pygame (WikipediA | Pygame).4. https://ru.wikipedia.org/wiki/Pygame (ВикипедиЯ | Pygame).
5.https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%8F_%D0%B8%D0%B3%D1%80%D0%B0 (ВикипедиЯ | Компьютерная игра).
6.https://ru.wikipedia.org/wiki/%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D1%8B%D1%85_%D0%B8%D0%B3%D1%80 (ВикипедиЯ | История компьютерных игр).
Приложение
Здесь вы можете посмотреть экран старта:
Экран геймплея:
Экран паузы и проигрыша: