window.googletag = window.googletag || { cmd: [] }; const defaultPostAttributes = { type: 'unknown', categories: 'unknown', tags: 'unknown', id: 'unknown', social: 'unknown', staging: 1 }; const socialNetworks = { facebook: [], twitter: ['t.co'], linkedin: [], instagram: [], pinterest: [], tiktok: [], snapchat: [], 'linkin.bio': [], }; const postAttributes = Object.assign({}, defaultPostAttributes, window.postAttributes || {}); function addBettingWidgetIfNotHidden(version = "desktop") { if (postAttributes.hide_non_gam !== 'hide') { const containerDiv = document.createElement('div'); const widgetWrapper = document.createElement('div'); const scriptElement = document.createElement('script'); // Set properties for desktop or mobile const targetElementId = version === "desktop" ? 'betting-widget-container' : 'btw-wrapper-mob'; const targetElement = document.getElementById(targetElementId); if (!targetElement) { return; // Exit early if there's no target element } widgetWrapper.className = version === "desktop" ? 'btw-wrapper' : ''; if (version === "desktop") { containerDiv.className = 'col-span-12 border-t-[0.5px] mt-7'; containerDiv.style.paddingTop = '1.75rem'; } // Set common attributes for the script element scriptElement.async = true; scriptElement.src = 'https://betting-widget.s3.eu-west-2.amazonaws.com/app.js'; scriptElement.setAttribute('version', version); widgetWrapper.appendChild(scriptElement); containerDiv.appendChild(widgetWrapper); targetElement.appendChild(containerDiv); } } function getReferringNetwork(aliases) { const ref = document.referrer; // Loop through the socialNetwork and aliases entries for (const [socialNetwork, aliasList] of Object.entries(aliases)) { if (ref.includes(socialNetwork) || aliasList.some(alias => ref.includes(alias))) { return socialNetwork; } } return 'unknown'; } function isMobileDevice() { return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); } function defineSizeMappings() { return { top: googletag.sizeMapping() .addSize([1024, 0], [[970, 250], [728, 90], [970, 90]]) .addSize([768, 0], [[728, 90]]) .addSize([0, 0], []) .build(), rhs: googletag.sizeMapping() .addSize([1024, 0], [[300, 600], [160, 600], [300, 250]]) .addSize([0, 0], []) .build(), inContent: googletag.sizeMapping() .addSize([1024, 0], [[300, 250], [1, 2]]) .addSize([0, 0], [[300, 250], [320, 50], [1, 2]]) .build(), leftSkin: googletag.sizeMapping() .addSize([760, 0], [[1, 1]]) .addSize([0, 0], []) .build(), rightSkin: googletag.sizeMapping() .addSize([760, 0], [[2, 2]]) .addSize([0, 0], []) .build(), skinTop: googletag.sizeMapping() .addSize([1480, 0], [[970, 90], [970, 250], [728, 90]]) .addSize([0, 0], []) .build(), skinTopMobile: googletag.sizeMapping() .addSize([768, 0], []) .addSize([0, 0], [[300, 250], [320, 50], [1, 2]]) .build(), mobileSticky: googletag.sizeMapping() .addSize([768, 0], []) .addSize([0, 0], [[320, 50]]) .build() }; } function defineSkinUnits() { defineSlot('/247211819/Joe.ie/Joe.ie_Left_Skin', [1, 1], 'div-gpt-ad-1681213692194-0', 'leftSkin'); defineSlot('/247211819/Joe.ie/Joe.ie_Right_Skin', [2, 2], 'div-gpt-ad-1681214169885-0', 'rightSkin'); if(postAttributes.type === 'home') { defineSlot('/247211819/Joe.ie/Joe.ie_top', [[970, 90], [970, 250], [728, 90]], 'div-gpt-ad-1681222708979-0', 'skinTop'); defineSlot('/247211819/Joe.ie/Joe.ie_in_content_1', [[300, 250], [320, 50], [1, 2]], 'div-gpt-ad-1681213026600-0', 'skinTopMobile'); } } function setLazyLoad() { googletag.pubads().enableLazyLoad({ fetchMarginPercent: 100, renderMarginPercent: 50, mobileScaling: 1.0 }); } function addTargeting(postAttributes) { googletag.pubads().setTargeting('type', postAttributes.type ?? 'unknown'); googletag.pubads().setTargeting('category', postAttributes.categories ?? 'unknown'); googletag.pubads().setTargeting('tag', postAttributes.tags ?? 'unknown'); googletag.pubads().setTargeting('id', String(postAttributes.id) ?? 'unknown'); googletag.pubads().setTargeting('social', getReferringNetwork(socialNetworks) ?? 'unknown'); googletag.pubads().setTargeting('staging', String(postAttributes.staging) ?? 'unknown'); } function defineAndDisplaySlot(adUnitPath, sizes, elementId, sizeMappingKey) { defineSlot(adUnitPath, sizes, elementId, sizeMappingKey); googletag.display(elementId); } // Only define the ad slot and add it to a list function defineSlot(adUnitPath, sizes, elementId, sizeMappingKey) { const isMobile = isMobileDevice(); const restrictedUnits = ['top', 'rhs']; if (restrictedUnits.includes(adUnitPath) && isMobile) { return; } const sizeMappings = defineSizeMappings(); const mapping = sizeMappings[sizeMappingKey]; const slot = googletag.defineSlot(adUnitPath, sizes, elementId); slot.defineSizeMapping(mapping); slot.addService(googletag.pubads()); } // Function to display a list of ad slots function displaySlots(slotIds) { slotIds.forEach(id => { googletag.display(id); }); } // Function to fire after unit render function renderCallback(event) { if (event.slot.getAdUnitPath().includes('mobile_sticky')) { if (event.isEmpty) { return; } if (document.getElementById('qc-cmp2-persistent-link')) { document.getElementById('qc-cmp2-persistent-link').style.bottom = document.getElementsByClassName('sticky-footer-container')[0].offsetHeight+'px'; } } } googletag.cmd.push(function () { try { defineSkinUnits(); googletag.pubads().enableSingleRequest(); setLazyLoad(); addTargeting(postAttributes); googletag.pubads().setCentering(true); googletag.pubads().addEventListener('slotRenderEnded', function(event) {renderCallback(event);}); googletag.enableServices(); displaySlots(['div-gpt-ad-1681213692194-0','div-gpt-ad-1681214169885-0']); if(postAttributes.type === 'home') { displaySlots(['div-gpt-ad-1681222708979-0','div-gpt-ad-1681213026600-0']); } } catch (err) { console.error("An error occurred while setting up ads:", err); } });
Search icon

Movies & TV

28th Mar 2023

Dungeons & Dragons is the first great blockbuster of 2023

Rory Cashin

Dungeons & Dragons

The movie arrives in cinema this week and needs to be seen on as big a screen as possible.

We’ve had a few box office biggies in 2023 so far, but they’ve either not hit with the critics (Ant-Man 3, Shazam 2) or they didn’t have MASSIVE budgets to be considered blockbusters themselves (Creed III, John Wick 4). Plus, you’ll notice, they’re literally all sequels.

And while we’re only a quarter of the way through 2023, if we get another blockbuster as purely entertaining as Dungeons & Dragons: Honour Among Thieves, then we’re in for one hell of a year. With a budget of $151 million, coming from directors behind some brilliant-but-underappreciated comedies, adapting a board game with a devout but specific audience, which was already the source material for one of the worst blockbusters of the 21st century… the fact that this Dungeons & Dragons movie is this good is a minor miracle.

One of the major reasons for its success is the eclectic but perfectly chosen cast, including Chris Pine, Michelle Rodriguez, Regé-Jean Page, Justice Smith, Sophia Lillis, and Hugh Grant, and then dropping them into a sort of magical Ocean’s 11. Pine and Rodriguez play Edgin and Holga, best friends and great thieves, who escape from prison so they can be reunited with his daughter Kira (Chloe Coleman).

Along the way, they discover that their previous partner-in-crime Forge (Grant) is now a man of incredible power and is raising Kira as his own. So Edgin and Holga head off to put together a team to help infiltrate Forge’s fortress, defeat him and his powerful wizard ally Sofina (Daisy Head), and save Kira.

Which is how they end up recruiting semi-failed sorcerer Simon (Smith), shapeshifting druid Doric (Lillis), and humourless kick-ass paladin Xenk (Page). Together, they attempt to retrieve certain items that will help them defeat Forge, which puts them in the direct path of some of the most dangerous creatures in some of the most dangerous terrains in this world.

Thankfully, while the action is tremendously choreographed and most of it feels practical and in-camera – giving a family-friendly John Wick vibe – the script and performers allow a lot of room for humour, keeping everything super light and fun. Pine is doing his best Jason Bateman impression, full of dumbfounded sarcasm, but with a big heart at the centre of his character. He also never really attempts to be the action hero in the room, preferring to be the hype man for Rodriguez’s vicious warrior, or cheerleading for Simon and Doric to maximise their powers when they’re at their lowest.

The humour isn’t all quippy one-liners either – something that superhero movies have been accused a lot of lately – and the action isn’t just one special effect firing a special effect at another special effect. The hand-to-hand combat scenes are precise and complicated and so much fun to visually keep track of, while the bigger set-pieces leave room for the appropriate scope and scale of giant dragons or inescapable mazes, calling to mind the best sequences from the Lord of the Rings and Harry Potter series.

The end product is a movie that we hope is the beginning of a massive Dungeons & Dragons movie franchise, because if this is just where they are beginning with this, we can only imagine the potential heights that could be reached in future entries.

Dungeons & Dragons: Honour Among Thieves arrives in cinemas on Friday 31 March.

Related articles: