Skip to main content

Advanced Game Programming (5 cr)

Code: LTD6052-3001

General information


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