Програмування комп’ютерних ігор 1

Elective discipline
Навчальна дисципліна професійної підготовки
Обсяг освітнього компонента: 
• у кредитах ЄКТС — 4.5.
Кількість аудиторних занять: 
Лекційних занять - 15, лабораторних занять 7.
Самостійна робота: 
91 година.
Семестровий контроль: 
Test.
Освітню компоненту забезпечує: 
Анотація: 

Дисципліна «Програмування комп’ютерних ігор 1» спрямована на формування у здобувачів теоретичних знань та практичних навичок, необхідних для ефективного програмування та розробки комп’ютерних ігор різноманітних жанрів, напрямів та рівнів складності. Курс охоплює основні підходи та методології розробки ігор (традиційні та гнучкі), інструменти для створення та модифікування ігрових об’єктів, методи управління об’єктами, а також деякі практики розробки ігрових застосувань.
У межах курсу студенти вивчають базові можливості програмного середовища Unity, методи створення ігрових об’єктів, техніки зв’язуванні ігрових об’єктів між собою та зі скриптами, додавання та використання різноманітних компонентів, створення інтерфейсу користувача, роботу з фізикою у Unity, а також практичні підходи розробки не складних ігор.
Мета вивчення дисципліни: набуття здобувачами компетентностей із застосування сучасного спеціалізованого програмного забезпечення для програмування комп’ютерних ігор.
Основні завдання дисципліни: формування базових знань та навичок з планування, організації й контролю виконання проєктів розробки ігор із використанням сучасного програмного забезпечення Unity та мови програмування C#. Студенти вчаться створювати проєкт гри, додавати необхідні ігрови об’єкти, матеріали, застосовувати програмні компоненти (Transform, MeshRenderer, Collider, Rigidbody тощо), здійснювати розробки скриптів з використанням відповідних необхідних методів та алгоритмів, аналізувати результати роботи та виправляти помилки.
Практичне значення та використання отриманих знань полягає у формуванні навичок ефективного використання провідного професійного програмного забезпечення зі створення комп’ютерних ігор.    
Значення для особистісного та професійного розвитку: розвиток лідерських і комунікаційних навичок, критичного мислення, креативності, приймати обґрунтовані проєктні рішення і адаптуватися до змін технологічного середовища.

Тематика та види навчальних занять

Для денної форми здобуття освіти

Лекційні заняття

Лекція 1. Введення в Unity. Встановлення програми, створення проєкту, структура та загальні принципи. 
Лекція 2. Ігрові об’єкти Unity, компонент Transform.
Лекція 3. Візуалізація. Матеріали, текстури та компонент MeshRenderer.
Лекція 4. Скрипти в Unity. Принципи використання та структура скрипта. 
Лекція 5. Префаби та їх взаємодія через скрипти.    
Лекція 6. Canvas та створення інтерфейсу користувача.
Лекція 7. Об’єкти інтерфейсу користувача та їх особливості.
Лекція 8. Фізика в Unity. Компоненти Rigidbody та Collider.
Лекція 9. Фізика в Unity. Метод FixedUpdate(). Клас Input.
Лекція 10. Фізика в Unity. Фізичні шари.
Лекція 11. Фізика в Unity. Зіткнення об’єктів та методи OnCollision.
Лекція 12. Фізика в Unity. Використання сил.
Лекція 13. Фізика в Unity. Raycast та Joint.
Лекція 14. Фізика в Unity. Ragdoll та анімація персонажа.
Лекція 15. Сцени в Unity.

Лабораторні роботи

Лабораторна робота №1. Створення проєкту, налаштування інтерфейсу Unity. Створення ігрових об’єктів. Компонент Transform.
Мета заняття: ознайомитися із інтерфейсом Unity, навчитися створювати проєкт, додавати стандартні ігрові об’єкти, навчитися використовувати компонент Transform.
Лабораторна робота №2. Додавання матеріалів та використання компоненту MeshRenderer. Створення скрипта та його структура.
Мета заняття: навчитися створювати матеріали та використовувати компонент MeshRenderer, навчитися створювати та підключати до об’єктів скрипти, ознайомитися зі структурою та принципами роботи скриптів у Unity.
Лабораторна робота №3. Створення та використання префабів. Об’єкт Canvas та його застосування.
Мета заняття: опанувати методи використання префабів у Unity, навчитися додавати Canvas до камери для створення інтерфейсу користувача.
Лабораторна робота №4. Об’єкти інтерфейси користувача. Вступ до фізики: принципи, можливості. Компоненти Rigidbody та Collider. Види коллайдерів.
Мета заняття: навчитися формувати інтерфейс користувача використовуючи різноманітні елементи: кнопки, панелі, тоггли тощо. Навчитися підключати методи до цих елементів задля їх роботи. Ознайомитися з базовими компонентами Rigidbody та Collider для додавання фізики у гру. Ознайомитися з різновидами коллайдерів.
Лабораторна робота №5. Клас Input. Метод FixedUpdate(). Фзичні шари.
Мета заняття: освоїти роботу з методом FixedUpdate() задля використання фізики за допомогою скриптів, навчитися використовувати клас Input для відстежування подій миші, клавіатури та інших периферійних пристроїв, навчитися завдавати та використовувати фізичні шари об’єктів для обмеження перетинів та обрання об’єктів.
Лабораторна робота №6. Зіткнення об’єктів та використання додаткових сил. Raycast.
Мета заняття: навчитися додавати та використовувати спеціальні методи, які використовують фізичний рушій Unity для знаходження перетину об’єктів у процесі руху, опанувати методи додаванні додаткових сил та крутних моментів вздовж векторів або навколо векторів. Навчитися використовувати клас Raycast для обрання об’єктів у грі.
Лабораторна робота №7. Анімація персонажа. Joint. Сцени у Unity та переходи між ними.
Мета заняття: навчитися додавати та керувати анімованою моделлю у Unity, опанувати використання Joint для формування складних моделей, навчитися створювати сцени та робити переходи між ними за допомогою скриптів.

Для заочної форми здобуття освіти

Лекційні заняття
Лекція 1. Вступ до курсу. Створення проєкту, структура та загальні принципи. Ігрові об’єкти Unity, основні компоненти Unity. Матеріали та текстури. Скрипти в Unity. Префаби та їх взаємодія через скрипти. Canvas та об’єкти інтерфейсу користувача. Вступ до фізики в Unity.
Лекція 2. Компоненти Rigidbody та Collider. Метод FixedUpdate(). Клас Input. Фізичні шари. Зіткнення об’єктів та методи OnCollision. Використання сил. Raycast та Joint. Ragdoll та анімація персонажа. Сцени в Unity.

Лабораторні роботи 
Лабораторна робота №1. Створення проєкту, налаштування інтерфейсу Unity. Створення ігрових об’єктів. Базові компоненти Unity. Матеріали, префаби, скрипти. Інтерфейс користувача.
Мета роботи: ознайомитися із інтерфейсом Unity, навчитися створювати проєкт, додавати стандартні ігрові об’єкти, навчитися використовувати базові компоненти Unity. Навчитися створювати матеріали та використовувати компонент MeshRenderer, навчитися створювати та підключати до об’єктів скрипти, ознайомитися зі структурою та принципами роботи скриптів у Unity. Навчитися створювати та використовувати префаби крізь взаємодію зі скриптами. Навчитися створювати та підключати елементи інтерфейсу користувача.
Лабораторна робота №2. Вступ до фізики: принципи, можливості. Компоненти Rigidbody та Collider. Види коллайдерів. Клас Input. Метод FixedUpdate(). Фзичні шари. Зіткнення об’єктів. Клас Raycast. Joint. Анімація персонажа.
Мета роботи: Ознайомитися з базовими компонентами Rigidbody та Collider для додавання фізики у гру. Ознайомитися з різновидами коллайдерів. Навчитися використовувати метод FixedUpdate() та інші методи, які використовуються при зіткненні об’єктів. Опанувати використання класу Raycast та можливості Joint. Ознайомитися з принципами обробки анімованих моделей. 

Консультації здійснюються впродовж семестру згідно встановленого розкладу.

Індивідуальна робота

Для денної форми здобуття освіти
Не перебачено.
Для заочної форми здобуття освіти
Контрольна робота 
Завдання для виконання контрольної роботи здобувач отримує на установчій лекції.
Робота містить 5 теоретичних питань та 2 практичних завдання.
Обсяг відповіді на кожне теоретичне питання: не менше, ніж 1 сторінка машинописного тексту. Текст відповіді повинен бути виконаний самостійно, а не скопійованим з навчального посібника.
Лабораторна робота №1. Основи роботи з Unity. Створення проєкту, створення ігрових об’єктів, префабів та матеріалів. Створення та підключення скриптів. Розробка та використання елементів інтерфейсу користувача.
Лабораторна робота №2. Фізика у Unity. Створення об’єктів, додавання та використання Rigidbody та Collider. Використання методу FixedUpdate() та класу Raycast. Додавання та використання анімованої моделі.
Термін надання виконаної контрольної роботи на перевірку – не пізніше, ніж за місяць до початку сесії.

 Форми контрольних заходів та оцінювання результатів навчання

Для денної форми здобуття освіти
Поточний контроль полягає у виконанні
1) 7-и індивідуальних поточних завдань. Індивідуальні поточні завдання полягають в виконанні типових завдань відповідно до мети та завдань лабораторних занять. Бездоганне виконання індивідуальних поточних завдань №1 – №4 оцінюється у 7,5 балів кожне. Виконання завдань № 5 – 7 оцінюється максимально у 10 балів;
2) двох модульних контрольних робіт. Модульні контрольні роботи складаються з практичної частини та проводяться у формі виконання індивідуальних завдань зі створення нових проєктів Unity, додавання ігрових об’єктів, створення та підключення скриптів, програмування функцій та методів, створення інтерфейсу користувача. Бездоганне виконання кожної модульної контрольної роботи становить 20 балів.
Підсумковий контроль – залік. Залік накопичувальний. Максимальна оцінка, яку може отримати студент – 100 балів. Мінімальна оцінка, яка дозволяє отримати «зараховано» – 60 балів. 
    
Для заочної форми здобуття освіти
Виконання та захист лабораторних робіт оцінюється у 30 балів.
Захист контрольної роботи. Бездоганне виконання контрольної роботи оцінюється у 40 балів. При її захисті студент може отримати до 30 балів.
Підсумковий контроль – залік. Залік накопичувальний. Максимальна оцінка, яку може отримати студент – 100 балів. Мінімальна оцінка, яка дозволяє отримати «зараховано» – 60 балів.
 

Компетентності: 

К1. Здатність використання теоретичних та практичних знань технологій програмування при програмуванні ігор за допомогою спеціалізованих редакторів.
К2. Здатність використання теоретичних та практичних знань 2D- і 3D-технологій проєктування при створенні ігор.

Передумови вивчення дисципліни: 

Алгоритмізація
та програмування
Об’єктно-орієнтоване програмування,
Тривимірне моделювання
та дизайн

Результати навчання: 

РН1. Розробляти програмні моделі предметних середовищ, вибирати парадигму програмування з позицій зручності та якості застосування для реалізації методів та алгоритмів програмування комп’ютерних ігор.
РН2. Володіти мовами прикладного програмування та методами розробки програм, що взаємодіють з компонентами комп’ютерних систем розробки ігор.

2024