Subject

Програмирање на видео игри

1. Course Title Програмирање на видео игри
Video Games Programming
2. Code F23L3W152
3. Study Programme
4. Organizer of the study programme (unit, institute, department or division) Faculty of Computer Science and Engineering
5. Degree level (first, second, third cycle) Прв циклус
6. Academic year / semester 7 / Зимски
7. Number of ECTS credits 6
8. Teacher Катарина Тројачанец Динева, Сузана Лошковска
9. Prerequisites for enrolling in the course Алгоритми и податочни структури или Примена на алгоритми и податочни структури
10. Objectives of the course programme (competences) Целта на предметот е да ги запознае студентите со процесот на програмирање на видео игри. За таа цел студентите ќе бидат запознаени со основните компоненти на една видео игра и начинот на кој истите се програмираат. По завршување на курсот се очекува кандидатот да ги разбира концептите за програмирање на видео игри и да може да реализира програмски самостојно или во тим едноставна видео игра.
11. Course content Предавања:
1. Вовед. Дефиниција. Кратка историја. Класификации и видови игри.
2. Архитектура на игра. Иницијализација на игра. Обезбедување излез од играта.
3. Актери во играта. Начини на дефинирање на актери. Композиција од објекти за дефинирање карактеристики на актери.
4. Главен циклус на игра. Начини за контрола на текот на играта. Користење на нитки.
5. Кеширање на ресурси за играта. Видови податоци. Техники за ефикасно сметување на податоците и ефикасно читање на истите.
6. Влезни уреди. Видови. Контрола на влез.
7. Кориснички интерфејси за игри. Дефинирање на поглед. Програмирање на контроли и екрански елементи. Локализација.
8. Менаџирање на настани во игра. Додавање и контрола на звук во игра.
9. Основни принципи за графика во игра. Дефинирање на материјали. Координатни системи и трансформации. Репрезентација на графички објекти во игра. Светлински модел.
10. Графика во игра. Користење на текстури. Репрезентација и програмирање на 3Д сцени.
11. Физика во игри. Закони и вметнување на закони во однесување на елементите. Програмирање на колизии.
12. Вештачка интелигенција. Техники за опишување на однесување на виртуелни актери.

Вежби:
1. Вовед во технологии и програмски јазици што овозможуваат програмирање на видео игри.
2. Понапредни карактеристики на технологиите и програмските јазици што овозможуваат програмирање на видео игри.
3. Имплементација на примери за дефинирање актери и нивните карактеристики.
4. Имплементација на основен облик на главниот циклус на играта.
5. Имплементација на покомплексен облик на главниот циклус на играта. Сместување и читање податоци.
6. Имплементација на примери што вклучуваат влез и контрола на влез во играта,
7. Имплементација на кориснички интерфејс за играта. Програмирање на контроли и екрански елементи. Локализација.
8. Имплементација на примери со менаџирање на настани во игра. Додавање и контрола на звук во игра.
9. Примери што вклучуваат графика во играта. Дефинирање на материјали. Координатни системи и трансформации. Репрезентација на графички објекти во игра. Светлински модел.
10. Примери што вклучуваат користење на текстури. Репрезентација и програмирање на 3Д сцени.
11. Примери што се донесуваат на физиката во игрите. Закони и вметнување на закони во однесување на елементите. Програмирање на колизии.
12. Примери што вклучуваат вештачка интелигенција. Техники за опишување на однесување на виртуелни актери.
12. Learning methods Предавања поддржани со презентации преку слајдови, интерактивни предавања, вежби (користење на опрема и софтверски пакети), тимска работа, пример случаи, поканети гости предавачи, самостојна изработка и одбрана на проектна задача и семинарска работа, учење во електронско опкружување (форуми, консултации).
13. Total available time 6 ECTS x 30 hours = 180 hours
14. Distribution of available time 30 + 45 + 15 + 15 + 75 = 180 часа
15. Forms of teaching activities
15.1. Lectures - theoretical instruction 30 hours
15.2. Exercises (laboratory, auditory), seminars, teamwork 45 hours
16. Other forms of activities
16.1. Project assignments 15 часови
16.2. Independent assignments 15 часови
16.3. Home study 75 часови
17. Assessment method
17.1. Tests 10 бодови
17.2. Seminar paper / project (presentation: written and oral) 15 бодови
17.3. Activities and learning 10 бодови
17.4. Final exam 50 бодови
18. Grading criteria (points / grade)
up to 50 points5 (five) (F)
from 51 to 60 points6 (six) (E)
from 61 to 70 points7 (seven) (D)
from 71 to 80 points8 (eight) (C)
from 81 to 90 points9 (nine) (B)
from 91 to 100 points10 (ten) (A)
19. Requirement for obtaining a signature and taking the final exam completed activities 15.1 and 15.2
20. Language of instruction Macedonian and English
21. Method for monitoring the quality of teaching internal evaluation and survey mechanism
22. Literature
22.1. Required literature
1. James R. Parker | Game Development Using Python (Second Edition) | Mercury Learning and Information | 2021
2. David Baron | Game Development Patterns with Unity 2021: Explore practical game development using software design patterns and best practices in Unity and C# (2nd Edition) | Packt Publishing | 2021
3. Casey Hardman | Game Programming with Unity and C#: A Complete Beginner’s Guide | Apress | 2020
4. Al Sweigart | Invent Your Own Computer Games with Python (4th Edition) | No Starch Press | 2016
5. Jason Gregory | Game Engine Architecture (Third Edition) | A K Peters/CRC Press | 2018
6. Mike McShaffry, David Graham | Game Coding Complete, Fourth Edition | Cengage Learning PTR | 2013
7. James R. Parker | Game Development Using Python (Second Edition) | Mercury Learning and Information | 2021
8. David Baron | Game Development Patterns with Unity 2021: Explore practical game development using software design patterns and best practices in Unity and C# (2nd Edition) | Packt Publishing | 2021
9. Casey Hardman | Game Programming with Unity and C#: A Complete Beginner’s Guide | Apress | 2020
10. Al Sweigart | Invent Your Own Computer Games with Python (4th Edition) | No Starch Press | 2016
11. Jason Gregory | Game Engine Architecture (Third Edition) | A K Peters/CRC Press | 2018
12. Mike McShaffry, David Graham | Game Coding Complete, Fourth Edition | Cengage Learning PTR | 2013
22.2. Additional literature
No. Author Title Publisher Year