Skip to main content

Advanced Game ProgrammingLaajuus (5 cr)

Code: LTD6052

Credits

5 op

Teaching language

  • Finnish

Responsible person

  • Seppo Nevalainen
  • Anssi Gröhn

Objective

Objective is to further increase your skills and understanding about game development within Unreal Engine 4. You will take command of developing reusable game components using C++. During this course you will implement game concept into a prototype, containing several maps. Game prototype is built weekly in smaller sections, and after the course you will perform play testing to equivalent prototypes, where you give and receive peer feedback.

Content

Game design and construction:

Game concept and tools
Unreal Engine 4 game framework
Level design
Deepening game experience with game design
Giving and obtaining meaningful feedback from play testing
Play testing the builds
Building, moving and animating the player character
Restricting player character movement
Building and linking animation sequences in Unreal Engine 4
Building your game for several platforms

Programming:

Creating base classes from Actors using C++
Deriving blueprints from your own C++ classes
Utilizing trigger areas in C++
Building event chains for game components using C++
Using timers in C++
Unreal Engine 4 Log system
Unreal Engine 4 string types and type conversions
Creating massive amount of actors dynamically in C++ and managing them
Finding actors from scene using C++
Using persistent game state between levels
Saving and loading game state
Object-oriented message passing mechanisms and design patterns

Enrollment

01.10.2023 - 31.10.2023

Timing

08.01.2024 - 10.03.2024

Number of ECTS credits allocated

5 op

Mode of delivery

Contact teaching

Campus

Wärtsilä Campus Karjalankatu 3

Teaching languages
  • Finnish
Seats

5 - 10

Degree programmes
  • Degree Programme in Business Information Technology
Teachers
  • Anssi Gröhn
Teacher in charge

Anssi Gröhn

Groups
  • DTNS21
    Information Technology (BBA), Full-time Studies, Fall, 2021

Objective

Objective is to further increase your skills and understanding about game development within Unreal Engine 4. You will take command of developing reusable game components using C++. During this course you will implement game concept into a prototype, containing several maps. Game prototype is built weekly in smaller sections, and after the course you will perform play testing to equivalent prototypes, where you give and receive peer feedback.

Content

Game design and construction:

Game concept and tools
Unreal Engine 4 game framework
Level design
Deepening game experience with game design
Giving and obtaining meaningful feedback from play testing
Play testing the builds
Building, moving and animating the player character
Restricting player character movement
Building and linking animation sequences in Unreal Engine 4
Building your game for several platforms

Programming:

Creating base classes from Actors using C++
Deriving blueprints from your own C++ classes
Utilizing trigger areas in C++
Building event chains for game components using C++
Using timers in C++
Unreal Engine 4 Log system
Unreal Engine 4 string types and type conversions
Creating massive amount of actors dynamically in C++ and managing them
Finding actors from scene using C++
Using persistent game state between levels
Saving and loading game state
Object-oriented message passing mechanisms and design patterns

Teaching methods

You are able to utilize Gameplay Framework classes in programming as they are meant to
You are able to utilize UE4 log mechanism using C++
You are able to create UE4 game character using appropriate class in C++
You are able to create scenes using graphical assets
You are able to make game builds and mark them properly for identification
You are able to create functional depedencies between different actors
You are able to write an Actor using C++
You are able to write functionality to an Actor using C++
You are able to use Blueprint to extend properties of an Actor written in C++
You are able to write Actor Components using C++
You are able to write functionality to Actor Components using C++
You are able seek components from Actor using c++ and set their properties
You are able to write properties for an Actor that are editable from editor using C++
You are able to write properties for an Actor Component that are editable from editor using C++
You are able to design different options for player to advance in the scene that depend on required time
You are able to design and implement puzzle game mechanic using switches
You are able to implement start and runtime menu for an UE4 game project
You are able to implement scenes according to design
You are able to implement transitions between scenes for development work
You are able to set speed vector using C++ for an Actor utilizing physics modeling
You are able to spawn actors dynamically using C++
You are able to defined actor type for spawning as variable using C++
You are able to distribute logic in different components
You are able to control actors and cameras in cutscene cinematics
You are able to utilize Gameplay Framework Controller class in controlling a character
You are able to write a double dispatch mechanism using C++
You are able to utilize UE4 randomness features using C++
You are able to utilize visitor design pattern when saving objects in C++
You are able to utilize smart pointers to control Actors in C++
You are able to set angular speeds and velocity into physics modeled Actor using C++
You are able to connect events to cinematics
You are able to load an UE4 save file using C++
You are able to attach a mesh into an component
You are able to store an UE4 save file using C++
You are able to create a cinematics cut scene
You are able to form dependencies between different components
You are able to restore game state from save file data
You are able to serialize game state into data that can be stored into a save file
You are able to replay cinematics cutscene
You are able to carry out play testing for a game and give useful feedback for developer

Student workload

Total time consumption 133h. Individual work and learning assignments 96h, live guidance 32h, feedback and self-evaluation 5h.

Further information

Prerequisities and required skills: Karelia Business and Information Technology C++ programming course passed by minimum with grade 3 or equivalent knowledge and skills.

Evaluation scale

H-5

Assessment methods and criteria

Evaluation according to Bloom's taxonomy:

Novice level: (1)

You demonstrate that you know and understand how things mentioned in assignment learning outcomes work.

Advanced level: (3)

You demonstrate that you are able to adapt things listed in assignment learning outcomes into different situations than just those listed in Moodle workspace.

Desired level: (5)

You demonstrate that you are able to create completely new solutions utilizing things mentioned in assignment learning outcomes, or adapt them into totally different situations than shown before.

You demonstrate that you are able to evaluate and give reasoning why things mentioned in assignment learning outcomes can, and should apply as you have done in new situations.

Each learning assignment is scored using criterion mentioned above using scale 0-5.

Final course grade is calculated using formula:

Score = Sum of your learning assignment scores
Max = Maximum obtainable score from all learning assignments

Enrollment

01.10.2022 - 31.10.2022

Timing

09.01.2023 - 12.03.2023

Number of ECTS credits allocated

5 op

Mode of delivery

Contact teaching

Campus

Wärtsilä Campus Karjalankatu 3

Teaching languages
  • Finnish
Degree programmes
  • Degree Programme in Business Information Technology
Teachers
  • Anssi Gröhn
Teacher in charge

Anssi Gröhn

Groups
  • LTDNS20
    Information Technology (BBA), Full-time Studies, Fall, 2020

Objective

Objective is to further increase your skills and understanding about game development within Unreal Engine 4. You will take command of developing reusable game components using C++. During this course you will implement game concept into a prototype, containing several maps. Game prototype is built weekly in smaller sections, and after the course you will perform play testing to equivalent prototypes, where you give and receive peer feedback.

Content

Game design and construction:

Game concept and tools
Unreal Engine 4 game framework
Level design
Deepening game experience with game design
Giving and obtaining meaningful feedback from play testing
Play testing the builds
Building, moving and animating the player character
Restricting player character movement
Building and linking animation sequences in Unreal Engine 4
Building your game for several platforms

Programming:

Creating base classes from Actors using C++
Deriving blueprints from your own C++ classes
Utilizing trigger areas in C++
Building event chains for game components using C++
Using timers in C++
Unreal Engine 4 Log system
Unreal Engine 4 string types and type conversions
Creating massive amount of actors dynamically in C++ and managing them
Finding actors from scene using C++
Using persistent game state between levels
Saving and loading game state
Object-oriented message passing mechanisms and design patterns

Teaching methods

You are able to utilize Gameplay Framework classes in programming as they are meant to
You are able to utilize UE4 log mechanism using C++
You are able to create UE4 game character using appropriate class in C++
You are able to create scenes using graphical assets
You are able to make game builds and mark them properly for identification
You are able to create functional depedencies between different actors
You are able to write an Actor using C++
You are able to write functionality to an Actor using C++
You are able to use Blueprint to extend properties of an Actor written in C++
You are able to write Actor Components using C++
You are able to write functionality to Actor Components using C++
You are able seek components from Actor using c++ and set their properties
You are able to write properties for an Actor that are editable from editor using C++
You are able to write properties for an Actor Component that are editable from editor using C++
You are able to design different options for player to advance in the scene that depend on required time
You are able to design and implement puzzle game mechanic using switches
You are able to implement start and runtime menu for an UE4 game project
You are able to implement scenes according to design
You are able to implement transitions between scenes for development work
You are able to set speed vector using C++ for an Actor utilizing physics modeling
You are able to spawn actors dynamically using C++
You are able to defined actor type for spawning as variable using C++
You are able to distribute logic in different components
You are able to control actors and cameras in cutscene cinematics
You are able to utilize Gameplay Framework Controller class in controlling a character
You are able to write a double dispatch mechanism using C++
You are able to utilize UE4 randomness features using C++
You are able to utilize visitor design pattern when saving objects in C++
You are able to utilize smart pointers to control Actors in C++
You are able to set angular speeds and velocity into physics modeled Actor using C++
You are able to connect events to cinematics
You are able to load an UE4 save file using C++
You are able to attach a mesh into an component
You are able to store an UE4 save file using C++
You are able to create a cinematics cut scene
You are able to form dependencies between different components
You are able to restore game state from save file data
You are able to serialize game state into data that can be stored into a save file
You are able to replay cinematics cutscene
You are able to carry out play testing for a game and give useful feedback for developer

Student workload

Total time consumption 133h. Individual work and learning assignments 96h, live guidance 32h, feedback and self-evaluation 5h.

Further information

Prerequisities and required skills: Karelia Business and Information Technology C++ programming course passed by minimum with grade 3 or equivalent knowledge and skills.

Evaluation scale

H-5

Assessment methods and criteria

Evaluation according to Bloom's taxonomy:

Novice level: (1)

You demonstrate that you know and understand how things mentioned in assignment learning outcomes work.

Advanced level: (3)

You demonstrate that you are able to adapt things listed in assignment learning outcomes into different situations than just those listed in Moodle workspace.

Desired level: (5)

You demonstrate that you are able to create completely new solutions utilizing things mentioned in assignment learning outcomes, or adapt them into totally different situations than shown before.

You demonstrate that you are able to evaluate and give reasoning why things mentioned in assignment learning outcomes can, and should apply as you have done in new situations.

Each learning assignment is scored using criterion mentioned above using scale 0-5.

Final course grade is calculated using formula:

Score = Sum of your learning assignment scores
Max = Maximum obtainable score from all learning assignments

Enrollment

01.10.2021 - 31.10.2021

Timing

10.01.2022 - 13.03.2022

Number of ECTS credits allocated

5 op

Virtual portion

5 op

Mode of delivery

Distance learning

Campus

Wärtsilä Campus Karjalankatu 3

Teaching languages
  • Finnish
Seats

20 - 60

Degree programmes
  • Degree Programme in Business Information Technology
Teachers
  • Anssi Gröhn
  • Seppo Nevalainen
Teacher in charge

Anssi Gröhn

Groups
  • LTDNS19
    Information Technology (BBA), Full-time Studies, Fall, 2019

Objective

Objective is to further increase your skills and understanding about game development within Unreal Engine 4. You will take command of developing reusable game components using C++. During this course you will implement game concept into a prototype, containing several maps. Game prototype is built weekly in smaller sections, and after the course you will perform play testing to equivalent prototypes, where you give and receive peer feedback.

Content

Game design and construction:

Game concept and tools
Unreal Engine 4 game framework
Level design
Deepening game experience with game design
Giving and obtaining meaningful feedback from play testing
Play testing the builds
Building, moving and animating the player character
Restricting player character movement
Building and linking animation sequences in Unreal Engine 4
Building your game for several platforms

Programming:

Creating base classes from Actors using C++
Deriving blueprints from your own C++ classes
Utilizing trigger areas in C++
Building event chains for game components using C++
Using timers in C++
Unreal Engine 4 Log system
Unreal Engine 4 string types and type conversions
Creating massive amount of actors dynamically in C++ and managing them
Finding actors from scene using C++
Using persistent game state between levels
Saving and loading game state
Object-oriented message passing mechanisms and design patterns

Teaching methods

You understand the meaning of the game concept document
You understand how UE4 game engine between with C++ and Blueprints
You are able create models that can be combined in multiple ways in Levels
You are able create levels from static meshes
You are able to add functionality into UE4 Actor using C++
You are able to create functions into C++ classes that can be called from Blueprints
You are able to create Blueprint-overridable functions in C++ classes
You are able to bind dynamically event handler functions to events in C++
You are able to create a Blueprint from C++ class
You are able to extend C++ class functionality using Blueprints
You are able to create member variables into C++ classes, that can be controlled from UE4 details panel
You are able to add UE4 components into actor using C++
You are able to create actors dynamically using C++
You are able to destroy actors dynamically using C++
You are able to find actor component using C++
You are able to find specific type of Actors using C++ during gameplay
You are able to store Actors safely into container classes using C++ during gameplay
You are able to connect events to actors and actor componetns using C++
You are able to define your own value types in C++ to be used in Blueprints
You are able to utilize Cinematics feature to create animation sequences
You are able save and load game sessions using C++
You are able to create and modify different game modes for different levels
You understand how game mode, game state, player controller and pawn types are interconnected
You are able to design mechanics for a sneaking game
You are able implement mechnics for a sneaking game
You are able to design mechanics for a flying-avoiding game
You are able to implement mechanics for a flying-avoiding game
You understand the concepts related to deepending the game experience
You are able to deepen the game experience by applying design
You are able to create post mortem document from a game production
You understand the meaning of play testing and what data should be obtained
You are able to design play testing
You have performed play testing for a game made by others
You are able to utilize double dispatch mechanism in object-oriented programming
You are able to apply visitor pattern in saving the game state

Exam schedules

Implementation has two retake opportunities, and you apply to them via Moodle workspace, if necessary.

Completion alternatives

Skill test

Student workload

Total work of 133h, of which online guidance 54h, and individual work 79h (materials, assignments, feedback)

Evaluation scale

H-5

Assessment methods and criteria

Grade is defined from points received from learning assignments. See included grade limits in respect to course maximum points.

<30% => 0
>=30% => 1
>=44% => 2
>=58% => 3
>=72%=> 4
>=86% => 5