So watching that I immediately see this:
for(int i=0; i< object.size(); i++) {
tempObject = object.get(i);
...
}
I could be mistaken, but LinkedList.get() has to iterate through up to half the list each time it is called. Massively inefficient esp. when all you are doing is iterating over the list, which is ironically kind of a strongpoint of LinkedList when done correctly:
for(GameObject obj : object) {
...
}
I suspect that the same occurs during collision detection, no?
I still maintain that you use an ArrayList, usage is basically the same, but it will preform better in the majority of cases, esp. when your code is otherwise an algorithmic attack on the LinkedList implementation. This is literally the worse way you can use a LinkedList. I don’t see any reason why he chose to use a LinkedList over the usually preferred ArrayList, and he is certainly not using any of LL’s strengths, but actually accidentally abusing it’s weaknesses!