To be perfectly honest, I thought this film was mixed bag. On the one hand, I think the cast was top-notch; Henry Cavill mad for a decent Clark Kent/Superman, as did Amy Adams as Lois Lane, Michael Shannon did a great job as General Zod and, while still hammy, gave him a lot of depth. And Russel Crowe as Jor-El kicked all kinds of ass even as a hologram. As did Antje Traue as Faora. In terms of visuals and cinematography, it looks incredible (as if the trailers left any doubt) with some great special effects--particularly whenever Superman was in flight (and having him float up whenever he fell as opposed to just standing up normally? Brilliant!) And those fight sequences? Pure comic book goodness, which Zack Snyder delivered in spades. You literally could feel those punches and shock-waves as you saw them on the screen.
Unfortunately, when it comes to story and characterization, the film winds up being a complete and utter mess just like Smallville and Metropolis end up in the film.
For instance, that opening sequence on Kyrpton is gorgeous and very good sci-fi fantasy (even though it's basically Dune, Prometheus, the Matrix, and the Star Wars prequels mashed-up together) which I found to be quite intriguing and had good pacing. Problem is it's nothing more than a 20 minute prologue which could've been cut completely out of the film and you wouldn't have harmed the film in the least, especially since hologram Jor-El proceeds to explain and show Clark pretty much what we just saw at the beginning of the movie. To me, the film should've opened with Kal-El's ship crashing on the Kent farm, and we should've seen the scenes on Krypton and it's eventual destruction when Jor-El explains to Clark where he came from.
Also, while I believe Kevin Costner did a very good job as Jonathan Kent, I thought his depiction in terms of the script was awful. Granted, I get that Pa Kent wanted to protect his adoptive son and I do think his belief that the world would be more inclined to fear Clark makes sense, but the message he teaches Clark amounts to "It's better to keep yourself safe and protect your secret even at the cost of other people's lives" which a horrible message for a parent to teach their kid. Not to mention it contradicts him also telling Clark that he was sent to Earth for a reason and that he was going to change the world, cause that means Clark revealing himself to the world eventually, doesn't it? Not to mention Clark goes against his dad's very advice when he saved the workers on the oil rig. Oh, and don't get me started on Pa Kent's death scene with the tornado--not only did I think it was cheesy instead of poignant, the circumstances leading up to it do not make a lick of sense (seriously, who stops their car and gets out of it during the middle of a tornado? Especially since Kansas is tornado country?)
Likewise, while it's understandable that Zod wants to save the Kryptonians via the Codex, The World Engine really serves no purpose whatsoever other than to be set pieces for the climax. Think about it--Zod and the other Kryptonians, just like Clark, have superhuman abilities on Earth due to it's lower gravity, yellow sun, and atmosphere. By terraforming the Earth to be like Krypton, they essentially are given up their opportunity to be literally a stronger race, are they not? Oh sure, there's initial pain and discomfort due to sensory overload, but we see they'll be capable of overcoming it in time, and any new Kryptonians who are born will become acclimatized like Clark did.
And as great as those fight scenes were, Superman really doesn't seem to pay much attention to all the collateral damage and the thousands of lives that are lost as a result. (Yeah, telling the people of Smallville to get off the street and seek shelter in buildings is going to do a fat lot of good while you're being punched and thrown around in the buildings there, Supes. And I sure didn't see you act the least bit upset over the fact that the town you grew up in was just virtually destroyed.) There's even a point where Superman takes Zod out of Metropolis and into orbit--thereby possibly preventing further destruction and loss of life--only to come right back down to Metropolis again.
That, of course, leads to the now infamous scene of Superman killing Zod. Sure, we're supposed to understand that he had no other choice and was in anguish about what he was forced to do. Problem is, Superman shouldn't have been in that position in the first place since, as I said, he already had Zod out of Metropolis beforehand only to come right smack down into the city again. Also, didn't he think about diverting Zod's face away from the family or covering his face? And how did Lois know exactly where Superman and Zod landed? Also, given the emotional gut-punch the scene had, having the next scene with Superman returning the drone be more or less light-hearted feels like emotional whiplash.
I know it seems like I'm really being harsh on this film, but again, there were parts of it I really liked. I think the idea of having Superman's origin be akin to a first contact/alien invasion story was clever, and I really liked how they told Clark's childhood via flashbacks. It's just once Clark put on the Superman suit, that's when everything about the film started to fall apart until logic and common sense was completely tossed aside for mindless spectacle. If the filmmakers had paid more attention on getting the script right as they obviously did on the visuals, this could've been a great film instead of an okay film with occasional, but far too few, moments of brilliance.