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

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

See example documents 1 and 2.


GCC, The GNU compiler collection

GDB Tutorial (short) | (exhausting) | (Cheat sheet)

GNU `make`

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
    # Show also reachable and indirectly lost blocks of memory
    # Show the origin of uninitialized values

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).

Managing Risk in Video Game Development

Latency compensation


Fog of War

Area of interest filtering

Peer to Peer

Code examples

Code snippets


email: firstname.lastname@lut.fi


Jouni Ikonen Room: X Reception hours: ?

Substitute lecturer

Jussi Laakkonen

Room: 7643

Reception hour:

  • Monday 10-12