Video Games Programming

Video Games Programming

1.

Subject title

Video Games Programming

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

2.

Code

F23L3W152

3.

Study program

Примена на информациски технологии, Софтверско инженерство и информациски системи, Компјутерски науки, Компјутерско инженерство, Интернет, мрежи и безбедност, Информатичка едукација, Software engineering and information systems, Примена на информациски технологии, Софтверско инженерство и информациски системи, Компјутерски науки, Компјутерско инженерство, Интернет, мрежи и безбедност, Software engineering and information systems, Стручни студии за програмирање, Стручни студии за програмирање, Software Engineering,

4.

Organizer of the study program (unit, institute, department, division)

Faculty of Information Sciences and Computer Engineering

5.

Study cycle (first, second, third)

Прв циклус

6.

Academic year / semester

4 / Зимски

7. Number of ECTS credits

6.0

8.

Instructor

ворн. проф. д-р Катарина Тројачанец Динева проф. д-р Сузана Лошковска

9.

Prerequisites for enrollment

Алгоритми и податочни структури или Примена на алгоритми и податочни структури

10.

Subject goals and competencies:


The aim of the course is to introduce students to the video game programming process. For this purpose, students will be introduced to the basic components of a video game and the way in which they are programmed. After completing the course, the candidate is expected to understand the concepts of video game programming and to be able to program a simple video game independently or in a team.

11.

Subject content:


Introduction. Definition. A brief history. Classifications and types of games. Game architecture. Game initialization. Providing an exit from the game. Actors in the game. Ways of defining actors. A composition of objects for defining actor characteristics. Main game cycle. Ways to control the flow of the game. Using threads. Caching game resources. Types of data. Techniques for efficient data storage and efficient data reading. Input devices. Types. Input control. User interfaces for games. Defining a view. Programming controls and screen elements. Localization. Managing in-game events. Add and control in-game sound. Basic principles of in-game graphics. Defining materials. Coordinate systems and transformations. Representation of graphical objects in a game. Light model. In-game graphics. Using textures. Representation and programming of 3D scenes. Physics in games. Laws and the insertion of laws into the behavior of elements. Collision programming. Artificial intelligence. Techniques for describing the behavior of virtual actors.

12.

Learning methods:


Предавања поддржани со презентации преку слајдови, интерактивни предавања, вежби (користење на опрема и софтверски пакети), тимска работа, пример случаи, поканети гости предавачи, самостојна изработка и одбрана на проектна задача и семинарска работа, учење во електронско опкружување (форуми, консултации).

13.

Total available time fund

6.0 ECTS x 30 hours = 180 hours

14.

Time distribution

30 + 45 + 15 + 15 + 75 = 180 hours

15.

Forms of teaching activities

15.1.

Lectures - theoretical teaching

30 hours

15.2.

Exercises (laboratory, classroom), seminars, team work

45 hours

16.

Other forms of activities

16.1.

Project tasks

15 hours

16.2.

Independent tasks

15 hours

16.3.

Homework

75 hours

17.

Grading method

17.1.

Tests

10 points

17.2.

Seminar work / project (presentation: written and oral)

15 points

17.3.

Activities and learning

10 points

17.4.

Final exam

50 points

18.

Grading criteria (points / grade)

up to 50 points

5 (five) (F)

from 51 to 60 points

6 (six) (E)

from 61 to 70 points

7 (seven) (D)

from 71 to 80 points

8 (eight) (C)

from 81 to 90 points

9 (nine) (B)

from 91 to 100 points

10 (ten) (A)

19.

Condition for signature and taking final exam

реализирани активности 15.1 и 15.2

20.

Language of instruction

македонски и англиски

21.

Quality assurance method

механизам на интерна евалуација и анкети

22.

Literature

22.1.

Mandatory literature

No.

Author

Title

Publisher

Year

3981

James R. Parker

Game Development Using Python (Second Edition)

Mercury Learning and Information

2021

3982

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

3983

Casey Hardman

Game Programming with Unity and C#: A Complete Beginner’s Guide

Apress

2020

3984

Al Sweigart

Invent Your Own Computer Games with Python (4th Edition)

No Starch Press

2016

3985

Jason Gregory

Game Engine Architecture (Third Edition)

A K Peters/CRC Press

2018

3986

Mike McShaffry, David Graham

Game Coding Complete, Fourth Edition

Cengage Learning PTR

2013

3987

James R. Parker

Game Development Using Python (Second Edition)

Mercury Learning and Information

2021

3988

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

3989

Casey Hardman

Game Programming with Unity and C#: A Complete Beginner’s Guide

Apress

2020

3990

Al Sweigart

Invent Your Own Computer Games with Python (4th Edition)

No Starch Press

2016

3991

Jason Gregory

Game Engine Architecture (Third Edition)

A K Peters/CRC Press

2018

3992

Mike McShaffry, David Graham

Game Coding Complete, Fourth Edition

Cengage Learning PTR

2013

22.2.

Additional literature

No.

Author

Title

Publisher

Year