Введение
Актуальность: несмотря, на простоту исполнения, аркадные игры имеют свою неубывающую аудиторию и не собираются уходить в прошлое. Мы знаем такие игры как тетрис, змейка и т.д., которые до сих пор привлекают внимание людей.
Существуют также аркадные игры, которые завоевали своих поклонников, исполненные в национальных стилях. Но на сегодня нет игр в стиле бурятской культуры. Поэтому я решил создать такую игру.
За основу моей игры я решил взять бурятский народный танец «Ехор».
Гипотеза: написать игру можно самому и воплотить в ней свои идеи.
Цель работы: создать игру «Ёхор» на языке Python.
Задачи:
Изучить необходимую информацию для написания игры.
Выбрать среду разработки.
Изучить необходимые библиотеки в Python для реализации игры.
Создать дизайн игры.
Написать игру «Ёхор» на языке Python, используя полученные знания.
Объект работы: разработка аркадных игр.
Предмет работа: разработка собственной игры на языке программирования Python.
Методы: сбор и анализ информации, обобщение, проектирование, разработка, тестирование.
Теоретическое исследование разработки игр и программирования
Разработка компьютерных игр стала одной из самых динамично развивающихся областей в мире программирования и технологий. В условиях постоянно растущей аудитории и значительного влияния игр на культуру изучение Gamedev является актуальным и важным. Моя работа, в том числе, направлена на изучение теоретических основ разработки игр, технологий программирования и лучших практик в этой области.
Основы и этапы разработки игр
Основные этапы разработки игр включают:
Концепция: на этом этапе формируется идея игры, жанр и ключевые механики.
Дизайн: здесь, создаются детализированные модели игры, описывающие персонажей и интерфейс пользователя.
Программирование: этот этап включает в себя выбор языка программирования и создание кода.
Тестирование: важный этап, на котором выявляются и исправляются ошибки, а также тестируется удобство игрового геймплея.
Разработка игр — это сложный и многогранный процесс, требующий знаний и навыков в различных областях — от программирования до дизайна и психологии. Понимание этого позволяет разработчику создавать качественные и увлекательные игры.
Игры могут служить инструментом для обучения, развивать критическое мышление и способствовать социальным взаимодействиям. Они открывают новые формы самовыражения и творчества, что является значимым для молодежной культуры.
Будущее индустрии игр выглядит многообещающим, с развитием технологий, таких как виртуальная и дополненная реальность, а также искусственного интеллекта. Эти технологии способны изменить способ взаимодействия игроков с играми, обеспечивая более глубокое погружение и интерактивность.
С каждым годом игровая индустрия становится более разнообразной, открывая двери для новых талантов и идей.
Этапы разработки игры
Любое начало разработки игр начинается с выбора языка программирования, который является основным инструментом разработчика. Наиболее распространенные языки включают:
C++: этот язык часто используется в разработке высокопроизводительных игр, особенно с использованием таких движков, как Unreal Engine. C++ позволяет программистам управлять памятью и производительностью, что критически важно для создания игр с высоким уровнем графики и сложной логикой.
C#: облегчает разработку благодаря своей гибкости и простоте, что делает его подходящим как для начинающих, так и для опытных разработчиков.
Java: используется для создания мобильных игр на платформе Android. Java является языком высокого уровня, который облегчает создание кроссплатформенных приложений.
Python: находит применение в создании прототипов и в образовательных играх, благодаря простоте и читабельности синтаксиса.
JavaScript: широко применим в разработке веб-игр, особенно с использованием технологий, таких как HTML5 и WebGL.
Проектирование игр.
Проектирование игр требует креативного подхода вместе с техническими знаниями. Этот процесс включает в себя создание концепции, игровых механик, интерфейса и уровня сложности. Здесь важно не только понимать, как должна выглядеть игра, но и каким образом игрок будет взаимодействовать с миром игры. Навыки в проектировании помогают программисту принимать осознанные решения на ранних этапах разработки и выстраивать структуру проекта, что предотвращает потенциальные проблемы на более поздних стадиях. Основные аспекты проектирования:
Игровая механика: это набор правил и систем, которые определяют поведение игры и взаимодействие игрока с игровым миром.
Пользовательский интерфейс (UI): это важный аспект, который обеспечивает взаимодействие игрока с игрой. Программисты должны знать основы проектирования интерфейса и уметь реализовывать его в игре.
Тестирование.
Тестирование — это неотъемлемая часть разработки игр, которая позволяет выявить и устранить ошибки, до выхода продукта на рынок. Процесс тестирования должен быть систематичным, охватывая различные аспекты игры, такие как механики, производительность и взаимодействие пользователей. Знание различных методов тестирования, начиная от юнит-тестирования и заканчивая тестированием пользовательского опыта, позволяет программистам создавать более качественные продукты
Разработка игр требует от программиста широкого спектра знаний и навыков. Все аспекты - от языков программирования и до проектирования и тестирования — являются критически важными для создания качественных игр.
Разработка игры «Ёхор»: программирование и моделирование
Разработка игры начинается с определения дизайна и механики игры. Ехор – (бур. Ёохор) – народный бурятский танец. Исполняется в кругу, в котором участники танца, держась за руки, ведут хоровод. Было решено создать игру в формате Аркады с простым и понятным интерфейсом, который будет понятен каждому.
Арка́да (англ. arcade game, arcade genre) — жанр компьютерных игр, характеризующийся коротким по времени, но интенсивным игровым процессом.
Механика игры представляет собой строевой ряд хоровода, длинной которого управляет игрок. Дизайн и модель управляемого ряда связаны с традиционной символикой бурятского народа.
Дизайн игры
Дизайн игры — это ключевой элемент, который определяет, как игровая механика, визуальность, оформление и пользовательский интерфейс взаимодействуют друг с другом, создавая целостный и увлекательный опыт для игрока.
Модель игрока была разработана в виде головного убора традиционной бурятской культуры – малгай.
Головной убор бурят (бур. малгай) — это шапка конической формы, отороченная бархатом или мехом. От нижней части «дэнзэ» вниз струятся красные шелковые кисти (бур. улаан залаа).
Модель была выполнена с помощью сервиса Piskel. Простота и понятность, в то же время функциональность интерфейса позволяет создать арт-объект дизайнеру/программисту даже с самыми базовыми навыками в области рисования и дизайна.
Рис 1. Интерфейс и рабочая область сервиса Piskel.
Программирование
Ни один игра не работает без внутренней программы. Программы пишут в специальных редакторах кода. Мы будем писать код в PyCharm. Эта среда разработки полностью бесплатна для образовательных целей, ее основной язык - Python.
Рис 2. Установка среды разработки PyCharm.
Для начала следует определиться с тем, с помощью какой библиотеки начать описывать игру. Библиоте́ка в программировании — сборник подпрограмм или объектов, используемых для разработки программного обеспечения (ПО). Я буду использовать библиотеку PyGame. PyGame — это «игровая библиотека», набор инструментов, помогающих программистам создавать игры. К ним относятся: графика и анимация, управление (мышь, клавиатура, геймпад и так далее). В начале программы нужно импортировать необходимые библиотеки и задать базовые переменные настроек игры:
Рис 3. Импортирование библиотеки и построение структуры игры
Зададим параметры для игрового окна главного экрана меню. Для этого следует открыть окно игры:
Рис 4. Функция, открывающая окно игры
Pygame.init() – это команда, которая запускает pygame. Self.ventana – окно программы, которое создается, когда мы задаем его параметры в настройках в width, visata. Информация с каждым разом должна обновляться. Для этого потребуется расписать отдельную функцию для программы, в которой информация менялась в зависимости от пополнения хоровода или завершения игры.
Рис 5. Функция для обновления экрана
Неотъемлемой частью игры является механика управления игровой модели. Для этого я также прописал дополнительную функцию, в которой передвижение хоровода запрограммированы на клавиши – стрелки клавиатуры. К тому же нужно определить время движения ряда, это выполнено с помощью time.sleep
Рис 6. Функция для управления хора
Теперь остается дописать финальную функцию кода, которая идет в самом конце, так как она отвечает за запуск игры. За это отвечает строчка кода - self.on_init()
Рис 7. Функция запуска программы
Тестирование игры «Ёхор»
Игра «Ёхор» — это первый игровой проект на Python в моей жизни, который я написал самостоятельно, изучив всю нужную информацию.
Перед тем как начать программировать робота, мне нужно было ознакомиться с языком программирования Python. Такие понятия как переменная, функция, объект и класс в документации объяснили очень просто и понятно.
После изучения нужного материала я приступил к написанию кода и постепенного изучения языка на практике. Экспериментировал с переменными и их значениями, чтобы добиться желаемого результата. Разобрался в последовательности функций для корректного функционирования программного кода. Постепенно, шаг за шагом, усложняя код я написал свою первую игру «Ёхор».
Рис 8. Главное меню программы
Рис 9. Игровое поле
В процессе разработки было проведено множество тестирований: пробовал разное время для движения хора, менял цветовую палитру и следил за корректной работой игры.
Теперь я знаю как устроена библиотека pygame и основы программирования на Python. И могу создавать игры разного формата с изменением параметров под мои фантазии.
Заключение
Разработка игры «Ёхор» позволила мне освоить базовые навыки программирования на языке Python, а также понять принципы создания компьютерных игр. Этот проект стал отличным стартом для дальнейшего изучения программирования и создания более сложных приложений.
Этот проект демонстрирует, как можно начать изучать программирование через увлекательный процесс создания собственной игры. Надеюсь, он вдохновит других на дальнейшее погружение в мир программирования!
Список использованной литературы
Библиотека Pygame / Часть 1. Введение — URL https://habr.com/ru/articles/588605/
Библиотека (программирование) // wikipedia. — URL https://ru.wikipedia.org/wiki/%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)
Шапошникова С. Модуль pygame.font // Лаборатория линуксоида – 2024. – URL https://younglinux.info/pygame/font
Шапошникова С. Модули pygame.image и pygame.transform // Лаборатория линуксоида – 2024. – URL https://younglinux.info/pygame/image
Работа с изображением – URL https://mrtsepa.gitbooks.io/pygame-tutorial/content/reference/pygame/images.html
Oleg Kishinskii. Русскоязычная документация по Python // Python Lessons – 2020 – URL https://pylessons.readthedocs.io/ru/latest/
Стрелялка с Pygame №7: счет и рендеринг текста // PythonRu – 2018-2021 – URL https://pythonru.com/primery/streljalka-s-pygame-7-schet-i-rendering-teksta