Siirry suoraan sisältöön

Game Programming (5 cr)

Code: HG00BX86-3001

General information


Enrollment

01.08.2023 - 24.08.2023

Timing

28.08.2023 - 19.12.2023

Number of ECTS credits allocated

5 op

Virtual portion

2 op

Mode of delivery

60 % Face-to-face, 40 % Online learning

Unit

Liiketoimintayksikkö

Campus

Pääkampus

Teaching languages

  • English

Seats

20 - 45

Degree programmes

  • Bachelor's Degree Programme in Business Information Technology

Teachers

  • Risto Koskenkorva

Scheduling groups

  • Demo 1 (Paikkoja: 25. Open UAS: 0.)
  • Demo 2 (Paikkoja: 25. Open UAS: 0.)

Groups

  • HTG23S1
    Bachelor's Degree Programme in Business Information Technology
  • ZJAHTG23S1
    Avoin AMK, Tiko, AMK-polut, BIT, tradenomi amk

Small groups

  • Demo 1
  • Demo 2
  • 29.08.2023 13:15 - 15:45, Game Programming HG00BX86-3001 - Lecture
  • 31.08.2023 10:45 - 12:30, Game Programming HG00BX86-3001 - Demo 1
  • 01.09.2023 10:45 - 12:30, Game Programming HG00BX86-3001 -Demo 2
  • 05.09.2023 13:15 - 15:45, Game Programming HG00BX86-3001 - Lecture
  • 07.09.2023 10:45 - 12:30, Game Programming HG00BX86-3001 - Demo 1
  • 08.09.2023 10:45 - 12:30, Game Programming HG00BX86-3001 -Demo 2
  • 12.09.2023 13:15 - 15:45, Game Programming HG00BX86-3001 - Lecture
  • 14.09.2023 10:30 - 12:15, Game Programming HG00BX86-3001 - Demo 1
  • 15.09.2023 10:45 - 12:30, Game Programming HG00BX86-3001 -Demo 2
  • 19.09.2023 13:15 - 15:45, Game Programming HG00BX86-3001 - Lecture
  • 21.09.2023 10:45 - 12:30, Game Programming HG00BX86-3001 - Demo 1
  • 22.09.2023 10:45 - 12:30, Game Programming HG00BX86-3001 -Demo 2
  • 26.09.2023 13:15 - 15:45, Game Programming HG00BX86-3001 - Lecture
  • 28.09.2023 10:45 - 12:30, Game Programming HG00BX86-3001 - Demo 1
  • 29.09.2023 10:45 - 12:30, Game Programming HG00BX86-3001 -Demo 2
  • 03.10.2023 13:15 - 15:45, Game Programming HG00BX86-3001 - Lecture
  • 05.10.2023 10:45 - 12:30, Game Programming HG00BX86-3001 - Demo 1
  • 06.10.2023 10:45 - 12:30, Game Programming HG00BX86-3001 -Demo 2
  • 10.10.2023 13:15 - 15:45, Game Programming HG00BX86-3001 - Lecture
  • 12.10.2023 10:45 - 12:30, Game Programming HG00BX86-3001 - Demo 1
  • 13.10.2023 10:45 - 12:30, Game Programming HG00BX86-3001 -Demo 2
  • 24.10.2023 13:15 - 15:45, Game Programming HG00BX86-3001 - Lecture
  • 26.10.2023 10:45 - 12:30, Game Programming HG00BX86-3001 - Demo 1
  • 27.10.2023 10:45 - 12:30, Game Programming HG00BX86-3001 -Demo 2
  • 31.10.2023 13:15 - 15:45, Game Programming HG00BX86-3001 - Lecture
  • 02.11.2023 10:45 - 12:30, Game Programming HG00BX86-3001 - Demo 1
  • 03.11.2023 10:45 - 12:30, Game Programming HG00BX86-3001 -Demo 2
  • 07.11.2023 13:15 - 15:45, Game Programming HG00BX86-3001 - Lecture
  • 09.11.2023 10:45 - 12:30, Game Programming HG00BX86-3001 - Demo 1
  • 10.11.2023 10:45 - 12:30, Game Programming HG00BX86-3001 -Demo 2
  • 14.11.2023 13:15 - 15:45, Game Programming HG00BX86-3001 - Lecture
  • 16.11.2023 10:45 - 12:30, Game Programming HG00BX86-3001 - Demo 1
  • 17.11.2023 10:45 - 12:30, Game Programming HG00BX86-3001 -Demo 2
  • 21.11.2023 13:15 - 15:45, Game Programming HG00BX86-3001 - Lecture
  • 23.11.2023 10:45 - 12:30, Game Programming HG00BX86-3001 - Demo 1
  • 24.11.2023 10:45 - 12:30, Game Programming HG00BX86-3001 -Demo 2
  • 28.11.2023 13:15 - 15:45, Game Programming HG00BX86-3001 - Lecture
  • 30.11.2023 10:45 - 12:30, Game Programming HG00BX86-3001 - Demo 1
  • 01.12.2023 10:45 - 12:30, Game Programming HG00BX86-3001 -Demo 2
  • 05.12.2023 13:15 - 15:45, Game Programming HG00BX86-3001 - Lecture
  • 07.12.2023 10:45 - 12:30, Game Programming HG00BX86-3001 - Demo 1
  • 08.12.2023 10:45 - 12:30, Game Programming HG00BX86-3001 -Demo 2

Objective

Objectives (goals):
The main objective is to understand the structure and basic functionality of a programming language and game engine. The student who completes course should have basic skills of the programming language and object-oriented programming as well as the selected game engine. Basically, to understand how a programming language can be used in unison with a game engine to develop games (and prototypes).

The student learns the basic structures and logical pieces of object-oriented programming and is capable of implementing a source code for a simple simple functionalities and game mechanics (or even game prototype) with the programming language.

Learning outcomes:
After completing this course, you are capable of creating simple game functionalities and mechanics (or game prototypes) with the programming language and selected game engine, and understand the main programming concepts for foundation of your further game development learning.

Course competences:
Game production competence
Software engineering competence

Content

Have you ever wanted to make a game of your own?

Game development has never before been easier to start with as it currently is, with all the tools freely available. However, to make a functional game with most of those tools, you should still have a decent understanding of programming and scripting.

This course focuses on learning object-oriented programming with the programming language as well as basic use of the game engine by creating simple functionalities and game mechanics. The learning examples will focus a lot on logic and basic skills you would be using in game development.

Oppimateriaali ja suositeltava kirjallisuus

Public learning material:
- 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
- Unity (or Unreal Engine) 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 are 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 learning environment

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.

Vaihtoehtoiset suoritustavat

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: ~39h
- In-class activities (demos): ~28h
- Tasks (weekly and other), module projects and lecture preparations: ~53h
- End task / portfolio preparations: ~15h

Content scheduling

General scheduling - 75% compulsory participation:
- 2,75 hours per week for mandatory lectures (virtual)
- 2 hours per week for mandatory in-class activities (demo lectures)

Further information

Avoin amk 10 (included in the total capacity)

Evaluation scale

0-5

Arviointikriteerit, tyydyttävä (1-2)

Sufficient (1): You have basic knowledge of the programming language. You understand how to create simple game functionalities and mechanics from scratch with the programming language and the game engine, taking advantage of classes, methods, variables and other basic functionality.

Satisfactory (2): You have basic understanding of most of the concepts of Object-Oriented Programming. You are capable of using simple game functionalities and mechanics with the programming language and the game engine, taking advantage of classes, methods, variables and other basic functionality.

Arviointikriteerit, hyvä (3-4)

Good (3): You have basic understanding of most of the concepts of Object-Oriented Programming and can analyse ready scripts and functionalities. You are capable of modifying ready or creating your own simple game functionalities and mechanics with the programming language and the game engine.

Very Good (4): You are capable with main concepts of Object-Oriented Programming. You are capable of creating game functionalities and mechanics from scratch with the programming language and the game engine. You can take advantage of a bit more advanced topics such as events.

Assessment criteria, excellent (5)

Excellent (5): You are very capable with main concepts of Object-Oriented Programming and can critically evaluate ready functionalities. You can use your skills to develop your own game functionalities and mechanics. You are capable of creating complex game functionalities and mechanics with the programming language and the game engine. You have done cooperation with other game developer(s) in your project(s).

Qualifications

You need to possess basic understanding of functional programming and the used programming language. Skills with other related tools, like version control and IDE, are useful.

Sufficient skills in the programming language, functional programming, and other related tools. No previous game programming experience prequisites.