SPI2004 Networking and databases
- Course codeSPI2004
- Number of credits15
- Teaching semester2028 Spring
- Language of instruction and examinationEnglish
- CampusHamar
- Required prerequisite knowledge
Recommended prerequisite knowledge: SPI2003 Game Systems and Mechanics, SPI2000 Gamification and Application Development
The course introduces the fundamental concepts and technologies of data management and network communication in the context of digital games. Students will learn how to design and implement database systems for storing game-related data and how to apply networking principles to enable multiplayer and online interactions. Emphasis is placed on practical implementation, scalability, and reliability, with examples drawn from both commercial and indie game development.
Learning outcome
A candidate who has completed the course has the following learning outcomes:
The candidate
- has specialised knowledge of relational and non-relational databases, and their application in storing game state, player profiles, leaderboards, and persistent worlds
- understand core networking concepts (client-server, peer-to-peer, latency, bandwidth, protocols)
- can describe the architecture of multiplayer game systems, including matchmaking, state synchronization, and authoritative servers
- can recognise challenges in scalability, security, and reliability in online games
- understand database design principles such as indexing, query optimization, and transactions, and how they impact performance and scalability in online games
- understand the integration of databases with networking models (client-server, peer-to-peer) and how latency, bandwidth, and protocols affect data consistency and user experience
The candidate
- can design and implement a database schema suitable for storing structured and unstructured game data
- can use SQL and NoSQL technologies to store, retrieve, and manage game data efficiently
- can implement basic network communication between game clients and servers using industry-standard APIs and protocols
- can develop and test a simple multiplayer prototype, including synchronization of player states and events
- can apply debugging and profiling tools to identify performance bottlenecks in networking and data access
The candidate
- can work independently and in teams to design and implement networked game features and supporting data systems
- can reflect critically on design choices for data persistence and networking models, considering scalability and user experience
- can communicate technical solutions related to game data management and networking clearly in both oral and written formats
- can demonstrate readiness to engage in professional development within game backend, multiplayer systems, or online service engineering
The students work both individual and in groups to solve given assignments. Teaching is mostly done through pre-recorded videos, presented reading material and through learning activities in class, individual or in groups.
Supervision will be conducted both at an individual level and in groups or project teams.
- submission of 1 group assignment
- submission of 1 individual assignment
- 80% attendance in teaching and 100% attendance in specific learning activities according to the teaching plan
| Form of assessment | Grading scale | Grouping | Duration of assessment | Support materials | Proportion | Comments |
|---|---|---|---|---|---|---|
Portfolio examination | ECTS - A-F | Individual | 6 Hour(s) | 50 | ||
Oral examination | Passed - not passed | Group | 50 |
- 1 portfolio assessment, assessed with grades from A-F
- 1 oral examination assessed with pass/fail
- Both parts must be approved in order to pass the overall course