Skip to main content

Advanced Game Programming (5 cr)

Code: HG00CI49-3001

General information


Timing
12.01.2026 - 20.05.2026
The implementation has not yet started.
Number of ECTS credits allocated
5 cr
Local portion
5 cr
Mode of delivery
Face-to-face
Unit
School of Business
Campus
Main Campus
Teaching languages
English
Seats
20 - 30
Degree programmes
Bachelor's Degree Programme in Business Information Technology
Teachers
Risto Koskenkorva
Groups
HTG24S1
Bachelor's Degree Programme in Business Information Technology
Course
HG00CI49
No reservations found for realization HG00CI49-3001!

Evaluation scale

0-5

Content scheduling

This section describes the scheduling of the course. Meaning what happens every week (rhythm, timing, weekly tasks, mandatory parts of the implementation)?

Weekly scheduling of the course:
~3,5 hours per week for mandatory in-class activities (Lectures for theory and examples + Demo lectures for implementation and testing)
~6-7 hours per week of independent work relating to the tasks (weekly and other), module assignments, preparing for the lectures, and end product work (everything should further the student's end product)

This means that you should reserve ~9-11 hours of working time every week for this course!

The course consists of 5 modules:
- Modules are 3-5 weeks long
- Every module is mandatory and has weekly in-class activities and independent work
- At the end of each module, there is a mandatory module assignment that checks the student's progress and module-related understanding and skills
- Detailed module contents and length will be available in the learning environment

The course starts with a 3 week long module. The module focuses on the course introduction, setting up the tools and environments as well as taking the first dive into the course topic. By the end to the 1st module every student must have fill the following criteria:
- Participated to all of the course in-class activities (marked participation)
- Returned the module assignment that has been accepted
- If 1 or more of the criteria is not filled, the student will be considered as inactive / withdrawn from the course (according to Jamk course resource requirements)

Every student in the course is expected to have an end product to show by the end of the course:
- The end product demonstrates the student's understanding and skills related to the topics of the course
- The course ends with final end result presentations and 1-on-1 evaluations in May

Objective

The objective of the course (goals):
Have you done enough scripting and would like to dive deeper? Are you looking for deeper understanding of programming and its connection to software design and development principles? Why doing things in an organised way is good?

The clean and well organised structure is one of the most important things in game production projects. When projects get bigger, the goal is not only about trying to find quick hack to the things but more of making things in a sustainable, extendable and performant way.

Now you have a chance to take a look at the architecture approach to extend your game making and programming skills, and to focus on better understanding of programming, good architectural decisions and common games related logic. So join in and start building your dreams!

Course competences:
- Game Production: Student can produce game technology related content for a game project and can work with the tools in meaningful and systematic way. Student can program with an engine-specific language and understand the role of assets and middleware. Student can produce value for a game project while working in a game technology related specialist role.
- Learning to Learn: Also takes responsibility for group learning and sharing what has been learned.

The learning objectives of the course (outcomes):
After completing this course, you have a deeper understanding of the structure and functionality of a game. You understand what software design and development principles are and how they work in unison with the game production pipelines and core game development tools to create a maintainable and modular game mechanics library. You undertand how the principles and mechanics library can be used for creating complex abd well structured games from a technical perspective. You can apply your skills to be a part of the game production process.

Content

Some of the tools you will familiarise yourself with in this course include advanced concepts in game production, such as design and programming principles, patterns, and practices. (Tools also include CLEAN and SOLID, and technical design). You will have skills to use some of the core game development tools features to create and use building blocks for games in the form of maintainable and modular game mechanics library.

Materials

This field describes the public learning material that is required for passing the course.

Learning material:
- Teacher's written materials
- Lecture materials (Slides and other materials in the learning environment)
- Databases (in the learning environment)
- Materials related to implementation (in the learning environment)
- Extra reading materials can be found from the web ja Janet Finnasta (https://janet.finna.fi/)
- Tutorial materials can be found from the web and YouTube (or the course database)

Some course topic and tools related public learning materials:
Epic Games, Inc. (n.d.-a). Unreal Engine C++ API Reference [Application Programming Interface website]. Retrieved April 25, 2025, from https://dev.epicgames.com/documentation/en-us/unreal-engine/API
Epic Games, Inc. (n.d.-b). Unreal Engine Documentation [Documentation website]. Retrieved April 25, 2025, from https://dev.epicgames.com/documentation/en-us/unreal-engine/
Microsoft. (n.d.). C# programming guide [Documentation website]. Retrieved April 25, 2025, from https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/
Nystrom, R. (2014). Game Programming Patterns [Web version of the book]. https://gameprogrammingpatterns.com/contents.html
Roberts, J. (2020, February 07). Clean C#. Lean Publishing. https://leanpub.com/cleancsharp
Unity Technologies. (n.d.-a). Unity - Manual [Documentation website]. Retrieved April 25, 2025, from https://docs.unity3d.com/Manual/index.html
Unity Technologies. (n.d.-b). Unity - Scripting API [Application Programming Interface website]. Retrieved April 25, 2025, from https://docs.unity3d.com/ScriptReference/index.html
Unity Technologies. (n.d.-c). Unity Graphics manual [Documentation website]. Retrieved April 25, 2025, from https://docs.unity3d.com/Manual/Graphics.html
Unity Technologies. (2024a). Level up your code with design patterns and SOLID [E-Book]. https://unity.com/resources/level-up-your-code-with-game-programming-patterns?isGated=false
Unity Technologies (2024b). Unity best practices [Link library]. https://unity.com/how-to
Unity Technologies. (2025). Advanced best practice guides [Link library]. https://docs.unity3d.com/Manual/best-practice-guides.html

Practicalities and used tools:
- A Version Control System (VCS) compatible with the game engine
- A game engine
- Integrated Development Environment (IDE) related to the game engine
- A programming language related to the game engine
- 3D modelling and animation software

Teaching methods

This field describes the methods of teaching and learning used in the implementation and how student guidance will be arranged.

A modified face-to-face model:
The primary mode of delivery is all of the activities in-class on campus, and only in special cases on-line.
However, if the COVID-19 or other similar situation requires the learning will be supported by on-line activities.

The activities will deepen the learning in the following possible ways:
- Theoretical lectures for theory and examples + Demo lectures for implementation and testing
- Individual and possible group work (implementation)
- Individual and possible group exercises, learning tasks (assignments) and reflection
- Guidance in the form of end result reviews and answered questions or help with challenges if requested

The course activities can also contain:
- Project-based learning
- Flipped learning (learning about the topic before theory lectures)
- Knowledge tests
- Topic specific focus teaching
- Topic specific research
- Database use for challenges/problems/tutorials (problem based learning)

Participation to possible on-line activities:
- Zoom is used for on-line activities
- Requires you to have a working webcam, headphones and microphone
- In Zoom the webcam is required to be on at all times!
- If one or more of the equipment are missing or not used, your participation can be declined

Use of Artificial Intelligence (AI):
- The use of AI and AI-assisted tools is permitted and recommended
- Pure copying (plagiarism) is still prohibited and will result in appropriate penalties
- Any use of AI must be reported accordingly

Official communication channels:
- Course news (forum)
- Teams (primary) and email
- DiscordApp / WhatsApp / other comms are prohibited from the faculty members
- If you are prevented from coming to the lecture or demo, please let the teacher know beforehand!
- The sessions can be recorded and the links added to the workspace (recording permission will always be requested from the participants beforehand)

Employer connections

This field describes connections to working life and practical training.

The course might have visiting lecturers (game industry experts), and possibly an excursion (virtual or physical).

The possible course project will mimic real-life project experiences.

Exam schedules

This field indicates the date and time of the actual exam and all retake opportunities.

There will be no exam on this course!
- Every student reserves a 20 min evaluation slot, where they will show their end results (portfolio) to verify the skills and knowledge required to pass the course
- The evaluation will be carried out with 1-on-1 conversations together with the course teacher(s)
- The reservation of the evaluation slots will be made possible through the learning platform

The date and time of the evaluation:
- During May
- Exact dates and the chances to retakes are announced during the course

Completion alternatives

This field describes the alternative completion methods for the course.

You have the right to apply for recognition of your studies if you have prior learning (e.g. university studies completed elsewhere) that can be accredited towards the degree you are currently completing.

The recognition of prior learning is possible in the following ways:
- Accreditation of higher education studies (replacement or inclusion)
- Recognition of informal learning

More precise info:
- JAMK Degree Regulations, section 17
- https://www.jamk.fi/en/for-students/degree-student/recognition-of-prior-learning-and-experience

Student workload

This section describes the learning assignments and the time needed for completing them and the student’s other scheduling.

The workload of 5 credits is 135 hours. The load is distributed the following way:
~50 hours of mandatory in-class work: Theory lectures and guided activities (demos for implementation and testing)
~85 hours of independent work: Tasks (finalising weekly demo tasks and others), module assignments, and preparing for lectures (finding information and reading literature). Possible sprint week or prototyping event. End product work and evaluation preparations.

Assessment criteria, satisfactory (1)

Sufficient (1): You know the creation processes of complex games with the core development tools. You know some of the game production related design and programming principles, patterns, and practices. You can apply your skills to develop and use a simple game mechanics library. You can be productive in a limited role as a game programmer.

Satisfactory (2): You understand the creation processes of complex games with the core development tools. You can use some of the game production related design and programming principles, patterns, and practices. You can apply your skills to develop and use a game mechanics library. You can make structurally good code.

Assessment criteria, good (3)

Good (3): You can apply your skill in the creation processes of complex games with the core development tools. You are able to take into use some of the game production related design and programming principles, patterns, and practices. You can apply your skills to develop, share, and use a complex game mechanics library. You can make structurally good code according to the principles. You can be productive in a role as a game programmer.

Very Good (4): You can apply your skill in the creation processes of complex games with the core development tools. You are able to identify and analyze some of the game production related design and programming principles, patterns, and practices. You can apply your skills to develop, share, and use a complex game mechanics library. You can make structurally excellent code according to the principles.

Assessment criteria, excellent (5)

Excellent (5): You can identify and analyse the creation processes of complex games with the core development tools. You are able to evaluate and describe most of the game production related design and programming principles, patterns, and practices.You can apply your skills to develop, share, and use a complex and extensive game mechanics library. You can make structurally excellent code according to the principles. You have done cooperation with another programmer in your project(s).

Qualifications

Intermediate know-how in game programming, game engine, and other core development tools are required.  A previous game mechanics related code base is required.

Further information

This section describes the evaluation methods used. The assessment of learning is enhancement-led evaluation. The assessment is based on learning objectives, quality and criteria, and self-evaluation by the student plays an important role in the process.

The assessment is based on continuous feedback during weekly activities according to the learning objectives. Self-assessment happens through the personal set goals, reflections in the module assignments, and the final discussion. Submitted module assignments, the final product and presentation of it will be the basis for the final evaluation, that will follow the given assessment criteria and guidelines. Possible peer evaluation can be made possible for the course.

Go back to top of page