-
Presentation
Presentation
In the last years, online games have been some of the most lucrative and played in the game industry. As such, this course exists to give students the tools to understand the challenges in front of them, besides helping them take the best decisions from a technical standpoint. It will also help them understand some less explored topics on operating systems, such as multithreading and synchronization. There is also a practical component for them to undestand how they could implement some of the presented techniques.
-
Class from course
Class from course
-
Degree | Semesters | ECTS
Degree | Semesters | ECTS
Bachelor | Semestral | 6
-
Year | Nature | Language
Year | Nature | Language
2 | Optional | Português
-
Code
Code
ULHT1075-25116
-
Prerequisites and corequisites
Prerequisites and corequisites
Not applicable
-
Professional Internship
Professional Internship
Não
-
Syllabus
Syllabus
Introduction Concurrent and distributed programming Online multiplayer games Multithreading Threads Synchronization Producer/Consumer Systems Networking basics IP, TCP and UDP DNS HTTP, SOAP and REST Firewalls Port-forwarding Sockets Network system models Authority and ownership Client/Server model Peer-to-peer model Architectures for online multiplayer games State representation Robustness Full replication Deterministic lockstep Rollback-based Security Player servers Server approaches Databases Player data Matchmaking Analytics Networking in Unity Online Massive Multiplayer considerations Load balancing Shards and sub-servers
-
Objectives
Objectives
Learn the basics about multithreading, synchronization, network infrastructure and protocols Understand the complexity of online multiplayer games and be capable of design software solutions to tackle those problems Know the common network architectures employed in online videogames Acknowledge the complexities in developing massive online games Design and implement a multiplayer online game, either in client/server architecture or peer-to-peer
-
Teaching methodologies and assessment
Teaching methodologies and assessment
The course is theoretical and practical. Most classes will be a mixture of both methods: * Exposition presenting the concepts * Demonstration of those concepts in practice, with real life examples if possible * Practical through the execution of small programming tasks related to the current lecture
-
References
References
Kurose, J. F., & Ross, K. (2009). Computer Networking: A Top-Down Approach Featuring the Internet, Pearson Education. Stevens, W. R., & Narten, T. (1990). UNIX network programming. ACM SIGCOMM Computer Communication Review, 20(2), 8-9.
-
Office Hours
Office Hours
-
Mobility
Mobility
No