basic game architecture