meta data for this page
CT30A5002 - Games and Networking
Reading material
Groupwork grading
Feature | Sub-feature | Points | Not done* |
---|---|---|---|
Documentation | 5 | ||
Game description | -1 | ||
Game design | -1 | ||
Protocol design | -1 | ||
The features that are planned | |||
Work schedule | -1 | ||
Division of work | -1 | ||
Listing of additional libraries used | -1 | ||
Situations that are not handled in implementation | -1 | ||
Protocol | 10 | -40 | |
Design | 5 | ||
Implementation | 5 | ||
Basic | 15 | ||
Networked game (server & client) | 5 | ||
Game has only 2 player support | -5 | ||
Game can be played | 3 | -1 | |
Game can be ended | 3 | -1 | |
Chat | 3 | -2 | |
Latency and jitter measurement | 1 | ||
Advanced | 10 | ||
Design and implementation of he feature (if group size is one, only 1 feature is req.) | 5×2 | ||
TOTAL | 40 |
Document requirements
Documentation (5 p), in PDF-format, must include:
- Game description:
- What kind of game you are trying to implement
- What are the game rules and game mechanics
- How the game is played (controls and movement/actions)
- Views of different players (how actions are shown to others, how the players perceive the game world)
- How the game will end
- Game design
- How to implement the game you described
- The game features you are going to implement
- Protocol
- Diagrams (scored separately): Joining, game situations, error situations, ending of the game
- Packets
- Advanced techniques that are planned
- The design of the technique in your game and a bit about the theory of the technique
- How the technique is used in your game - what aspects it affects
- Work schedule (here you can describe different features)
- When each feature will be done
- Division of work
- Which persons were responsible of certain tasks (documentation, protocol design, server/client implementation, conducting testing, etc.)
- Situations that your implementation cannot handle
Tools
GCC, The GNU compiler collection
GDB Tutorial (short) | (exhausting) | (Cheat sheet)
SVN, Brief introduction to using svn from commandline in Linux
Valgrind Quickstart ( in Finnish))
- Some useful parameters (see more from:
man valgrind
)# Gives full details of each leak --leak-check=full # Show also reachable and indirectly lost blocks of memory --show-reachable=yes # Show the origin of uninitialized values --track-origins=yes
C language
comp.lang.c Frequently Asked Questions
Beej's Guide to Network Programming
The Linux Documentation Project: Linux IPv6 HOWTO (directly to programming examples)
- It is highly recommended to go through the section 23!!
- See 23.1.2. Lookup Functions for brief explanation of correct usage of
getaddrinfo()
function
IPv6 Network Programming (e-book), Jun-Ichiro Itojun Hagino
- Chapters: 1.4, 2.1, 2.2, 2.3, 4.1, 4.2, 4.3, 4.4, 4.5, 4.7
Game programming
Algorithms and Networking for Computer Games (e-book) by Smed & Hakonen
- It is recommended to read Part II Chapters 8 and 9
A blog about networking for game programmers by the Lead Network Programmer on God of War: Ascension, Glenn Fiedler.
Game programming patterns book by Bob Nystrom (Electronic Arts Tiburon).
Latency compensation
Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization by Yahn W. Bernier, Valve Software.
Prediction
Algorithms and Networking for Computer Games (+ correction from server: Convergence) chapters 9.3.1 + 9.3.2
Fog of War
Area of interest filtering
Algorithms and Networking for Computer Games chapter 9.6
Peer to Peer
Code examples
Code snippets
Using #define preprocessor macros
Find out which header to include
Packing data to character buffer
Receiving and sending with TCP
Connection multiplexing (select())
Contact
email: firstname.lastname@lut.fi
Lecturer
Jouni Ikonen
Room: X
Reception hours: ?
Substitute lecturer
Jussi Laakkonen
Room: 7643
Reception hour:
- Monday 10-12