Distributed Programming  
General Course Information  
Edirlei Soares de Lima  
<edirlei.lima@universidadeeuropeia.pt>  
Distributed Programming  
•
Professor: Edirlei Soares de Lima  
–
Education:  
•
•
•
B.Sc. in Computer Science – UnC  
M.Sc. in Computer Science – UFSM  
Ph.D. in Computer Science – PUC-Rio  
–
–
Teaching Experience: PUC-Rio, UNIRIO, UERJ, IADE-UE  
Game Experience:  
•
•
•
Game Engines: RPG Builder, 3D Game Builder;  
Research Projects: most are related with Logtell (http://www.icad.puc-rio.br/~logtell/);  
Games: Krimson (Best Game Award at SBGames 2010 – Indie Game Development  
Festival), and several other prototype games.  
–
More Information: https://edirlei.com/  
What is Distributed Programming?  
•
•
Distributed computing is a field of  
computer science that studies  
distributed systems.  
A distributed system is a system  
whose components are located on  
different networked computers,  
which then communicate and  
coordinate their actions by passing  
messages to each other.  
•
Distributed programming involves  
the implementation of distributed  
systems.  
Distributed Programming  
•
•
Games & Apps Development:  
–
Study of the paradigm of distributed programming, distributed  
systems, and data communication solutions;  
–
Study of the C++ programming language, and its use in the Unreal  
Engine for network communication.  
Learning Outcomes:  
1
2
3
4
. Implement games and general applications using the paradigm of  
distributed programming.  
. Understand the main models for distributed programming and  
distributed systems.  
. Implement client-server and peer-to-peer games using C++ and  
Unreal Engine.  
. Assess aspects related with the performance of distributed systems,  
their advantages, and their shortcomings.  
Distributed Programming  
•
Module Content:  
1
2
3
4
5
6
. Introduction to distributed systems and distributed programming;  
. Processes, threads and synchronization;  
. Distributed systems architectures;  
. Unreal Engine and network communication;  
. REST web services and HTTP communication in C++ on Unreal Engine;  
. TCP and UDP communication in C++ on Unreal Engine;  
Method  
•
Active and experiential learning:  
–
–
–
Theoretical concepts;  
Practical examples;  
Implementation exercises;  
•
•
Game framework: Unreal Engine  
Semester’s PBL team project:  
–
Implementation of the game using the methods learned during the  
course (architecture, communication, and performance).  
Evaluation  
•
Continuous Assessment:  
–
[70%] Intermediate assessment:  
•
[60%] Individual exercises on the concepts learned;  
•
[40%] Two intermediate deliveries of the team project (within the  
semester’s PBL team project).  
–
[30%] End of term assessment:  
•
[100%] Final delivery of the team project (within the semester’s PBL team  
project) with individual discussion.  
•
Final Assessment:  
–
[100%] Practical exam on the concepts learned;  
Evaluation  
•
Project Deliveries:  
–
–
–
1st delivery: identification of the communication necessities and  
definition of the architectural model.  
2nd delivery: working prototype with basic network communication:  
basic gameplay synchronization.  
3rd delivery: final version: full gameplay synchronization + external  
matchmaking server.  
•
The manual implementation of the message exchange process is mandatory for the  
communication with the matchmaking server.  
•
The final delivery of the project must include a report about the distributed  
architectural model of the game.  
Bibliography  
•
•
Carnall, B. (2016). Unreal Engine 4.X By  
Example. Packt Publishing. ISBN: 978-  
785885532.  
1
Coulouris, G., Dollimore, J., Kindberg, T., Blair,  
G. (2004). Distributed Systems: Concepts and  
Design (5th edition), Pearson. ISBN: 978-  
0
132143011.  
•
Glazer, J., Madhav, S. (2015). Multiplayer  
Game Programming: Architecting Networked  
Games. Addison-Wesley Professional. ISBN:  
9
78-0134034300.  
Distributed Programming  
•
•
Canvas: Distributed Programming  
Course webpage:  
–
https://edirlei.com/distributedprogramming  
•
Contact:  
–
–
edirlei.slima@gmail.com