This is a course about game server programming made for Metropolia UAS Game Development curriculum. The aim of the course is to give an overview of creating Web API's suitable for creating online features typical for games. This is not about creating realtime multiplayer games.
The technologies chosen for this course are ASP.NET Core and MongoDB. The main reasons for choosing these particular technologies are that they are open source and capable of handling demands of global scale online games.
- Introduction to game servers, C# for server development
- C# for server development; Basics of ASP.NET Core Web API
- Continuing on ASP.NET Core Web API; REST-architecture
- Intro to NoSQL databases; Basics of MongoDB
- Continuing on MongoDB
- Basics of server security
- Building scalable, stable, and fault tolerant servers; Student presentations
Read the articles from the reading lists before the lectures where the concepts are presented.
Try to complete the assignments on the same week they are presented. The final deadline is two weeks from the week they are presented. This is to make it possible to ask questions about the assignments during the next week's class room time. The assignments should be put inside your own GitHub (or similar) repository where I can have access to them.
The project assignment will be presented on week 2 and it's recommended to start working on it as soon as possible after that.
No assignments are accepted after the final deadline.
- VSCode: https://code.visualstudio.com/download
- .Net core SDK: https://www.microsoft.com/net/download
- Omnisharp plugin for VSCode called
C#
: https://github.com/OmniSharp/omnisharp-vscode (you can download this inside VSCode from the extensions tab! Search for "C#".) C# Extensions
plugin for VSCode (you can download this from VSCode as well. Search forC# extendsions
).- MongoDb: https://www.mongodb.com/download-center?jmp=nav#community
- PostMan 2: https://www.getpostman.com/apps
If you are running Windows and your VSCode uses powershell
in the terminal, I recommend that you change it to CMD
.
The course grading scheme is straightforward:
There is a total of 100 points to be gained from the course.
- 50 points come from the assignments (points are gained by completing the assignments)
- The other 50 comes from the project (points reflect the quality of the project)
Points are rounded to the closest 10. After rounding the points are converted to the final grades which are numbers from 0 to 5.
- 50 or less equals 0 (course failed)
- 60 points equals 1
- 70 points equals 2
- 80 points equals 3
- 90 points equals 4
- 100 points equals 5
You can also affect your grade positively by participating actively in the lectures.
The deadlines for the assignments are the following:
TBD.
It's highly recommended to participate in the lectures because the concepts taught in the course have been generally hard for students to grasp - usually being able to ask questions and get personal support ensures success in the course. In addition to support, being present in the lectures gives you more chances to demonstrate your skills and affect your grade positively.
But if you nevertheless can not participate in the lectures, the course can be completed by doing the assignments and the project within the deadlines.
Remember to read the reading materials and slides through carefully, the information found in those should be enough to complete the exercises.