Tutor profile: Andrew C.
Subject: Computer Networking
Describe some of the considerations you would make when choose the network protocols to use in an online multiplayer game.
The candidates protocols would likely be TCP and UDP, or potentially WebSockets if the game was played in a browser. The distilled differences between TCP and UDP can be summarized as: TCP will be slower but will guarantee in-order deliver of packets. UDP will be faster but delivery is not guaranteed and so the developer must implement an error-handling strategy. WebSockets would primarily be used in a browser as they are a WebAPI implemented with TCP.
Subject: C++ Programming
Describe some of the benefits of so-called, "Modern C++", meaning C++ 11 and onwards.
The benefits are numerous, for instance: • Resource handling through smart pointers (e.g. unique_ptr) and general resource management through the RAII pattern (Resource Acquisition Is Initialization) greatly reduces bugs • Expanded STL data structures and algorithms, including lambda functions, allow for faster development with less "re-inventing the wheel" • Niceties like uniform initialization, range based loops, and even parallel algorithms help developers focus on the important task of solving problems.
Subject: C Programming
In 2021, why would a development team select the C programming language for a project?
Although the C programming language is now almost 50 years old (originated in 1972), it is still widely in use to this day. Some of the primary use cases and motivations: • Embedded systems with strict runtime requirements • Legacy software projects that where it is not cost-effective or desired to port them (e.g. operating systems)
needs and Andrew will reply soon.