Basics of Game ProgrammingLaajuus (5 cr)
Code: HTGP0140
Credits
5 op
Teaching language
- English
Responsible person
- Mika Karhulahti
- Risto Koskenkorva
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 functionalities and game 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 basic 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.
Qualifications
No prequisites.
Assessment criteria, satisfactory (1)
Sufficient (1): You have basic knowledge of the programming language. You understand how to create simple game functionalities 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 with the programming language and the game engine, taking advantage of classes, methods, variables and other basic functionality.
Assessment criteria, good (3)
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 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 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 with the programming language and the game engine.
Materials
Public learning materials:
- C# programming guide: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/
- Unity manual: https://docs.unity3d.com/Manual/index.html
- Unity API: https://docs.unity3d.com/ScriptReference/index.html
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
- GitHub as the Version Control System
- 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