The big question hanging over The Huntsman: Winter’s War is broadly simple: “Who the hell is this ding dang movie for, anyway?” The only entity who theoretically should know, Universal Pictures, doesn’t, at least as evidenced by the way they chosen to package and sell the movie to whoever they’re hoping to sell it to: If you go by the trailers, the plot hinges on a sibling brawl between the reigning villain of the previous film, the Evil Queen Ravenna (Charlize Theron, reprising her role), and her sister, Freya (newcomer Emily Blunt), best described as a hyper-charged adult version of Frozen‘s Elsa, with Eric the Huntsman (Chris Hemsworth, also reprising his original role) caught in the middle of their martial spat.
But it isn’t! The trailers lie. They might not even be lying with intention; they might just be confused, and why wouldn’t they be? The Huntsman: Winter’s War is a disheveled heap of scenes with vague relation to one another more than it is an actual, whole movie. It is a prequel, in that the beginning takes us through the origin stories for both Freya and Eric, which precede the events of 2012’s Snow White and the Huntsman. It is a sequel, in that the middle and the end each occur after that movie while making reference to its events and to its driving principal character, who we see once with her back to the camera because Kristen Stewart was and still is doing too many important and meaningful things to come back for round two, even in an alternate timeline where the studio actually wanted to hire her back.
And it is a spin-off, sort of, and the most head-scratching kind because as much as everyone likes Chris Hemsworth, not everybody loves him, and Eric is such a generic genre character that fixing him at the center of this franchise and making it his in the process feels like the most obvious misplay of 2016. (Come on, Chris: You already have Thor. Do you really need Eric, too? Come to that do you even want him? Fess up.) We can talk about blockbusters that put too much on their plate at once all day long – it’s a common thread among modern tentpoles of all stripes – but The Huntsman: Winter’s War suffers not because it tries to do too much at once, but because it’s too befuddled to do any one thing especially well. If you’re a dyed in the wool nerd, you’ve probably played a Dungeons and Dragons campaign that tread all the same ground as this film, and you probably had a much better time doing it.
The Huntsman: Winter’s War is directed by Cedric Nicolas-Troyan, who worked on the visual effects for Snow White and the Huntsman, and written by the odd couple team of Evan Spiliotopoulos and Craig Mazin. Between the two of them, they’ve done work on such hits as the better part of the Scary Movie and Hangover franchises and Brett Ratner’s Hercules, a combination that perfectly explains the film’s storytelling sensibility. (In a word: “Strewn.”) We begin with Ravenna and Freya as Freya experiences a heartbreaking loss – the death of her firstborn child – that allows her to manifest the latent magical powers possessed by all the women in her family, and from there, Freya strikes out to found a kingdom of her own by kidnapping children from all over the realm and training them to serve in her military corps. She calls them Huntsmen for no reason whatsoever, other than to give the film a cheap way to introduce Eric as a boy, one of her finest abducted youth soldiers in training, before fast forwarding years into the future where, as grown-ups, Eric and his fellow Huntsperson Sara (Jessica Chastain) fall in love and scheme to run off together. Bad move! Freya has outlawed love in her frozen domain, and so she kills Sara and has Eric tossed into a frozen river, whose currents carry him into Snow White and the Huntsman, and…
…well, tell you what, that’s enough of that. There’s so much fucking movie in The Huntsman: Winter’s War that summarizing it means writing out its entire plot in shorthand. If you want that, head to Wikipedia. If you don’t, stay here. (Please stay here. Please.) By happy chance, the unwieldiness of the film’s narrative underscores just what is wrong with it on a structural level: It is episodic by its very nature, but there’s an episode missing, and the episodes that remain have no artistic connection to one another. (Grant that the film doesn’t have much of a connection to Snow White and the Huntsman, either, and that it retcons its mythology as a convenience to itself.) They’re there because Universal thought they could make a buck off of brand recognition, not just their own brand, but HBO’s brand, Wizards of the Coast’s brand, and Peter Jackson’s brand, though this, again, leads us back to the puzzle of who among the movie going public genuinely cares enough about the Huntsman films that its riffs on Game of Thrones and Lord of the Rings will matter to them.
It’s easy to admire The Huntsman: Winter’s War‘s bald ambition. It wants to tower, it wants to impress, it wants to have weight. It succeeds in the first of these by virtue of being more cumbersome than any big budget studio spectacle released so far in 2016, and possibly to be released later on in the year, but that’s not much of a success to speak of. It impresses but not in any positive way, because let’s face it, making a movie with three of the best actresses working today and wasting two of them is a twisted achievement in its own right. Of that trio, only Theron is living her best life, and though she is given none of the overwrought dialogue she savored in the last film, she puts everything she’s got into shoving Ravenna as far over the top as she’s able. Hemsworth is himself, which is to say that he’s roguish and fun, and Nick Frost and Rob Brydon show up as comic relief dwarves, because in the annals of fantasy there is only one Gimli, and even he managed to serve as the butt of punchlines in the middle of rain-soaked castle sieges.
As much as it’s a pleasure to watch these performers do their respective things, and as much as they’re good enough at unbalancing the film’s badness, they can’t undo that badness outright. The Huntsman: Winter’s War remains bewildered by itself from start to finish, uncertain of what story it wants to tell. At least it knows the sort of movie it wants to be – a hammy dark fantasy – but when that movie doesn’t turn out to be anything other than a naked and hollow Hollywood cash grab made from the pieces of better properties, that’s hardly a consolation.
{"id":"2","mode":"form","open_style":"in_place","currency_code":"USD","currency_symbol":"$","currency_type":"decimal","blank_flag_url":"https:\/\/agcrump.work\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/blank.gif","flag_sprite_url":"https:\/\/agcrump.work\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/flags.png","default_amount":500,"top_media_type":"featured_image","featured_image_url":"https:\/\/agcrump.work\/wp-content\/uploads\/2025\/10\/image-asset-179x200.webp","featured_embed":"","header_media":null,"file_download_attachment_data":null,"recurring_options_enabled":false,"recurring_options":{"never":{"selected":true,"after_output":"One time only"},"weekly":{"selected":false,"after_output":"Every week"},"monthly":{"selected":false,"after_output":"Every month"},"yearly":{"selected":false,"after_output":"Every year"}},"strings":{"current_user_email":"","current_user_name":"","link_text":"Leave a tip","complete_payment_button_error_text":"Check info and try again","payment_verb":"Pay","payment_request_label":"A Constant Visual Feast","form_has_an_error":"Please check and fix the errors above","general_server_error":"Something isn't working right at the moment. Please try again.","form_title":"Support My Work:","form_subtitle":"","currency_search_text":"Country or Currency here","other_payment_option":"Other payment option","manage_payments_button_text":"Manage your payments","thank_you_message":"Thanks for supporting my work!","payment_confirmation_title":"A Constant Visual Feast","receipt_title":"Your Receipt","print_receipt":"Print Receipt","email_receipt":"Email Receipt","email_receipt_sending":"Sending receipt...","email_receipt_success":"Email receipt successfully sent","email_receipt_failed":"Email receipt failed to send. Please try again.","receipt_payee":"Paid to","receipt_statement_descriptor":"This will show up on your statement as","receipt_date":"Date","receipt_transaction_id":"Transaction ID","receipt_transaction_amount":"Amount","refund_payer":"Refund from","login":"Log in to manage your payments","manage_payments":"Manage Payments","transactions_title":"Your Transactions","transaction_title":"Transaction Receipt","transaction_period":"Plan Period","arrangements_title":"Your Plans","arrangement_title":"Manage Plan","arrangement_details":"Plan Details","arrangement_id_title":"Plan ID","arrangement_payment_method_title":"Payment Method","arrangement_amount_title":"Plan Amount","arrangement_renewal_title":"Next renewal date","arrangement_action_cancel":"Cancel Plan","arrangement_action_cant_cancel":"Cancelling is currently not available.","arrangement_action_cancel_double":"Are you sure you'd like to cancel?","arrangement_cancelling":"Cancelling Plan...","arrangement_cancelled":"Plan Cancelled","arrangement_failed_to_cancel":"Failed to cancel plan","back_to_plans":"\u2190 Back to Plans","update_payment_method_verb":"Update","sca_auth_description":"Your have a pending renewal payment which requires authorization.","sca_auth_verb":"Authorize renewal payment","sca_authing_verb":"Authorizing payment","sca_authed_verb":"Payment successfully authorized!","sca_auth_failed":"Unable to authorize! Please try again.","login_button_text":"Log in","login_form_has_an_error":"Please check and fix the errors above","uppercase_search":"Search","lowercase_search":"search","uppercase_page":"Page","lowercase_page":"page","uppercase_items":"Items","lowercase_items":"items","uppercase_per":"Per","lowercase_per":"per","uppercase_of":"Of","lowercase_of":"of","back":"Back to plans","zip_code_placeholder":"Zip\/Postal Code","download_file_button_text":"Download File","input_field_instructions":{"tip_amount":{"placeholder_text":"How much do you want to tip?","initial":{"instruction_type":"normal","instruction_message":"How much do you want to tip?"},"empty":{"instruction_type":"error","instruction_message":"How much do you want to tip?"},"invalid_curency":{"instruction_type":"error","instruction_message":"How much do you want to tip?"}},"recurring":{"placeholder_text":"Recurring","initial":{"instruction_type":"normal","instruction_message":"Want to make a recurring tip?"},"success":{"instruction_type":"success","instruction_message":"Want to make a recurring tip?"},"empty":{"instruction_type":"error","instruction_message":"Want to make a recurring tip?"}},"name":{"placeholder_text":"Name on Credit Card","initial":{"instruction_type":"normal","instruction_message":"Enter the name on your card."},"success":{"instruction_type":"success","instruction_message":"Enter the name on your card."},"empty":{"instruction_type":"error","instruction_message":"Please enter the name on your card."}},"privacy_policy":{"terms_title":"Terms and conditions","terms_body":null,"terms_show_text":"View Terms","terms_hide_text":"Hide Terms","initial":{"instruction_type":"normal","instruction_message":"I agree to the terms."},"unchecked":{"instruction_type":"error","instruction_message":"Please agree to the terms."},"checked":{"instruction_type":"success","instruction_message":"I agree to the terms."}},"email":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email address"},"success":{"instruction_type":"success","instruction_message":"Enter your email address"},"blank":{"instruction_type":"error","instruction_message":"Enter your email address"},"not_an_email_address":{"instruction_type":"error","instruction_message":"Make sure you have entered a valid email address"}},"note_with_tip":{"placeholder_text":"Your note here...","initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"empty":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"not_empty_initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"saving":{"instruction_type":"normal","instruction_message":"Saving note..."},"success":{"instruction_type":"success","instruction_message":"Note successfully saved!"},"error":{"instruction_type":"error","instruction_message":"Unable to save note note at this time. Please try again."}},"email_for_login_code":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email to log in."},"success":{"instruction_type":"success","instruction_message":"Enter your email to log in."},"blank":{"instruction_type":"error","instruction_message":"Enter your email to log in."},"empty":{"instruction_type":"error","instruction_message":"Enter your email to log in."}},"login_code":{"initial":{"instruction_type":"normal","instruction_message":"Check your email and enter the login code."},"success":{"instruction_type":"success","instruction_message":"Check your email and enter the login code."},"blank":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."},"empty":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."}},"stripe_all_in_one":{"initial":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"empty":{"instruction_type":"error","instruction_message":"Enter your credit card details here."},"success":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"invalid_number":{"instruction_type":"error","instruction_message":"The card number is not a valid credit card number."},"invalid_expiry_month":{"instruction_type":"error","instruction_message":"The card's expiration month is invalid."},"invalid_expiry_year":{"instruction_type":"error","instruction_message":"The card's expiration year is invalid."},"invalid_cvc":{"instruction_type":"error","instruction_message":"The card's security code is invalid."},"incorrect_number":{"instruction_type":"error","instruction_message":"The card number is incorrect."},"incomplete_number":{"instruction_type":"error","instruction_message":"The card number is incomplete."},"incomplete_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incomplete."},"incomplete_expiry":{"instruction_type":"error","instruction_message":"The card's expiration date is incomplete."},"incomplete_zip":{"instruction_type":"error","instruction_message":"The card's zip code is incomplete."},"expired_card":{"instruction_type":"error","instruction_message":"The card has expired."},"incorrect_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incorrect."},"incorrect_zip":{"instruction_type":"error","instruction_message":"The card's zip code failed validation."},"invalid_expiry_year_past":{"instruction_type":"error","instruction_message":"The card's expiration year is in the past"},"card_declined":{"instruction_type":"error","instruction_message":"The card was declined."},"missing":{"instruction_type":"error","instruction_message":"There is no card on a customer that is being charged."},"processing_error":{"instruction_type":"error","instruction_message":"An error occurred while processing the card."},"invalid_request_error":{"instruction_type":"error","instruction_message":"Unable to process this payment, please try again or use alternative method."},"invalid_sofort_country":{"instruction_type":"error","instruction_message":"The billing country is not accepted by SOFORT. Please try another country."}}}},"fetched_oembed_html":false}
You really hit the nail on the head with this one!!
Why thank you so much! I did my best.