Online Game Programming (5 cr)
Code: HTGP0300-3003
General information
- Enrollment
-
20.11.2023 - 04.01.2024
Registration for the implementation has ended.
- Timing
-
08.01.2024 - 20.05.2024
Implementation has ended.
- Number of ECTS credits allocated
- 5 cr
- Local portion
- 3 cr
- Virtual portion
- 2 cr
- Mode of delivery
- Blended learning
- Unit
- School of Business
- Campus
- Main Campus
- Teaching languages
- English
- Seats
- 20 - 35
- Degree programmes
- Bachelor's Degree Programme in Business Information Technology
- Teachers
- Risto Koskenkorva
- Groups
-
HTG23S1Bachelor's Degree Programme in Business Information Technology
-
ZJAHTG23S1Avoin AMK, Tiko, AMK-polut, BIT, tradenomi amk
- Course
- HTGP0300
Realization has 18 reservations. Total duration of reservations is 33 h 45 min.
Time | Topic | Location |
---|---|---|
Tue 05.03.2024 time 09:15 - 11:15 (2 h 0 min) |
Online Game Programming HTGP0300-3003 - Lecture |
R35F406
Oppimistila
|
Wed 06.03.2024 time 08:45 - 10:30 (1 h 45 min) |
Online Game Programming HTGP0300-3003 - Demo |
R35C113
Experience lab
|
Tue 12.03.2024 time 09:15 - 11:15 (2 h 0 min) |
Online Game Programming HTGP0300-3003 - Lecture |
R35F406
Oppimistila
|
Wed 13.03.2024 time 08:45 - 10:30 (1 h 45 min) |
Online Game Programming HTGP0300-3003 - Demo |
R35C113
Experience lab
|
Tue 19.03.2024 time 09:15 - 11:15 (2 h 0 min) |
Online Game Programming HTGP0300-3003 - Lecture |
R35F406
Oppimistila
|
Wed 20.03.2024 time 08:45 - 10:30 (1 h 45 min) |
Online Game Programming HTGP0300-3003 - Demo |
R35C113
Experience lab
|
Tue 26.03.2024 time 09:15 - 11:15 (2 h 0 min) |
Online Game Programming HTGP0300-3003 - Lecture |
R35F406
Oppimistila
|
Wed 27.03.2024 time 08:45 - 10:30 (1 h 45 min) |
Online Game Programming HTGP0300-3003 - Demo |
R35C113
Experience lab
|
Tue 02.04.2024 time 09:15 - 11:15 (2 h 0 min) |
Online Game Programming HTGP0300-3003 - Lecture |
R35F406
Oppimistila
|
Wed 03.04.2024 time 08:45 - 10:30 (1 h 45 min) |
Online Game Programming HTGP0300-3003 - Demo |
R35C113
Experience lab
|
Tue 09.04.2024 time 09:15 - 11:15 (2 h 0 min) |
Online Game Programming HTGP0300-3003 - Lecture |
R35F406
Oppimistila
|
Wed 10.04.2024 time 08:45 - 10:30 (1 h 45 min) |
Online Game Programming HTGP0300-3003 - Demo |
R35C113
Experience lab
|
Wed 17.04.2024 time 08:45 - 10:30 (1 h 45 min) |
Online Game Programming HTGP0300-3003 - Demo |
R35C113
Experience lab
|
Tue 23.04.2024 time 09:15 - 11:15 (2 h 0 min) |
Online Game Programming HTGP0300-3003 - Lecture |
R35F406
Oppimistila UTI/TEKN
|
Wed 24.04.2024 time 08:45 - 10:30 (1 h 45 min) |
Online Game Programming HTGP0300-3003 - Demo |
R35C113
Experience lab
|
Tue 30.04.2024 time 09:15 - 11:15 (2 h 0 min) |
Online Game Programming HTGP0300-3003 - Lecture |
R35F406
Oppimistila UTI/TEKN
|
Tue 07.05.2024 time 09:15 - 11:15 (2 h 0 min) |
Online Game Programming HTGP0300-3003 - Lecture |
R35F406
Oppimistila UTI/TEKN
|
Wed 08.05.2024 time 08:45 - 10:30 (1 h 45 min) |
Online Game Programming HTGP0300-3003 - Demo |
R35C113
Experience lab
|
Evaluation scale
0-5
Content scheduling
General scheduling - 75% compulsory participation:
- 2 hours per week for mandatory lectures (virtual)
- 2 hours per week for mandatory in-class activities (demo lectures)
Objective
Objectives (goals):
The main objective of the course is to understand the needs, restrictions and processes of online game development. The functionality and technical choices made vary a lot between different kinds of online games. In addition to in-game mechanics there is also lots of related functionality to learn and develop, such as player matchmaking (host-client-server relations). The course looks at the theory behind numerous different kind of online game types and looks to prototype some of them (or at least use ready project bases). Learning will also include basic understanding of required hardware environments and their setup that is required to run such games.
The student learns how online functionalities are created and used through examples (in-class and ready projects).
Learning outcomes:
After completing this course, you should have an understanding on technical requirements and techniques to develop online games. You will also have basic experience on developing simple online games on your own.
Course competences:
Game production competence
Software engineering competence
Content
Have you ever wondered what it takes to make an online game?
There is a great variety of different kinds of online games, and nowadays most of the games provide some online multiplayer functionality. Sometimes it's critical to take the online features into consideration in the beginning of the development process to avoid huge budget impacts.
This course will focus on developing online games with selected game engine middleware. The course will include going through theory and implementing prototypes for most common types of online game functionality. The course will also teach the required information about hardware and cloud based systems needed to set up environment for running your own online game.
Materials
Public learning materials:
- Unity Multiplayer Networking: https://docs-multiplayer.unity3d.com/
- Unity Netcode for GameObjects manual: https://docs-multiplayer.unity3d.com/netcode/current/about
- Unity Netcode for GameObjects API: https://docs-multiplayer.unity3d.com/netcode/current/api/introduction
- Unity Boss Room (example project): https://unity.com/demos/small-scale-coop-sample
- Unity API: https://docs.unity3d.com/ScriptReference/index.html
- Unity manual: https://docs.unity3d.com/Manual/index.html
- C# programming guide: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/
Other learning material:
- Databases in the learning environment
- Materials in the learning environment
Practicalities and used tools:
- C++ (or C#) as the programming language
- Visual Studio (or similar) as the IDE
- Unreal Engine (or Unity) as the Game Engine
- Git as the Version Control System (GitHub as the location)
- Extra reading materials can be found from the web and Books24x7
- Tutorial materials can be found from the web and YouTube
- Zoom is used for lectures
- Teams and email is used for official communication
- DiscordApp / WhatsApp / other comms are used for questions, answers and discussions
- All the sessions are recorded and the links are added to the workspace
Teaching methods
The primary mode of delivery is a combination of in-class activities on campus and on-line lectures. The lectures will be recorded to support opportunities for 24/7 learning. The in-class activities deepen the learning in the forms of tutorials, individual and group works, reflection and guidance. However, if the COVID-19 or other similar situation requires the learning will be supported by on-line tutorials and activities.
A blended model:
- The course can also contain project based learning, learning tasks, knowledge tests, topic specific focus teaching, database use for challenges/problems/tutorials (problem based learning)
Employer connections
The course might have visiting lecturers and possibly an excursion (virtual or physical).
Exam schedules
There is no exam on this course. Every student reserves a 30 min evaluation slot where they will show the task and project 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. The reservation of the evaluation slots will be made possible through the learning platform.
During the last 2-3 weeks after classes will be reserved for the 1-on-1 evaluations. Students can use this time to make games in voluntary game projects.
Completion alternatives
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 three primary ways: accreditation (replacement or inclusion), recognition of informal learning and studification. More precise info: JAMK Degree Regulations, section 17.
Student workload
One credit corresponds to an average of 27 hours of work, which means that the load of five credits is approximately 135 hours. The load is distributed roughly the following way:
- Lectures: ~28h
- In-class activities: ~30h
- Tasks (weekly and other), module projects and lecture preparations: ~50h
- End task / portfolio preparations: ~27h
Assessment criteria, satisfactory (1)
Sufficient (1): You have the basic knowledge of the needs, restrictions and creation processes of online game development.
Satisfactory (2): You understand the needs, restrictions and creation processes of online game development. You are able to use a ready project related to online game development or you are capable of creating a simple online game prototype that can be played by two or more players.
Assessment criteria, good (3)
Good (3): You are able to identify the needs, restrictions and creation processes of online game development from online game projects. You are able to use a ready project related to online game development or you are capable of creating a simple online game prototype that can be played by two or more players. You are able to analyze a ready project related to online game development.
Very Good (4): You thoroughly understand the needs, restrictions and creation processes of online game development. You are capable of creating an advanced online game prototype.
Assessment criteria, excellent (5)
Excellent (5): You are able to evaluate the needs, restrictions and creation processes of online games. You are capable of creating an advanced online game (prototype) or incorporate online game features to a group game prototype. The game should also provide mechanics for online matchmaking.
Qualifications
You need to posses basic skills in game programming and game engines as well as other related tools, and therefore this course is not for you are not familiar with modern game development tools and programming.
Sufficient skills in the programming language, the game engine, and other related tools.
Further information
Avoin amk 10 (included in the total capacity)