Інтерактивна кооперативна 2D гра жанру extraction-shooter
Вантажиться...
Дата
2026
Автори
Науковий керівник
Назва журналу
Номер ISSN
Назва тому
Видавець
КПІ ім. Ігоря Сікорського
Анотація
Дипломна робота виконана на 70 сторінках, містить 15 ілюстрацій, 1 таблицю, 2 додатки, 18 джерел в переліку посилань.
Мета роботи – створення гри жанру 2D Extraction Shooter з кооперативним режимом та клієнт-серверною архітектурою.
Методи та засоби: мова програмування Python, бібліотека Pygame для побудови ігрового простору, формат JSON для серіалізації та збереження профілів користувачів і історії ігор, алгоритм Ray casting для розрахунку динамічного освітлення, алгоритм AABB для перевірки колізій, Евклідова метрика для дій ботів. Основний зміст роботи: аналіз існуючих рішень у жанрі кооперативних 2D-шутерів, розробка підсистеми генерації матричного рівня, реалізація механік переміщення, стрільби, генерації об’єктів та алгоритмів пошуку цілі ботами, імплементація обміну даних між клієнтом та сервером у режимі реального часу, впровадження механік економіки та евакуації, проведення тестування стабільності. Результат – функціонуюча програмна система кооперативної 2D-гри з підтримкою підключення по локальній мережі, власною системою інвентарю та збереження прогресу гравця.
Програма призначена для створення інтерактивної кооперативної 2D гри жанру Extraction Shooter. Де потенційний користувач може отримати глибокий тактичний досвід з виживання та управління власними ресурсами, побудованих згідно концепції «ризик-втрата». Гра містить зручний інтерфейс створений для відображення ігрових показників персонажа у мінімалістичному стилі та наявною можливістю керування інвентарем на власний розсуд. Для створення мережевої взаємодії використовувалася парадигма «авторитетного сервера». Дана модель поділила логіку на дві частини. Серверну, що виконує всі математичні розрахунки фізики, перевірку колізій за алгоритмом AABB, поведінку ботів та не використовує графічні елементи. І клієнтська частина, створена завдяки використанню Pygame, для обробки вводу користувача, відображення графічної мапи рівня та обчислення динамічного освітлення згідно алгоритму Ray casting і обмеженого поля зору. Надсилання станів ігрового світу створено через використання протоколу UDP, де втрата одного пакету є не критичною, адже через долю секунди надійде новий з більш актуальними станами. А можливі вразливості, які пов’язані з нечесною грою були вирішені шляхом ізолювання фізичного двигуна гри на серверній частині та використання серіалізації находжених даних форматом JSON.
Опис
Ключові слова
клієнт-серверна архітектура, протокол udp, pygame, 2d шутер, ray casting, client-server architecture, udp protocol, 2d shooter
Бібліографічний опис
Булак, В. В. Інтерактивна кооперативна 2D гра жанру extraction-shooter : дипломна робота ... бакалавра : 122 Комп’ютерні науки / Булак Василь Вікторович. – Київ, 2026. – 70 с.