Two qualities that shouldn’t be underestimated in children: their capacity to daydream, and their vulnerability to psychic scarring. In its own sweetly nostalgic but startlingly mature way, I Declare War – the latest offering from Canadian filmmaker Jason Lapeyre and co-director Robert Wilson – pursues the exploration of both elements with a refreshing dearth of gimmickry or artifice; the greatest tricks brought to bear here are Lapeyre’s sharp, insightful, and thoroughly engaging script and a cadre of stand-out performances wrung from a cast of naturally gifted youngsters. Contrary to what sensitive adults may believe about a film where preteens play at field combat with one another, the vocalized report fire of assault rifles and the deafening boom of exploding ordnance prove utterly harmless.
The real danger here, of course, exists on an emotional level. The injuries that I Declare War‘s characters inflict on one another cut closer to spirit than bone, the sort of childhood cruelties and betrayals that we’re not fully equipped to process at the tender age of twelve. That they occur during an otherwise routine game of capture the flag – routine, at least, for these kids – feels almost natural, and may be the most expected detail in the entire film. Where else do personal grudges held between two boys, and the pathological stresses of everyone else caught in their sport, come to a head but on the battlefield where they’ve decided to square off against each other?
Quite frankly, that’s the true miracle of I Declare War. Lapeyre could have just architected a purely fun lark and the movie still would be worth watching based on the creativity he instills in his storytelling and the energy of his cast; collectively, they dare to do better,and their combined efforts deserve all the praise they’ve been accorded since last year’s Fantastic Fest, where the film enjoyed its premiere and went on to win the event’s coveted Audience Award the very next day. At face value, I Declare War serves as a showcase for a real-world variation on video games like Call of Duty, made with slick professionalism but digging beneath that base level yields far greater rewards.
From I Declare War‘s opening scene, we’re air-dropped right into what at first resembles child warfare before the illusion dissolves and we figure out what’s really happening in short order. This is war, alright, but one that’s fought with twigs, water balloons, red paint, and an active imagination. In their hands, these objects become instruments of mock destruction, so long as they have the willpower to picture logs as bazookas and slingshots as crossbows. Two sides participate in the fracas: one led by pint-sized moppet and born tactical genius PK (Gage Munroe), and one led first by Quinn (Aidan Gouveia), a worthy and honorable opponent to PK’s undefeated playbook of stratagems, and then by Skinner (Michael Friend), who lacks the aptitude for generalship both of the other boys possess but makes up for it with a nasty streak a mile wide, following a vicious coup.
Why so on edge, Skinner? That question pervades throughout much of I Declare War‘s running time, and the answer supplies an eye-opening payoff. Someone’s bound to get hurt in a harmless game of war, after all, even one that’s played with make-believe automatic weapons, and the film moves briskly to get to a point where we see the real wounds left behind by a day spent sneaking, scouting, running, sweating, and hiding in thickly populated woods. Boys will be boys, and it turns out that they’re capable of hurting each other beyond the usual collection of scrapes, bumps, and bruises.
Stylistically, I Declare War snugly fits into the cinematic sub-genre from which it derives its name, though Lapeyre and Wilson aren’t particularly interested in homage or mimicry; this is their own film, not something they’ve cobbled together from the parts of other productions. Not that Lapeyre and Wilson keep their work totally free of reference – Patton, almost serving functional purpose as PK’s major source of inspiration, receives mentions, while hints of Yojimbo and The Hunger Games (the film to which outsiders may immediately compare I Declare War at a glance) make occasional ripples across the narrative. In point of fact, the most overt nods here are found in character names and archetypes, which sometimes come in tandem; hot-head Joker (Spencer Howes), chatterbox Frost (Alex Cardillo), silent hunter Caleb (Kolton Stewart), holy man Wesley (Andy Reid). Everything else comes right out of the filmmakers’ heads.
It helps immensely, then, that Lapyere and Wilson have such a talented group of kids at their beck and call. One thing must be made clear: Munroe and Friend steal the show, with Friend in particular being something of a revelation, and their big climactic scene together suggests that they should both have fruitful careers going forward. So too do their compatriots, mind, but rattling off each in a row to bestow laurels feels like it would be a wasted exercise; each viewer is going to identify more with certain characters more than others, because they individually represent the full breadth of the twelve-year-old mindset. While that won’t prevent audiences from recognizing the great work done here by all, they’re likely to gravitate to some performances here more than others – at one point, we were all Jokers, or Frosts, or Sikorskis, or Calebs.
Or, perhaps, we were like Kwon (Siam Yu), PK’s right-hand man, stuck between the person he thinks he knows the most and the shock of reality. How much do you really “get” your best friend? That’s the other big query I Declare War poses, and another reason why the film makes for such a satisfying yarn. Colorful animated title cards and exciting action sequences give I Declare War its share of visceral thrills, but the subjects it ponders in its fashion and its portrayal of innocence lost are what really stick to the ribs during the closing credits.
{"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}
I’m sending your review to two local art-house theatre owners to put this film on their radar–if they don’t know about it already.
Good review. I hope it makes it to Miami.
Thanks Victor, and I hope so too. I’d like to see this one reach a wide audience – it deserves it.
Pingback: G-S-T Interview: Jason Lepeyre & Robert Wilson Talk ‘I Declare War’
Pingback: Interview…Jason Lapeyre & Robert Wilson Talk ‘I Declare War’