/**
  * Prepare a list of modified entities on this frame.
  *
  * @return List<SpriteEntity>
  */
 private List<SpriteEntity> getModifiedEntities() {
   List<SpriteEntity> returned = new ArrayList<SpriteEntity>();
   for (SpriteEntity entity : spriteEntities) {
     int id = entity.getId();
     SpriteEntity backedUp = backupEntities.get(id);
     if (backedUp == null) {
       // If this entity hasn't been backed up, it's a new one ==> we
       // send it
       returned.add(entity);
     } else {
       // If this entity has been backed up, we must check whether it
       // has changed
       if (!backedUp.isSame(entity)) {
         returned.add(entity);
       }
       backupEntities.remove(id);
     }
   }
   // Send the entity which has been removed this frame
   for (SpriteEntity entity : backupEntities.values()) {
     entity.dying = true;
     entity.clientSpecific = false; // Send to all clients
     returned.add(entity);
   }
   backupEntities.clear();
   return returned;
 }