So I finally watched the movie. I was reluctant to do so, as I've loved this story since it was first published in magazine form (and I met the author before he was an author), and I didn't want to be disappointed.
I also listened to the commentary tracks by the producers and director. It seems the rights to Ender's Game had been sold previously, but no studio had been able to make a movie from it until this one. These people seem to have been genuine fans of the original novel, and wanted to make a faithful adaptation for the big screen. They were hampered when a major backer cancelled, forcing them to cut out some of what they planned; they also had to replace their special-effects company during production. Because the movie deals with children, it was filmed in chronological order to let the actors 'grow up' on screen.
You probably know the story: Earth has fought off an alien invasion, but nobody knows when they'll come back. A program is underway to identify and train Earth's brightest children to fight the next war. Since the Wiggin family has produced two genius children, but flawed, a third child was approved: He is Ender Wiggin. (Ender is a nickname for a bonus child.)
Ender (played by Asa Butterfield) proves to be exceptionally bright as well as mentally tough, and is recruited for Battle School – the orbital school where children learn both in class and in a zero-gravity team sport.
Colonel Graff, head of Battle School, is played by Harrison Ford; psychologist Major Anderson is played by Viola Davis; Ben Kingsley plays legendary pilot Mazer Rackham.
The movie makes a serious attempt to remain faithful to the novel. Some parts of the story have been simplified: they've cut the number of alien invasions down to one, and relocated Command School from the asteroid belt to a conquered alien world which allows them to condense the novel's ending(s).
My problem with the movie is that I think it tried to include too much of the novel, without focusing on key parts of the plot. There needed to be more training, more zero-g games, more pressure on Ender. They avoided turning Battle School into Disney School, but it is not grim enough.
Having said that, I have no problem with any of the performances. Viola Davis was under-used, as was Ben Kingsley. Harrison Ford is fine, but he's not playing the character from the novel.
From the commentary, it's clear the director believed it was his job to turn the movie into 'his' story – which he sees as an anti-war message. I think that's a major change from the novel, but fortunately he kept it subtle.
Minor irritating change: The novel's viewpoint is that boys are savages, which is why Battle School is mostly male (Petra being the exception). The movie adds more female students, but only in the background (the student characters from the novel were not gender-changed).
As for the special effects: Battle School looks great. The zero-g scenes are perhaps as good as possible, but not 100% convincing. There seems to have been a decision to make the space combat look like a videogame, which makes a certain sense plot-wise, but the ships lack detail and the battles were visually disappointing.
Asa Butterfield grew quite a bit taller over the course of filming, which ended up with him towering over the actor playing his nemesis, Bonzo. The director should have avoided camera angles which accentuated the difference, as it deflates Bonzo's threat level!
Bottom line: I thought the movie was OK. It was fun to see the novel adapted to the movie format. However, I thought the movie failed to capture the spirit of the novel, so was disappointing.