Files
nexus/sreweekly/articles/60/08-building-a-scalable-online-game-with-azure-part-1.html
2026-09-12 17:23:01 +08:00

254 lines
518 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8" /> <meta name="viewport" content="width=device-width,initial-scale=1" /> <meta name="application-name" content="SCM"> <meta name="application-version" content="2.62.1" /> <title>Blogs recent news | Game Developer</title> <meta name="robots" content="max-image-preview:large" data-ruid="nzi7e9a826f" /> <meta property="og:title" content="Blogs recent news | Game Developer" data-ruid="nzi7e9a826f" /> <meta name="description" content="Explore the latest news and expert commentary on Blogs, brought to you by the editors of Game Developer" data-ruid="nzi7e9a826f" /> <meta property="og:description" content="Explore the latest news and expert commentary on Blogs, brought to you by the editors of Game Developer" data-ruid="nzi7e9a826f" /> <meta property="og:url" content="https://www.gamedeveloper.com/keyword/blogs" data-ruid="nzi7e9a826f" /> <meta property="og:type" content="website" data-ruid="nzi7e9a826f" /> <meta property="og:image" content="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltba62518415cda0e2/652fe6ddbc479f8697ef691f/default-cubic.png?disable=upscale&width=1200&height=630&fit=crop" data-ruid="nzi7e9a826f" /> <meta property="og:site_name" content="Game Developer" data-ruid="nzi7e9a826f" /> <meta property="twitter:card" content="summary" data-ruid="nzi7e9a826f" /> <link tagName="link" rel="canonical" href="https://www.gamedeveloper.com/keyword/blogs" data-ruid="nzi7e9a826f" /> <link rel="preload" href="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt29a087a5ab600184/681a6e95092833652bb51a11/doomparyblogfeatured.png?width=1400&auto=webp&quality=10&disable=upscale&blur=40" as="image" tagName="link" data-ruid="nzi7e9a826f" /> <link rel="preload" href="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt834e20e36d7a0649/68093db3086eb5cf261918f1/blue_prince_darkroom_photo.jpg?width=1400&auto=webp&quality=10&disable=upscale&blur=40" as="image" tagName="link" data-ruid="nzi7e9a826f" /> <script type="application/ld+json" data-ruid="nzi7e9a826f">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.gamedeveloper.com"},{"@type":"ListItem","position":2,"name":"Blogs","item":"https://www.gamedeveloper.com/keyword/blogs"}]}</script> <link rel="stylesheet" href="/assets/brand.generated-C2HfBgG7.css" /> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap" /> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap" /> <script>"use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(){self.airgap?.ready||(self.airgap={readyQueue:[],ready(e){this.readyQueue.push(e)},...self.airgap});self.airgap.loadOptions=Object.assign({uiShadowRoot:"open"},self.airgap.loadOptions);const e=()=>{const e="__tcfapiLocator",t=[],a=window;let n,s,o=a;for(;o;){try{if(o.frames[e]){n=o;break}}catch(e){}if(o===a.top)break;o=o.parent}n||(!function t(){const n=a.document,s=!!a.frames[e];if(!s)if(n.body){const t=n.createElement("iframe");t.style.cssText="display:none",t.name=e,n.body.appendChild(t)}else setTimeout(t,5);return!s}(),a.__tcfapi=function(...e){if(!e.length)return t;"setGdprApplies"===e[0]?e.length>3&&2===parseInt(e[1],10)&&"boolean"==typeof e[3]&&(s=e[3],"function"==typeof e[2]&&e[2]("set",!0)):"ping"===e[0]?"function"==typeof e[2]&&e[2]({gdprApplies:s,cmpLoaded:!1,cmpStatus:"stub"}):t.push(e)},a.addEventListener("message",(function(e){const t="string"==typeof e.data;let a={};if(t)try{a=JSON.parse(e.data)}catch(e){}else a=e.data;const n="object"==typeof a&&null!==a?a.__tcfapiCall:null;n&&window.__tcfapi(n.command,n.version,(function(a,s){let o={__tcfapiReturn:{returnValue:a,success:s,callId:n.callId}};e&&e.source&&e.source.postMessage&&e.source.postMessage(t?JSON.stringify(o):o,"*")}),n.parameter)}),!1))};airgap.ready((t=>{"TCF_EU"===t.loadOptions.consentManagerConfig.initialViewStateByPrivacyRegime[t.getRegimes()[0]]&&("undefined"!=typeof module?module.exports=e:e())}))}();</script> <script> self.airgap = {overrides: [],cookieOverrides: [],...self.airgap,};const allowGcmAdvanced = (event) => {if (event.purposes.has('GcmAdvanced')) {event.allow();}};self.airgap.overrides.push({override: allowGcmAdvanced});self.airgap.cookieOverrides.push(allowGcmAdvanced);</script> <script data-cfasync="false" data-local-sync="allow-network-observable" data-prompt="1" data-report-only="off" data-dismissed-view-state="Closed" data-tcf-ui-dismissed-view-state="Collapsed" data-ui-shadow-root="open" data-privacy-policy="https://privacy.informa.com/" src="https://transcend-cdn.com/cm/ef49a3f1-d8c1-47d6-88fc-50e41130631f/airgap.js" ></script> <script>console.log('[Transcend] confirmed:',airgap.getConsent?.().confirmed,[...airgap.getRegimes?.()][0])</script> <script async>!async function(){const t={detected:null};try{const e=await fetch("https://www3.doubleclick.net",{method:"HEAD",mode:"no-cors",cache:"no-store"});t.detected=!!e.redirected}catch(e){t.detected=!0}const e=window.localStorage.getItem("isRobot");e&&(t.isRobotValue="true"===e),window.adBlocker=t}();</script> <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" ></script> <link rel="preconnect" href="https://cdn.cookielaw.org" /> <link rel="preconnect" href="https://fonts.gstatic.com" /> <link rel="preconnect" href="https://fonts.googleapis.com" /> <link rel="preconnect" href="https://www.googletagmanager.com" /> <script>window.NREUM||(NREUM={});NREUM.init={browser_consent_mode:{enabled:false},privacy:{cookies_enabled:true},distributed_tracing:{enabled:true},performance:{capture_measures:true},ajax:{deny_list:["bam.eu01.nr-data.net"],capture_payloads:'none'}};
;NREUM.loader_config={accountID:"3936348",trustKey:"3288925",agentID:"538600205",licenseKey:"NRJS-26ae6a3b09493bbcc87",applicationID:"538600205"};
;NREUM.info={beacon:"bam.eu01.nr-data.net",errorBeacon:"bam.eu01.nr-data.net",licenseKey:"NRJS-26ae6a3b09493bbcc87",applicationID:"538600205",sa:1};
;/*! For license information please see nr-loader-spa-1.321.0.min.js.LICENSE.txt */
(()=>{var e={8122(e,t,r){"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),s=0===Object.keys(r).length?e:r;for(let a in s)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):e[a]instanceof Map||e[a]instanceof Set||e[a]instanceof Date||e[a]instanceof RegExp?r[a]=e[a]:"object"==typeof e[a]&&null!==t[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){r[a]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>a});var n=r(384),i=r(8122);const s={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function a(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,s)])},7699(e,t,r){"use strict";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,1e6,"KC",0,i,"qh",0,"SESSION_ERROR"])},9324(e,t,r){"use strict";r.d(t,["A",0,"@newrelic/rrweb","x",0,"1.321.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},9752(e,t,r){"use strict";const n="newrelic-iframe-",i=n+"timing-update",s=n+"api",a=n+"api-response",o=n+"vitals-update",c=n+"ajax";r.d(t,["$8",0,o,"Gi",0,a,"KU",0,c,"Pl",0,n,"cS",0,s,"cr",0,i])},6154(e,t,r){"use strict";var n=r(1863);const i="undefined"!=typeof window&&!!window.document,s="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)();r.d(t,["OF",0,d,"RI",0,i,"WN",0,f,"bv",0,s,"gm",0,a,"lR",0,l,"m",0,c,"mw",0,o,"sb",0,u,"zk",0,()=>{const e=a?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<a.performance.now())return e}])},7295(e,t,r){"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>s});var n=[];function i(e){if(!e||s(e))return!1;if(0===n.length)return!0;if("*"===n[0].hostname)return!1;for(var t=0;t<n.length;t++){var r=n[t];if(r.hostname.test(e.hostname)&&r.pathname.test(e.pathname))return!1}return!0}function s(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;if("*"===r)return void(n=[{hostname:"*"}]);0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let s,a;i>0?(s=r.substring(0,i),a=r.substring(i)):(s=r,a="*");let[c]=s.split(":");n.push({hostname:o(c),pathname:o(a,!0)})}}function o(e,t=!1){const r=e.replace(/[.+?^${}()|[\]\\]/g,e=>"\\"+e).replace(/\*/g,".*?");return new RegExp((t?"^":"")+r+"$")}},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>d,x3:()=>c});var n=r(3241),i=r(3606),s=r(860),a=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:s.P3[t]||0};e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&u(e))}function d(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,u(e)}}function u(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const s=e.ee,o=i.i.handlers;if(s&&!s.aborted&&s.backlog&&o){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=s.backlog[t],r=o[t];if(r){for(let t=0;e&&t<e.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=>{Object.values(t||{}).forEach(t=>{t[0]?.on&&t[0].context()instanceof a.y&&!t[0].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}s.isolatedBacklog||delete o[t],s.backlog[t]=null,s.emit("drain-"+t,[])}}function f(e,t){var r=e[1];Object.values(t[r]||{}).forEach(t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],s=e[2];n.apply(i,s)}})}},7836(e,t,r){"use strict";var n=r(384),i=r(8990),s=r(2646),a=r(5607);const o="nr@context:".concat(a.W),c=function e(t,r){var n={},a={},u={},l=!1;try{l=16===r.length&&d.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,s){!1!==s&&(s=!0);if(c.aborted&&!i)return;t&&s&&t.emit(e,r,n);var o=h(n);g(e).forEach(e=>{e.apply(o,r)});var d=v()[a[e]];d&&d.push([f,e,r,o]);return o},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach(([e,n])=>{a[n]=t,t in r||(r[t]=[])})},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach(e=>{delete f.backlog[e]})},isBuffering:function(e){return!!v()[a[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof s.y?e:e?(0,i.I)(e,o,()=>new s.y(o)):new s.y(o)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=c),r.d(t,["P",0,o,"ee",0,c])},2646(e,t,r){"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908(e,t,r){"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,s){s?(s.buffer([e],i),s.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(9908);s.on=a;var i=s.handlers={};function s(e,t,r,s){a(s||n.d,i,e,t,r)}function a(e,t,r,i,s){s||(s="feature"),e||(e=n.d);var a=t[s]=t[s]||{};(a[r]=a[r]||[]).push([e,i])}},3878(e,t,r){"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function s(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>s,jT:()=>n,sp:()=>i})},5607(e,t,r){"use strict";const n=(0,r(9566).bz)();r.d(t,["W",0,n])},9566(e,t,r){"use strict";r.d(t,{LA:()=>a,ZF:()=>o,bz:()=>s,el:()=>c});var n=r(6154);function i(e,t){return e?15&e[t]:16*Math.random()|0}function s(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("").map(e=>"x"===e?i(t,r++).toString(16):"y"===e?(3&i()|8).toString(16):e).join("")}function a(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,s=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var o=0;o<e;o++)a.push(i(r,s++).toString(16));return a.join("")}function o(){return a(16)}function c(){return a(32)}},2614(e,t,r){"use strict";r.d(t,["BB",0,18e5,"Wt",0,"NRBA_SESSION::","g",0,{OFF:0,FULL:1,ERROR:2},"iL",0,{SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},"tS",0,{STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},"wk",0,144e5])},733(e,t,r){"use strict";function n(e,t){return function(e){let t=2166136261;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}("".concat(String(e),":").concat(String(t)))}r.d(t,{Y:()=>n})},1863(e,t,r){"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},9119(e,t,r){"use strict";r.d(t,{L:()=>s});var n=/([^?#]*)[^#]*(#[^?]*|$).*/,i=/([^?#]*)().*/;function s(e,t){return e?e.replace(t?n:i,"$1$2"):e}},7485(e,t,r){"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},7866(e,t,r){"use strict";r.d(t,["Nc",0,/^\s*at Function code \(Function code:\d+:\d+\)\s*/i,"cn",0,/^\s*(?:([^@]*)(?:\(.*?\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\d+)(?::(\d+))?\s*$/i,"fL",0,/^\s*at .+ \(eval at \S+ \((?:(?:file|http|https):[^)]+)?\)(?:, [^:]*:\d+:\d+)?\)$/i,"h3",0,/function (.+?)\s*\(/,"hB",0,/^\s*at (?:((?:\[object object\])?(?:[^(]*\([^)]*\))*[^()]*(?: \[as \S+\])?) )?\(?((?:file|http|https|chrome-extension):.*?)?:(\d+)(?::(\d+))?\)?\s*$/i])},944(e,t,r){"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(e,t){"function"==typeof console.debug&&(console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t),(0,n.W)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},8990(e,t,r){"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389(e,t,r){"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout(()=>{i=clearTimeout(i)},t)),n||(clearTimeout(i),i=setTimeout(()=>{e.apply(this,r)},t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},1910(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(944);const i=new Map;function s(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),s=t.includes("nrWrapper");return r||s||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},3304(e,t,r){"use strict";r.d(t,{A:()=>i});var n=r(7836);function i(e){try{return JSON.stringify(e,(()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}})())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},9232(e,t,r){"use strict";r.d(t,["f",0,{MFE:"MFE",BA:"BA"}])},5718(e,t,r){"use strict";r.d(t,{AZ:()=>m,Qr:()=>E,QL:()=>v});var n=r(6154),i=r(1863),s=r(9119),a=r(7866);class o{dom=new c;performance=new c;constructor(e){this.url=e,this.claimedBy=new Set}get script(){const e=Math.max(this.dom.start,this.performance.end);return{start:e,end:Math.max(this.dom.end,this.performance.end,e)}}}class c{start=0;end=0;value=void 0}function d(e=()=>{},t){return{get:()=>void 0!==t?t:e(),set:e=>{t=e}}}let u;try{u=m(v())[0]}catch(e){u=m(e)[0]}const l=e=>"script"===e.initiatorType||["link","fetch"].includes(e.initiatorType)&&(0,s.L)(e.name).endsWith(".js"),f=new Map;let h=[];function p(e){return f.get(e)}function g(e){const t=p(e);if(t)return t;const r=new o(e);if(f.set(e,r),f.size>1e3){const e=f.keys().next().value;f.delete(e)}return r}if(n.gm.MutationObserver&&n.gm.document){new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if("SCRIPT"===e.nodeName&&e.src){const t=g((0,s.L)(e.src));t.dom.start=(0,i.t)(),t.dom.value=e;const r=()=>{t.dom.end=(0,i.t)()};["load","error"].forEach(t=>e.addEventListener(t,r,{once:!0}))}})})}).observe(n.gm.document,{childList:!0,subtree:!0})}if(n.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().filter(l).forEach(e=>{const t=g((0,s.L)(e.name));t.performance.start=Math.floor(e.startTime),t.performance.end=Math.floor(e.responseEnd),t.performance.value=e;const r=[];h.forEach(({test:t,addedAt:n},s)=>{(t(e)||(0,i.t)()-n>1e4)&&r.push(s)}),h=h.filter((e,t)=>!r.includes(t))})}).observe({type:"resource",buffered:!0})}function m(e){if(!e||"string"!=typeof e)return[];const t=new Set,r=e.split("\n");for(const e of r){const r=e.match(a.cn)||e.match(a.hB)||e.match(a.fL);if(r&&r[2])t.add((0,s.L)(r[2]));else{const r=e.match(/\(([^)]+\.js):\d+:\d+\)/)||e.match(/^\s+at\s+([^\s(]+\.js):\d+:\d+/);r&&r[1]&&t.add((0,s.L)(r[1]))}}return[...t]}function v(){let e;try{const t=Error.stackTraceLimit;Error.stackTraceLimit=50,e=(new Error).stack,Error.stackTraceLimit=t}catch(t){e=(new Error).stack}return e}function y(e,t){return(0,s.L)(e.name)===t}function b(e,t){e.fetchStart=Math.floor(t.startTime),e.fetchEnd=Math.floor(t.responseEnd),e.asset=t.name,e.type=t.initiatorType}function E(e){const t=e?.id,r={registeredAt:(0,i.t)(),reportedAt:void 0,fetchStart:0,fetchEnd:0,scriptStart:0,scriptEnd:0,asset:void 0,type:"unknown"},a=v();if(!a)return r;const o=n.gm.performance?.getEntriesByType("navigation")?.[0]?.name||"";try{const e=m(a),c=(e.length>1?e.filter(e=>u!==e):e)[0];if(!c)return r;if(o.includes(c))return r.asset=(0,s.L)(o),r.type="inline",r;r.correlation=p(c);const l=r.correlation?.performance.value||n.gm.performance?.getEntriesByType("resource")?.find(e=>y(e,c));if(l)b(r,l);else{(function(e){if(!e||!n.gm.document)return!1;try{const t=n.gm.document.querySelectorAll('link[rel="preload"][as="script"]');for(const r of t)if((0,s.L)(r.href)===e)return!0}catch(e){}return!1})(c)&&(r.asset=c,r.type="preload"),function(e,t){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&h.push({addedAt:(0,i.t)(),test:r=>!!y(r,t)&&(b(e,r),!0)})}(r,c)}const f=r.correlation,g=!!t&&!!f?.claimedBy.has(t);f&&t&&f.claimedBy.add(t);const v=()=>{const e=f?.script.start;if(!g||!e)return!1;return r.registeredAt-e>1e4};Object.defineProperty(r,"scriptStart",d(()=>v()?r.registeredAt:f?.script.start??r.fetchEnd)),Object.defineProperty(r,"scriptEnd",d(()=>v()?r.registeredAt:f?.script.end??r.registeredAt))}catch(e){}return r}},5732(e,t,r){"use strict";r.d(t,{$5:()=>f,B5:()=>l,M$:()=>s,Ms:()=>o,NG:()=>a,Ux:()=>d,YA:()=>u,yx:()=>c});var n=r(5718),i=r(9232);function s(e){return e?.type===i.f.MFE}function a(e,t){if(!p(e,t))return;const r=t.runtime.registeredEntities;return r?.find(t=>t.metadata.target.iframeInterfaceId===e)}function o(e,t){if(!p(e,t))return[];const r=t.runtime.registeredEntities;return r?.filter(t=>String(t.metadata.target.id)===String(e)).map(e=>e.metadata.target)||[]}function c(e,t){if(!p(e,t))return[];const r=t.runtime.registeredEntities,n=r?.filter(t=>t.metadata.timings?.asset?.endsWith(e));return function(e){if(!e?.length)return e||[];const t=new Map,r=[];for(const n of e){const e=n.metadata?.timings?.asset;if(!e){r.push(n);continue}const i="".concat(e,"::").concat(n.metadata?.target?.id),s=t.get(i);if(s){if(s.metadata.target?.blocked&&!n.metadata.target?.blocked){const e=r.indexOf(s);-1!==e&&(r[e]=n),t.set(i,n)}}else t.set(i,n),r.push(n)}return r}(n).map(e=>e.metadata.target)}function d(e,t){return h(t)?s(e)?e.attributes:t.agentRef.runtime.v2Target.attributes:{}}function u(e,t){return l(e,t)?{"child.id":e.id,"child.type":e.type,...d(void 0,t)}:{}}function l(e,t){return s(e)&&!!h(t)&&t.agentRef.init.api.register.duplicate_data_to_container}function f(e){if(!e?.runtime)return[];if(!p(!0,e)||!e.runtime.registeredEntities?.length)return[e.runtime.v2Target];const t=[];try{var r=(0,n.AZ)((0,n.QL)());let i=r.length-1;for(;r[i];)t.push(...c(r[i--],e))}catch(e){}const i=function(e){const t=new Set,r=[];for(const n of e){const e=n?.instance;t.has(e)||(t.add(e),r.push(n))}return r}(t);return i.length||i.push(e.runtime.v2Target),i}function h(e){return 2===e?.harvestEndpointVersion}function p(e,t){return!!e&&!!t?.init.api.register.enabled}},5289(e,t,r){"use strict";r.d(t,{GG:()=>a,Qr:()=>c,sB:()=>o});var n=r(3878),i=r(6389);function s(){return"undefined"==typeof document||"complete"===document.readyState}function a(e,t){if(s())return e();const r=(0,i.J)(e),a=setInterval(()=>{s()&&(clearInterval(a),r())},500);(0,n.sp)("load",r,t)}function o(e){if(s())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(s())return e();(0,n.sp)("popstate",e)}},384(e,t,r){"use strict";r.d(t,{Zm:()=>c,bQ:()=>u,dV:()=>d,pV:()=>l});var n=r(6154),i=r(1863),s=r(944),a=r(1910);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function d(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket},(0,a.i)(...Object.values(e.o))),e}function u(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,s.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),d(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}r.d(t,["NT",0,o])},2843(e,t,r){"use strict";r.d(t,{G:()=>s,u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)},r,i)}function s(e,t,r){(0,n.sp)("pagehide",e,t,r)}},8139(e,t,r){"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),s=r(8990),a=r(6154);const o={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e,t){var r=function(e){return(e||n.ee).get("events")}(e);if(o[r.debugId]++)return r;o[r.debugId]=1;var f=(0,i.YM)(r,!0,t);function p(e){f.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,p),c&&h(c.prototype,p),h(a.gm,p)),r.on(d+"-start",function(e,t){var r=e[1];if(null!==r&&("function"==typeof r||"object"==typeof r)&&"newrelic"!==e[0]){var n=(0,s.I)(r,l,function(){var e={object:function(){if("function"!=typeof r.handleEvent)return;return r.handleEvent.apply(r,arguments)},function:r}[typeof r];return e?f(e,"fn-",null,e.name||"anonymous"):r});this.wrapped=e[1]=n}}),r.on(u+"-start",function(e){e[1]=this.wrapped||e[1]}),r}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,d);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434(e,t,r){"use strict";r.d(t,{YM:()=>d});var n=r(7836),i=r(5607),s=r(5732);const a="nr@original:".concat(i.W);var o=Object.prototype.hasOwnProperty,c=!1;function d(e,t,r){return e||(e=n.ee),i.inPlace=function(e,t,r,n,s,a){r||(r="");const o="-"===r.charAt(0);for(let c=0;c<t.length;c++){const d=t[c],u=e[d];l(u)||(e[d]=i(u,o?d+r:r,n,d,s,a))}},i.flag=a,i;function i(t,n,i,c,f,h){return l(t)?t:(n||(n=""),nrWrapper[a]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach(function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})}),t}catch(e){u([e],r)}for(var n in e)o.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var a,o,l,p;let g,m;try{o=this,a=[...arguments],m=h?(0,s.$5)(r):[r?.runtime?.v2Target],l="function"==typeof i?i(a,o):i||{}}catch(t){u([t,"",[a,o,c],l],e)}d(n+"start",[a,o,c,m],l,f);const v=performance.now();let y;try{return p=t.apply(o,a),y=performance.now(),p}catch(e){throw y=performance.now(),d(n+"err",[a,o,e,m],l,f),g=e,g}finally{const e=y-v,t={start:v,end:y,duration:e,isLongTask:e>=50,methodName:c,thrownError:g};t.isLongTask&&d("long-task",[t,o,m],l,f),d(n+"end",[a,o,p,m],l,f)}}}function d(r,n,i,s){if(!c||t){var a=c;c=!0;try{e.emit(r,n,i,t,s)}catch(t){u([t,r,n,i],e)}c=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function l(e){return!(e&&"function"==typeof e&&e.apply&&!e[a])}r.d(t,["Jt",0,a])},9300(e,t,r){"use strict";const n=r(860).K7.ajax;r.d(t,["TZ",0,n,"f5",0,"ajaxRequest.id","mo",0,{NONE:"none",FAILURES:"failures",ALL:"all"}])},3333(e,t,r){"use strict";var n=r(981);const i=r(860).K7.genericEvents,s=[n.R.PA,n.R.UA,n.R.BP];r.d(t,["$v",0,{RESOURCES:"experimental.resources",REGISTER:"register"},"TZ",0,i,"Zp",0,["auxclick","click","copy","keydown","paste","scrollend"],"kd",0,s,"qN",0,["focus","blur"]])},6774(e,t,r){"use strict";const n=r(860).K7.jserrors;r.d(t,["T",0,n])},993(e,t,r){"use strict";const n=r(860).K7.logging;r.d(t,["A$",0,{OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},"TZ",0,n,"p_",0,{ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"}])},3785(e,t,r){"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),s=r(860),a=r(3969),o=r(993);function c(e,t,r={},c=o.p_.INFO,d=!0,u,l=(0,i.t)()){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,s.K7.metrics,e),(0,n.p)("log",[l,t,r,c,d,u],void 0,s.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(o.p_).some(t=>t===e.toUpperCase().trim())}},3969(e,t,r){"use strict";const n=r(860).K7.metrics;r.d(t,["TZ",0,n,"XG",0,"storeEventMetrics","xV",0,"storeSupportabilityMetrics"])},6630(e,t,r){"use strict";const n=r(860).K7.pageViewEvent;r.d(t,["T",0,n])},782(e,t,r){"use strict";const n=r(860).K7.pageViewTiming;r.d(t,["T",0,n])},6344(e,t,r){"use strict";var n=r(2614);const i=r(860).K7.sessionReplay,s={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0};r.d(t,["Qb",0,{API:"api",RESUME:"resume",SWITCH_TO_FULL:"switchToFull",INITIALIZE:"initialize",PRELOAD:"preload"},"TZ",0,i,"Vh",0,"errorDuringReplay","_s",0,{DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},"bc",0,{RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},"yP",0,s])},5270(e,t,r){"use strict";r.d(t,{Aw:()=>a,SR:()=>s,rF:()=>o});var n=r(384),i=r(7767);function s(e){return!!(0,n.dV)().o.MO&&(0,i.V)(e)&&!0===e?.session_trace.enabled}function a(e){return!0===e?.session_replay.preload&&s(e)}function o(e,t){try{if("string"==typeof t?.type&&"password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}catch(e){}return"string"==typeof e?e.replace(/[\S]/g,"*"):"*".repeat(e?.length||0)}},3738(e,t,r){"use strict";const n=r(860).K7.sessionTrace,i="-start",s="-end",a="fn"+i,o="fn"+s;r.d(t,["He",0,"bstResource","Kp",0,s,"Lc",0,o,"Rz",0,"pushState","TZ",0,n,"bD",0,"resource","bc",0,{CROSS_TAB:{message:"Session Entity was set to OFF on another tab"},ENTITLEMENTS:{message:"Session Trace is not allowed and will not be started"},RESET:{message:"Session was reset"},SESSION_CHANGED:{message:"Session identifier changed unexpectedly"}},"d3",0,i,"uP",0,a])},3962(e,t,r){"use strict";const n=r(860).K7.softNav;r.d(t,["O2",0,{INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},"OV",0,"popstate","Qu",0,{INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},"TZ",0,n,"ih",0,{IP:"in progress",PF:"pending finish",FIN:"finished",CAN:"cancelled"},"pP",0,"initialPageLoad","tC",0,["click","keydown","submit"]])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},8362(e,t,r){"use strict";r.d(t,{d:()=>s});var n=r(9566),i=r(1741);class s extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){"use strict";r.d(t,{W:()=>s});var n=r(944),i=r(4261);class s{#e(e,...t){if(this[e]!==s.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e("log",e,t)}start(){return this.#e("start")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","hw",0,"api-ixn-","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>u});var n=r(3241),i=r(9908),s=r(1863),a=r(944),o=r(3969),c=r(8362),d=r(860);function u(e,t,r,s){const u=s||r;!u||u[e]&&u[e]!==c.d.prototype[e]||(u[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,d.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,a.R)(23,e)}})}function l(e,t,r,n,a){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(a||null===r)&&(0,i.p)("api-"+n,[(0,s.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",s="browser/blobs",a="browser/logs",o={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},d={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:s,[o.sessionReplay]:s,[o.logging]:a,[o.genericEvents]:"ins"};r.d(t,["$J",0,d,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,a,"df",0,s,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],s=t[n++];r.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>({212:"nr-spa-compressor",238:"nr-spa-iframe-message-handler",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.321.0.min.js"),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.321.0.PROD:";r.l=(n,i,s,a)=>{if(e[n])return void e[n].push(i);let o,c;if(void 0!==s){const e=document.getElementsByTagName("script");for(var d=0;d<e.length;d++){const r=e[d];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+s){o=r;break}}}if(!o){c=!0;var u={478:"sha512-nVWQ2qAdkC3R+4ZDG9m4FXftIsO9Pq5DmBg1qtcmsv3aZasLn8Ic+f99MsbVl8ryrIhVHKYpbz6FhJ4EZD9Khg==",249:"sha512-etKeSv8ID6VdNtDO61EFOmnjWRqyLgdgoZ5F0NrnMmhRYhL9lKiWmfYFM1l22L/mmJGxuwmdlByo9OyGnPfJeg==",212:"sha512-1TxkxsJ0uF5an6GCuoKAVBfld3Mj+Q/VIGpQYcmNxHP/9mxMT4n1p5/ZMO0qx7h74qvn7hrJ6pwOcWzxieikhw==",238:"sha512-+Df1BrH+URzKEUOZdB7bLXI05i+qols8eHmofcy/Krjl2dHO9DJCiA4zsRKkcCzj3T0w+SM12WLNCy6RD8ksYg=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+s),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),u[a]&&(o.integrity=u[a])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={38:0,788:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const s=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=s);const a=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(a,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,s,a]=n;var o,c,d=0;if(i.some(t=>0!==e[t])){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(a)a(r)}for(t&&t(n);d<i.length;d++)c=i[d],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.321.0.PROD"]=self["webpackChunk:NRBA-1.321.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),s=r(1741);var a=r(2555),o=r(3333),c=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var u=r(2614),l=r(944),f=r(8122);const h="[data-nr-mask]",p=e=>(0,f.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0,capture_payloads:c.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(o.$v.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,l.R)(1,t)}}},browser_consent_mode:{enabled:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:u.wk,inactiveMs:u.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector="".concat(t,",").concat(h):""===t||null===t?e.mask_selector=h:(0,l.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]},web_sockets:{enabled:!1}}})());var g=r(6154),m=r(9324);let v=0;const y={buildEnv:"PROD",distMethod:"CDN",version:m.x,originTime:g.WN},b={consented:!1},E={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||b.consented},set consented(e){b.consented=e},customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++v},listeningForIframeMessages:!1};var w=r(9232);var R=r(7836),T=r(3241);const A={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0};var x=r(9908),S=r(9752);function _(e,t={},n,o){let{init:c,info:d,loader_config:u,runtime:l={},exposed:h=!0}=t;if(!d){const e=(0,i.pV)();c=e.init,d=e.info,u=e.loader_config}var m;e.init=p(c||{}),e.loader_config=(m=u||{},(0,f.a)(m,A)),d.jsAttributes??={},g.bv&&(d.jsAttributes.isWorker=!0),e.info=(0,a.D)(d);const v=e.init;e.runtime??=(e=>{const t=(0,f.a)(e,E),r=Object.keys(y).reduce((e,t)=>(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:w.f.BA,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{"entity.guid":this.id,appId:e.info.applicationID}}},v.proxy.assets&&(e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(s.W.prototype).forEach(r=>{const n=s.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let i=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=R.ee.get(e.agentIdentifier),e.exposed=h,(0,T.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge&&g.gm.addEventListener("message",t=>{"string"==typeof t.data?.type&&t.data.type.startsWith(S.Pl)&&(0,x.p)("iframe-message",[t],void 0,"IFRAME",e.ee)}),e.runtime.configured=!0)}var O=r(1863),N=r(4261),P=r(1738);var L=r(1687),k=r(4234),I=r(5289),C=r(5270),j=r(7767),M=r(6389),D=r(7699);const H=new WeakSet,B=new WeakMap;class W extends k.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,M.J)(()=>{(0,L.Ak)(e,this.featureName),t()}))}):(0,L.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=>{if(await this.deferred,this.#t(e),!(0,a.f)(e.info))return(0,l.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(B.has(e))return B.get(e);const i=(async()=>{if((0,j.V)(e.init))try{const{setupAgentSession:t}=await r.e(478).then(r.bind(r,8766));t(e)}catch(e){(0,l.R)(20,e),t.emit("internal-error",[e]),(0,x.p)(D.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await r.e(238).then(r.bind(r,6417));t(e)}catch(e){(0,l.R)(23,e)}const[{Connector:i},{Harvester:s}]=await Promise.all([r.e(478).then(r.bind(r,6589)),r.e(478).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new s(e);const a=Object.values(e.features).filter(t=>e.runtime.drainRegistry.has(t.featureName));Promise.all(a.map(e=>e.onAggregateImported)).then(()=>e.runtime.harvester.startTimer())})();B.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,l.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,l.R)(34,e),this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};g.RI?(0,I.GG)(()=>i(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return(0,C.SR)(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!H.has(e)&&(H.add(e),!(0,a.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}_(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var K=r(6630);class F extends W{static featureName=K.T;constructor(e){var t;super(e,K.T),this.setupInspectionEvents(),t=e,(0,P.Y)(N.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,x.p)("api-"+N.Fw,[(0,O.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>e.init.feature_flags.includes("rum_v2")?r.e(478).then(r.bind(r,908)):r.e(478).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,T.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,I.sB)(t=>{e(t,"DOMContentLoaded")}),(0,I.GG)(t=>{e(t,"load")}),(0,I.Qr)(t=>{e(t,"navigate")}),this.ee.on(u.tS.UPDATE,(e,t)=>{(0,T.W)({type:"lifecycle",name:"session",data:t})})}}class U extends e.d{constructor(e){var t;(super(),g.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(F),_(this,e,e.loaderType||"agent"),t=this,(0,P.Y)(N.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,P.U)(t,e,r,N.cD,n);(0,l.R)(40,typeof r)}else(0,l.R)(39,typeof e)},t),function(e){(0,P.Y)(N.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,l.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,x.p)("api-setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,P.U)(e,"enduser.id",t,N.Dl,!0)},e)}(this),function(e){(0,P.Y)(N.nb,function(t){if("string"==typeof t||null===t)return(0,P.U)(e,"application.version",t,N.nb,!1);(0,l.R)(42,typeof t)},e)}(this),function(e){(0,P.Y)("start",function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,P.Y)(N.Pv,function(t=!0){if("boolean"==typeof t){if((0,x.p)("api-"+N.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum?.()})}}else(0,l.R)(65,typeof t)},e)}(this),this.run()):(0,l.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return n.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes("rum_v2");r.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=>{if(!e[r.featureName]&&(i||r.featureName!==t.K7.pageViewEvent))return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,l.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,l.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var V=r(2843),z=r(782);class G extends W{static featureName=z.T;constructor(e){super(e,z.T),g.RI&&((0,V.u)(()=>(0,x.p)("docHidden",[(0,O.t)()],void 0,z.T,this.ee),!0),(0,V.G)(()=>(0,x.p)("winPagehide",[(0,O.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=>r.e(478).then(r.bind(r,9917))))}}var q=r(3969);class Y extends W{static featureName=q.TZ;constructor(e){super(e,q.TZ),this.importAggregator(e,()=>r.e(478).then(r.bind(r,6555)))}}var Z=r(6774),X=r(3878),J=r(3304);class Q{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,J.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function ee(e){return ne(e)?e:new Q(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic,e?.cause)}function te(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(ne(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return ee(e.reason)}const r=ee(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function re(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new Q(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic,e.cause);return t.name=SyntaxError.name,t}return ne(e.error)?e.error:ee(e)}function ne(e){return e instanceof Error&&!!e.stack}function ie(e,r,n,i,s=(0,O.t)()){"string"==typeof e&&(e=new Error(e)),(0,x.p)("err",[e,s,!1,r,n.runtime.isRecording,void 0,i],void 0,t.K7.jserrors,n.ee),(0,x.p)("uaErr",[],void 0,t.K7.genericEvents,n.ee)}var se=r(993),ae=r(3785);function oe(e,{customAttributes:t={},level:r=se.p_.INFO}={},n,i,s=(0,O.t)()){(0,ae.R)(n.ee,e,t,r,!1,i,s)}function ce(e,r,n,i,s=(0,O.t)()){(0,x.p)("api-"+N.hG,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}function de(e,r,n,i,s=(0,O.t)()){const{start:a,end:o,customAttributes:c}=r||{},d={customAttributes:c||{}};if("object"!=typeof d.customAttributes||"string"!=typeof e||0===e.length)return void(0,l.R)(57);const u=(e,t)=>null==e?t:"number"==typeof e?e:e instanceof PerformanceMark?e.startTime:Number.NaN;if(d.start=u(a,0),d.end=u(o,s),Number.isNaN(d.start)||Number.isNaN(d.end))(0,l.R)(57);else{if(d.duration=d.end-d.start,!(d.duration<0))return(0,x.p)("api-"+N.V1,[d,e,i],void 0,t.K7.genericEvents,n.ee),d;(0,l.R)(58)}}function ue(e,r={},n,i,s=(0,O.t)()){(0,x.p)("api-"+N.fF,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}var le=r(5718);const fe=(e,t)=>e?.nrMfeId===t.id&&(!e?.nrMfeObserved||e?.nrMfeObserved===t.instance),he=e=>{try{return g.gm.CSS.escape(e)}catch(t){return e}},pe=(e,t={})=>{const r=t.id,n=t.instance;if(!e||!r||!n)return!1;try{let r=1===e.nodeType?e:e.parentElement;for(;r?.tagName;){if(fe(r.dataset,t))return r.dataset.nrMfeObserved=n,!0;r=r.parentNode}}catch(e){}return!1},ge=(e,t)=>{const r=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]')),n=(Array.from(r)||[]).find(t=>fe(t.dataset,e));let i=!!n;i&&(n.dataset.nrMfeObserved??=e.instance);const s=new g.gm.MutationObserver(r=>{r.forEach(r=>{r.addedNodes.forEach(r=>{const n=1===r.nodeType?r:null;!i&&fe(n?.dataset,e)&&(s.disconnect(),s.observe(n,{childList:!0,subtree:!0}),i=!0,n.dataset.nrMfeObserved=e.instance),(e=>{try{return e?.textContent?.trim()||["img","video","canvas","svg"].includes(e?.nodeName?.toLowerCase())}catch(e){return!1}})(r)&&(i||pe(r,e))&&t(r,s)})})});return s.observe(n||g.gm.document,{childList:!0,subtree:!0}),s},me=(e,t,r)=>{try{const n=new g.gm.PerformanceObserver(e=>{e.getEntries().forEach(r)});return n.observe(t),e.push(n),n}catch(e){return null}};function ve(e,t){let r,n,i=!1;const s=e=>null==e?e:e-(t?.scriptStart||t?.registeredAt||0),a={fcp:{get value(){const e=s(r);return e>1e4?void 0:e},set value(e){i||(r=e)}},lcp:{get value(){if(void 0!==a.fcp.value)return s(n)},set value(e){i||(n=e)}},cls:{value:void 0},inp:{value:void 0},disconnect:()=>{}};if(!(e&&g.RI&&g.gm.MutationObserver&&g.gm.PerformanceObserver))return a;const o=[];setTimeout(()=>{r||a.disconnect()},1e4);const c=()=>{if(!i){if(null==r){const e=(0,O.t)();if(s(e)>1e4)return void a.disconnect();r=e}n??=(0,O.t)(),a.cls.value??=0}},d=ge(e,(e,t)=>{c(),t.disconnect()});o.push(d);let u=0,l=null;const f=new Set;try{l=new g.gm.ResizeObserver(e=>{i||e.forEach(e=>{try{const t=e.contentRect.width*e.contentRect.height;t>u&&(u=t,a.lcp.value=(0,O.t)()),l.unobserve(e.target)}catch(e){}})})}catch(e){}const h=ge(e,e=>{if(c(),l)try{const t=1===e.nodeType?e:e.parentElement;t&&!f.has(t)&&(f.add(t),"IMG"===t.tagName?t.complete?l.observe(t):t.addEventListener("load",()=>{l.observe(t)},{once:!0}):"VIDEO"===t.tagName?t.readyState>=2?l.observe(t):t.addEventListener("loadeddata",()=>{l.observe(t)},{once:!0}):l.observe(t))}catch(e){}});l&&o.push(l),o.push(h),me(o,{type:"layout-shift",buffered:!0},t=>{i||t.hadRecentInput||(t.sources||[]).some(r=>!!pe(r.node,e)&&(c(),a.cls.value+=t.value,!0))}),me(o,{type:"event",buffered:!0,durationThreshold:40},t=>{!i&&t.interactionId&&pe(t.target,e)&&(void 0===a.inp.value||t.duration>a.inp.value)&&(c(),a.inp.value=t.duration)});const p=["pointerdown","keydown"],m=()=>{p.forEach(e=>{g.gm.removeEventListener(e,v,{passive:!0})})};a.disconnect=()=>{i=!0,o.forEach(e=>{try{e?.disconnect()}catch(e){}}),m(),["visibilitychange","pagehide"].forEach(e=>{g.gm.removeEventListener(e,a.disconnect,{once:!0,passive:!0})})};const v=t=>{pe(t?.target,e)&&((()=>{try{h?.disconnect(),l?.disconnect()}catch(e){}})(),m())};p.forEach(e=>{g.gm.addEventListener(e,v,{passive:!0})}),["visibilitychange","pagehide"].forEach(e=>{g.gm.addEventListener(e,a.disconnect,{once:!0,passive:!0})});const y=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]'));return Array.from(y||[]).some(t=>fe(t.dataset,e))&&c(),a}var ye=r(9566),be=r(9119);const Ee=["name","id","type"],we=new Map([[ce,"addPageAction"],[oe,"log"],[de,"measure"],[ie,"noticeError"],[ue,"recordCustomEvent"]]),Re={experimental:(0,M.J)(()=>(0,l.R)(54,"newrelic.register")),disabled:(0,M.J)(()=>(0,l.R)(55)),invalidTarget:(0,M.J)(e=>(0,l.R)(48,e)),deregistered:(0,M.J)(()=>(0,l.R)(68))};function Te(e){(0,P.Y)(N.eY,function(t){return Ae(e,t)},e)}function Ae(e,r){Re.experimental(),r||={},r.instance=(0,ye.LA)(8),r.type=w.f.MFE,r.licenseKey||=e.info.licenseKey,r.blocked=!1,("object"!=typeof r.tags||null===r.tags||Array.isArray(r.tags))&&(r.tags={}),r.parent??={get id(){return e.runtime.appMetadata.agents?.[0].entityGuid},type:w.f.BA};const n=(0,le.Qr)(r),i=ve(r,n),s=(0,be.L)(""+location),a={};Object.prototype.hasOwnProperty.call(r,"attributes")||Object.defineProperty(r,"attributes",{get:()=>({...a,"source.id":r.id,"source.name":r.name,"source.type":r.type,"parent.type":r.parent?.type||w.f.BA,"parent.id":r.parent?.id})}),Object.entries(r.tags).forEach(([e,t])=>{Ee.includes(e)||(a["source.".concat(e)]=t)});let o=()=>{};const c=e.runtime.registeredEntities,d=e=>{r.blocked=!0,o=e};function u(e){return"string"==typeof e&&!!e.trim()&&e.trim().length<501}e.init.api.register.enabled||d(Re.disabled),u(r.id)&&u(r.name)||d(()=>Re.invalidTarget(r));const f={addPageAction:(t,n={})=>m(ce,[t,{...a,...n},e],r),deregister:()=>{p(),d(Re.deregistered)},log:(t,n={})=>m(oe,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),measure:(t,n={})=>m(de,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),noticeError:(t,n={})=>m(ie,[t,{...a,...n},e],r),recordCustomEvent:(t,n={})=>m(ue,[t,{...a,...n},e],r),setApplicationVersion:e=>g("application.version",e),setCustomAttribute:(e,t)=>g(e,t),setUserId:e=>g("enduser.id",e),metadata:{get customAttributes(){return a},target:r,timings:n,vitals:i,events:{latestTimestamp:void 0}}},h=()=>(r.blocked&&o(),r.blocked);function p(){if(n.reportedAt)return;n.reportedAt=(0,O.t)(),i.disconnect(),n.fcp=i.fcp,n.lcp=i.lcp,n.cls=i.cls,n.inp=i.inp;const e=n.fetchEnd-n.fetchStart,t=n.scriptEnd-n.scriptStart,r={assetUrl:n.asset,assetType:n.type,registerUrl:s,deregisterUrl:(0,be.L)(""+location),pageUrl:void 0,currentUrl:void 0,timeAlive:n.reportedAt-n.registeredAt,timeToBeRequested:n.fetchStart,timeToExecute:t,timeToFetch:e,timeToLoad:e+t,timeToRegister:n.registeredAt,...i.fcp.value>=0&&{"vitals.fcp.value":i.fcp.value},...i.lcp.value>=0&&{"vitals.lcp.value":i.lcp.value},...i.cls.value>=0&&{"vitals.cls.value":i.cls.value},...i.inp.value>=0&&{"vitals.inp.value":i.inp.value}};f.recordCustomEvent("MicroFrontEndTiming",r)}h()||(c.push(f),(0,V.G)(p));const g=(e,t)=>{h()||(a[e]=t)},m=(r,n,i)=>{if(h()&&r!==Ae)return;const s=f.metadata.events.latestTimestamp??(0,O.t)();f.metadata.events.latestTimestamp=void 0;const a=we.get(r)||"unknown";(0,x.p)(q.xV,["API/register/".concat(a,"/called")],void 0,t.K7.metrics,e.ee);try{return r(...n,i,s)}catch(e){(0,l.R)(50,e)}};return f}class xe extends W{static featureName=Z.T;constructor(e){var t;super(e,Z.T),t=e,(0,P.Y)(N.o5,(e,r)=>ie(e,r,t),t),function(e){(0,P.Y)(N.bt,function(t){e.runtime.onerror=t},e)}(e),function(e){let t=0;(0,P.Y)(N.k6,function(e,r){++t>10||(this.runtime.releaseIds[e.slice(-200)]=(""+r).slice(-200))},e)}(e),Te(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(t,r)=>{this.abortHandler&&(0,x.p)("ierr",[ee(t),(0,O.t)(),!0,{},e.runtime.isRecording,r],void 0,this.featureName,this.ee)}),g.gm.addEventListener("unhandledrejection",t=>{this.abortHandler&&(0,x.p)("err",[te(t),(0,O.t)(),!1,{unhandledPromiseRejection:1},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,X.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",t=>{this.abortHandler&&(0,x.p)("err",[re(t),(0,O.t)(),!1,{},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,X.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,()=>r.e(478).then(r.bind(r,9377)))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var Se=r(8990);let _e=1;function Oe(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,Se.I)(e,"nr@id",function(){return _e++})}function Ne(e){if("string"==typeof e)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,J.A)(e).length}catch(e){return}}}var Pe=r(8139),Le=r(3434),ke=r(5732);const Ie={},Ce=["open","send","setRequestHeader"];function je(e,t){var r=e||R.ee;const n=function(e){return(e||R.ee).get("xhr")}(r);if(void 0===g.gm.XMLHttpRequest)return n;if(Ie[n.debugId]++)return n;Ie[n.debugId]=1,(0,Pe.u)(r,t);var i=(0,Le.YM)(n,void 0,t),s=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,o=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],f=[],h=g.gm.XMLHttpRequest=function(e){const r=new s(e),a=n.context(r);a.targets=(0,ke.$5)(t);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(o=a,function(){var e=this;e.readyState>3&&!o.resolved&&(o.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",E)}),(0,X.jT)(!1))}catch(e){(0,l.R)(15,e);try{n.emit("internal-error",[e])}catch(e){}}var o;return r};function p(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(s,h),h.prototype=s.prototype,i.inPlace(h.prototype,Ce,"-xhr-",E),n.on("send-xhr-start",function(e,t){p(e,t),function(e){f.push(e),a&&(m?m.then(b):c?c(b):(v=-v,y.data=v))}(t)}),n.on("open-xhr-start",p),a){var m=o&&o.resolve();if(!c&&!o){var v=1,y=document.createTextNode(v);new a(b).observe(y,{characterData:!0})}}else r.on("fn-end",function(e){e[0]&&e[0].type===d||b()});function b(){for(var e=0;e<f.length;e++)p(0,f[e]);f.length&&(f=[])}function E(e,t){return t}return n}var Me="fetch-",De=Me+"body-",He=["arrayBuffer","blob","json","text","formData"],Be=g.gm.Request,We=g.gm.Response,Ke="prototype";const Fe={};function Ue(e,t){const r=function(e){return(e||R.ee).get("fetch")}(e);if(!(Be&&We&&g.gm.fetch))return r;if(Fe[r.debugId]++)return r;function n(e,n,i){var s=e[n];"function"==typeof s&&(e[n]=function(){var e=[...arguments];const n={},a=(0,ke.$5)(t);var o;r.emit(i+"before-start",[e],n),n[R.P]&&n[R.P].dt&&(o=n[R.P].dt);var c=s.apply(this,e);return r.emit(i+"start",[e,o],c),c.then(function(e){return r.emit(i+"end",[null,e,a],c),e},function(e){throw r.emit(i+"end",[e,void 0,a],c),e})})}return Fe[r.debugId]=1,He.forEach(e=>{n(Be[Ke],e,De),n(We[Ke],e,De)}),n(g.gm,"fetch",Me),r.on(Me+"end",function(e,n,i){var s=this;if(s.targets=i||[t.runtime.v2Target],n){var a=n.headers.get("content-length");null!==a&&(s.rxSize=a),r.emit(Me+"done",[null,n],s)}else r.emit(Me+"done",[e],s)}),r}var Ve=r(7485);class ze{constructor(e){this.agentRef=e}generateTracePayload(e){const t=this.agentRef.loader_config;if(!this.shouldGenerateTrace(e)||!t)return null;var r=(t.accountID||"").toString()||null,n=(t.agentID||"").toString()||null,i=(t.trustKey||"").toString()||null;if(!r||!n)return null;var s=(0,ye.ZF)(),a=(0,ye.el)(),o=Date.now(),c={spanId:s,traceId:a,timestamp:o};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(c.traceContextParentHeader=this.generateTraceContextParentHeader(s,a),c.traceContextStateHeader=this.generateTraceContextStateHeader(s,o,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(c.newrelicHeader=this.generateTraceHeader(s,a,o,r,n,i)),c}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,s){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return s&&n!==s&&(a.d.tk=s),btoa((0,J.A)(a))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing?.enabled&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,Ve.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}excludeNewrelicHeader(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.cors_use_tracecontext_headers}}var Ge=r(7295);function qe(e){return"string"==typeof e?e:e instanceof(0,i.dV)().o.REQ?e.url:g.gm?.URL&&e instanceof URL?e.href:void 0}function Ye(e,t){var r=(0,Ve.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var Ze=["load","error","abort","timeout"],$e=Ze.length,Xe=(0,i.dV)().o.REQ,Je=(0,i.dV)().o.XHR;const Qe="X-NewRelic-App-Data",et="internal-error";class tt extends W{static featureName=c.TZ;constructor(e){super(e,c.TZ),this.dt=new ze(e),this.handler=(e,t,r,n)=>(0,x.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach(r=>{if(r.initiatorType in e&&0!==r.responseStatus){const n={status:r.responseStatus},i={rxSize:r.transferSize,duration:Math.floor(r.duration),cbTime:0};Ye(n,r.name),this.handler("xhr",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}Ue(this.ee,e),je(this.ee,e),function(e,r,n,i){const s=[c.mo.ALL,c.mo.FAILURES].includes(e.init.ajax?.capture_payloads);function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=A,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},t.latestLongtaskEnd=0,e.addEventListener("load",function(r){_(t,e)},(0,X.jT)(!1)),g.lR||e.addEventListener("progress",function(e){t.lastSize=e.loaded},(0,X.jT)(!1))}function o(e){this.params={method:e[0]},Ye(this,e[1]),this.metrics={}}function d(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var s=!1;n.newrelicHeader&&(r.setRequestHeader("newrelic",n.newrelicHeader),s=!0),n.traceContextParentHeader&&(r.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&r.setRequestHeader("tracestate",n.traceContextStateHeader),s=!0),s&&(this.dt=n)}}function u(e,t){s&&e.length>=2&&(this.requestHeaders??={},this.requestHeaders[e[0].toLowerCase()]=e[1])}function l(e,t){var n=this.metrics,i=e[0],s=this;if(n&&i){var a=Ne(i);a&&(n.txSize=a)}this.startTime=(0,O.t)(),this.requestBody=i,this.listener=function(e){try{"abort"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),("load"!==e.type||s.called===s.totalCbs&&(s.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof s.end)&&s.end(t)}catch(e){try{r.emit(et,[e])}catch(e){}}};for(var o=0;o<$e;o++)t.addEventListener(Ze[o],this.listener,(0,X.jT)(!1))}function f(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function h(e,t){var r=""+Oe(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function p(e,t){var r=""+Oe(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function m(){this.endTime=(0,O.t)()}function v(e,t){t instanceof Je&&"load"===e[0]&&r.emit("xhr-load-added",[e[1],e[2]],t)}function y(e,t){t instanceof Je&&"load"===e[0]&&r.emit("xhr-load-removed",[e[1],e[2]],t)}function b(e,t,r){t instanceof Je&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,O.t)()))}function E(e,t){this.xhrCbStart&&r.emit("xhr-cb-time",[(0,O.t)()-this.xhrCbStart,this.onload,t],t)}function w(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,Ve.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=i.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)o(e[0].headers,n)&&(this.dt=n);else{var s={};for(var a in r)s[a]=r[a];s.headers=new Headers(r.headers||{}),o(s.headers,n)&&(this.dt=n),e.length>1?e[1]=s:e.push(s)}}function o(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function R(e,t){this.params={},this.metrics={},this.startTime=(0,O.t)(),this.dt=t;let[r,n={}]=e;Ye(this,qe(r));const i=(""+(r&&r instanceof Xe&&r.method||n.method||"GET")).toUpperCase();this.params.method=i,this.txSize=Ne(n.body||r?.body)||0;try{var a=n.headers||r?.headers;if(s&&a)if(this.requestHeaders??={},a instanceof Headers)a.forEach(function(e,t){this.requestHeaders[t.toLowerCase()]=e}.bind(this));else if("object"==typeof a)for(var o in a)this.requestHeaders[o.toLowerCase()]=a[o]}catch(e){}this.requestBody=n.body||r?.body}function T(e,t){if(this.endTime=(0,O.t)(),this.params||(this.params={}),(0,Ge.iW)(this.params))return;this.params.status=t?t.status:0;const n=()=>{const e=+this.rxSize,t=null==this.rxSize||isNaN(e)?void 0:e,r={txSize:this.txSize,rxSize:t,duration:this.endTime-this.startTime},n=[this.params,r,this.startTime,this.endTime,"fetch"];this.targets.forEach(e=>S(n,this,e))};t&&s?t.clone().text().then(e=>{this.responseBody=e,this.rxSize&&"0"!==this.rxSize&&0!==this.rxSize||void 0===e||0===this.params.status||(this.rxSize=Ne(e)),t?.headers&&(this.responseHeaders={},t.headers.forEach(function(e,t){this.responseHeaders[t.toLowerCase()]=e}.bind(this)))}).catch(e=>{r.emit(et,[e])}).finally(()=>{n()}):n()}function A(e){const t=this.params,n=this.metrics;if(this.ended)return;this.ended=!0;for(let t=0;t<$e;t++)e.removeEventListener(Ze[t],this.listener,!1);if(t.aborted)return;if((0,Ge.iW)(t))return;if(n.duration=this.endTime-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):_(this,e),n.cbTime=this.cbTime,s){try{this.responseBody=e.responseText}catch(t){this.responseBody=e.response}if((!n.rxSize||0===n.rxSize)&&void 0!==this.responseBody&&0!==t.status){const e=Ne(this.responseBody);void 0!==e&&(n.rxSize=e)}try{this.responseHeaders=function(e){const t={};return e?(e.split("\r\n").forEach(function(e){const r=e.indexOf(": ");if(r>0){const n=e.substring(0,r),i=e.substring(r+2);t[n.toLowerCase()]=i}}),t):t}(e.getAllResponseHeaders())}catch(e){r.emit(et,[e])}}const i=[t,n,this.startTime,this.endTime,"xhr"];this.targets.forEach(e=>S(i,this,e))}function S(e,r,i){n("xhr",[...e,i],r,t.K7.ajax)}function _(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?Ne(e.response):"text"===r||""===r||void 0===r?Ne(e.responseText):void 0}(n,e.lastSize);if(void 0!==i&&0!==n.status&&(e.metrics.rxSize=i),e.sameOrigin&&n.getAllResponseHeaders().indexOf(Qe)>=0){var s=n.getResponseHeader(Qe);s&&((0,x.p)("sm",["Ajax/CrossApplicationTracing/Header/Seen"],void 0,t.K7.metrics,r),e.params.cat=s.split(", ").pop())}e.loadCaptureCalled=!0}r.on("new-xhr",a),r.on("open-xhr-start",o),r.on("open-xhr-end",d),r.on("send-xhr-start",l),r.on("setRequestHeader-xhr-start",u),r.on("xhr-cb-time",f),r.on("xhr-load-added",h),r.on("xhr-load-removed",p),r.on("xhr-resolved",m),r.on("addEventListener-end",v),r.on("removeEventListener-end",y),r.on("fn-end",E),r.on("fetch-before-start",w),r.on("fetch-start",R),r.on("fn-start",b),r.on("fetch-done",T)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,()=>r.e(478).then(r.bind(r,3845)))}}const rt={},nt=["pushState","replaceState"];function it(e,t){const r=function(e){return(e||R.ee).get("history")}(e);return!g.RI||rt[r.debugId]++||(rt[r.debugId]=1,(0,Le.YM)(r,void 0,t).inPlace(window.history,nt,"-")),r}var st=r(3738);function at(e){(0,P.Y)(N.BL,function(r=Date.now()){const n=r-g.WN;n<0&&(0,l.R)(62,r),(0,x.p)(q.XG,[N.BL,{time:n}],void 0,t.K7.metrics,e.ee),e.addToTrace({name:N.BL,start:r,origin:"nr"}),(0,x.p)("api-"+N.hG,[n,N.BL],void 0,t.K7.genericEvents,e.ee)},e)}const{He:ot,bD:ct,d3:dt,Kp:ut,TZ:lt,Lc:ft,uP:ht,Rz:pt}=st;class gt extends W{static featureName=lt;constructor(e){var n;super(e,lt),n=e,(0,P.Y)(N.U2,function(e){if(!(e&&"object"==typeof e&&e.name&&e.start))return;const r={n:e.name,s:e.start-g.WN,e:(e.end||e.start)-g.WN,o:e.origin||"",t:"api"};r.s<0||r.e<0||r.e<r.s?(0,l.R)(61,{start:r.s,end:r.e}):(0,x.p)("bstApi",[r],void 0,t.K7.sessionTrace,n.ee)},n),at(e);if(!(0,j.V)(e.init))return void this.deregisterDrain();const i=this.ee;let s;it(i,e),this.eventsEE=(0,Pe.u)(i,e),this.eventsEE.on(ht,function(e,t){this.bstStart=(0,O.t)()}),this.eventsEE.on(ft,function(e,r){(0,x.p)("bst",[e[0],r,this.bstStart,(0,O.t)()],void 0,t.K7.sessionTrace,i)}),i.on(pt+dt,function(e){this.time=(0,O.t)(),this.startPath=location.pathname+location.hash}),i.on(pt+ut,function(e){(0,x.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,t.K7.sessionTrace,i)});try{s=new PerformanceObserver(e=>{const r=e.getEntries();(0,x.p)(ot,[r],void 0,t.K7.sessionTrace,i)}),s.observe({type:ct,buffered:!0})}catch(e){}this.importAggregator(e,()=>r.e(478).then(r.bind(r,6974)),{resourceObserver:s})}}var mt=r(733),vt=r(6344);class yt extends W{static featureName=vt.TZ;#i;recorder;constructor(e){var n;let i;super(e,vt.TZ),n=e,(0,P.Y)(N.CH,function(){(0,x.p)(N.CH,[],void 0,t.K7.sessionReplay,n.ee)},n),function(e){(0,P.Y)(N.Tb,function(){(0,x.p)(N.Tb,[],void 0,t.K7.sessionReplay,e.ee)},e)}(e);const s="".concat(u.Wt).concat((0,mt.Y)(e.info.licenseKey,e.info.applicationID));try{i=JSON.parse(localStorage.getItem(s))}catch(e){}(0,C.SR)(e.init)&&this.ee.on(N.CH,()=>this.#s()),this.#a(i)&&this.importRecorder().then(e=>{e.startRecording(vt.Qb.PRELOAD,i?.sessionReplayMode)}),this.abortHandler=this.#n,this.importAggregator(this.agentRef,()=>r.e(478).then(r.bind(r,6167)),this),this.ee.on("err",e=>{this.blocked||this.agentRef.runtime.isRecording&&(this.errorNoticed=!0,(0,x.p)(vt.Vh,[e],void 0,this.featureName,this.ee))})}#a(e){return e&&(e.sessionReplayMode===u.g.FULL||e.sessionReplayMode===u.g.ERROR)||(0,C.Aw)(this.agentRef.init)}importRecorder(){return this.recorder?Promise.resolve(this.recorder):(this.#i??=Promise.all([r.e(478),r.e(249)]).then(r.bind(r,4866)).then(({Recorder:e})=>(this.recorder=new e(this),this.recorder)).catch(e=>{throw this.ee.emit("internal-error",[e]),this.blocked=!0,e}),this.#i)}#s(){this.blocked||(this.featAggregate?this.featAggregate.mode!==u.g.FULL&&this.featAggregate.initializeRecording(u.g.FULL,!0,vt.Qb.API):this.importRecorder().then(()=>{this.recorder.startRecording(vt.Qb.API,u.g.FULL)}))}#n(){this.recorder?.stopRecording()}}var bt=r(3962);class Et extends W{static featureName=bt.TZ;constructor(e){if(super(e,bt.TZ),function(e){const r=e.ee.get("tracer");function n(){}(0,P.Y)(N.dT,function(e){return(new n).get("object"==typeof e?e:{})},e);const i=n.prototype={createTracer:function(n,i){var s={},a=this,o="function"==typeof i;return(0,x.p)(q.xV,["API/createTracer/called"],void 0,t.K7.metrics,e.ee),function(){if(r.emit((o?"":"no-")+"fn-start",[(0,O.t)(),a,o],s),o)try{return i.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw r.emit("fn-err",[arguments,this,t],s),t}finally{r.emit("fn-end",[(0,O.t)()],s)}}}};["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach(r=>{P.Y.apply(this,[r,function(){return(0,x.p)(N.hw+r,[performance.now(),...arguments],this,t.K7.softNav,e.ee),this},e,i])}),(0,P.Y)(N.PA,function(){(0,x.p)(N.hw+"routeName",[performance.now(),...arguments],void 0,t.K7.softNav,e.ee)},e)}(e),!g.RI||!(0,i.dV)().o.MO)return;const n=it(this.ee,e);try{this.removeOnAbort=new AbortController}catch(e){}bt.tC.forEach(e=>{(0,X.sp)(e,e=>{c(e)},!0,this.removeOnAbort?.signal)});const s=()=>(0,x.p)("newURL",[(0,O.t)(),""+window.location],void 0,this.featureName,this.ee);n.on("pushState-end",s),n.on("replaceState-end",s),(0,X.sp)(bt.OV,e=>{c(e),(0,x.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)},!0,this.removeOnAbort?.signal);let a=!1;const o=new((0,i.dV)().o.MO)((e,t)=>{a||(a=!0,requestAnimationFrame(()=>{(0,x.p)("newDom",[(0,O.t)()],void 0,this.featureName,this.ee),a=!1}))}),c=(0,M.s)(e=>{"loading"!==document.readyState&&((0,x.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0}))},100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,()=>r.e(478).then(r.bind(r,4393)),{domObserver:o})}}var wt=r(981);const Rt={},Tt=new Set;function At(e){return"string"==typeof e?{type:"string",size:(new TextEncoder).encode(e).length}:e instanceof ArrayBuffer?{type:"ArrayBuffer",size:e.byteLength}:e instanceof Blob?{type:"Blob",size:e.size}:e instanceof DataView?{type:"DataView",size:e.byteLength}:ArrayBuffer.isView(e)?{type:"TypedArray",size:e.byteLength}:{type:"unknown",size:0}}class xt{constructor(e,t){this.timestamp=(0,O.t)(),this.currentUrl=(0,be.L)(window.location.href),this.socketId=(0,ye.LA)(8),this.requestedUrl=(0,be.L)(e),this.requestedProtocols=Array.isArray(t)?t.join(","):t||"",this.openedAt=void 0,this.protocol=void 0,this.extensions=void 0,this.binaryType=void 0,this.messageOrigin=void 0,this.messageCount=0,this.messageBytes=0,this.messageBytesMin=0,this.messageBytesMax=0,this.messageTypes=void 0,this.sendCount=0,this.sendBytes=0,this.sendBytesMin=0,this.sendBytesMax=0,this.sendTypes=void 0,this.closedAt=void 0,this.closeCode=void 0,this.closeReason="unknown",this.closeWasClean=void 0,this.connectedDuration=0,this.hasErrors=void 0}}class St extends W{static featureName=o.TZ;constructor(e){super(e,o.TZ);const n=e.init.feature_flags.includes("websockets")||e.init.web_sockets?.enabled,s=!e.init.feature_flags.includes("no_spv"),a=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.performance.resources.enabled,e.init.user_actions.enabled,n,s];var c;let d;if(c=e,(0,P.Y)(N.hG,(e,t)=>ce(e,t,c),c),function(e){(0,P.Y)(N.fF,(t,r)=>ue(t,r,e),e)}(e),at(e),Te(e),function(e){(0,P.Y)(N.V1,(t,r)=>de(t,r,e),e)}(e),this.removeOnAbort=new AbortController,this.abortHandler=()=>{this.removeOnAbort.abort(),this.abortHandler=void 0},n){const u=function(e,t){if(!(0,i.dV)().o.WS)return e;const r=e.get("websockets");if(Rt[r.debugId]++)return r;Rt[r.debugId]=1,(0,V.G)(()=>{const e=(0,O.t)();Tt.forEach(t=>{t.nrData.closedAt=e,t.nrData.closeCode=1001,t.nrData.closeReason="Page navigating away",t.nrData.closeWasClean=!1,t.nrData.openedAt&&(t.nrData.connectedDuration=e-t.nrData.openedAt),r.emit("ws",[t.nrData,t.targets],t)})});class n extends WebSocket{static name=wt.R.WS;static toString(){return"function WebSocket() { [native code] }"}toString(){return"[object WebSocket]"}get[Symbol.toStringTag](){return n.name}#o(e){(e.__newrelic??={}).socketId=this.nrData.socketId,this.nrData.hasErrors??=!0}constructor(...e){super(...e),this.nrData=new xt(e[0],e[1]),this.targets=(0,ke.$5)(t),this.addEventListener("open",()=>{this.nrData.openedAt=(0,O.t)(),["protocol","extensions","binaryType"].forEach(e=>{this.nrData[e]=this[e]}),Tt.add(this)}),this.addEventListener("message",e=>{const{type:t,size:r}=At(e.data);this.nrData.messageOrigin??=(0,be.L)(e.origin),this.nrData.messageCount++,this.nrData.messageBytes+=r,this.nrData.messageBytesMin=Math.min(this.nrData.messageBytesMin||1/0,r),this.nrData.messageBytesMax=Math.max(this.nrData.messageBytesMax,r),(this.nrData.messageTypes??"").includes(t)||(this.nrData.messageTypes=this.nrData.messageTypes?"".concat(this.nrData.messageTypes,",").concat(t):t)}),this.addEventListener("close",e=>{this.nrData.closedAt=(0,O.t)(),this.nrData.closeCode=e.code,e.reason&&(this.nrData.closeReason=e.reason),this.nrData.closeWasClean=e.wasClean,this.nrData.connectedDuration=this.nrData.closedAt-this.nrData.openedAt,Tt.delete(this),r.emit("ws",[this.nrData,this.targets],this)})}addEventListener(e,t,...r){const n=this,i="function"==typeof t?function(...e){try{return t.apply(this,e)}catch(e){throw n.#o(e),e}}:t?.handleEvent?{handleEvent:function(...e){try{return t.handleEvent.apply(t,e)}catch(e){throw n.#o(e),e}}}:t;return super.addEventListener(e,i,...r)}send(e){if(this.readyState===WebSocket.OPEN){const{type:t,size:r}=At(e);this.nrData.sendCount++,this.nrData.sendBytes+=r,this.nrData.sendBytesMin=Math.min(this.nrData.sendBytesMin||1/0,r),this.nrData.sendBytesMax=Math.max(this.nrData.sendBytesMax,r),(this.nrData.sendTypes??"").includes(t)||(this.nrData.sendTypes=this.nrData.sendTypes?"".concat(this.nrData.sendTypes,",").concat(t):t)}try{return super.send(e)}catch(e){throw this.#o(e),e}}close(...e){try{super.close(...e)}catch(e){throw this.#o(e),e}}}return g.gm.WebSocket=n,r}(this.ee,e);u.on("ws",(e,t)=>{(0,x.p)("ws-complete",[e,t],void 0,this.featureName,this.ee)})}if(s&&g.gm.addEventListener("securitypolicyviolation",e=>{(0,x.p)("spv",[e],void 0,t.K7.genericEvents,this.ee)},(0,X.jT)(!1,this.removeOnAbort.signal)),g.RI){if(Ue(this.ee,e),je(this.ee,e),d=it(this.ee,e),e.init.user_actions.enabled){function l(t){const r=(0,Ve.D)(t);return e.beacons.includes(r.hostname+":"+r.port)}function f(){d.emit("navChange")}o.Zp.forEach(e=>(0,X.sp)(e,e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee),!0)),o.qN.forEach(e=>{const t=(0,M.s)(e=>{(0,x.p)("ua",[e],void 0,this.featureName,this.ee)},500,{leading:!0});(0,X.sp)(e,t)}),g.gm.addEventListener("error",()=>{(0,x.p)("uaErr",[],void 0,t.K7.genericEvents,this.ee)},(0,X.jT)(!1,this.removeOnAbort.signal)),this.ee.on("open-xhr-start",(e,r)=>{l(e[1])||r.addEventListener("readystatechange",()=>{2===r.readyState&&(0,x.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)},(0,X.jT)(void 0,this.removeOnAbort.signal))}),this.ee.on("fetch-start",e=>{e.length>=1&&!l(qe(e[0]))&&(0,x.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)}),d.on("pushState-end",f),d.on("replaceState-end",f),window.addEventListener("hashchange",f,(0,X.jT)(!0,this.removeOnAbort.signal)),window.addEventListener("popstate",f,(0,X.jT)(!0,this.removeOnAbort.signal))}if(e.init.performance.resources.enabled&&g.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{(0,x.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)})}).observe({type:"resource",buffered:!0})}}a.some(e=>e)?this.importAggregator(e,()=>r.e(478).then(r.bind(r,8019))):this.deregisterDrain()}}var _t=r(2646);const Ot=new Map;function Nt(e,t,r,n,i=!0,s){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const a=function(e){return(e||R.ee).get("logger")}(e),o=(0,Le.YM)(a,void 0,s),c=new _t.y(R.P);c.level=n.level,c.customAttributes=n.customAttributes,c.autoCaptured=i;const d=t[r]?.[Le.Jt]||t[r];return Ot.set(d,c),o.inPlace(t,[r],"wrap-logger-",()=>Ot.get(d),void 0,!0),a}var Pt=r(1910);class Lt extends W{static featureName=se.TZ;constructor(e){var t;super(e,se.TZ),t=e,(0,P.Y)("log",(e,r)=>oe(e,r,t),t),function(e){(0,P.Y)(N.Wb,(t,r,{customAttributes:n={},level:i=se.p_.INFO}={})=>{Nt(e.ee,t,r,{customAttributes:n,level:i},!1,e)},e)}(e),Te(e);const n=this.ee;["log","error","warn","info","debug","trace"].forEach(t=>{(0,Pt.i)(g.gm.console[t]),Nt(n,g.gm.console,t,{level:"log"===t?"info":t},void 0,e)}),this.ee.on("wrap-logger-end",function([t],r,i,s=[e.runtime.v2Target]){const{level:a,customAttributes:o,autoCaptured:c}=this;s.forEach(e=>{(0,ae.R)(n,t,o,a,c,e)})}),this.importAggregator(e,()=>r.e(478).then(r.bind(r,5288)))}}new U({features:[tt,F,G,gt,yt,Y,xe,St,Lt,Et],loaderType:"spa"})})()})();
</script> <script async src="//static.adsafeprotected.com/iasPET.1.js" ></script> <script async data-ot-ignore src="https://www.googletagmanager.com/gtm.js?id=GTM-5523ZCM" ></script> <script async data-ot-ignore src="https://www.googletagmanager.com/gtm.js?id=GTM-KSPX23J" ></script> <script>setTimeout(() => {document.querySelector('.gptHideContent')?.classList.remove('gptHideContent')}, 7000)</script><script defer="" async="" src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&amp;version=v18.0" data-ot-ignore="true"></script><link rel="modulepreload" href="/assets/entry.client-D8SNnbFQ.js"/><link rel="modulepreload" href="/assets/rolldown-runtime-C0FnF6B9.js"/><link rel="modulepreload" href="/assets/vendor-html-parser-DOJ8foyv.js"/><link rel="modulepreload" href="/assets/vendor-react-BREUBCH4.js"/><link rel="modulepreload" href="/assets/vendor-react-router-C-6Wf3r1.js"/><link rel="modulepreload" href="/assets/root-axDBxSta.js"/><link rel="modulepreload" href="/assets/errorBoundary-DfVczMbW.js"/><link rel="modulepreload" href="/assets/src-BkvMIAeW.js"/><link rel="modulepreload" href="/assets/meta-U5VGOwY8.js"/><link rel="modulepreload" href="/assets/src-CouXQPHZ.js"/><link rel="modulepreload" href="/assets/src-D7QQV_XS.js"/><link rel="modulepreload" href="/assets/src-930pK6ob.js"/><link rel="modulepreload" href="/assets/src-PHRCXHKs.js"/><link rel="modulepreload" href="/assets/src-LD1Uy0HA.js"/><link rel="modulepreload" href="/assets/src-BjKFzooJ.js"/><link rel="modulepreload" href="/assets/src-DHh7ZlQz.js"/><link rel="modulepreload" href="/assets/_baseForOwn-CbXHluAm.js"/><link rel="modulepreload" href="/assets/src-CDQHVsjM.js"/><link rel="modulepreload" href="/assets/swiper-react-frun646h.js"/><link rel="modulepreload" href="/assets/src-DXoHOFKR.js"/><link rel="modulepreload" href="/assets/index.es-CsC_O2B4.js"/><link rel="modulepreload" href="/assets/src-Nngu3sDD.js"/><link rel="modulepreload" href="/assets/useLockBodyScroll-BGJrZGjL.js"/><link rel="modulepreload" href="/assets/useIsomorphicLayoutEffect-BI0Xeo7e.js"/><link rel="modulepreload" href="/assets/src-B2pRdHuh.js"/><link rel="modulepreload" href="/assets/src-Chy4GWFD.js"/><link rel="modulepreload" href="/assets/src-udkYdJij2.js"/><link rel="modulepreload" href="/assets/src-CBIQ4vZ12.js"/><link rel="modulepreload" href="/assets/src-C1EhVVhA2.js"/><link rel="modulepreload" href="/assets/src-D_fDdcnk.js"/><link rel="modulepreload" href="/assets/src-B0SV16J1.js"/><link rel="modulepreload" href="/assets/src-CYX7xg5W.js"/><link rel="modulepreload" href="/assets/src-C35sQ8mk2.js"/><link rel="modulepreload" href="/assets/src-CVZKtC7p.js"/><link rel="modulepreload" href="/assets/esm-D1x6VqTd.js"/><link rel="modulepreload" href="/assets/src-Cp3Qrniv.js"/><link rel="modulepreload" href="/assets/src-CMwyClO9.js"/><link rel="modulepreload" href="/assets/toNumber-6-D1X_Li.js"/><link rel="modulepreload" href="/assets/src-srhSPO1G.js"/><link rel="modulepreload" href="/assets/src-D64ngxa82.js"/><link rel="modulepreload" href="/assets/src-ncxLImPM.js"/><link rel="modulepreload" href="/assets/extends-CvVTau-c.js"/><link rel="modulepreload" href="/assets/src-BDOIYwtt.js"/><link rel="modulepreload" href="/assets/striptags-BwxRt8hs.js"/><link rel="modulepreload" href="/assets/src-_wRPlqkz2.js"/><link rel="modulepreload" href="/assets/keyword._slug-DVj4VCzT.js"/><link rel="modulepreload" href="/assets/keyword._slug-C9Q1JDie.js"/><link rel="modulepreload" href="/assets/src-4WSjVm7A.js"/><link rel="modulepreload" href="/assets/src-CAqZuU8y.js"/><link rel="modulepreload" href="/assets/src-DWtK7QMI.js"/><link rel="modulepreload" href="/assets/utils-D-tTJe50.js"/><link rel="modulepreload" href="/assets/src-BWo0DCzI.js"/><link rel="modulepreload" href="/assets/src-C0YCnq-s.js"/></head><body class="brand-gamedeveloper"><noscript><iframe title="gtm noscript 0" src="https://www.googletagmanager.com/ns.html?id=GTM-5523ZCM" height="0" width="0" style="display:none;visibility:hidden"></iframe><iframe title="gtm noscript 1" src="https://www.googletagmanager.com/ns.html?id=GTM-KSPX23J" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><div id="fb-root"></div><main data-theme="theme2" class="Provider"><div data-testid="ad_blocker" class="ads ad adsbox doubleclick ad-placement carbon-ads ad-banner ad-container" style="top:0;left:0;height:1px;width:1px;position:absolute"></div><div data-template="layout" class="Layout"><nav data-module="navigation" aria-label="navigation" class="Navigation"><div data-testid="header" class="Navigation-HeaderWrapper"><div class="FullScreenBackground Navigation-HeaderBackground"></div><div class="Navigation-Header"><div class="InformaBar" data-component="informa-bar"><div class="InformaBar-ContentSection InformaBar-ContentSection_hidden" data-testid="informa-bar-content-section"><div class="InformaBar-LeftSection" data-testid="informa-bar-left-section"><div>Together, we power an unparalleled network of 220+ online properties covering 10,000+ granular topics, serving an audience of 50+ million professionals with original, objective content from trusted sources. We help you gain critical insights and make more informed decisions across your business priorities.</div><div class="InformaBar-SubMenuWrapper"><a class="InformaBar-SubMenuItem" data-testid="informa-bar-sub-menu-item" href="https://www.informa.com/" title="Informa PLC" target="_blank" rel="noreferrer">Informa PLC</a><span class="InformaBar-Delimiter">|</span><a class="InformaBar-SubMenuItem" data-testid="informa-bar-sub-menu-item" href="https://www.informa.com/about-us/" title="ABOUT US" target="_blank" rel="noreferrer">ABOUT US</a><span class="InformaBar-Delimiter">|</span><a class="InformaBar-SubMenuItem" data-testid="informa-bar-sub-menu-item" href="https://www.informa.com/investors/" title="INVESTOR RELATIONS" target="_blank" rel="noreferrer">INVESTOR RELATIONS</a><span class="InformaBar-Delimiter">|</span><a class="InformaBar-SubMenuItem" data-testid="informa-bar-sub-menu-item" href="https://www.informa.com/talent/" title="TALENT" target="_blank" rel="noreferrer">TALENT</a></div></div><div class="InformaBar-RightSection" data-testid="informa-bar-right-section">This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC&#x27;s registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.</div></div><div class="InformaBar-LogoSection" data-testid="informa-bar-logo-section" role="button" tabindex="0" aria-label="Open Informa bar"><div class="InformaBar-LogoWrapper"><img class="InformaBar-Logo" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAekAAABqCAYAAACYnalVAAAACXBIWXMAAAsSAAALEgHS3X78AAAPZklEQVR4nO2d320bSRKHew0/HkDe4t41jkDcCMSNwNwIpI3AdATWRmA6AksRrAzcu8UIjoxgxffDQYzAh9mtvmsPKHJIVvVUz3wfQNgWrOHM9J9fV3V11Q/fvn0Le7gJIUxDCFUI4Ur+2zKE8BxCeJDP874LQPGMpQ9M5M/635d7HmoTQngKITyGEFbyeaIbAAAcz0siXYvzbQjh4sAVtyGEhfxf6A+1EM/k81bhqdYi2nci2gAA0IKmSI9lIj12Yl6LlYVVXTZ1+8/lMzJ6krUs7PDCAAAcoCnSqwOuzH0g1GUzkwWalTg3iV6YBX0GAGA3r5KfLs4Q6CC/e8d7Lo7oPfk9o0AH+a4PYrUDAMAOokjXFvA7hRf0ViwyKIOx7BVf014AAP6IIq1pzRBEVgZRoM/xngAAgCGvZLLWiOCNXMpxHfANAg0A4JxXRoI6peFdc278AQAAZOCVkaCOaTy3aMUfAACAMbVI/4OXPCiIwAcAKIRapP8dQvgPDTYIblpkkQMAACe8lgQmP4pQ/0jD9JockfcxBeiz9K00Ucn0hb8DAMAOXie5lDWF+pGX7Q5LK3ojwWh3B7KH0S8AAI7glVQoWsuv/Kjg+t4wGbvEKsnMvZwQIL0nAIAyMZnJIrnsuUJNYJI/tM/CR96LhY44AwAYkBbYeExqRocTXd9rEpm4pBbSz8o3di/XBQAAI9ICGzOpTBQ51qLeMmm7RdvVvaUwBgCAPalIP0v07Sb5WVuh3srvUtDfJ9reDfafAQAy8KrxFSuZ0O+Tnx0S6qX8DgLtk8ogqpu4AwCADDRFOoiFVLut34QQPoll3RTqjQj5z2JBP9FYbqmUb2xNewMA5OH1nm95kn3HuPdYi/HfQgj/pG2KQjtpCMfrAAAysU+kmzA5Q8CKBgDIxy53N/QLbUua2AMAgEwg0gAAAE45xt0N/2eXdfo8ECuz79se4xZH1p5w+0NLXupP3vvQkOe4SHUg8LZZQMgERHo/Y+msUxlo9Wd04Hc20ni1mD0wmbukStpzIu18deKNLpPJ6zHXwAW3TBtzxqH5Yi195iGpHpebShIexXs+dGSzb3NcOr9XLdstZSPvYNX4qJCmBYW/iB22PoZ2qfBO1kmFqC7QbuAfOnqOc4iLrTgRWdfUjuU64yQG/WaWfI6Z3Jtspb/cZhA+zXmu6znuWCbJfHDq4vwQ22Th9XDO4iuKdDNv97mcMpF3fQ838rFstLlyR+7DCus3wzrXcRKyKC7SljhYFx26CjX7yVIxGLFqWDCpa/GxRb+o7+Or0r2EI/tiJeP55kxhfol7ub62ZT2V61qMiY28P49iXSVzvPUivclZc8DQ3d2x4eZGAy1lJEUuYkfBDW7DOGnT3INxF3W7X8tnKQN1qNZ16ladHhhzXmMfKhGia+PvuU4WmRr95Ubu23JMXCRz3MzJto+18dWG5hxwe0z/Hmp0dyWrvT9CCB8yCHTKVZJ+FXSJi5+PTgS6Sd32v0v7ax+N80q0OFcy3j6KFZdzzGmQzhnWAh0ZSX85x9MUx8TnjGPiSr6zyzkufe4uBbrJlXh/HtpmgxyaSI87GGi7GMlKiqphOsTc8Z8Lmfwvk4E6dnA/FtxIH4/CrBHf0QUe5owPJ7iQp8mY6GLBGue43ELdxaLkFN5K+xzUgCGJdAzG6FKcU0bi+sSiPo+6Xf9VqAi8lT6pXUq0K8bSHs8OLZhTmDuaM65bLuorEcevDsZETqGeFSLOKXELdO8CbAgiHQuA5HZrtyF24r5aU5aM5d19KPw5oktz4eBeTmWcLII9jrNjiUL30dmzfN4jeLEN/nC2OBoZe4ziPPB7QeLc5HqfUPdZpMcy8X113ngjjukczcTgNEDXvCt0wdYncQ5ira4c961dghdd214XrBeGEd+TnswDLwp1n0V6JRNfCVyxP92aKNCl7nHu46ogofbsoTqVeQFxDRdJZcKxiLZ3QyTI1k5ftnWsuN7lUeuzSJfm+rA6K9wnomurL6Kwi0vnQl2Kh+oUSulX8yRAqsscAMdS8pZOLt41FzMU2PDDBdb0XoYg0JFLx1sglwV5qPrKqKCTDCnMce24SxfpiLQvsKZf5q6nLu6XuMLygB4yp1EPMkq1YOgZx7xxIa4OAsm+xyqN4Uusk4T5KTF1Za5AlXfk/4aecZnkNchNWgwnrejVpijOpJHz29qL8S4eZ0Sk/YFIf0+VycOwFGu9bTL8aZL+0HLA3sk7oLIW9IWbDBb1OqlKt1JYFMRrxAjsHOlG63d0i0j/xTYpvfZSnde4irK26I6JgPytxf/RPpZxr5x3/FAO24WxCB6dS1d4TAK85obHX0YyMRAZ64dNQwCa5JorjmGb3POuvl5ltBJnBiK9SapO5Sj5eSefucwfFu/sz3zrfa6CdYhl0qjHrLJi0gDL4JmfFN1B2pWyfs5Y/EC7ylHKVtpRa9+3kv5ktW9+znv3UC1t2ai3nS6Gx40kHdNkst2HZf9osk48LW0XqZX0r67EepuISdv5ZJwU47AU6zdKi/2xvOeuKswF6bsPRqcdfhqaSK+TTnvuSutGIiwteK8oHiWLtFWf2CYJIDSJx5Ms0kiuz0iv2IVIx/J8D4bbNzlE+l6hzKjlXLGLZTLPnYr1ovPXgupPtyEuFLQXNu+HEt19L9bpRAachivkTjqaBUOpkLSPaWECHaRf3Uh/0+aykOMraxkXlWKZxS74FEL4e5KB7BzuZOFtzVIW0VMFAXyS62yM7rlvNQuscvBP+y7S9+JW0Rhou6gHwheD67YqYdYSq0FmjVVgiZVAp9zIhKmN5+MrUSAmSp6qrljKnDFXfoaFUZ8IMsZ/SbYJtHg2XBj2sbDQo8ECveqzSL9JsvJYYjFxarqYrJ/fgspoH+99xr2rmVjtmlw69LKk1luubRArPiXpTi2wOKWwTfZELbAQntDj6n/abXzZZ5HOJU5PRtb0kCtjWbiNlpmTg1hZIV5c3useiXPE2vp/lPemySjDfVssLvqaOVBdD8g4poPFKnbIdaYthKgLV/GDgYtz1vECbit7zpMeiXNOLIKlrL0rTwaLi9BjQ0R1XCDSOjBZ6VEZRJTed3hEQ9sKGXV8ZnrVs6jc3JQ6V1i0eV8NEdW5BpHW4clg/3GoWAhQl6LyaGBNE/1fLqtC54ouzyGXBiLtFDqxDtoCtHZgvWjvhZN9rGxKnCvwFrZHNUYAkdajxChqj2iLtAfX7IOy9TQaeMxC6ZR6PM1iXxoOgEjrgUifT2UQ9eklmYb2feDyLpdSvW4UeekARBo8oW0drh0tnrRFGksacoMh0gGINHhCW3g87aNp34tmVjqANiDSHUCpSvBEn0X6WSx7reNlOSvGAQydiZzrTiu2Nau3BYtxiUiDJ7STG3jb+1spnwEfs09YJFikPhkntcAr+Uy6zo6GSIMntF243ibDlXIZS7J+lQki7YMoyFP5u0U96LNBpMETmoPEquLQOXCWHqA7xpJjYCp/FpE/HJEGyIe2a7pPxS0ArJjJR9OLlQ1EGrygvR/tUbywpAHyEK3mW69u7LYg0uAFzv0CgAZzEedelMNEpAEAoA9MJQ1w0ZZzE5KZAABAyYyliM3Xvgl0wJIGAICCqSTlrnYNejdgSQMAQIlMDBIEaaB6/BNLGgAASiMm8ukiOGwri4NHSUyTfiLftL4MkQYvkN4SANpQZRbojXzfYyLM2UCkwQucIQaANjxkEOiNfM9d13MTIg19xeO5a+3c5HgfYGjcGu9BLyVSXLv++8kg0tBXtDOYaaAt0ngfYEjUC+8PRs+7lAWAu0yFRHeDJzSjIodgSQMMiYXBs9ZBYO8958HHkoa+4jEloLZIU1wDhkK96L5Sfta15Pd2XToUSxo8oS06U2fPR35ygNOYK7+3tcwP7mt7I9LgCe0B400UNe/HY71sACtmitfdikAXEXiJSIMntEXakyVdKecVJmgMhsJMeftqVtLJCEQaPNFnd7f2vSDSMBQ0x86ytFgORBq8oenGHTlyeSPSAKehOYbvSmsDRBq8ob3KvXHyfNp7aog0DAXNqO4cSUpUF+SINHhDW6Q1xfFUbpT31Dh6BUNB89jiJtNetOpRS0QavPEolqIWFw72prWteTcpCwGM0RS8XMetsKSh92iL0G2HL6wySMKASAMcT65UwareO0QaPKItQlcdWtPaqQy/UFgD4CQsC3NEtLe2EGlwyYPsH2nShTVdLwzeKl8TKxrgdKzz56vPM4g0eEX7qMSVQWrBQ2hb0ZsSj5AAOMLSozZXTlj0J4g0eGWhHEAWZJWb69z0wsC9hkADnIfVkcyJlbcOkQavPBtYoiMROusAknoieKd8za1RqT4Az2jHX1jEp4xlXjGpvIdIg2csrOlLOeZlJdS1QH82uO6CgDEYIBZJezQXu2OZT8yC0hBp8IyFNR0SodZ2fd8aCfQGKxoGzFr50S+Vto4m1gIdEGkogFuDQRoSodYIJqvkWh8UrrWLOVY0DBiLDHvXZwr1PIdAB0QaCsEq2KPeQ/oomYhO+Y6JDPQ/DBKWRL5w7AoGjlXA5LW404/Zo76R+eKj1R50k9c5vgTgTOqB9F4GhgUX4qZeyOr4Ub7zqZFKcCp7UFP5WK+iN44KhAB0xUrGgvrxJhnDX8VbdyfftUo8V1PxlE0N6lq3ApGGUliI5XpteL8jST6inYDkFLalFacHMOTOcDspiFhrGgFbWeCfvZDH3Q0lMTfan/bInHKUAP/D4qSHFVuxvFUW2Ig0lMSzdP6+C/WvJC4B+I7nDjIGnorqAhuRhtLou1Aj0AC7qcfF0vm7UR+/iDSUSBRq7wP2GGoX2S8INMBeZk7d3mbjF5GGUolC/akHLbiWZ+GoFcB+4rj3JNRby/GLSEPp1Ps/PxuUtszFJxngBIkBtGPlSKiXckTLbPwi0tAHYorPkqzqjSwuyCYGcDxdC/VWcjeoRXG/BCINfSFGf74JIdw7fqaNBJdURukOAYbCSsZR7tiUpRgFWfLpI9LQN2KKzyjWXvau1ok4ExwGoEPco/41w1hfivdr2shEaErMOOZhP6z0Pbkn5RWdlgtF+72W4pqNYj2WiNBZB5nENhJMctdx/9bsl57G6bPys+WaeLXvO9eY9DrHBRljD+JNu1FOIfolSRl8DCpj5Ydv375pXAegFGayEp4YFMXYJHm/H3KutgHgO2bJ55R828tkgd2pYYJIw9CZJEUzQvLvQ8RVdSzCwf4ygE/qMV1/YqGMXaTj2M9YDiH8F/cmbyXaV5JLAAAAAElFTkSuQmCC" alt=""/></div><span class="InformaBar-IconWrapper InformaBar-IconWrapper_closed"><svg viewBox="0 0 320 512" aria-hidden="true" focusable="false" role="img" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="currentColor" height="100%"><path fill="#ffffff" d="M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z"></path></svg></span></div></div></div></div><div class="Navigation-SecondaryMenuWrapper"><div class="FullScreenBackground Navigation-SecondaryMenuBackground"></div><div class="Navigation-SecondaryMenu"><nav data-testid="SecondaryMenu" class="SecondaryMenu"><a class="SecondaryMenu-Link" rel="noreferrer" target="_blank" href="https://omdia.tech.informa.com/advance-your-business/media-and-entertainment/games-spotlight-service">Game Market Research</a><a class="SecondaryMenu-Link" rel="noreferrer" target="_blank" href="https://www.gdcvault.com/">Watch GDC Talks on GDC Vault</a><a class="SecondaryMenu-Link" rel="noreferrer" target="_blank" href="https://gdconf.com/">Attend or Exhibit at GDC</a><a class="SecondaryMenu-Link" rel="noreferrer" target="_blank" href="https://info.gamedeveloper.com/request-info">Advertise</a></nav></div></div><div id="navigation-header" class="Navigation-NavBase Navigation-NavBase_isSticky"><div data-testid="navBase" class="NavBase"><div class="NavBase-Content"><div class="FullScreenBackground NavBase-SecondaryMenuBackground"></div><div class="NavBase-HeaderWrapper"><div class="NavBase-IconsWrapper"><button data-testid="navBase-megaMenuButton" class="NavBase-MegaMenuButton" aria-label="Open Mega menu"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Hamburger&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;16&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2016%2013&#x27;%3e%3crect%20id=&#x27;Rectangle_1690&#x27;%20data-name=&#x27;Rectangle%201690&#x27;%20width=&#x27;16&#x27;%20height=&#x27;3&#x27;%20transform=&#x27;translate(0)&#x27;/%3e%3crect%20id=&#x27;Rectangle_1691&#x27;%20data-name=&#x27;Rectangle%201691&#x27;%20width=&#x27;13&#x27;%20height=&#x27;3&#x27;%20transform=&#x27;translate(0%205)&#x27;/%3e%3crect%20id=&#x27;Rectangle_1692&#x27;%20data-name=&#x27;Rectangle%201692&#x27;%20width=&#x27;10&#x27;%20height=&#x27;3&#x27;%20transform=&#x27;translate(0%2010)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Hamburger&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;16&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2016%2013&#x27;%3e%3crect%20id=&#x27;Rectangle_1690&#x27;%20data-name=&#x27;Rectangle%201690&#x27;%20width=&#x27;16&#x27;%20height=&#x27;3&#x27;%20transform=&#x27;translate(0)&#x27;/%3e%3crect%20id=&#x27;Rectangle_1691&#x27;%20data-name=&#x27;Rectangle%201691&#x27;%20width=&#x27;13&#x27;%20height=&#x27;3&#x27;%20transform=&#x27;translate(0%205)&#x27;/%3e%3crect%20id=&#x27;Rectangle_1692&#x27;%20data-name=&#x27;Rectangle%201692&#x27;%20width=&#x27;10&#x27;%20height=&#x27;3&#x27;%20transform=&#x27;translate(0%2010)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Bars" class="NavBase-MegaMenuIcon NavBase-MegaMenuIcon_iconVariant_small NavBase-MegaMenuIcon_iconType_bars DefaultIcon"></span></button><button data-testid="SearchButtonDesktop" class="NavBase-SearchButtonDesktop" aria-label="Open Search"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;20&#x27;%20height=&#x27;20.004&#x27;%20viewBox=&#x27;0%200%2020%2020.004&#x27;%3e%3cpath%20id=&#x27;Search&#x27;%20d=&#x27;M1223.785,115.394,1228,119.61,1226.612,121l-4.215-4.218a8.891,8.891,0,1,1,1.389-1.392Zm-1.969-.731a6.9,6.9,0,1,0-.148.148Z&#x27;%20transform=&#x27;translate(-1208%20-101)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;20&#x27;%20height=&#x27;20.004&#x27;%20viewBox=&#x27;0%200%2020%2020.004&#x27;%3e%3cpath%20id=&#x27;Search&#x27;%20d=&#x27;M1223.785,115.394,1228,119.61,1226.612,121l-4.215-4.218a8.891,8.891,0,1,1,1.389-1.392Zm-1.969-.731a6.9,6.9,0,1,0-.148.148Z&#x27;%20transform=&#x27;translate(-1208%20-101)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Search" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_large NavBase-SearchIcon_iconType_search DefaultIcon"></span></button><button data-testid="SearchButtonTablet" class="NavBase-SearchButtonTablet" aria-label="Open Search in MegaMenu"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;20&#x27;%20height=&#x27;20.004&#x27;%20viewBox=&#x27;0%200%2020%2020.004&#x27;%3e%3cpath%20id=&#x27;Search&#x27;%20d=&#x27;M1223.785,115.394,1228,119.61,1226.612,121l-4.215-4.218a8.891,8.891,0,1,1,1.389-1.392Zm-1.969-.731a6.9,6.9,0,1,0-.148.148Z&#x27;%20transform=&#x27;translate(-1208%20-101)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;20&#x27;%20height=&#x27;20.004&#x27;%20viewBox=&#x27;0%200%2020%2020.004&#x27;%3e%3cpath%20id=&#x27;Search&#x27;%20d=&#x27;M1223.785,115.394,1228,119.61,1226.612,121l-4.215-4.218a8.891,8.891,0,1,1,1.389-1.392Zm-1.969-.731a6.9,6.9,0,1,0-.148.148Z&#x27;%20transform=&#x27;translate(-1208%20-101)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Search" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_small NavBase-SearchIcon_iconType_search DefaultIcon"></span></button></div><div class="NavBase-LogoWrapper"><button data-testid="navBase-LogoMegaMenuButton" class="NavBase-LogoMegaMenuButton" aria-label="Open Mega menu"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Hamburger&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;16&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2016%2013&#x27;%3e%3crect%20id=&#x27;Rectangle_1690&#x27;%20data-name=&#x27;Rectangle%201690&#x27;%20width=&#x27;16&#x27;%20height=&#x27;3&#x27;%20transform=&#x27;translate(0)&#x27;/%3e%3crect%20id=&#x27;Rectangle_1691&#x27;%20data-name=&#x27;Rectangle%201691&#x27;%20width=&#x27;13&#x27;%20height=&#x27;3&#x27;%20transform=&#x27;translate(0%205)&#x27;/%3e%3crect%20id=&#x27;Rectangle_1692&#x27;%20data-name=&#x27;Rectangle%201692&#x27;%20width=&#x27;10&#x27;%20height=&#x27;3&#x27;%20transform=&#x27;translate(0%2010)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Hamburger&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;16&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2016%2013&#x27;%3e%3crect%20id=&#x27;Rectangle_1690&#x27;%20data-name=&#x27;Rectangle%201690&#x27;%20width=&#x27;16&#x27;%20height=&#x27;3&#x27;%20transform=&#x27;translate(0)&#x27;/%3e%3crect%20id=&#x27;Rectangle_1691&#x27;%20data-name=&#x27;Rectangle%201691&#x27;%20width=&#x27;13&#x27;%20height=&#x27;3&#x27;%20transform=&#x27;translate(0%205)&#x27;/%3e%3crect%20id=&#x27;Rectangle_1692&#x27;%20data-name=&#x27;Rectangle%201692&#x27;%20width=&#x27;10&#x27;%20height=&#x27;3&#x27;%20transform=&#x27;translate(0%2010)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Bars" class="NavBase-LogoMegaMenuIcon NavBase-LogoMegaMenuIcon_iconVariant_small NavBase-LogoMegaMenuIcon_iconType_bars DefaultIcon"></span></button><a class="NavBase-Logo" href="/" target="_self" data-discover="true"><img data-testid="logo-image" data-component="image" class="NavBase-LogoImage" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8d5417b628e6b04b/656f5ed8485fda040aba11a1/Game_Developer_Logo_RGB_1.png?width=476&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8d5417b628e6b04b/656f5ed8485fda040aba11a1/Game_Developer_Logo_RGB_1.png?width=476&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Game Developer Logo" title="Game Developer Logo"/></a></div><div class="NavBase-RegisterWrapper"><div data-module="newsletter-signup-promo"><div class="NewsletterSignupPromo-Button NewsletterSignupPromo-Button_small NewsletterSignupButton"><a data-component="button" data-testid="headerSmallNewsletterButton" class="Button Button_size_small Button_variant_primaryFilled" rel="noreferrer nofollow" target="_blank" href="https://gd-resources.gamedeveloper.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_gamf01&amp;ch=gdwebbutton" data-action-type="sign-up" data-name="subscribe-nav"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;12&#x27;%20viewBox=&#x27;0%200%2013%2012&#x27;%3e%3cpath%20id=&#x27;Path_2045&#x27;%20data-name=&#x27;Path%202045&#x27;%20d=&#x27;M1052.983,38h11.694a.625.625,0,0,1,.458.2.659.659,0,0,1,.195.471V49.333a.659.659,0,0,1-.195.471.625.625,0,0,1-.458.2h-11.694a.625.625,0,0,1-.458-.2.659.659,0,0,1-.195-.471V38.667a.659.659,0,0,1,.195-.471A.625.625,0,0,1,1052.983,38Zm11.041,2.825-5.145,4.733-5.243-4.748v7.856h10.388Zm-10.057-1.492,4.9,4.441,4.833-4.441Z&#x27;%20transform=&#x27;translate(-1052.33%20-38)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;12&#x27;%20viewBox=&#x27;0%200%2013%2012&#x27;%3e%3cpath%20id=&#x27;Path_2045&#x27;%20data-name=&#x27;Path%202045&#x27;%20d=&#x27;M1052.983,38h11.694a.625.625,0,0,1,.458.2.659.659,0,0,1,.195.471V49.333a.659.659,0,0,1-.195.471.625.625,0,0,1-.458.2h-11.694a.625.625,0,0,1-.458-.2.659.659,0,0,1-.195-.471V38.667a.659.659,0,0,1,.195-.471A.625.625,0,0,1,1052.983,38Zm11.041,2.825-5.145,4.733-5.243-4.748v7.856h10.388Zm-10.057-1.492,4.9,4.441,4.833-4.441Z&#x27;%20transform=&#x27;translate(-1052.33%20-38)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Email" class="Button-Icon Button-Icon_position_left DefaultIcon"></span><span class="Button-ContentWrapper">Newsletter Sign-Up</span></a></div><div class="NewsletterSignupPromo-Button NewsletterSignupPromo-Button_medium NewsletterSignupButton"><div data-component="social-share" class="SocialShare SocialShare_variant_layout Layout-SocialShare"><a rel="noreferrer" aria-label="RSS" class="Layout-SocialLink" href="/rss.xml" target="_self" data-discover="true"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20version=&#x27;1.1&#x27;%20id=&#x27;Layer_1&#x27;%20fill=&#x27;currentColor&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20xmlns:xlink=&#x27;http://www.w3.org/1999/xlink&#x27;%20x=&#x27;0px&#x27;%20y=&#x27;0px&#x27;%20viewBox=&#x27;0%200%20310%20310&#x27;%20style=&#x27;enable-background:new%200%200%20310%20310;&#x27;%20xml:space=&#x27;preserve&#x27;%3e%3cg%20id=&#x27;XMLID_788_&#x27;%3e%3cpath%20id=&#x27;XMLID_789_&#x27;%20d=&#x27;M90.244,264.828C90.244,240.11,70.139,220,45.427,220c-24.715,0-44.822,20.11-44.822,44.828%20c0,24.714,20.107,44.82,44.822,44.82C70.139,309.648,90.244,289.542,90.244,264.828z&#x27;/%3e%3cpath%20id=&#x27;XMLID_790_&#x27;%20d=&#x27;M5.648,169.43c35.961,0,69.782,14.066,95.231,39.605c25.45,25.583,39.467,59.648,39.467,95.92%20c0,2.762,2.238,5,5,5h57.486c2.762,0,5-2.238,5-5c0-111.952-90.699-203.031-202.185-203.031c-2.762,0-5,2.238-5,5v57.505%20C0.648,167.191,2.887,169.43,5.648,169.43z&#x27;/%3e%3cpath%20id=&#x27;XMLID_791_&#x27;%20d=&#x27;M5.726,0c-2.762,0-5,2.238-5,5v57.495c0,2.762,2.238,5,5,5c130.24,0,236.199,106.544,236.199,237.505%20c0,2.762,2.238,5,5,5h57.471c2.762,0,5-2.238,5-5C309.396,136.822,173.17,0,5.726,0z&#x27;/%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20version=&#x27;1.1&#x27;%20id=&#x27;Layer_1&#x27;%20fill=&#x27;currentColor&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20xmlns:xlink=&#x27;http://www.w3.org/1999/xlink&#x27;%20x=&#x27;0px&#x27;%20y=&#x27;0px&#x27;%20viewBox=&#x27;0%200%20310%20310&#x27;%20style=&#x27;enable-background:new%200%200%20310%20310;&#x27;%20xml:space=&#x27;preserve&#x27;%3e%3cg%20id=&#x27;XMLID_788_&#x27;%3e%3cpath%20id=&#x27;XMLID_789_&#x27;%20d=&#x27;M90.244,264.828C90.244,240.11,70.139,220,45.427,220c-24.715,0-44.822,20.11-44.822,44.828%20c0,24.714,20.107,44.82,44.822,44.82C70.139,309.648,90.244,289.542,90.244,264.828z&#x27;/%3e%3cpath%20id=&#x27;XMLID_790_&#x27;%20d=&#x27;M5.648,169.43c35.961,0,69.782,14.066,95.231,39.605c25.45,25.583,39.467,59.648,39.467,95.92%20c0,2.762,2.238,5,5,5h57.486c2.762,0,5-2.238,5-5c0-111.952-90.699-203.031-202.185-203.031c-2.762,0-5,2.238-5,5v57.505%20C0.648,167.191,2.887,169.43,5.648,169.43z&#x27;/%3e%3cpath%20id=&#x27;XMLID_791_&#x27;%20d=&#x27;M5.726,0c-2.762,0-5,2.238-5,5v57.495c0,2.762,2.238,5,5,5c130.24,0,236.199,106.544,236.199,237.505%20c0,2.762,2.238,5,5,5h57.471c2.762,0,5-2.238,5-5C309.396,136.822,173.17,0,5.726,0z&#x27;/%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="RSS" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_rss DefaultIcon"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Twitter" class="Layout-SocialLink" href="https://twitter.com/gamedevdotcom/"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Capa_1&#x27;%20enable-background=&#x27;new%200%200%201226.37%201226.37&#x27;%20viewBox=&#x27;0%200%201226.37%201226.37&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cpath%20d=&#x27;m727.348%20519.284%20446.727-519.284h-105.86l-387.893%20450.887-309.809-450.887h-357.328l468.492%20681.821-468.492%20544.549h105.866l409.625-476.152%20327.181%20476.152h357.328l-485.863-707.086zm-144.998%20168.544-47.468-67.894-377.686-540.24h162.604l304.797%20435.991%2047.468%2067.894%20396.2%20566.721h-162.604l-323.311-462.446z&#x27;/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Capa_1&#x27;%20enable-background=&#x27;new%200%200%201226.37%201226.37&#x27;%20viewBox=&#x27;0%200%201226.37%201226.37&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cpath%20d=&#x27;m727.348%20519.284%20446.727-519.284h-105.86l-387.893%20450.887-309.809-450.887h-357.328l468.492%20681.821-468.492%20544.549h105.866l409.625-476.152%20327.181%20476.152h357.328l-485.863-707.086zm-144.998%20168.544-47.468-67.894-377.686-540.24h162.604l304.797%20435.991%2047.468%2067.894%20396.2%20566.721h-162.604l-323.311-462.446z&#x27;/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Twitter" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_twitter DefaultIcon"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Linkedin" class="Layout-SocialLink" href="https://www.linkedin.com/company/gamedeveloperofficial"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20version=&#x27;1.1&#x27;%20id=&#x27;Capa_1&#x27;%20fill=&#x27;currentColor&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20xmlns:xlink=&#x27;http://www.w3.org/1999/xlink&#x27;%20x=&#x27;0px&#x27;%20y=&#x27;0px&#x27;%20viewBox=&#x27;0%200%20409.6%20409.6&#x27;%20style=&#x27;enable-background:new%200%200%20409.6%20409.6;&#x27;%20xml:space=&#x27;preserve&#x27;%3e%3cg%3e%3cg%3e%3cpath%20d=&#x27;M375.465,0H34.135C15.365,0,0,15.365,0,34.135V375.47c0,18.76,15.365,34.13,34.135,34.13h341.33%20c18.77,0,34.135-15.37,34.135-34.13V34.135C409.6,15.365,394.235,0,375.465,0z%20M375.465,375.47H34.135V34.135h341.33V375.47z&#x27;/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3crect%20x=&#x27;102.4&#x27;%20y=&#x27;170.65&#x27;%20width=&#x27;34.135&#x27;%20height=&#x27;136.535&#x27;/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3ccircle%20cx=&#x27;119.45&#x27;%20cy=&#x27;128&#x27;%20r=&#x27;25.6&#x27;/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d=&#x27;M238.935,170.665c-12.498,0-24.069,3.61-34.135,9.467v-8.049h-34.135V307.2H204.8v-68.27%20c0-18.852,15.283-34.13,34.135-34.13c18.852,0,34.13,15.278,34.13,34.13v68.27H307.2v-68.27%20C307.2,201.231,276.634,170.665,238.935,170.665z&#x27;/%3e%3c/g%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20version=&#x27;1.1&#x27;%20id=&#x27;Capa_1&#x27;%20fill=&#x27;currentColor&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20xmlns:xlink=&#x27;http://www.w3.org/1999/xlink&#x27;%20x=&#x27;0px&#x27;%20y=&#x27;0px&#x27;%20viewBox=&#x27;0%200%20409.6%20409.6&#x27;%20style=&#x27;enable-background:new%200%200%20409.6%20409.6;&#x27;%20xml:space=&#x27;preserve&#x27;%3e%3cg%3e%3cg%3e%3cpath%20d=&#x27;M375.465,0H34.135C15.365,0,0,15.365,0,34.135V375.47c0,18.76,15.365,34.13,34.135,34.13h341.33%20c18.77,0,34.135-15.37,34.135-34.13V34.135C409.6,15.365,394.235,0,375.465,0z%20M375.465,375.47H34.135V34.135h341.33V375.47z&#x27;/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3crect%20x=&#x27;102.4&#x27;%20y=&#x27;170.65&#x27;%20width=&#x27;34.135&#x27;%20height=&#x27;136.535&#x27;/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3ccircle%20cx=&#x27;119.45&#x27;%20cy=&#x27;128&#x27;%20r=&#x27;25.6&#x27;/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d=&#x27;M238.935,170.665c-12.498,0-24.069,3.61-34.135,9.467v-8.049h-34.135V307.2H204.8v-68.27%20c0-18.852,15.283-34.13,34.135-34.13c18.852,0,34.13,15.278,34.13,34.13v68.27H307.2v-68.27%20C307.2,201.231,276.634,170.665,238.935,170.665z&#x27;/%3e%3c/g%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Linkedin" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_linkedin DefaultIcon"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Facebook" class="Layout-SocialLink" href="https://www.facebook.com/GameDeveloperOfficial"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20version=&#x27;1.1&#x27;%20id=&#x27;Capa_1&#x27;%20fill=&#x27;currentColor&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20xmlns:xlink=&#x27;http://www.w3.org/1999/xlink&#x27;%20x=&#x27;0px&#x27;%20y=&#x27;0px&#x27;%20viewBox=&#x27;0%200%20409.6%20409.6&#x27;%20style=&#x27;enable-background:new%200%200%20409.6%20409.6;&#x27;%20xml:space=&#x27;preserve&#x27;%3e%3cg%3e%3cg%3e%3cpath%20d=&#x27;M375.465,0H34.135C15.365,0,0,15.365,0,34.135V375.47c0,18.76,15.365,34.13,34.135,34.13h341.33%20c18.77,0,34.135-15.37,34.135-34.13V34.135C409.6,15.365,394.235,0,375.465,0z%20M375.465,375.47h-136.53V238.93h85.33V204.8h-85.33%20v-34.135c0-28.283,22.932-51.2,51.2-51.2h34.13V85.33h-34.13c-47.119,0.005-85.335,38.195-85.335,85.335V204.8h-34.135v34.13%20H204.8v136.54H34.135V34.135h341.33V375.47z&#x27;/%3e%3c/g%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20version=&#x27;1.1&#x27;%20id=&#x27;Capa_1&#x27;%20fill=&#x27;currentColor&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20xmlns:xlink=&#x27;http://www.w3.org/1999/xlink&#x27;%20x=&#x27;0px&#x27;%20y=&#x27;0px&#x27;%20viewBox=&#x27;0%200%20409.6%20409.6&#x27;%20style=&#x27;enable-background:new%200%200%20409.6%20409.6;&#x27;%20xml:space=&#x27;preserve&#x27;%3e%3cg%3e%3cg%3e%3cpath%20d=&#x27;M375.465,0H34.135C15.365,0,0,15.365,0,34.135V375.47c0,18.76,15.365,34.13,34.135,34.13h341.33%20c18.77,0,34.135-15.37,34.135-34.13V34.135C409.6,15.365,394.235,0,375.465,0z%20M375.465,375.47h-136.53V238.93h85.33V204.8h-85.33%20v-34.135c0-28.283,22.932-51.2,51.2-51.2h34.13V85.33h-34.13c-47.119,0.005-85.335,38.195-85.335,85.335V204.8h-34.135v34.13%20H204.8v136.54H34.135V34.135h341.33V375.47z&#x27;/%3e%3c/g%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Facebook" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_facebook DefaultIcon"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Bluesky" class="Layout-SocialLink" href="https://bsky.app/profile/gamedeveloper.bsky.social"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3c?xml%20version=&#x27;1.0&#x27;%20encoding=&#x27;UTF-8&#x27;?%3e%3csvg%20width=&#x27;600&#x27;%20height=&#x27;530&#x27;%20version=&#x27;1.1&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cpath%20d=&#x27;m135.72%2044.03c66.496%2049.921%20138.02%20151.14%20164.28%20205.46%2026.262-54.316%2097.782-155.54%20164.28-205.46%2047.98-36.021%20125.72-63.892%20125.72%2024.795%200%2017.712-10.155%20148.79-16.111%20170.07-20.703%2073.984-96.144%2092.854-163.25%2081.433%20117.3%2019.964%20147.14%2086.092%2082.697%20152.22-122.39%20125.59-175.91-31.511-189.63-71.766-2.514-7.3797-3.6904-10.832-3.7077-7.8964-0.0174-2.9357-1.1937%200.51669-3.7077%207.8964-13.714%2040.255-67.233%20197.36-189.63%2071.766-64.444-66.128-34.605-132.26%2082.697-152.22-67.108%2011.421-142.55-7.4491-163.25-81.433-5.9562-21.282-16.111-152.36-16.111-170.07%200-88.687%2077.742-60.816%20125.72-24.795z&#x27;%20fill=&#x27;%23000000&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3c?xml%20version=&#x27;1.0&#x27;%20encoding=&#x27;UTF-8&#x27;?%3e%3csvg%20width=&#x27;600&#x27;%20height=&#x27;530&#x27;%20version=&#x27;1.1&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cpath%20d=&#x27;m135.72%2044.03c66.496%2049.921%20138.02%20151.14%20164.28%20205.46%2026.262-54.316%2097.782-155.54%20164.28-205.46%2047.98-36.021%20125.72-63.892%20125.72%2024.795%200%2017.712-10.155%20148.79-16.111%20170.07-20.703%2073.984-96.144%2092.854-163.25%2081.433%20117.3%2019.964%20147.14%2086.092%2082.697%20152.22-122.39%20125.59-175.91-31.511-189.63-71.766-2.514-7.3797-3.6904-10.832-3.7077-7.8964-0.0174-2.9357-1.1937%200.51669-3.7077%207.8964-13.714%2040.255-67.233%20197.36-189.63%2071.766-64.444-66.128-34.605-132.26%2082.697-152.22-67.108%2011.421-142.55-7.4491-163.25-81.433-5.9562-21.282-16.111-152.36-16.111-170.07%200-88.687%2077.742-60.816%20125.72-24.795z&#x27;%20fill=&#x27;%23000000&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Bluesky" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_bluesky DefaultIcon"></span></span></a><a target="_blank" rel="noreferrer" aria-label="GoogleNews" class="Layout-SocialLink" href="https://news.google.com/publications/CAAqBwgKML7GrQswy9HFAw?ceid=US:en&amp;oc=3&amp;hl=en-US&amp;gl=US"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Capa_1&#x27;%20enable-background=&#x27;new%200%200%20512.288%20512.288&#x27;%20height=&#x27;512&#x27;%20viewBox=&#x27;0%200%20512.288%20512.288&#x27;%20width=&#x27;512&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cg%3e%3cpath%20d=&#x27;m512.288%20152.697-67.644-13.455v-123.579h-377v123.579l-67.644%2013.455%2052.644%20264.661v79.268h407v-79.268zm-52.644%20110.885v-61.956h-50.232l-8.037-40.402%2075.636%2015.045zm-362-217.919h317v87.612l-19.603-3.899-10.573-53.153-286.824%2057.052zm-62.368%20130.606%20325.621-64.77%2017.927%2090.127h-326.18v61.956zm394.368%20290.356h-347v-235h347z&#x27;/%3e%3cpath%20d=&#x27;m200.144%20436.625c48.248%200%2087.5-39.252%2087.5-87.5v-15h-87.5v30h55.516c-6.615%2024.454-28.998%2042.5-55.516%2042.5-31.706%200-57.5-25.794-57.5-57.5s25.794-57.5%2057.5-57.5c14.834%200%2028.917%205.632%2039.653%2015.86l20.692-21.722c-16.34-15.566-37.771-24.138-60.345-24.138-48.248%200-87.5%2039.252-87.5%2087.5s39.252%2087.5%2087.5%2087.5z&#x27;/%3e%3cpath%20d=&#x27;m317.644%20274.125h82v30h-82z&#x27;/%3e%3cpath%20d=&#x27;m317.644%20334.125h82v30h-82z&#x27;/%3e%3cpath%20d=&#x27;m317.644%20394.125h82v30h-82z&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Capa_1&#x27;%20enable-background=&#x27;new%200%200%20512.288%20512.288&#x27;%20height=&#x27;512&#x27;%20viewBox=&#x27;0%200%20512.288%20512.288&#x27;%20width=&#x27;512&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cg%3e%3cpath%20d=&#x27;m512.288%20152.697-67.644-13.455v-123.579h-377v123.579l-67.644%2013.455%2052.644%20264.661v79.268h407v-79.268zm-52.644%20110.885v-61.956h-50.232l-8.037-40.402%2075.636%2015.045zm-362-217.919h317v87.612l-19.603-3.899-10.573-53.153-286.824%2057.052zm-62.368%20130.606%20325.621-64.77%2017.927%2090.127h-326.18v61.956zm394.368%20290.356h-347v-235h347z&#x27;/%3e%3cpath%20d=&#x27;m200.144%20436.625c48.248%200%2087.5-39.252%2087.5-87.5v-15h-87.5v30h55.516c-6.615%2024.454-28.998%2042.5-55.516%2042.5-31.706%200-57.5-25.794-57.5-57.5s25.794-57.5%2057.5-57.5c14.834%200%2028.917%205.632%2039.653%2015.86l20.692-21.722c-16.34-15.566-37.771-24.138-60.345-24.138-48.248%200-87.5%2039.252-87.5%2087.5s39.252%2087.5%2087.5%2087.5z&#x27;/%3e%3cpath%20d=&#x27;m317.644%20274.125h82v30h-82z&#x27;/%3e%3cpath%20d=&#x27;m317.644%20334.125h82v30h-82z&#x27;/%3e%3cpath%20d=&#x27;m317.644%20394.125h82v30h-82z&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="GoogleNews" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_googleNews DefaultIcon"></span></span></a></div><a data-component="button" data-testid="headerMediumNewsletterButton" class="Button Button_size_medium Button_variant_primaryFilled" rel="noreferrer nofollow" target="_blank" href="https://gd-resources.gamedeveloper.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_gamf01&amp;ch=gdwebbutton" data-action-type="sign-up" data-name="subscribe-nav"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;12&#x27;%20viewBox=&#x27;0%200%2013%2012&#x27;%3e%3cpath%20id=&#x27;Path_2045&#x27;%20data-name=&#x27;Path%202045&#x27;%20d=&#x27;M1052.983,38h11.694a.625.625,0,0,1,.458.2.659.659,0,0,1,.195.471V49.333a.659.659,0,0,1-.195.471.625.625,0,0,1-.458.2h-11.694a.625.625,0,0,1-.458-.2.659.659,0,0,1-.195-.471V38.667a.659.659,0,0,1,.195-.471A.625.625,0,0,1,1052.983,38Zm11.041,2.825-5.145,4.733-5.243-4.748v7.856h10.388Zm-10.057-1.492,4.9,4.441,4.833-4.441Z&#x27;%20transform=&#x27;translate(-1052.33%20-38)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;12&#x27;%20viewBox=&#x27;0%200%2013%2012&#x27;%3e%3cpath%20id=&#x27;Path_2045&#x27;%20data-name=&#x27;Path%202045&#x27;%20d=&#x27;M1052.983,38h11.694a.625.625,0,0,1,.458.2.659.659,0,0,1,.195.471V49.333a.659.659,0,0,1-.195.471.625.625,0,0,1-.458.2h-11.694a.625.625,0,0,1-.458-.2.659.659,0,0,1-.195-.471V38.667a.659.659,0,0,1,.195-.471A.625.625,0,0,1,1052.983,38Zm11.041,2.825-5.145,4.733-5.243-4.748v7.856h10.388Zm-10.057-1.492,4.9,4.441,4.833-4.441Z&#x27;%20transform=&#x27;translate(-1052.33%20-38)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Email" class="Button-Icon Button-Icon_position_left DefaultIcon"></span><span class="Button-ContentWrapper">Newsletter Sign-Up</span></a></div></div><button data-testid="RegisterSearchButton" class="NavBase-RegisterSearchButton" aria-label="Open Search in MegaMenu"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;20&#x27;%20height=&#x27;20.004&#x27;%20viewBox=&#x27;0%200%2020%2020.004&#x27;%3e%3cpath%20id=&#x27;Search&#x27;%20d=&#x27;M1223.785,115.394,1228,119.61,1226.612,121l-4.215-4.218a8.891,8.891,0,1,1,1.389-1.392Zm-1.969-.731a6.9,6.9,0,1,0-.148.148Z&#x27;%20transform=&#x27;translate(-1208%20-101)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;20&#x27;%20height=&#x27;20.004&#x27;%20viewBox=&#x27;0%200%2020%2020.004&#x27;%3e%3cpath%20id=&#x27;Search&#x27;%20d=&#x27;M1223.785,115.394,1228,119.61,1226.612,121l-4.215-4.218a8.891,8.891,0,1,1,1.389-1.392Zm-1.969-.731a6.9,6.9,0,1,0-.148.148Z&#x27;%20transform=&#x27;translate(-1208%20-101)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Search" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_large NavBase-SearchIcon_iconType_search DefaultIcon"></span></button></div></div><div class="NavBase-SearchWrapper"><div class="FullScreenBackground NavBase-SearchBackground"></div><button data-testid="SearchCloseButton" class="NavBase-SearchCloseButton" aria-label="Close Search"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;18&#x27;%20viewBox=&#x27;0%200%2018%2018&#x27;%3e%3cpath%20id=&#x27;Icon_material-close&#x27;%20data-name=&#x27;Icon%20material-close&#x27;%20d=&#x27;M25.5,9.313,23.687,7.5,16.5,14.687,9.313,7.5,7.5,9.313,14.687,16.5,7.5,23.687,9.313,25.5,16.5,18.313,23.687,25.5,25.5,23.687,18.313,16.5Z&#x27;%20transform=&#x27;translate(-7.5%20-7.5)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;18&#x27;%20viewBox=&#x27;0%200%2018%2018&#x27;%3e%3cpath%20id=&#x27;Icon_material-close&#x27;%20data-name=&#x27;Icon%20material-close&#x27;%20d=&#x27;M25.5,9.313,23.687,7.5,16.5,14.687,9.313,7.5,7.5,9.313,14.687,16.5,7.5,23.687,9.313,25.5,16.5,18.313,23.687,25.5,25.5,23.687,18.313,16.5Z&#x27;%20transform=&#x27;translate(-7.5%20-7.5)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Close" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_medium NavBase-SearchIcon_iconType_close DefaultIcon"></span></button></div></div></div><div class="Navigation-MainMenu"><div data-testid="mainMenu"><div class="FullScreenBackground MainMenu-BackgroundSubmenu"></div><div class="FullScreenBackground MainMenu-BackgroundMenuItem"></div><div class="MainMenu-Content"><div class="MainMenu-MegaMenuButtonWrapper"><button data-testid="mainMenu-MegaMenuButton" aria-label="Open MegaMenu" class="MainMenu-MegaMenuButton"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Hamburger&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;16&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2016%2013&#x27;%3e%3crect%20id=&#x27;Rectangle_1690&#x27;%20data-name=&#x27;Rectangle%201690&#x27;%20width=&#x27;16&#x27;%20height=&#x27;3&#x27;%20transform=&#x27;translate(0)&#x27;/%3e%3crect%20id=&#x27;Rectangle_1691&#x27;%20data-name=&#x27;Rectangle%201691&#x27;%20width=&#x27;13&#x27;%20height=&#x27;3&#x27;%20transform=&#x27;translate(0%205)&#x27;/%3e%3crect%20id=&#x27;Rectangle_1692&#x27;%20data-name=&#x27;Rectangle%201692&#x27;%20width=&#x27;10&#x27;%20height=&#x27;3&#x27;%20transform=&#x27;translate(0%2010)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Hamburger&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;16&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2016%2013&#x27;%3e%3crect%20id=&#x27;Rectangle_1690&#x27;%20data-name=&#x27;Rectangle%201690&#x27;%20width=&#x27;16&#x27;%20height=&#x27;3&#x27;%20transform=&#x27;translate(0)&#x27;/%3e%3crect%20id=&#x27;Rectangle_1691&#x27;%20data-name=&#x27;Rectangle%201691&#x27;%20width=&#x27;13&#x27;%20height=&#x27;3&#x27;%20transform=&#x27;translate(0%205)&#x27;/%3e%3crect%20id=&#x27;Rectangle_1692&#x27;%20data-name=&#x27;Rectangle%201692&#x27;%20width=&#x27;10&#x27;%20height=&#x27;3&#x27;%20transform=&#x27;translate(0%2010)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Bars" class="MainMenu-MegaMenuIcon DefaultIcon"></span></button></div><div class="MainMenu-ItemsWrapper" role="menu"><div class="MainMenu-MenuItemWrapper"><div class="MainMenu-MenuItem" role="menuitem" tabindex="0" data-testid="openSubMenu" aria-label="Open Sub menu of Trending"><span class="MainMenu-MainTitle">Trending<span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z&#x27;%20transform=&#x27;translate(-9%20-11.76)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z&#x27;%20transform=&#x27;translate(-9%20-11.76)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="ChevronDown" class="MainMenu-SubMenuIcon DefaultIcon"></span></span></div><div class="MainMenu-SubMenuWrapper"><div class="MainMenu-SubMenuContent"><div data-module="sub-menu" class="SubMenu MainMenu-SubMenu" role="presentation"><div class="SubMenu-Container"><div class="SubMenu-RelatedTopicsWrapper"><h4 class="SubMenu-RelatedTopics">Related Topics</h4><div class="SubMenu-CasualLinkWrapper" data-testid="related"><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/layoffs" target="_self" data-discover="true">▫️ Layoffs &amp; Studio Closures</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/gdc-festival-of-gaming" target="_self" data-discover="true">▫️ GDC Festival of Gaming</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/generative-ai" target="_self" data-discover="true">▫️ Generative AI &amp; ML</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/lawsuits" target="_self" data-discover="true">▫️ Industry Lawsuits</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/game-engines-development-tools" target="_self" data-discover="true">▫️ Development Tools</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/culture" target="_self" data-discover="true">▫️ Culture &amp; Dev Communities</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"><div class="SubMenu-RecentContentHeading"><h4 data-testid="recent-title" class="SubMenu-RecentText">Recent in <a class="SubMenu-RecentTopicTerm" href="/latest-interviews" target="_self" data-discover="true">Trending</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/latest-interviews" target="_self" data-discover="true"><span class="SubMenu-SeeMoreText">Top Stories</span><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z&#x27;%20transform=&#x27;translate(13)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z&#x27;%20transform=&#x27;translate(13)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="ChevronRight" class="SubMenu-SeeMoreIcon DefaultIcon"></span></a></div></div><div class="SubMenu-ContentWrapper"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/business/riot-games-marc-merrill-says-company-is-considering-making-premium-games" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd91808b3cb9ad307/6aa075749d9ca61597ee4626/riotgamessignfeatured.jpg?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd91808b3cb9ad307/6aa075749d9ca61597ee4626/riotgamessignfeatured.jpg?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="The sign for Riot Games outside its Santa Monica headquarters." title="The sign for Riot Games outside its Santa Monica headquarters."/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_business ContentPreview-Category" href="/business" target="_self" data-discover="true">Business</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/business/riot-games-marc-merrill-says-company-is-considering-making-premium-games" target="_self" data-discover="true">Riot Games is considering making premium titles, says co-founder</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/business/riot-games-marc-merrill-says-company-is-considering-making-premium-games" target="_self" data-discover="true">Riot Games is considering making premium titles, says co-founder</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/bryant-francis" target="_self" data-discover="true">Bryant Francis</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Sep 8, 2026</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 Min Read</span></div></div></div></div></div></div><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/production/strategically-making-star-wars-zero-company-ft-greg-foertsch" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt55f6cfa89c8f3c97/6a99b1a0644fc53ff178b28e/GregFoertsch.png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt55f6cfa89c8f3c97/6a99b1a0644fc53ff178b28e/GregFoertsch.png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="A headshot of Bit Reactor CEO Greg Foertsch next to the Game Developer Podcast logo." title="A headshot of Bit Reactor CEO Greg Foertsch next to the Game Developer Podcast logo."/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_production ContentPreview-Category" href="/production" target="_self" data-discover="true">Production</a><a class="ContentPreview-IconWrapper" title="Link to all podcast" aria-label="Redirect to All page" data-testid="content-preview-icon-link" href="/podcasts" target="_self" data-discover="true"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Layer_1&#x27;%20fill=&#x27;currentColor&#x27;%20height=&#x27;512&#x27;%20viewBox=&#x27;0%200%20100%20100&#x27;%20width=&#x27;512&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cpath%20d=&#x27;m63.333%2023.333c0-7.363-5.97-13.333-13.333-13.333s-13.333%205.97-13.333%2013.333v20c0%207.364%205.97%2013.333%2013.333%2013.333s13.333-5.97%2013.333-13.333z&#x27;/%3e%3cpath%20d=&#x27;m70%2030v13.333c0%2011.045-8.955%2020-20%2020s-20-8.954-20-20v-13.333c-3.682%200-6.667%202.985-6.667%206.667v6.667c0%2014.726%2011.94%2026.666%2026.667%2026.666s26.667-11.94%2026.667-26.667v-6.667c0-3.681-2.985-6.666-6.667-6.666z&#x27;/%3e%3cpath%20d=&#x27;m60%2083.33v.003h-6.667v-6.666h-6.666v6.666h-6.667c-3.682%200-6.667%202.985-6.667%206.667l33.334-.003c0-3.682-2.985-6.667-6.667-6.667z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Layer_1&#x27;%20fill=&#x27;currentColor&#x27;%20height=&#x27;512&#x27;%20viewBox=&#x27;0%200%20100%20100&#x27;%20width=&#x27;512&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cpath%20d=&#x27;m63.333%2023.333c0-7.363-5.97-13.333-13.333-13.333s-13.333%205.97-13.333%2013.333v20c0%207.364%205.97%2013.333%2013.333%2013.333s13.333-5.97%2013.333-13.333z&#x27;/%3e%3cpath%20d=&#x27;m70%2030v13.333c0%2011.045-8.955%2020-20%2020s-20-8.954-20-20v-13.333c-3.682%200-6.667%202.985-6.667%206.667v6.667c0%2014.726%2011.94%2026.666%2026.667%2026.666s26.667-11.94%2026.667-26.667v-6.667c0-3.681-2.985-6.666-6.667-6.666z&#x27;/%3e%3cpath%20d=&#x27;m60%2083.33v.003h-6.667v-6.666h-6.666v6.666h-6.667c-3.682%200-6.667%202.985-6.667%206.667l33.334-.003c0-3.682-2.985-6.667-6.667-6.667z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Microphone" class="ContentPreview-Icon DefaultIcon"></span></a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/production/strategically-making-star-wars-zero-company-ft-greg-foertsch" target="_self" data-discover="true">Strategically making Star Wars Zero Company, ft. Greg Foertsch</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/production/strategically-making-star-wars-zero-company-ft-greg-foertsch" target="_self" data-discover="true">Strategically making Star Wars Zero Company, ft. Greg Foertsch</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/podcast" target="_self" data-discover="true">Game Developer Podcast</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Sep 4, 2026</span></div></div></div></div></div></div></div></div></div></div></div><div class="MainMenu-MenuItemWrapper"><div class="MainMenu-MenuItem" role="menuitem" tabindex="0" data-testid="openSubMenu" aria-label="Open Sub menu of Latest News"><span class="MainMenu-MainTitle">Latest News<span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z&#x27;%20transform=&#x27;translate(-9%20-11.76)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z&#x27;%20transform=&#x27;translate(-9%20-11.76)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="ChevronDown" class="MainMenu-SubMenuIcon DefaultIcon"></span></span></div><div class="MainMenu-SubMenuWrapper"><div class="MainMenu-SubMenuContent"><div data-module="sub-menu" class="SubMenu MainMenu-SubMenu" role="presentation"><div class="SubMenu-Container"><div class="SubMenu-RelatedTopicsWrapper"><h4 class="SubMenu-RelatedTopics">Related Topics</h4><div class="SubMenu-CasualLinkWrapper" data-testid="related"><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/series/patch-notes-newsletter" target="_self" data-discover="true">▫️ Weekly News Highlights</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/series/news-trending-story-deep-dives-column" target="_self" data-discover="true">▫️ News Deep Dives</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/about-the-game-developer-collective" target="_self" data-discover="true">▫️ GD Collective Research</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"><div class="SubMenu-RecentContentHeading"><h4 data-testid="recent-title" class="SubMenu-RecentText">Recent in <a class="SubMenu-RecentTopicTerm" href="/latest-news" target="_self" data-discover="true">Latest News</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/latest-news" target="_self" data-discover="true"><span class="SubMenu-SeeMoreText"></span><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z&#x27;%20transform=&#x27;translate(13)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z&#x27;%20transform=&#x27;translate(13)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="ChevronRight" class="SubMenu-SeeMoreIcon DefaultIcon"></span></a></div></div><div class="SubMenu-ContentWrapper"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/business/mark-cerny-and-geoff-keighley-launch-university-affiliated-fellowship-program" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt92ea441775e23e8b/6aa18297f7ad3d316b41b6fc/New_Project(36).png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt92ea441775e23e8b/6aa18297f7ad3d316b41b6fc/New_Project(36).png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="The Nova Games Foundation logo on a white background" title="The Nova Games Foundation logo on a white background"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_business ContentPreview-Category" href="/business" target="_self" data-discover="true">Business</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/business/mark-cerny-and-geoff-keighley-launch-university-affiliated-fellowship-program" target="_self" data-discover="true">Mark Cerny and Geoff Keighley launch university-affiliated fellowship program</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/business/mark-cerny-and-geoff-keighley-launch-university-affiliated-fellowship-program" target="_self" data-discover="true">Mark Cerny and Geoff Keighley launch university-affiliated fellowship program</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/diego-arguello" target="_self" data-discover="true">Diego Argüello</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Sep 9, 2026</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 Min Read</span></div></div></div></div></div></div><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/business/planet-zoo-maker-frontier-developments-adjusted-operating-profit-jumps-62-percent" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1ebafe3b4ee5bd88/6aa16c4198e0574aee49d7d4/planet_coaster.jpg?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1ebafe3b4ee5bd88/6aa16c4198e0574aee49d7d4/planet_coaster.jpg?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="A screenshot of Planet Coaster 2 showing a group of people with their hands up in the air on a rollercoaster" title="A screenshot of Planet Coaster 2 showing a group of people with their hands up in the air on a rollercoaster"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_business ContentPreview-Category" href="/business" target="_self" data-discover="true">Business</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/business/planet-zoo-maker-frontier-developments-adjusted-operating-profit-jumps-62-percent" target="_self" data-discover="true">Planet Zoo maker Frontier Developments' adjusted operating profit jumps 62 percent</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/business/planet-zoo-maker-frontier-developments-adjusted-operating-profit-jumps-62-percent" target="_self" data-discover="true">Planet Zoo maker Frontier Developments' adjusted operating profit jumps 62 percent</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/diego-arguello" target="_self" data-discover="true">Diego Argüello</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Sep 9, 2026</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">2 Min Read</span></div></div></div></div></div></div></div></div></div></div></div></div></div><div class="MainMenu-MenuItemWrapper"><div class="MainMenu-MenuItem" role="menuitem" tabindex="0" data-testid="openSubMenu" aria-label="Open Sub menu of [GDC]"><span class="MainMenu-MainTitle">[GDC]<span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z&#x27;%20transform=&#x27;translate(-9%20-11.76)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z&#x27;%20transform=&#x27;translate(-9%20-11.76)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="ChevronDown" class="MainMenu-SubMenuIcon DefaultIcon"></span></span></div><div class="MainMenu-SubMenuWrapper"><div class="MainMenu-SubMenuContent"><div data-module="sub-menu" class="SubMenu MainMenu-SubMenu" role="presentation"><div class="SubMenu-Container"><div class="SubMenu-RelatedTopicsWrapper"><h4 class="SubMenu-RelatedTopics">Related Topics</h4><div class="SubMenu-CasualLinkWrapper" data-testid="related"><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/gdc-festival-of-gaming" target="_self" data-discover="true">▫️ Talks &amp; Interviews</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" rel="noreferrer" target="_blank" href="https://gdconf.com/news-insights/">▫️ GDC News</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/series/unlocking-the-vault-gdc-vault-highlights-game-dev-tips" target="_self" data-discover="true">▫️ GDC Vault: Editor Picks</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" rel="noreferrer" target="_blank" href="https://www.gdconf.com">▫️ Register for GDC</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" rel="noreferrer" target="_blank" href="https://www.gdcvault.com">▫️ GDC Vault: Full Library </a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/state-of-the-game-industry-report" target="_self" data-discover="true">▫️ Dev Surveys, Data, &amp; Insights</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"><div class="SubMenu-RecentContentHeading"><h4 data-testid="recent-title" class="SubMenu-RecentText">Recent in <a class="SubMenu-RecentTopicTerm" href="/keyword/gdc-festival-of-gaming" target="_self" data-discover="true">[GDC]</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/keyword/gdc-festival-of-gaming" target="_self" data-discover="true"><span class="SubMenu-SeeMoreText">Learn More</span><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z&#x27;%20transform=&#x27;translate(13)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z&#x27;%20transform=&#x27;translate(13)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="ChevronRight" class="SubMenu-SeeMoreIcon DefaultIcon"></span></a></div></div><div class="SubMenu-ContentWrapper"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/business/riot-games-marc-merrill-says-company-is-considering-making-premium-games" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd91808b3cb9ad307/6aa075749d9ca61597ee4626/riotgamessignfeatured.jpg?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd91808b3cb9ad307/6aa075749d9ca61597ee4626/riotgamessignfeatured.jpg?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="The sign for Riot Games outside its Santa Monica headquarters." title="The sign for Riot Games outside its Santa Monica headquarters."/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_business ContentPreview-Category" href="/business" target="_self" data-discover="true">Business</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/business/riot-games-marc-merrill-says-company-is-considering-making-premium-games" target="_self" data-discover="true">Riot Games is considering making premium titles, says co-founder</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/business/riot-games-marc-merrill-says-company-is-considering-making-premium-games" target="_self" data-discover="true">Riot Games is considering making premium titles, says co-founder</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/bryant-francis" target="_self" data-discover="true">Bryant Francis</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Sep 8, 2026</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 Min Read</span></div></div></div></div></div></div><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/production/strategically-making-star-wars-zero-company-ft-greg-foertsch" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt55f6cfa89c8f3c97/6a99b1a0644fc53ff178b28e/GregFoertsch.png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt55f6cfa89c8f3c97/6a99b1a0644fc53ff178b28e/GregFoertsch.png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="A headshot of Bit Reactor CEO Greg Foertsch next to the Game Developer Podcast logo." title="A headshot of Bit Reactor CEO Greg Foertsch next to the Game Developer Podcast logo."/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_production ContentPreview-Category" href="/production" target="_self" data-discover="true">Production</a><a class="ContentPreview-IconWrapper" title="Link to all podcast" aria-label="Redirect to All page" data-testid="content-preview-icon-link" href="/podcasts" target="_self" data-discover="true"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Layer_1&#x27;%20fill=&#x27;currentColor&#x27;%20height=&#x27;512&#x27;%20viewBox=&#x27;0%200%20100%20100&#x27;%20width=&#x27;512&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cpath%20d=&#x27;m63.333%2023.333c0-7.363-5.97-13.333-13.333-13.333s-13.333%205.97-13.333%2013.333v20c0%207.364%205.97%2013.333%2013.333%2013.333s13.333-5.97%2013.333-13.333z&#x27;/%3e%3cpath%20d=&#x27;m70%2030v13.333c0%2011.045-8.955%2020-20%2020s-20-8.954-20-20v-13.333c-3.682%200-6.667%202.985-6.667%206.667v6.667c0%2014.726%2011.94%2026.666%2026.667%2026.666s26.667-11.94%2026.667-26.667v-6.667c0-3.681-2.985-6.666-6.667-6.666z&#x27;/%3e%3cpath%20d=&#x27;m60%2083.33v.003h-6.667v-6.666h-6.666v6.666h-6.667c-3.682%200-6.667%202.985-6.667%206.667l33.334-.003c0-3.682-2.985-6.667-6.667-6.667z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Layer_1&#x27;%20fill=&#x27;currentColor&#x27;%20height=&#x27;512&#x27;%20viewBox=&#x27;0%200%20100%20100&#x27;%20width=&#x27;512&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cpath%20d=&#x27;m63.333%2023.333c0-7.363-5.97-13.333-13.333-13.333s-13.333%205.97-13.333%2013.333v20c0%207.364%205.97%2013.333%2013.333%2013.333s13.333-5.97%2013.333-13.333z&#x27;/%3e%3cpath%20d=&#x27;m70%2030v13.333c0%2011.045-8.955%2020-20%2020s-20-8.954-20-20v-13.333c-3.682%200-6.667%202.985-6.667%206.667v6.667c0%2014.726%2011.94%2026.666%2026.667%2026.666s26.667-11.94%2026.667-26.667v-6.667c0-3.681-2.985-6.666-6.667-6.666z&#x27;/%3e%3cpath%20d=&#x27;m60%2083.33v.003h-6.667v-6.666h-6.666v6.666h-6.667c-3.682%200-6.667%202.985-6.667%206.667l33.334-.003c0-3.682-2.985-6.667-6.667-6.667z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Microphone" class="ContentPreview-Icon DefaultIcon"></span></a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/production/strategically-making-star-wars-zero-company-ft-greg-foertsch" target="_self" data-discover="true">Strategically making Star Wars Zero Company, ft. Greg Foertsch</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/production/strategically-making-star-wars-zero-company-ft-greg-foertsch" target="_self" data-discover="true">Strategically making Star Wars Zero Company, ft. Greg Foertsch</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/podcast" target="_self" data-discover="true">Game Developer Podcast</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Sep 4, 2026</span></div></div></div></div></div></div></div></div></div></div></div><div class="MainMenu-TitleWrapper"><a class="MainMenu-Title" href="/about-the-game-developer-podcast" target="_self" data-discover="true">Game Developer Podcast</a></div><div class="MainMenu-TitleWrapper"><a class="MainMenu-Title" href="/design" target="_self" data-discover="true">Game Design</a></div><div class="MainMenu-TitleWrapper"><a class="MainMenu-Title" href="/programming" target="_self" data-discover="true">Programming</a></div><div class="MainMenu-MenuItemWrapper"><div class="MainMenu-MenuItem" role="menuitem" tabindex="0" data-testid="openSubMenu" aria-label="Open Sub menu of More"><span class="MainMenu-MainTitle">More<span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z&#x27;%20transform=&#x27;translate(-9%20-11.76)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;21&#x27;%20height=&#x27;13&#x27;%20viewBox=&#x27;0%200%2021%2013&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z&#x27;%20transform=&#x27;translate(-9%20-11.76)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="ChevronDown" class="MainMenu-SubMenuIcon DefaultIcon"></span></span></div><div class="MainMenu-SubMenuWrapper"><div class="MainMenu-SubMenuContent"><div data-module="sub-menu" class="SubMenu MainMenu-SubMenu" role="presentation"><div class="SubMenu-Container"><div class="SubMenu-RelatedTopicsWrapper"><h4 class="SubMenu-RelatedTopics">Related Topics</h4><div class="SubMenu-CasualLinkWrapper" data-testid="related"><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/latest-interviews" target="_self" data-discover="true">▫️ Developer Interviews</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/latest-case-studies" target="_self" data-discover="true">▫️ Game Dev Deep Dives</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/postmortems" target="_self" data-discover="true">▫️ Video Game Postmortems</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/program/partner-perspective-unity" target="_self" data-discover="true">▫️ Partner Perspectives</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"><div class="SubMenu-RecentContentHeading"><h4 data-testid="recent-title" class="SubMenu-RecentText">Recent in <a class="SubMenu-RecentTopicTerm" href="/latest-interviews" target="_self" data-discover="true">More</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/latest-interviews" target="_self" data-discover="true"><span class="SubMenu-SeeMoreText">Read More</span><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z&#x27;%20transform=&#x27;translate(13)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z&#x27;%20transform=&#x27;translate(13)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="ChevronRight" class="SubMenu-SeeMoreIcon DefaultIcon"></span></a></div></div><div class="SubMenu-ContentWrapper"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/business/riot-games-marc-merrill-says-company-is-considering-making-premium-games" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd91808b3cb9ad307/6aa075749d9ca61597ee4626/riotgamessignfeatured.jpg?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd91808b3cb9ad307/6aa075749d9ca61597ee4626/riotgamessignfeatured.jpg?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="The sign for Riot Games outside its Santa Monica headquarters." title="The sign for Riot Games outside its Santa Monica headquarters."/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_business ContentPreview-Category" href="/business" target="_self" data-discover="true">Business</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/business/riot-games-marc-merrill-says-company-is-considering-making-premium-games" target="_self" data-discover="true">Riot Games is considering making premium titles, says co-founder</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/business/riot-games-marc-merrill-says-company-is-considering-making-premium-games" target="_self" data-discover="true">Riot Games is considering making premium titles, says co-founder</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/bryant-francis" target="_self" data-discover="true">Bryant Francis</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Sep 8, 2026</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 Min Read</span></div></div></div></div></div></div><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/production/strategically-making-star-wars-zero-company-ft-greg-foertsch" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt55f6cfa89c8f3c97/6a99b1a0644fc53ff178b28e/GregFoertsch.png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt55f6cfa89c8f3c97/6a99b1a0644fc53ff178b28e/GregFoertsch.png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="A headshot of Bit Reactor CEO Greg Foertsch next to the Game Developer Podcast logo." title="A headshot of Bit Reactor CEO Greg Foertsch next to the Game Developer Podcast logo."/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_production ContentPreview-Category" href="/production" target="_self" data-discover="true">Production</a><a class="ContentPreview-IconWrapper" title="Link to all podcast" aria-label="Redirect to All page" data-testid="content-preview-icon-link" href="/podcasts" target="_self" data-discover="true"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Layer_1&#x27;%20fill=&#x27;currentColor&#x27;%20height=&#x27;512&#x27;%20viewBox=&#x27;0%200%20100%20100&#x27;%20width=&#x27;512&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cpath%20d=&#x27;m63.333%2023.333c0-7.363-5.97-13.333-13.333-13.333s-13.333%205.97-13.333%2013.333v20c0%207.364%205.97%2013.333%2013.333%2013.333s13.333-5.97%2013.333-13.333z&#x27;/%3e%3cpath%20d=&#x27;m70%2030v13.333c0%2011.045-8.955%2020-20%2020s-20-8.954-20-20v-13.333c-3.682%200-6.667%202.985-6.667%206.667v6.667c0%2014.726%2011.94%2026.666%2026.667%2026.666s26.667-11.94%2026.667-26.667v-6.667c0-3.681-2.985-6.666-6.667-6.666z&#x27;/%3e%3cpath%20d=&#x27;m60%2083.33v.003h-6.667v-6.666h-6.666v6.666h-6.667c-3.682%200-6.667%202.985-6.667%206.667l33.334-.003c0-3.682-2.985-6.667-6.667-6.667z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Layer_1&#x27;%20fill=&#x27;currentColor&#x27;%20height=&#x27;512&#x27;%20viewBox=&#x27;0%200%20100%20100&#x27;%20width=&#x27;512&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cpath%20d=&#x27;m63.333%2023.333c0-7.363-5.97-13.333-13.333-13.333s-13.333%205.97-13.333%2013.333v20c0%207.364%205.97%2013.333%2013.333%2013.333s13.333-5.97%2013.333-13.333z&#x27;/%3e%3cpath%20d=&#x27;m70%2030v13.333c0%2011.045-8.955%2020-20%2020s-20-8.954-20-20v-13.333c-3.682%200-6.667%202.985-6.667%206.667v6.667c0%2014.726%2011.94%2026.666%2026.667%2026.666s26.667-11.94%2026.667-26.667v-6.667c0-3.681-2.985-6.666-6.667-6.666z&#x27;/%3e%3cpath%20d=&#x27;m60%2083.33v.003h-6.667v-6.666h-6.666v6.666h-6.667c-3.682%200-6.667%202.985-6.667%206.667l33.334-.003c0-3.682-2.985-6.667-6.667-6.667z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Microphone" class="ContentPreview-Icon DefaultIcon"></span></a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/production/strategically-making-star-wars-zero-company-ft-greg-foertsch" target="_self" data-discover="true">Strategically making Star Wars Zero Company, ft. Greg Foertsch</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/production/strategically-making-star-wars-zero-company-ft-greg-foertsch" target="_self" data-discover="true">Strategically making Star Wars Zero Company, ft. Greg Foertsch</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/podcast" target="_self" data-discover="true">Game Developer Podcast</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Sep 4, 2026</span></div></div></div></div></div></div></div></div></div></div></div></div><div class="MainMenu-SearchButtonWrapper"><button data-testid="mainMenu-SearchButton" aria-label="Open Search" class="MainMenu-SearchButton"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;20&#x27;%20height=&#x27;20.004&#x27;%20viewBox=&#x27;0%200%2020%2020.004&#x27;%3e%3cpath%20id=&#x27;Search&#x27;%20d=&#x27;M1223.785,115.394,1228,119.61,1226.612,121l-4.215-4.218a8.891,8.891,0,1,1,1.389-1.392Zm-1.969-.731a6.9,6.9,0,1,0-.148.148Z&#x27;%20transform=&#x27;translate(-1208%20-101)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;20&#x27;%20height=&#x27;20.004&#x27;%20viewBox=&#x27;0%200%2020%2020.004&#x27;%3e%3cpath%20id=&#x27;Search&#x27;%20d=&#x27;M1223.785,115.394,1228,119.61,1226.612,121l-4.215-4.218a8.891,8.891,0,1,1,1.389-1.392Zm-1.969-.731a6.9,6.9,0,1,0-.148.148Z&#x27;%20transform=&#x27;translate(-1208%20-101)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Search" class="MainMenu-SearchButtonIcon DefaultIcon"></span></button></div></div><div class="MainMenu-SearchWrapper"><div class="FullScreenBackground MainMenu-SearchBackground MainMenu-SearchBackground_withSearchBar"></div><button data-testid="mainMenu-SearchCloseButton" class="MainMenu-SearchCloseButton" aria-label="Close Search"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;18&#x27;%20viewBox=&#x27;0%200%2018%2018&#x27;%3e%3cpath%20id=&#x27;Icon_material-close&#x27;%20data-name=&#x27;Icon%20material-close&#x27;%20d=&#x27;M25.5,9.313,23.687,7.5,16.5,14.687,9.313,7.5,7.5,9.313,14.687,16.5,7.5,23.687,9.313,25.5,16.5,18.313,23.687,25.5,25.5,23.687,18.313,16.5Z&#x27;%20transform=&#x27;translate(-7.5%20-7.5)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;18&#x27;%20height=&#x27;18&#x27;%20viewBox=&#x27;0%200%2018%2018&#x27;%3e%3cpath%20id=&#x27;Icon_material-close&#x27;%20data-name=&#x27;Icon%20material-close&#x27;%20d=&#x27;M25.5,9.313,23.687,7.5,16.5,14.687,9.313,7.5,7.5,9.313,14.687,16.5,7.5,23.687,9.313,25.5,16.5,18.313,23.687,25.5,25.5,23.687,18.313,16.5Z&#x27;%20transform=&#x27;translate(-7.5%20-7.5)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Close" class="MainMenu-SearchCloseIcon DefaultIcon"></span></button></div></div></div></div></nav><section class="Layout-Section"><div id="iiris-identity" data-testid="iris-identity"></div><div data-template="keyword-list" class="KeywordList"><div data-template="list-content" class="ListContent"><div class="TwoColumnLayout"><div id="portal-root"></div><div class="TwoColumnLayout-Head"><div class="KeywordList-Head" data-testid="keyword-list-head"><ul data-component="breadcrumb" class="Breadcrumb"><li class="Breadcrumb-ListItem"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z&#x27;%20transform=&#x27;translate(24.76%20-9)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z&#x27;%20transform=&#x27;translate(24.76%20-9)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="ChevronLeft" class="Breadcrumb-DividerIcon Breadcrumb-PrevIcon DefaultIcon"></span><a class="Breadcrumb-GetText Breadcrumb-GetText_isNearLastItem" data-testid="breadcrumb-link" href="/" target="_self" data-discover="true">Home</a><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z&#x27;%20transform=&#x27;translate(13)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z&#x27;%20transform=&#x27;translate(13)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="ChevronRight" class="Breadcrumb-DividerIcon Breadcrumb-NextIcon DefaultIcon"></span></li><li class="Breadcrumb-ListItem"><a class="Breadcrumb-GetText Breadcrumb-GetText_isLastItem" data-testid="breadcrumb-link" href="/keyword/blogs" target="_self" data-discover="true">Blogs</a></li></ul><div data-module="category-header" class="CategoryHeader CategoryHeader_primaryTitle"><div class="CategoryHeader-TitleWrapper CategoryHeader-TitleWrapper_primaryTitle"><div class="CategoryHeader-TitleContent"><h1 class="CategoryHeader-Title CategoryHeader-Title_primary CategoryHeader-Title_underlined" data-testid="category-header-title">Blogs</h1></div></div><div class="CategoryHeader-DescriptionWrapper"><p class="CategoryHeader-Description" data-testid="category-header-description">Blogs</p></div></div></div></div><div class="TwoColumnLayout-Content"><div class="TwoColumnLayout-Body"><div class="ListContent-Body" data-testid="list-content-body"><div class="ListContent-Content ListContent-Content_latest"><div class="ListContent-ContentWrapper"><div class="ListContent-ContentContainer"><div class="ContentPreview ListContent-LatestItem" data-module="content-preview" data-variant="normal"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_normal ContentPreview-Wrapper_articleSize_big"><a data-testid="thumbnail" href="/business/doom-the-dark-ages-financial-fate-rests-on-a-parry-mechanic" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt29a087a5ab600184/681a6e95092833652bb51a11/doomparyblogfeatured.png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt29a087a5ab600184/681a6e95092833652bb51a11/doomparyblogfeatured.png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="The Doom Slayer stares at the camera." title="The Doom Slayer stares at the camera."/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_business ContentPreview-Category" href="/business" target="_self" data-discover="true">Business</a><div class="ContentCard"><div class="ContentCard-Body"><a class="ContentCard-Title ContentCard-Title_displayOption_default" data-testid="preview-default-title" href="/business/doom-the-dark-ages-financial-fate-rests-on-a-parry-mechanic" target="_self" data-discover="true">Doom: The Dark Ages' financial fate rests on a parry mechanic</a><a class="ContentCard-Title ContentCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/business/doom-the-dark-ages-financial-fate-rests-on-a-parry-mechanic" target="_self" data-discover="true">Doom: The Dark Ages' financial fate rests on a parry mechanic</a><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_normal" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/bryant-francis" target="_self" data-discover="true">Bryant Francis</a></div></div></div><div class="ContentCard-Footer"><span class="ContentCard-Date" data-testid="content-card-date">May 6, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">6 Min Read</span></div></div></div></div></div></div><div class="ContentPreview ListContent-LatestItem" data-module="content-preview" data-variant="normal"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_normal ContentPreview-Wrapper_articleSize_big"><a data-testid="thumbnail" href="/design/is-blue-prince-s-success-due-to-social-play-" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt834e20e36d7a0649/68093db3086eb5cf261918f1/blue_prince_darkroom_photo.jpg?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt834e20e36d7a0649/68093db3086eb5cf261918f1/blue_prince_darkroom_photo.jpg?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="A character portrait next to a note and magnifying glass" title="A character portrait next to a note and magnifying glass"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_design ContentPreview-Category" href="/design" target="_self" data-discover="true">Design</a><div class="ContentCard"><div class="ContentCard-Body"><a class="ContentCard-Title ContentCard-Title_displayOption_default" data-testid="preview-default-title" href="/design/is-blue-prince-s-success-due-to-social-play-" target="_self" data-discover="true">Is Blue Prince's success due to 'social play?'</a><a class="ContentCard-Title ContentCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/design/is-blue-prince-s-success-due-to-social-play-" target="_self" data-discover="true">Is Blue Prince's success due to 'social play?'</a><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_normal" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/danielle-riendeau" target="_self" data-discover="true">Danielle Riendeau</a></div></div></div><div class="ContentCard-Footer"><span class="ContentCard-Date" data-testid="content-card-date">Apr 25, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 Min Read</span></div></div></div></div></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem ListContent-ContentItem_borderless" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: A graphic with the word &quot;play&quot; in the center" class="ListPreview-ImageLink" href="/business/the-huge-hidden-web-game-market-no-one-talks-about-and-how-to-get-in-" target="_self" data-discover="true"><div title="A graphic with the word &quot;play&quot; in the center" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltfc68bfff3fcbeb0f/67f69a4b5d57d86222e2643b/Image_-_Header.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltfc68bfff3fcbeb0f/67f69a4b5d57d86222e2643b/Image_-_Header.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="A graphic with the word &quot;play&quot; in the center" title="A graphic with the word &quot;play&quot; in the center"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_business ListPreview-Keyword" href="/business" target="_self" data-discover="true">Business</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/business/the-huge-hidden-web-game-market-no-one-talks-about-and-how-to-get-in-" target="_self" data-discover="true">The huge, hidden web game market no one talks about (and how to get in)</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/the-huge-hidden-web-game-market-no-one-talks-about-and-how-to-get-in-" target="_self" data-discover="true">The huge, hidden web game market no one talks about (and how to get in)</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Apr 15, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">9 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Dmitry Kachmar" href="/author/dmitry-kachmar" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt120870265293d448/67f69a97f23d8a8aeb9c981d/Dmitry_Kachmar_Playgama_Headshot.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt120870265293d448/67f69a97f23d8a8aeb9c981d/Dmitry_Kachmar_Playgama_Headshot.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Dmitry Kachmar" title="Picture of Dmitry Kachmar"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/dmitry-kachmar" target="_self" data-discover="true">Dmitry Kachmar<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Founder</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: A trophy." class="ListPreview-ImageLink" href="/business/it-s-time-for-gaming-awards-to-rethink-the-strategy-sim-category" target="_self" data-discover="true"><div title="A trophy." class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltcb7aec5e34adbf9d/67f69201e8087a34593ed473/trophyfeatured.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltcb7aec5e34adbf9d/67f69201e8087a34593ed473/trophyfeatured.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="A trophy." title="A trophy."/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_business ListPreview-Keyword" href="/business" target="_self" data-discover="true">Business</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/business/it-s-time-for-gaming-awards-to-rethink-the-strategy-sim-category" target="_self" data-discover="true">It's time for gaming awards to rethink the strategy/sim category</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/it-s-time-for-gaming-awards-to-rethink-the-strategy-sim-category" target="_self" data-discover="true">It's time for gaming awards to rethink the strategy/sim category</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Apr 9, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">6 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Greg Foertsch" href="/author/greg-foertsch" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt55cc1ac6d2ccc802/67f692d4239d84575c6596e1/BitReactor_Office-82.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt55cc1ac6d2ccc802/67f692d4239d84575c6596e1/BitReactor_Office-82.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Greg Foertsch" title="Picture of Greg Foertsch"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/greg-foertsch" target="_self" data-discover="true">Greg Foertsch<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">CEO</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/production/a-developer-s-guide-to-effective-localization-in-unreal-engine" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt0ef35b851dea1766/677da0a4316bc621d370b71c/Wizard_of_Legend_2.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt0ef35b851dea1766/677da0a4316bc621d370b71c/Wizard_of_Legend_2.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_production ListPreview-Keyword" href="/production" target="_self" data-discover="true">Production</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/production/a-developer-s-guide-to-effective-localization-in-unreal-engine" target="_self" data-discover="true">A developer's guide to effective localization in Unreal Engine</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/production/a-developer-s-guide-to-effective-localization-in-unreal-engine" target="_self" data-discover="true">A developer's guide to effective localization in Unreal Engine</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jan 17, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">10 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Shayan Aminnezhad" href="/author/shayan-aminnezhad" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Shayan Aminnezhad" title="Picture of Shayan Aminnezhad"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/shayan-aminnezhad" target="_self" data-discover="true">Shayan Aminnezhad</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: underwater adventure images" class="ListPreview-ImageLink" href="/programming/save-the-saves" target="_self" data-discover="true"><div title="underwater adventure images" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd69a9f920f70b945/67881ec41c37bbbb7e2be55b/pingle_image.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd69a9f920f70b945/67881ec41c37bbbb7e2be55b/pingle_image.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="underwater adventure images" title="underwater adventure images"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_programming ListPreview-Keyword" href="/programming" target="_self" data-discover="true">Programming</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/programming/save-the-saves" target="_self" data-discover="true">Converting saves, a cross platform journey</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/programming/save-the-saves" target="_self" data-discover="true">Save the saves</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jan 15, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Oleksii Honcharov" href="/author/oleksii-honcharov" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Oleksii Honcharov" title="Picture of Oleksii Honcharov"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/oleksii-honcharov" target="_self" data-discover="true">Oleksii Honcharov</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/design/6-elements-of-visual-guidance" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltfe3db091b4851f10/677c3d5fe3dd24e4f8442198/pexels-monicore-134065.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltfe3db091b4851f10/677c3d5fe3dd24e4f8442198/pexels-monicore-134065.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_design ListPreview-Keyword" href="/design" target="_self" data-discover="true">Design</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/design/6-elements-of-visual-guidance" target="_self" data-discover="true">6 elements of visual guidance</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/design/6-elements-of-visual-guidance" target="_self" data-discover="true">6 elements of visual guidance</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jan 13, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">6 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Liu Xinyan" href="/author/liu-xinyan" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Liu Xinyan" title="Picture of Liu Xinyan"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/liu-xinyan" target="_self" data-discover="true">Liu Xinyan</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/business/valve-stakes-its-claim-to-pc-gaming-handhelds-with-steamos-s-arrival-on-lenovo-legion-go-s" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt88d4318d528a1cfb/677ed50dbf2d061c2a702fc6/Lenovo_Legion.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt88d4318d528a1cfb/677ed50dbf2d061c2a702fc6/Lenovo_Legion.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_business ListPreview-Keyword" href="/business" target="_self" data-discover="true">Business</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/business/valve-stakes-its-claim-to-pc-gaming-handhelds-with-steamos-s-arrival-on-lenovo-legion-go-s" target="_self" data-discover="true">Valve stakes its claim to PC gaming handhelds with SteamOS’s arrival on Lenovo Legion Go S</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/valve-stakes-its-claim-to-pc-gaming-handhelds-with-steamos-s-arrival-on-lenovo-legion-go-s" target="_self" data-discover="true">Valve stakes its claim to PC gaming handhelds with SteamOS’s arrival on Lenovo Legion Go S</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jan 9, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="James McWhirter" href="/author/james-mcwhirter" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf2b78e3136bc934a/65e0f3d8d12110040acc2c87/James_McWhirter_image_SL.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf2b78e3136bc934a/65e0f3d8d12110040acc2c87/James_McWhirter_image_SL.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of James McWhirter" title="Picture of James McWhirter"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/james-mcwhirter" target="_self" data-discover="true">James McWhirter<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Senior Analyst, Games</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/design/prince-of-persia-s-accessibility-is-inaccessible-to-some" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt92f40eeb9737e88d/677c3300827b1fbe14ab18e8/Prince_of_Persia_Accessibility.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt92f40eeb9737e88d/677c3300827b1fbe14ab18e8/Prince_of_Persia_Accessibility.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_design ListPreview-Keyword" href="/design" target="_self" data-discover="true">Design</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/design/prince-of-persia-s-accessibility-is-inaccessible-to-some" target="_self" data-discover="true">Prince of Persia's accessibility is inaccessible to some</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/design/prince-of-persia-s-accessibility-is-inaccessible-to-some" target="_self" data-discover="true">Prince of Persia's accessibility is inaccessible to some</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jan 8, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">7 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Josh Bycer" href="/author/josh-bycer" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt98434093b67825eb/650efd6139ff36eea344b067/bycerportrait.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt98434093b67825eb/650efd6139ff36eea344b067/bycerportrait.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Josh Bycer" title="Picture of Josh Bycer"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/josh-bycer" target="_self" data-discover="true">Josh Bycer<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Blogger</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/design/how-balance-can-affect-difficulty" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc9b7dff95a53de60/66b0f657593f06af462b936f/RESIZE_GD_Blogs_Header_RESIZE.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc9b7dff95a53de60/66b0f657593f06af462b936f/RESIZE_GD_Blogs_Header_RESIZE.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_design ListPreview-Keyword" href="/design" target="_self" data-discover="true">Design</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/design/how-balance-can-affect-difficulty" target="_self" data-discover="true">How balance can affect difficulty</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/design/how-balance-can-affect-difficulty" target="_self" data-discover="true">How balance can affect difficulty</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jan 7, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">8 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Arjun Wagle" href="/author/arjun-wagle" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Arjun Wagle" title="Picture of Arjun Wagle"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/arjun-wagle" target="_self" data-discover="true">Arjun Wagle</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/production/reflections-on-the-journey-of-publishing-everseeker-little-critters" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt5473164f35f05951/677c2a9b316bc66b9370b183/Everseeker_Little_Critters.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt5473164f35f05951/677c2a9b316bc66b9370b183/Everseeker_Little_Critters.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_production ListPreview-Keyword" href="/production" target="_self" data-discover="true">Production</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/production/reflections-on-the-journey-of-publishing-everseeker-little-critters" target="_self" data-discover="true">Reflections on the journey of publishing Everseeker: Little Critters</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/production/reflections-on-the-journey-of-publishing-everseeker-little-critters" target="_self" data-discover="true">Reflections on the journey of publishing Everseeker: Little Critters</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jan 7, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">9 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink Contributors-AvatarLink_isMultiple" aria-label="João Victor Kaian" href="/author/joao-victor-kaian" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of João Victor Kaian" title="Picture of João Victor Kaian"/></a><a class="Contributors-AvatarLink Contributors-AvatarLink_isMultiple" aria-label="Buscariol Maiettini" href="/author/buscariol-maiettini" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Buscariol Maiettini" title="Picture of Buscariol Maiettini"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName Contributors-ContributorName_showComma" data-testid="contributor-name" href="/author/joao-victor-kaian" target="_self" data-discover="true">João Victor Kaian<!-- -->,</a><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/buscariol-maiettini" target="_self" data-discover="true">Buscariol Maiettini</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/extended-reality/enhancing-experiences-through-scent-technological-integration-across-virtual-environments-entertainment-and-therapeutic-applications" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc9b7dff95a53de60/66b0f657593f06af462b936f/RESIZE_GD_Blogs_Header_RESIZE.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc9b7dff95a53de60/66b0f657593f06af462b936f/RESIZE_GD_Blogs_Header_RESIZE.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_extendedReality ListPreview-Keyword" href="/game-platforms/extended-reality" target="_self" data-discover="true">Extended Reality</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/extended-reality/enhancing-experiences-through-scent-technological-integration-across-virtual-environments-entertainment-and-therapeutic-applications" target="_self" data-discover="true">Enhancing experiences through scent: Technological integration across virtual environments, entertainment, and therapeutic applications</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/extended-reality/enhancing-experiences-through-scent-technological-integration-across-virtual-environments-entertainment-and-therapeutic-applications" target="_self" data-discover="true">Enhancing experiences through scent: Technological integration across virtual environments, entertainment, and therapeutic applications</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jan 6, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Prateek Polapally" href="/author/prateek-polapally" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Prateek Polapally" title="Picture of Prateek Polapally"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/prateek-polapally" target="_self" data-discover="true">Prateek Polapally</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem ListContent-ContentItem_borderless" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/business/reality-check-for-vr-omdia-forecasts-decline-as-apple-s-entry-fails-to-galvanize-market" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf82b50e29f603d48/676470f60879222a87db12d7/Apple_Vision_Pro.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf82b50e29f603d48/676470f60879222a87db12d7/Apple_Vision_Pro.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_business ListPreview-Keyword" href="/business" target="_self" data-discover="true">Business</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/business/reality-check-for-vr-omdia-forecasts-decline-as-apple-s-entry-fails-to-galvanize-market" target="_self" data-discover="true">Reality check for VR: Omdia forecasts decline as Apple’s entry fails to galvanize market</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/reality-check-for-vr-omdia-forecasts-decline-as-apple-s-entry-fails-to-galvanize-market" target="_self" data-discover="true">Reality check for VR: Omdia forecasts decline as Apple’s entry fails to galvanize market</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Dec 20, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="George Jijiashvili" href="/author/george-jijiashvili" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8c4d643639302af6/65088a9fa2e641425e443627/George_Jijiashvili.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8c4d643639302af6/65088a9fa2e641425e443627/George_Jijiashvili.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of George Jijiashvili" title="Picture of George Jijiashvili"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/george-jijiashvili" target="_self" data-discover="true">George Jijiashvili<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Senior Principal Analyst, Games</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/art/death-to-all-zombies-crafting-weapons-for-zombie-state" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltcf09a2794423bf81/675c638e32c9f19ad93ac90c/image001.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltcf09a2794423bf81/675c638e32c9f19ad93ac90c/image001.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_art ListPreview-Keyword" href="/art" target="_self" data-discover="true">Art</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/art/death-to-all-zombies-crafting-weapons-for-zombie-state" target="_self" data-discover="true">Death to all zombies: crafting weapons for Zombie State</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/art/death-to-all-zombies-crafting-weapons-for-zombie-state" target="_self" data-discover="true">Death to all zombies: crafting weapons for Zombie State</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Dec 18, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">17 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Denis Pozdnyakov" href="/author/untitled" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Denis Pozdnyakov" title="Picture of Denis Pozdnyakov"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/untitled" target="_self" data-discover="true">Denis Pozdnyakov</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/design/game-developer-s-2024-wrap-up-10-must-read-featured-blogs" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt6c2266ea7220dd97/6765b68cbee97250a3ed6574/Game_Developer_Best_Featured_Blogs_2024.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt6c2266ea7220dd97/6765b68cbee97250a3ed6574/Game_Developer_Best_Featured_Blogs_2024.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_design ListPreview-Keyword" href="/design" target="_self" data-discover="true">Design</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/design/game-developer-s-2024-wrap-up-10-must-read-featured-blogs" target="_self" data-discover="true">Game Developer's 2024 Wrap-Up: 10 must-read Featured Blogs</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/design/game-developer-s-2024-wrap-up-10-must-read-featured-blogs" target="_self" data-discover="true">Game Developer's 2024 Wrap-Up: 10 must-read Featured Blogs</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Dec 17, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">10 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Holly Green" href="/author/holly-green" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltdec6f50070a70555/650f059f457d12263163b2ca/75258562_10220983058707614_8585122828469141504_n.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltdec6f50070a70555/650f059f457d12263163b2ca/75258562_10220983058707614_8585122828469141504_n.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Holly Green" title="Picture of Holly Green"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/holly-green" target="_self" data-discover="true">Holly Green<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Community Editorial Coordinator</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/business/microsoft-is-not-ready-to-deprioritize-xbox-consoles" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt5964c2ff9d771f86/6758a9b10ebbee9e364afedc/TIAX.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt5964c2ff9d771f86/6758a9b10ebbee9e364afedc/TIAX.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_business ListPreview-Keyword" href="/business" target="_self" data-discover="true">Business</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/business/microsoft-is-not-ready-to-deprioritize-xbox-consoles" target="_self" data-discover="true">Microsoft is not ready to deprioritize Xbox consoles</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/microsoft-is-not-ready-to-deprioritize-xbox-consoles" target="_self" data-discover="true">Microsoft is not ready to deprioritize Xbox consoles</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Dec 13, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">6 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="James McWhirter" href="/author/james-mcwhirter" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf2b78e3136bc934a/65e0f3d8d12110040acc2c87/James_McWhirter_image_SL.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf2b78e3136bc934a/65e0f3d8d12110040acc2c87/James_McWhirter_image_SL.png?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of James McWhirter" title="Picture of James McWhirter"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/james-mcwhirter" target="_self" data-discover="true">James McWhirter<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Senior Analyst, Games</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/design/how-to-create-a-fair-auto-aiming-system-in-a-robot-shooter-" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltbb6f9b28881c65e5/6753208a424b7db0d7b05210/image01.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltbb6f9b28881c65e5/6753208a424b7db0d7b05210/image01.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_design ListPreview-Keyword" href="/design" target="_self" data-discover="true">Design</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/design/how-to-create-a-fair-auto-aiming-system-in-a-robot-shooter-" target="_self" data-discover="true">How to create a 'fair' auto-aiming system in a robot shooter</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/design/how-to-create-a-fair-auto-aiming-system-in-a-robot-shooter-" target="_self" data-discover="true">How to create a 'fair' auto-aiming system in a robot shooter</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Dec 10, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">10 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Kirill Sharikov" href="/author/kirill-sharikov" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Kirill Sharikov" title="Picture of Kirill Sharikov"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/kirill-sharikov" target="_self" data-discover="true">Kirill Sharikov</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/programming/6-steps-to-a-successful-playtesting-process-for-an-indie-developer" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc1abc82bc4098a66/6751dd7c47226c7aa696d7e5/Pic1.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc1abc82bc4098a66/6751dd7c47226c7aa696d7e5/Pic1.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_programming ListPreview-Keyword" href="/programming" target="_self" data-discover="true">Programming</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/programming/6-steps-to-a-successful-playtesting-process-for-an-indie-developer" target="_self" data-discover="true">6 steps to a successful playtesting process for an indie developer</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/programming/6-steps-to-a-successful-playtesting-process-for-an-indie-developer" target="_self" data-discover="true">6 steps to a successful playtesting process for an indie developer</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Dec 9, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">10 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Maxim Kiselev" href="/author/maxim-kiselev" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Maxim Kiselev" title="Picture of Maxim Kiselev"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/maxim-kiselev" target="_self" data-discover="true">Maxim Kiselev</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/business/mastering-hybrid-casual-game-design-lessons-in-balancing-depth-and-accessibility" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3a4e6e02a38d453d/675b21c5f38e1a9208bbbba4/header_image.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3a4e6e02a38d453d/675b21c5f38e1a9208bbbba4/header_image.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_business ListPreview-Keyword" href="/business" target="_self" data-discover="true">Business</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/business/mastering-hybrid-casual-game-design-lessons-in-balancing-depth-and-accessibility" target="_self" data-discover="true">Mastering hybrid-casual game design: Lessons in balancing depth and accessibility</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/mastering-hybrid-casual-game-design-lessons-in-balancing-depth-and-accessibility" target="_self" data-discover="true">Mastering hybrid-casual game design: Lessons in balancing depth and accessibility</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Dec 6, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">7 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Anton Volnykh" href="/author/anton-volnykh" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Anton Volnykh" title="Picture of Anton Volnykh"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/anton-volnykh" target="_self" data-discover="true">Anton Volnykh</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/business/the-last-humble-bee-postmortem-staying-sane-in-solo-development" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltdfbed1bf39f8655c/674de2bbbeae623ba2080382/The_Last_Humble_Bee.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltdfbed1bf39f8655c/674de2bbbeae623ba2080382/The_Last_Humble_Bee.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_business ListPreview-Keyword" href="/business" target="_self" data-discover="true">Business</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/business/the-last-humble-bee-postmortem-staying-sane-in-solo-development" target="_self" data-discover="true">The Last Humble Bee postmortem: Staying sane in solo development</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/the-last-humble-bee-postmortem-staying-sane-in-solo-development" target="_self" data-discover="true">The Last Humble Bee postmortem: Staying sane in solo development</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Dec 5, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">10 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Jacob Weersing" href="/author/jacob-weersing" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Jacob Weersing" title="Picture of Jacob Weersing"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/jacob-weersing" target="_self" data-discover="true">Jacob Weersing<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Blogger</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/business/gnarly-content-9-risks-for-horror-game-development" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt5f04c90e1430ce0a/674de0f2a5326dc6edc4ea7a/ENd_of_Ember.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt5f04c90e1430ce0a/674de0f2a5326dc6edc4ea7a/ENd_of_Ember.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_business ListPreview-Keyword" href="/business" target="_self" data-discover="true">Business</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/business/gnarly-content-9-risks-for-horror-game-development" target="_self" data-discover="true">Gnarly content: 9 risks for horror game development</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/gnarly-content-9-risks-for-horror-game-development" target="_self" data-discover="true">Gnarly content: 9 risks for horror game development</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Dec 4, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">8 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Chad Habel" href="/author/untitled" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Chad Habel" title="Picture of Chad Habel"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/untitled" target="_self" data-discover="true">Chad Habel</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/design/how-to-play-a-game-" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd928f16f09e68571/6749d48ed80094747c893c31/coverimage.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd928f16f09e68571/6749d48ed80094747c893c31/coverimage.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_design ListPreview-Keyword" href="/design" target="_self" data-discover="true">Design</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/design/how-to-play-a-game-" target="_self" data-discover="true">How to play a game if you want to learn about making one</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/design/how-to-play-a-game-" target="_self" data-discover="true">How to play a game if you want to learn about making one</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Dec 3, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">7 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Ishan Manjrekar" href="/author/untitled" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Ishan Manjrekar" title="Picture of Ishan Manjrekar"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/untitled" target="_self" data-discover="true">Ishan Manjrekar</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem ListContent-ContentItem_borderless" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: an icy landscape and giant dice" class="ListPreview-ImageLink" href="/marketing/the-art-of-balance-in-community-management" target="_self" data-discover="true"><div title="an icy landscape and giant dice" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc3c0575110392521/6749d30cd2ab322257f7c41a/Midjiwan_Community_Byline_Featured_Image.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc3c0575110392521/6749d30cd2ab322257f7c41a/Midjiwan_Community_Byline_Featured_Image.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="an icy landscape and giant dice" title="an icy landscape and giant dice"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_marketing ListPreview-Keyword" href="/marketing" target="_self" data-discover="true">Marketing</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/marketing/the-art-of-balance-in-community-management" target="_self" data-discover="true">The art of balance in community management</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/marketing/the-art-of-balance-in-community-management" target="_self" data-discover="true">The art of balance in community management</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Dec 2, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Brenton Stockwell" href="/author/untitled" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Brenton Stockwell" title="Picture of Brenton Stockwell"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/untitled" target="_self" data-discover="true">Brenton Stockwell</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/production/survival-guide-to-develop-a-game-and-then-publish-it-on-steam-" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt0f223aa82c800eec/673f549ba3cfe714219a4409/Header_Everdark.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt0f223aa82c800eec/673f549ba3cfe714219a4409/Header_Everdark.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_production ListPreview-Keyword" href="/production" target="_self" data-discover="true">Production</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/production/survival-guide-to-develop-a-game-and-then-publish-it-on-steam-" target="_self" data-discover="true">Survival guide to developing a game and publishing it on Steam</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/production/survival-guide-to-develop-a-game-and-then-publish-it-on-steam-" target="_self" data-discover="true">Survival guide to developing a game and publishing it on Steam</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Nov 27, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">7 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Miguel Enjuto Ojanguren" href="/author/untitled" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Miguel Enjuto Ojanguren" title="Picture of Miguel Enjuto Ojanguren"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/untitled" target="_self" data-discover="true">Miguel Enjuto Ojanguren</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: game icons on a factory belt" class="ListPreview-ImageLink" href="/design/why-you-can-t-objectively-design-the-perfect-game" target="_self" data-discover="true"><div title="game icons on a factory belt" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt75aa64b424613e76/67460047a659b01f9c28af7d/synthetic_games.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt75aa64b424613e76/67460047a659b01f9c28af7d/synthetic_games.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="game icons on a factory belt" title="game icons on a factory belt"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_design ListPreview-Keyword" href="/design" target="_self" data-discover="true">Design</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/design/why-you-can-t-objectively-design-the-perfect-game" target="_self" data-discover="true">Why you can't objectively build great games</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/design/why-you-can-t-objectively-design-the-perfect-game" target="_self" data-discover="true">Why you can't objectively build great games</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Nov 25, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">7 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Josh Bycer" href="/author/josh-bycer" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt98434093b67825eb/650efd6139ff36eea344b067/bycerportrait.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt98434093b67825eb/650efd6139ff36eea344b067/bycerportrait.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Josh Bycer" title="Picture of Josh Bycer"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/josh-bycer" target="_self" data-discover="true">Josh Bycer<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Blogger</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/programming/how-wall-running-and-high-speed-movement-works-in-project-haste" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt592378c12ebcf88b/673f58f3a45977cf34f3d05a/Greg_(1).png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt592378c12ebcf88b/673f58f3a45977cf34f3d05a/Greg_(1).png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_programming ListPreview-Keyword" href="/programming" target="_self" data-discover="true">Programming</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/programming/how-wall-running-and-high-speed-movement-works-in-project-haste" target="_self" data-discover="true">How wall running and high-speed movement works in Project: Haste</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/programming/how-wall-running-and-high-speed-movement-works-in-project-haste" target="_self" data-discover="true">How wall running and high-speed movement works in Project: Haste</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Nov 22, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">7 Min Read</span></div></div></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/production/10-lessons-learned-from-the-development-of-nikoderiko" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt5bc27479f52b6c81/673f870ce2b6b1c33987b30e/1.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt5bc27479f52b6c81/673f870ce2b6b1c33987b30e/1.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_production ListPreview-Keyword" href="/production" target="_self" data-discover="true">Production</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/production/10-lessons-learned-from-the-development-of-nikoderiko" target="_self" data-discover="true">10 lessons learned from the development of Nikoderiko</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/production/10-lessons-learned-from-the-development-of-nikoderiko" target="_self" data-discover="true">10 lessons learned from the development of Nikoderiko</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Nov 21, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">6 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Dmitry Smirnov" href="/author/dmitry-smirnov" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Dmitry Smirnov" title="Picture of Dmitry Smirnov"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/dmitry-smirnov" target="_self" data-discover="true">Dmitry Smirnov</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/audio/how-to-record-a-giant-mech-recording-sound-design-with-war-robots" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf525b41c67c3e7f5/673e52c60f3226cb6479b0b2/gdfb_fullsize_test.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf525b41c67c3e7f5/673e52c60f3226cb6479b0b2/gdfb_fullsize_test.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_audio ListPreview-Keyword" href="/audio" target="_self" data-discover="true">Audio</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/audio/how-to-record-a-giant-mech-recording-sound-design-with-war-robots" target="_self" data-discover="true">How to record a giant mech: Recording sound design with War Robots</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/audio/how-to-record-a-giant-mech-recording-sound-design-with-war-robots" target="_self" data-discover="true">How to record a giant mech: Recording sound design with War Robots</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Nov 20, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">8 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Ilya Viktorov" href="/author/ilya-viktorov" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Ilya Viktorov" title="Picture of Ilya Viktorov"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/ilya-viktorov" target="_self" data-discover="true">Ilya Viktorov</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/production/reviving-retro-the-art-and-science-of-recharging-atari-s-classic-games-for-modern-audiences" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltfcf53681e45b9768/673775407a0f437391091a2d/Hero_image.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltfcf53681e45b9768/673775407a0f437391091a2d/Hero_image.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_production ListPreview-Keyword" href="/production" target="_self" data-discover="true">Production</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/production/reviving-retro-the-art-and-science-of-recharging-atari-s-classic-games-for-modern-audiences" target="_self" data-discover="true">Reviving retro: the art and science of recharging Atari’s classic games for modern audiences</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/production/reviving-retro-the-art-and-science-of-recharging-atari-s-classic-games-for-modern-audiences" target="_self" data-discover="true">Reviving retro: the art and science of recharging Atari’s classic games for modern audiences</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Nov 18, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">15 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Augustas Vachauzas" href="/author/untitled" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Augustas Vachauzas" title="Picture of Augustas Vachauzas"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/untitled" target="_self" data-discover="true">Augustas Vachauzas</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/design/the-art-of-game-balance-evolution" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltdc3edf6006df457b/67324dcc234a34327e8ff50f/Scales.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltdc3edf6006df457b/67324dcc234a34327e8ff50f/Scales.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_design ListPreview-Keyword" href="/design" target="_self" data-discover="true">Design</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/design/the-art-of-game-balance-evolution" target="_self" data-discover="true">The art of game balance: evolution</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/design/the-art-of-game-balance-evolution" target="_self" data-discover="true">The art of game balance: evolution</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Nov 18, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">7 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Breno Azevedo" href="/author/breno-azevedo" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Breno Azevedo" title="Picture of Breno Azevedo"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/breno-azevedo" target="_self" data-discover="true">Breno Azevedo</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/production/i-designed-economies-for-150m-games-here-s-my-ultimate-handbook" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blte50972fdeed355f2/67323006df2e42a1b2b398a8/img1.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blte50972fdeed355f2/67323006df2e42a1b2b398a8/img1.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_production ListPreview-Keyword" href="/production" target="_self" data-discover="true">Production</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/production/i-designed-economies-for-150m-games-here-s-my-ultimate-handbook" target="_self" data-discover="true">I designed economies for $150M games: here's my ultimate handbook</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/production/i-designed-economies-for-150m-games-here-s-my-ultimate-handbook" target="_self" data-discover="true">I designed economies for $150M games: here's my ultimate handbook</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Nov 15, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">1h 26m Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Alex Wiserax" href="/author/alex-wiserax" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Alex Wiserax" title="Picture of Alex Wiserax"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/alex-wiserax" target="_self" data-discover="true">Alex Wiserax</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/design/bringing-improvisation-to-digital-games-with-genai" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc9b7dff95a53de60/66b0f657593f06af462b936f/RESIZE_GD_Blogs_Header_RESIZE.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc9b7dff95a53de60/66b0f657593f06af462b936f/RESIZE_GD_Blogs_Header_RESIZE.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_design ListPreview-Keyword" href="/design" target="_self" data-discover="true">Design</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/design/bringing-improvisation-to-digital-games-with-genai" target="_self" data-discover="true">Bringing improvisation to digital games with GenAI</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/design/bringing-improvisation-to-digital-games-with-genai" target="_self" data-discover="true">Bringing improvisation to digital games with GenAI</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Nov 14, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">8 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Michael Yichao" href="/author/-title" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Michael Yichao" title="Picture of Michael Yichao"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/-title" target="_self" data-discover="true">Michael Yichao</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/audio/reflections-on-my-score-for-tactical-breach-wizards" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt7eada1366ade2416/6734de4921914346f5dc7c6d/Tactical_Breach_Wizards.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt7eada1366ade2416/6734de4921914346f5dc7c6d/Tactical_Breach_Wizards.jpg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_audio ListPreview-Keyword" href="/audio" target="_self" data-discover="true">Audio</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/audio/reflections-on-my-score-for-tactical-breach-wizards" target="_self" data-discover="true">Reflections on my score for Tactical Breach Wizards</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/audio/reflections-on-my-score-for-tactical-breach-wizards" target="_self" data-discover="true">Reflections on my score for Tactical Breach Wizards</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Nov 13, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">5 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Robert Arzola" href="/author/-title" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Robert Arzola" title="Picture of Robert Arzola"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/-title" target="_self" data-discover="true">Robert Arzola</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/design/must-have-tools-and-libraries-for-indie-game-developers-in-2024" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltdf8a1a742cc4a912/673236419d70b8d5ad06deaa/AdobeStock_615906569.jpeg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltdf8a1a742cc4a912/673236419d70b8d5ad06deaa/AdobeStock_615906569.jpeg?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_design ListPreview-Keyword" href="/design" target="_self" data-discover="true">Design</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/design/must-have-tools-and-libraries-for-indie-game-developers-in-2024" target="_self" data-discover="true">Must-have tools and libraries for indie game developers in 2024</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/design/must-have-tools-and-libraries-for-indie-game-developers-in-2024" target="_self" data-discover="true">Must-have tools and libraries for indie game developers in 2024</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Nov 11, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">9 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Maxim Kiselev" href="/author/maxim-kiselev" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Maxim Kiselev" title="Picture of Maxim Kiselev"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/maxim-kiselev" target="_self" data-discover="true">Maxim Kiselev</a></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " class="ListPreview-ImageLink" href="/design/the-overdesign-trap-of-game-design" target="_self" data-discover="true"><div title="" class="ListPreview-ImageContainer"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltcbd718b7be12d37c/6720fe5021f0d3bcd01b1459/Picture2.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltcbd718b7be12d37c/6720fe5021f0d3bcd01b1459/Picture2.png?width=300&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_design ListPreview-Keyword" href="/design" target="_self" data-discover="true">Design</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/design/the-overdesign-trap-of-game-design" target="_self" data-discover="true">The overdesign trap of game design</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/design/the-overdesign-trap-of-game-design" target="_self" data-discover="true">The overdesign trap of game design</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Nov 4, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">6 Min Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="Josh Bycer" href="/author/josh-bycer" target="_self" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt98434093b67825eb/650efd6139ff36eea344b067/bycerportrait.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt98434093b67825eb/650efd6139ff36eea344b067/bycerportrait.jpg?width=100&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Picture of Josh Bycer" title="Picture of Josh Bycer"/></a></div><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/josh-bycer" target="_self" data-discover="true">Josh Bycer<!-- -->,</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">Blogger</span></div></div></div></div></div><nav aria-label="Pagination Navigation" data-component="pagination" class="ListContent-Pagination"><ul class="Pagination-Wrapper"><li><a tabindex="-1" aria-label="Cannot go to Previous page" class="Pagination-Link Pagination-Link_disabled" href="/keyword/blogs" target="_self" data-discover="true"><span class="Pagination-PageWrapper"><span class="Pagination-ArrowIconWrapper Pagination-ArrowIconWrapper_disabled"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;11.959&#x27;%20height=&#x27;12&#x27;%20viewBox=&#x27;0%200%2011.959%2012&#x27;%3e%3cg%20id=&#x27;arrow_icon&#x27;%20data-name=&#x27;arrow%20icon&#x27;%20transform=&#x27;translate(11.959%2012)%20rotate(180)&#x27;%3e%3cpath%20id=&#x27;arrow_icon-2&#x27;%20data-name=&#x27;arrow%20icon&#x27;%20d=&#x27;M13431.958,1289l-6.358,6-1.531-1.512,4.017-3.472H13420v-2.033h7.979l-3.91-3.475,1.63-1.507Z&#x27;%20transform=&#x27;translate(-13419.999%20-1283)&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;11.959&#x27;%20height=&#x27;12&#x27;%20viewBox=&#x27;0%200%2011.959%2012&#x27;%3e%3cg%20id=&#x27;arrow_icon&#x27;%20data-name=&#x27;arrow%20icon&#x27;%20transform=&#x27;translate(11.959%2012)%20rotate(180)&#x27;%3e%3cpath%20id=&#x27;arrow_icon-2&#x27;%20data-name=&#x27;arrow%20icon&#x27;%20d=&#x27;M13431.958,1289l-6.358,6-1.531-1.512,4.017-3.472H13420v-2.033h7.979l-3.91-3.475,1.63-1.507Z&#x27;%20transform=&#x27;translate(-13419.999%20-1283)&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="ArrowLeft" class="Pagination-ArrowIcon Pagination-ArrowIcon_disabled DefaultIcon"></span></span><span data-testid="labelText" class="Pagination-Move">Previous</span></span></a></li><li><a tabindex="-1" aria-label="Current page, page 1" class="Pagination-PageNumber Pagination-PageNumber_current" href="/keyword/blogs" target="_self" data-discover="true">1</a></li><li><a tabindex="0" aria-label="Go to page 2" class="Pagination-PageNumber" href="/keyword/blogs?page=2" target="_self" data-discover="true">2</a></li><li><a tabindex="0" aria-label="Go to page 3" class="Pagination-PageNumber" href="/keyword/blogs?page=3" target="_self" data-discover="true">3</a></li><li><a tabindex="0" aria-label="Go to page 4" class="Pagination-PageNumber" href="/keyword/blogs?page=4" target="_self" data-discover="true">4</a></li><li><a tabindex="0" aria-label="Go to page 5" class="Pagination-PageNumber" href="/keyword/blogs?page=5" target="_self" data-discover="true">5</a></li><li class="Pagination-Dots">…</li><li><a tabindex="0" aria-label="Go to page 362" class="Pagination-PageNumber Pagination-PageNumber_desktop" href="/keyword/blogs?page=362" target="_self" data-discover="true">362</a></li><li><a tabindex="0" aria-label="Go to Next page 2" class="Pagination-Link" href="/keyword/blogs?page=2" target="_self" data-discover="true"><span class="Pagination-PageWrapper"><span data-testid="labelText" class="Pagination-Move">Next</span><span class="Pagination-ArrowIconWrapper"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;11.959&#x27;%20height=&#x27;12&#x27;%20viewBox=&#x27;0%200%2011.959%2012&#x27;%3e%3cg%20id=&#x27;arrow_icon&#x27;%20data-name=&#x27;arrow%20icon&#x27;%20transform=&#x27;translate(0%200)&#x27;%3e%3cpath%20id=&#x27;arrow_icon-2&#x27;%20data-name=&#x27;arrow%20icon&#x27;%20d=&#x27;M13431.958,1289l-6.358,6-1.531-1.512,4.017-3.472H13420v-2.033h7.979l-3.91-3.475,1.63-1.507Z&#x27;%20transform=&#x27;translate(-13419.999%20-1283)&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;11.959&#x27;%20height=&#x27;12&#x27;%20viewBox=&#x27;0%200%2011.959%2012&#x27;%3e%3cg%20id=&#x27;arrow_icon&#x27;%20data-name=&#x27;arrow%20icon&#x27;%20transform=&#x27;translate(0%200)&#x27;%3e%3cpath%20id=&#x27;arrow_icon-2&#x27;%20data-name=&#x27;arrow%20icon&#x27;%20d=&#x27;M13431.958,1289l-6.358,6-1.531-1.512,4.017-3.472H13420v-2.033h7.979l-3.91-3.475,1.63-1.507Z&#x27;%20transform=&#x27;translate(-13419.999%20-1283)&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="ArrowRight" class="Pagination-ArrowIcon DefaultIcon"></span></span></span></a></li></ul></nav></div></div><div class="TwoColumnLayout-Sidebar"><div class="Sidebar" data-module="sidebar"><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-module="content-cards" class="ContentCards ContentCards_sidebar"><div class="ContentCards-CardsWrapper ContentCards-CardsWrapper_column"><div class="ContentCards-Header ContentCards-Header_column" data-testid="content-cards-header"><h3 class="ContentCards-Title" data-testid="contentCardsTitle">Latest News</h3><a class="ContentCards-Link" data-testid="content-card-link" href="/latest-news" target="_self" data-discover="true"><span class="ContentCards-LinkText" data-testid="contentCardsBreadcrumbsLinkTitle">More News</span><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z&#x27;%20transform=&#x27;translate(13)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z&#x27;%20transform=&#x27;translate(13)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="ChevronRight" class="ContentCards-LinkIcon DefaultIcon"></span></a></div><div class="ContentCards-Content ContentCards-Content_column"><div class="ContentCards-ContentPreview ContentCards-ContentPreview_column" data-testid="content-preview-column"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/business/mark-cerny-and-geoff-keighley-launch-university-affiliated-fellowship-program" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt92ea441775e23e8b/6aa18297f7ad3d316b41b6fc/New_Project(36).png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt92ea441775e23e8b/6aa18297f7ad3d316b41b6fc/New_Project(36).png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="The Nova Games Foundation logo on a white background" title="The Nova Games Foundation logo on a white background"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_business ContentPreview-Category" href="/business" target="_self" data-discover="true">Business</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/business/mark-cerny-and-geoff-keighley-launch-university-affiliated-fellowship-program" target="_self" data-discover="true">Mark Cerny and Geoff Keighley launch university-affiliated fellowship program</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/business/mark-cerny-and-geoff-keighley-launch-university-affiliated-fellowship-program" target="_self" data-discover="true">Mark Cerny and Geoff Keighley launch university-affiliated fellowship program</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/diego-arguello" target="_self" data-discover="true">Diego Argüello</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Sep 9, 2026</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 Min Read</span></div></div></div></div></div></div></div></div></div></div></div><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-module="newsletter-signup-promo"><div class="SubscribeBanner SubscribeBanner_mode_dark SubscribeBanner_variant_horizontal_sidebar"><div class="SubscribeBanner-Wrapper"><div class="SubscribeBanner-Title" data-testid="subscribeBanner_title">Keep up with the latest News, Interviews, and Talk Coverage from GDC Festival of Gaming right here on Game Developer</div><div class="SubscribeBanner-Message" data-testid="subscribeBanner_message"></div><div class="SubscribeBanner-Button"><a data-component="button" data-testid="bannerNewsletterbutton" class="Button Button_size_medium Button_variant_secondaryFilled" data-action-type="sign-up" data-name="subscribe-banner" href="/keyword/gdc-festival-of-gaming" target="_self" data-discover="true"><span class="Button-ContentWrapper">READ ON</span></a></div></div></div></div></div><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-component="content-list" class="ContentList"><div class="ContentList-Header"><div class="ContentList-IconWrapper"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Layer_1&#x27;%20fill=&#x27;currentColor&#x27;%20height=&#x27;512&#x27;%20viewBox=&#x27;0%200%20100%20100&#x27;%20width=&#x27;512&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cpath%20d=&#x27;m63.333%2023.333c0-7.363-5.97-13.333-13.333-13.333s-13.333%205.97-13.333%2013.333v20c0%207.364%205.97%2013.333%2013.333%2013.333s13.333-5.97%2013.333-13.333z&#x27;/%3e%3cpath%20d=&#x27;m70%2030v13.333c0%2011.045-8.955%2020-20%2020s-20-8.954-20-20v-13.333c-3.682%200-6.667%202.985-6.667%206.667v6.667c0%2014.726%2011.94%2026.666%2026.667%2026.666s26.667-11.94%2026.667-26.667v-6.667c0-3.681-2.985-6.666-6.667-6.666z&#x27;/%3e%3cpath%20d=&#x27;m60%2083.33v.003h-6.667v-6.666h-6.666v6.666h-6.667c-3.682%200-6.667%202.985-6.667%206.667l33.334-.003c0-3.682-2.985-6.667-6.667-6.667z&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Layer_1&#x27;%20fill=&#x27;currentColor&#x27;%20height=&#x27;512&#x27;%20viewBox=&#x27;0%200%20100%20100&#x27;%20width=&#x27;512&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cpath%20d=&#x27;m63.333%2023.333c0-7.363-5.97-13.333-13.333-13.333s-13.333%205.97-13.333%2013.333v20c0%207.364%205.97%2013.333%2013.333%2013.333s13.333-5.97%2013.333-13.333z&#x27;/%3e%3cpath%20d=&#x27;m70%2030v13.333c0%2011.045-8.955%2020-20%2020s-20-8.954-20-20v-13.333c-3.682%200-6.667%202.985-6.667%206.667v6.667c0%2014.726%2011.94%2026.666%2026.667%2026.666s26.667-11.94%2026.667-26.667v-6.667c0-3.681-2.985-6.666-6.667-6.666z&#x27;/%3e%3cpath%20d=&#x27;m60%2083.33v.003h-6.667v-6.666h-6.666v6.666h-6.667c-3.682%200-6.667%202.985-6.667%206.667l33.334-.003c0-3.682-2.985-6.667-6.667-6.667z&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Microphone" class="ContentList-Icon DefaultIcon"></span></div><span class="ContentList-Title" data-testid="content-list-title">Latest Podcasts</span></div><ul class="ContentList-List"><li class="ContentList-ListItem"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_production ContentList-SponsoredContent" href="/production" target="_self" data-discover="true">Production</a><a data-testid="content-list-item-title" href="/production/strategically-making-star-wars-zero-company-ft-greg-foertsch" target="_self" data-discover="true"><p class="ContentList-ListItemTitle">Strategically making Star Wars Zero Company, ft. Greg Foertsch</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Sep 4, 2026</span></li><li class="ContentList-ListItem"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_audio ContentList-SponsoredContent" href="/audio" target="_self" data-discover="true">Audio</a><a data-testid="content-list-item-title" href="/audio/gdc-side-quest-inside-austin-wintory-s-collaborative-composing-process" target="_self" data-discover="true"><p class="ContentList-ListItemTitle">GDC Side Quest - Inside Austin Wintory's Collaborative Composing Process</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Aug 28, 2026</span></li><li class="ContentList-ListItem"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_programming ContentList-SponsoredContent" href="/programming" target="_self" data-discover="true">Programming</a><a data-testid="content-list-item-title" href="/programming/we-re-finally-talking-about-ai-ft-david-rez-graham-and-luke-dicken" target="_self" data-discover="true"><p class="ContentList-ListItemTitle">We're finally talking about AI, ft. David 'Rez' Graham and Luke Dicken</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Aug 21, 2026</span></li><li class="ContentList-ListItem"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_production ContentList-SponsoredContent" href="/production" target="_self" data-discover="true">Production</a><a data-testid="content-list-item-title" href="/production/what-devs-need-to-know-about-localization-ft-concha-fernandez-alvarez-aurelie-perrin-and-guido-di-carlo" target="_self" data-discover="true"><p class="ContentList-ListItemTitle">What devs need to know about localization, ft. Concha Fernandez Alvarez, Aurelie Perrin, and Guido Di Carlo</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Aug 7, 2026</span></li></ul><div class="ContentList-CTAButton"><a data-component="button" data-testid="button_a" class="Button Button_size_medium Button_variant_textLink" href="/keyword/game-developer-podcast" target="_self" data-discover="true"><span class="Button-ContentWrapper">See all</span><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z&#x27;%20transform=&#x27;translate(13)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z&#x27;%20transform=&#x27;translate(13)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="ChevronRight" class="Button-Icon Button-Icon_position_right DefaultIcon"></span></a></div></div></div><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-module="content-cards" class="ContentCards ContentCards_sidebar"><div class="ContentCards-CardsWrapper ContentCards-CardsWrapper_column"><div class="ContentCards-Header ContentCards-Header_column" data-testid="content-cards-header"><h3 class="ContentCards-Title" data-testid="contentCardsTitle">Game Developer Collective</h3><a class="ContentCards-Link" data-testid="content-card-link" href="/keyword/game-developer-collective" target="_self" data-discover="true"><span class="ContentCards-LinkText" data-testid="contentCardsBreadcrumbsLinkTitle">More</span><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z&#x27;%20transform=&#x27;translate(13)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z&#x27;%20transform=&#x27;translate(13)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="ChevronRight" class="ContentCards-LinkIcon DefaultIcon"></span></a></div><div class="ContentCards-Content ContentCards-Content_column"><div class="ContentCards-ContentPreview ContentCards-ContentPreview_column" data-testid="content-preview-column"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/business/games-that-sell-dlc-and-in-app-purchases-appear-to-benefit-most-from-subscription-services" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt7a79424246931087/6967e30f40bb4580b53d61e0/rematchfeatured.png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt7a79424246931087/6967e30f40bb4580b53d61e0/rematchfeatured.png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="A player character runs around with their arms extended in Rematch, other players stand behind them." title="A player character runs around with their arms extended in Rematch, other players stand behind them."/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_business ContentPreview-Category" href="/business" target="_self" data-discover="true">Business</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/business/games-that-sell-dlc-and-in-app-purchases-appear-to-benefit-most-from-subscription-services" target="_self" data-discover="true">Games that sell DLC and in-app purchases appear to benefit most from subscription services</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/business/games-that-sell-dlc-and-in-app-purchases-appear-to-benefit-most-from-subscription-services" target="_self" data-discover="true">Games that sell DLC and in-app purchases appear to benefit most from subscription services</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/bryant-francis" target="_self" data-discover="true">Bryant Francis</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Jan 27, 2026</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">3 Min Read</span></div></div></div></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_column" data-testid="content-preview-column"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/business/devs-are-more-worried-than-ever-that-generative-ai-will-lower-the-quality-of-games" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc5a3580ea6a37cdc/689b76d8b5ca625122beeab9/frustrateddeveloperfeatured.jpg?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc5a3580ea6a37cdc/689b76d8b5ca625122beeab9/frustrateddeveloperfeatured.jpg?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="An African American woman looks at a laptop in frustration." title="An African American woman looks at a laptop in frustration."/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_business ContentPreview-Category" href="/business" target="_self" data-discover="true">Business</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/business/devs-are-more-worried-than-ever-that-generative-ai-will-lower-the-quality-of-games" target="_self" data-discover="true">Devs are more worried than ever that generative AI will lower the quality of games</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/business/devs-are-more-worried-than-ever-that-generative-ai-will-lower-the-quality-of-games" target="_self" data-discover="true">Devs are more worried than ever that generative AI will lower the quality of games</a><div class="Contributors Contributors_variant_slimline VerticalCard-ContributorsWrapper" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/bryant-francis" target="_self" data-discover="true">Bryant Francis</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Sep 16, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span data-testid="article-read-time-text">4 Min Read</span></div></div></div></div></div></div></div></div></div></div></div><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-module="content-cards" class="ContentCards ContentCards_sidebar"><div class="ContentCards-CardsWrapper ContentCards-CardsWrapper_column"><div class="ContentCards-Header ContentCards-Header_column" data-testid="content-cards-header"><h3 class="ContentCards-Title" data-testid="contentCardsTitle">Game Design &amp; Marketing Highlights</h3><a class="ContentCards-Link" data-testid="content-card-link" href="/marketing" target="_self" data-discover="true"><span class="ContentCards-LinkText" data-testid="contentCardsBreadcrumbsLinkTitle">See More</span><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z&#x27;%20transform=&#x27;translate(13)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20fill=&#x27;currentColor&#x27;%20width=&#x27;13&#x27;%20height=&#x27;21&#x27;%20viewBox=&#x27;0%200%2013%2021&#x27;%3e%3cpath%20id=&#x27;Icon_material-keyboard-arrow-down&#x27;%20data-name=&#x27;Icon%20material-keyboard-arrow-down&#x27;%20d=&#x27;M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z&#x27;%20transform=&#x27;translate(13)%20rotate(90)&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="ChevronRight" class="ContentCards-LinkIcon DefaultIcon"></span></a></div><div class="ContentCards-Content ContentCards-Content_column"><div class="ContentCards-ContentPreview ContentCards-ContentPreview_column" data-testid="content-preview-column"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/business/trump-administration-takes-down-tetris-clone-after-company-warns-it-takes-copyright-violation-very-seriously-" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta0c68fc199e2d594/6aa17c6b6a263b212fd6b712/tetrisfeatured.jpg?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta0c68fc199e2d594/6aa17c6b6a263b212fd6b712/tetrisfeatured.jpg?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Graphic art mimicking the famous Tetris blocks." title="Graphic art mimicking the famous Tetris blocks."/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_business ContentPreview-Category" href="/business" target="_self" data-discover="true">Business</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/business/trump-administration-takes-down-tetris-clone-after-company-warns-it-takes-copyright-violation-very-seriously-" target="_self" data-discover="true">Trump Administration takes down Tetris clone after company warns it takes copyright violation 'very seriously'</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/business/trump-administration-takes-down-tetris-clone-after-company-warns-it-takes-copyright-violation-very-seriously-" target="_self" data-discover="true">Trump Administration takes down Tetris clone after company warns it takes copyright violation 'very seriously'</a></div></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_column" data-testid="content-preview-column"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/design/paradox-interactive-s-afterworld-wants-to-entice-new-players-to-grand-strategy-with-tasty-rpg-hooks" target="_self" data-discover="true"><div class="ContentPreview-ImageContainer"><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt25f1adc41d53b5e2/6a9649eed78fd7bff8938dc5/afterworld_key_art_1280.png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt25f1adc41d53b5e2/6a9649eed78fd7bff8938dc5/afterworld_key_art_1280.png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Characters from different factions look upon a brightly lit wasteland" title="Characters from different factions look upon a brightly lit wasteland"/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_design ContentPreview-Category" href="/design" target="_self" data-discover="true">Design</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/design/paradox-interactive-s-afterworld-wants-to-entice-new-players-to-grand-strategy-with-tasty-rpg-hooks" target="_self" data-discover="true">Paradox Interactive's Afterworld wants to entice new players to grand strategy with tasty RPG hooks</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/design/paradox-interactive-s-afterworld-wants-to-entice-new-players-to-grand-strategy-with-tasty-rpg-hooks" target="_self" data-discover="true">Paradox Interactive's Afterworld wants to entice new players to grand strategy with tasty RPG hooks</a></div></div></div></div></div></div></div></div></div></div></div></div></div><div class="ListContent-NewsletterSignupPromo"><div data-module="newsletter-signup-promo"><div class="SubscribeBanner SubscribeBanner_mode_dark SubscribeBanner_variant_vertical ListContent-NewsletterContent"><div class="SubscribeBanner-Wrapper"><div class="SubscribeBanner-Title" data-testid="subscribeBanner_title">Daily news, dev blogs, and stories from Game Developer straight to your inbox</div><div class="SubscribeBanner-Message" data-testid="subscribeBanner_message"></div><div class="SubscribeBanner-Button"><a data-component="button" data-testid="bannerNewsletterbutton" class="Button Button_size_medium Button_variant_secondaryFilled" rel="noreferrer nofollow" target="_blank" href="https://gd-resources.gamedeveloper.com/free/w_gamf01/prgm.cgi" data-action-type="sign-up" data-name="subscribe-banner"><span class="Button-ContentWrapper">Stay Updated</span></a></div></div></div></div></div></div></div></section><footer data-module="footer" class="Footer Footer_length_2"><div class="Footer-Background"></div><div data-testid="logo" class="Footer-LogoContainer Footer-LogoContainer_length_2"><a href="/" target="_self" data-discover="true"><img title="Game Developer Logo" data-component="image" class="Footer-LogoImage Footer-LogoImage_length_2" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8d5417b628e6b04b/656f5ed8485fda040aba11a1/Game_Developer_Logo_RGB_1.png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8d5417b628e6b04b/656f5ed8485fda040aba11a1/Game_Developer_Logo_RGB_1.png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Game Developer Logo"/></a></div><div data-testid="LinkSection" class="LinkSection LinkSection_length_2"><h5 class="LinkSection-Title" data-testid="link-section-title">More from GD</h5><div class="LinkSection-LinksWrapper"><a class="LinkSection-Link" target="_blank" rel="noreferrer" href="https://reg.gdconf.com/blog-submission">Blog with Game Developer</a><a class="LinkSection-Link" rel="noreferrer" href="/blogging-guidelines" target="_self" data-discover="true">Blogging Guidelines</a><a class="LinkSection-Link" rel="noreferrer" href="/podcasts" target="_self" data-discover="true">Game Developer Podcast</a><a class="LinkSection-Link" target="_blank" rel="noreferrer" href="/cdn-cgi/l/email-protection#5d33382a2e1d3a3c303839382b3831322d382f733e3230">Submit a Tip</a></div></div><div data-testid="LinkSection" class="LinkSection LinkSection_length_2"><h5 class="LinkSection-Title" data-testid="link-section-title">Connect</h5><div class="LinkSection-LinksWrapper"><a class="LinkSection-Link" rel="noreferrer" href="/author" target="_self" data-discover="true">About Us</a><a class="LinkSection-Link" target="_blank" rel="noreferrer" href="https://info.gamedeveloper.com/request-info">Advertise</a><a class="LinkSection-Link" rel="noreferrer" href="/contact-game-developer" target="_self" data-discover="true">Contact Us</a></div></div><div data-testid="registration" class="Footer-RegistrationWrapper"><div class="RegistrationSection RegistrationSection_linkSectionLength_2"><h5 class="RegistrationSection-Title">Join Us</h5><div class="Layout-Register Layout-Register_variant_footer"></div><div class="Layout-NewsLetter Layout-NewsLetter_variant_footer"><div data-module="newsletter-signup-promo"><a data-component="button" data-testid="footerNewsletterButton" class="Button Button_size_medium Button_variant_primaryFilled" rel="noreferrer nofollow" target="_blank" href="https://gd-resources.gamedeveloper.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp:&amp;qf=w_gamf01&amp;ch=gdwebbutton" data-action-type="sign-up" data-name="subscribe-footer"><span class="Button-ContentWrapper">Newsletter Sign-Up</span></a></div></div></div></div><div data-testid="social" class="SocialSection SocialSection_linkSectionLength_2"><h5 class="SocialSection-Title">Follow Us</h5><div data-component="social-share" class="SocialShare SocialShare_variant_layout"><a rel="noreferrer" aria-label="RSS" href="/rss.xml" target="_self" data-discover="true"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20version=&#x27;1.1&#x27;%20id=&#x27;Layer_1&#x27;%20fill=&#x27;currentColor&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20xmlns:xlink=&#x27;http://www.w3.org/1999/xlink&#x27;%20x=&#x27;0px&#x27;%20y=&#x27;0px&#x27;%20viewBox=&#x27;0%200%20310%20310&#x27;%20style=&#x27;enable-background:new%200%200%20310%20310;&#x27;%20xml:space=&#x27;preserve&#x27;%3e%3cg%20id=&#x27;XMLID_788_&#x27;%3e%3cpath%20id=&#x27;XMLID_789_&#x27;%20d=&#x27;M90.244,264.828C90.244,240.11,70.139,220,45.427,220c-24.715,0-44.822,20.11-44.822,44.828%20c0,24.714,20.107,44.82,44.822,44.82C70.139,309.648,90.244,289.542,90.244,264.828z&#x27;/%3e%3cpath%20id=&#x27;XMLID_790_&#x27;%20d=&#x27;M5.648,169.43c35.961,0,69.782,14.066,95.231,39.605c25.45,25.583,39.467,59.648,39.467,95.92%20c0,2.762,2.238,5,5,5h57.486c2.762,0,5-2.238,5-5c0-111.952-90.699-203.031-202.185-203.031c-2.762,0-5,2.238-5,5v57.505%20C0.648,167.191,2.887,169.43,5.648,169.43z&#x27;/%3e%3cpath%20id=&#x27;XMLID_791_&#x27;%20d=&#x27;M5.726,0c-2.762,0-5,2.238-5,5v57.495c0,2.762,2.238,5,5,5c130.24,0,236.199,106.544,236.199,237.505%20c0,2.762,2.238,5,5,5h57.471c2.762,0,5-2.238,5-5C309.396,136.822,173.17,0,5.726,0z&#x27;/%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20version=&#x27;1.1&#x27;%20id=&#x27;Layer_1&#x27;%20fill=&#x27;currentColor&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20xmlns:xlink=&#x27;http://www.w3.org/1999/xlink&#x27;%20x=&#x27;0px&#x27;%20y=&#x27;0px&#x27;%20viewBox=&#x27;0%200%20310%20310&#x27;%20style=&#x27;enable-background:new%200%200%20310%20310;&#x27;%20xml:space=&#x27;preserve&#x27;%3e%3cg%20id=&#x27;XMLID_788_&#x27;%3e%3cpath%20id=&#x27;XMLID_789_&#x27;%20d=&#x27;M90.244,264.828C90.244,240.11,70.139,220,45.427,220c-24.715,0-44.822,20.11-44.822,44.828%20c0,24.714,20.107,44.82,44.822,44.82C70.139,309.648,90.244,289.542,90.244,264.828z&#x27;/%3e%3cpath%20id=&#x27;XMLID_790_&#x27;%20d=&#x27;M5.648,169.43c35.961,0,69.782,14.066,95.231,39.605c25.45,25.583,39.467,59.648,39.467,95.92%20c0,2.762,2.238,5,5,5h57.486c2.762,0,5-2.238,5-5c0-111.952-90.699-203.031-202.185-203.031c-2.762,0-5,2.238-5,5v57.505%20C0.648,167.191,2.887,169.43,5.648,169.43z&#x27;/%3e%3cpath%20id=&#x27;XMLID_791_&#x27;%20d=&#x27;M5.726,0c-2.762,0-5,2.238-5,5v57.495c0,2.762,2.238,5,5,5c130.24,0,236.199,106.544,236.199,237.505%20c0,2.762,2.238,5,5,5h57.471c2.762,0,5-2.238,5-5C309.396,136.822,173.17,0,5.726,0z&#x27;/%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="RSS" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_rss DefaultIcon"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Twitter" href="https://twitter.com/gamedevdotcom/"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Capa_1&#x27;%20enable-background=&#x27;new%200%200%201226.37%201226.37&#x27;%20viewBox=&#x27;0%200%201226.37%201226.37&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cpath%20d=&#x27;m727.348%20519.284%20446.727-519.284h-105.86l-387.893%20450.887-309.809-450.887h-357.328l468.492%20681.821-468.492%20544.549h105.866l409.625-476.152%20327.181%20476.152h357.328l-485.863-707.086zm-144.998%20168.544-47.468-67.894-377.686-540.24h162.604l304.797%20435.991%2047.468%2067.894%20396.2%20566.721h-162.604l-323.311-462.446z&#x27;/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Capa_1&#x27;%20enable-background=&#x27;new%200%200%201226.37%201226.37&#x27;%20viewBox=&#x27;0%200%201226.37%201226.37&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cpath%20d=&#x27;m727.348%20519.284%20446.727-519.284h-105.86l-387.893%20450.887-309.809-450.887h-357.328l468.492%20681.821-468.492%20544.549h105.866l409.625-476.152%20327.181%20476.152h357.328l-485.863-707.086zm-144.998%20168.544-47.468-67.894-377.686-540.24h162.604l304.797%20435.991%2047.468%2067.894%20396.2%20566.721h-162.604l-323.311-462.446z&#x27;/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3cg/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Twitter" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_twitter DefaultIcon"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Linkedin" href="https://www.linkedin.com/company/gamedeveloperofficial"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20version=&#x27;1.1&#x27;%20id=&#x27;Capa_1&#x27;%20fill=&#x27;currentColor&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20xmlns:xlink=&#x27;http://www.w3.org/1999/xlink&#x27;%20x=&#x27;0px&#x27;%20y=&#x27;0px&#x27;%20viewBox=&#x27;0%200%20409.6%20409.6&#x27;%20style=&#x27;enable-background:new%200%200%20409.6%20409.6;&#x27;%20xml:space=&#x27;preserve&#x27;%3e%3cg%3e%3cg%3e%3cpath%20d=&#x27;M375.465,0H34.135C15.365,0,0,15.365,0,34.135V375.47c0,18.76,15.365,34.13,34.135,34.13h341.33%20c18.77,0,34.135-15.37,34.135-34.13V34.135C409.6,15.365,394.235,0,375.465,0z%20M375.465,375.47H34.135V34.135h341.33V375.47z&#x27;/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3crect%20x=&#x27;102.4&#x27;%20y=&#x27;170.65&#x27;%20width=&#x27;34.135&#x27;%20height=&#x27;136.535&#x27;/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3ccircle%20cx=&#x27;119.45&#x27;%20cy=&#x27;128&#x27;%20r=&#x27;25.6&#x27;/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d=&#x27;M238.935,170.665c-12.498,0-24.069,3.61-34.135,9.467v-8.049h-34.135V307.2H204.8v-68.27%20c0-18.852,15.283-34.13,34.135-34.13c18.852,0,34.13,15.278,34.13,34.13v68.27H307.2v-68.27%20C307.2,201.231,276.634,170.665,238.935,170.665z&#x27;/%3e%3c/g%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20version=&#x27;1.1&#x27;%20id=&#x27;Capa_1&#x27;%20fill=&#x27;currentColor&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20xmlns:xlink=&#x27;http://www.w3.org/1999/xlink&#x27;%20x=&#x27;0px&#x27;%20y=&#x27;0px&#x27;%20viewBox=&#x27;0%200%20409.6%20409.6&#x27;%20style=&#x27;enable-background:new%200%200%20409.6%20409.6;&#x27;%20xml:space=&#x27;preserve&#x27;%3e%3cg%3e%3cg%3e%3cpath%20d=&#x27;M375.465,0H34.135C15.365,0,0,15.365,0,34.135V375.47c0,18.76,15.365,34.13,34.135,34.13h341.33%20c18.77,0,34.135-15.37,34.135-34.13V34.135C409.6,15.365,394.235,0,375.465,0z%20M375.465,375.47H34.135V34.135h341.33V375.47z&#x27;/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3crect%20x=&#x27;102.4&#x27;%20y=&#x27;170.65&#x27;%20width=&#x27;34.135&#x27;%20height=&#x27;136.535&#x27;/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3ccircle%20cx=&#x27;119.45&#x27;%20cy=&#x27;128&#x27;%20r=&#x27;25.6&#x27;/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d=&#x27;M238.935,170.665c-12.498,0-24.069,3.61-34.135,9.467v-8.049h-34.135V307.2H204.8v-68.27%20c0-18.852,15.283-34.13,34.135-34.13c18.852,0,34.13,15.278,34.13,34.13v68.27H307.2v-68.27%20C307.2,201.231,276.634,170.665,238.935,170.665z&#x27;/%3e%3c/g%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Linkedin" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_linkedin DefaultIcon"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Facebook" href="https://www.facebook.com/GameDeveloperOfficial"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20version=&#x27;1.1&#x27;%20id=&#x27;Capa_1&#x27;%20fill=&#x27;currentColor&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20xmlns:xlink=&#x27;http://www.w3.org/1999/xlink&#x27;%20x=&#x27;0px&#x27;%20y=&#x27;0px&#x27;%20viewBox=&#x27;0%200%20409.6%20409.6&#x27;%20style=&#x27;enable-background:new%200%200%20409.6%20409.6;&#x27;%20xml:space=&#x27;preserve&#x27;%3e%3cg%3e%3cg%3e%3cpath%20d=&#x27;M375.465,0H34.135C15.365,0,0,15.365,0,34.135V375.47c0,18.76,15.365,34.13,34.135,34.13h341.33%20c18.77,0,34.135-15.37,34.135-34.13V34.135C409.6,15.365,394.235,0,375.465,0z%20M375.465,375.47h-136.53V238.93h85.33V204.8h-85.33%20v-34.135c0-28.283,22.932-51.2,51.2-51.2h34.13V85.33h-34.13c-47.119,0.005-85.335,38.195-85.335,85.335V204.8h-34.135v34.13%20H204.8v136.54H34.135V34.135h341.33V375.47z&#x27;/%3e%3c/g%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20version=&#x27;1.1&#x27;%20id=&#x27;Capa_1&#x27;%20fill=&#x27;currentColor&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%20xmlns:xlink=&#x27;http://www.w3.org/1999/xlink&#x27;%20x=&#x27;0px&#x27;%20y=&#x27;0px&#x27;%20viewBox=&#x27;0%200%20409.6%20409.6&#x27;%20style=&#x27;enable-background:new%200%200%20409.6%20409.6;&#x27;%20xml:space=&#x27;preserve&#x27;%3e%3cg%3e%3cg%3e%3cpath%20d=&#x27;M375.465,0H34.135C15.365,0,0,15.365,0,34.135V375.47c0,18.76,15.365,34.13,34.135,34.13h341.33%20c18.77,0,34.135-15.37,34.135-34.13V34.135C409.6,15.365,394.235,0,375.465,0z%20M375.465,375.47h-136.53V238.93h85.33V204.8h-85.33%20v-34.135c0-28.283,22.932-51.2,51.2-51.2h34.13V85.33h-34.13c-47.119,0.005-85.335,38.195-85.335,85.335V204.8h-34.135v34.13%20H204.8v136.54H34.135V34.135h341.33V375.47z&#x27;/%3e%3c/g%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3cg%3e%3c/g%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Facebook" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_facebook DefaultIcon"></span></span></a><a target="_blank" rel="noreferrer" aria-label="Bluesky" href="https://bsky.app/profile/gamedeveloper.bsky.social"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3c?xml%20version=&#x27;1.0&#x27;%20encoding=&#x27;UTF-8&#x27;?%3e%3csvg%20width=&#x27;600&#x27;%20height=&#x27;530&#x27;%20version=&#x27;1.1&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cpath%20d=&#x27;m135.72%2044.03c66.496%2049.921%20138.02%20151.14%20164.28%20205.46%2026.262-54.316%2097.782-155.54%20164.28-205.46%2047.98-36.021%20125.72-63.892%20125.72%2024.795%200%2017.712-10.155%20148.79-16.111%20170.07-20.703%2073.984-96.144%2092.854-163.25%2081.433%20117.3%2019.964%20147.14%2086.092%2082.697%20152.22-122.39%20125.59-175.91-31.511-189.63-71.766-2.514-7.3797-3.6904-10.832-3.7077-7.8964-0.0174-2.9357-1.1937%200.51669-3.7077%207.8964-13.714%2040.255-67.233%20197.36-189.63%2071.766-64.444-66.128-34.605-132.26%2082.697-152.22-67.108%2011.421-142.55-7.4491-163.25-81.433-5.9562-21.282-16.111-152.36-16.111-170.07%200-88.687%2077.742-60.816%20125.72-24.795z&#x27;%20fill=&#x27;%23000000&#x27;/%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3c?xml%20version=&#x27;1.0&#x27;%20encoding=&#x27;UTF-8&#x27;?%3e%3csvg%20width=&#x27;600&#x27;%20height=&#x27;530&#x27;%20version=&#x27;1.1&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cpath%20d=&#x27;m135.72%2044.03c66.496%2049.921%20138.02%20151.14%20164.28%20205.46%2026.262-54.316%2097.782-155.54%20164.28-205.46%2047.98-36.021%20125.72-63.892%20125.72%2024.795%200%2017.712-10.155%20148.79-16.111%20170.07-20.703%2073.984-96.144%2092.854-163.25%2081.433%20117.3%2019.964%20147.14%2086.092%2082.697%20152.22-122.39%20125.59-175.91-31.511-189.63-71.766-2.514-7.3797-3.6904-10.832-3.7077-7.8964-0.0174-2.9357-1.1937%200.51669-3.7077%207.8964-13.714%2040.255-67.233%20197.36-189.63%2071.766-64.444-66.128-34.605-132.26%2082.697-152.22-67.108%2011.421-142.55-7.4491-163.25-81.433-5.9562-21.282-16.111-152.36-16.111-170.07%200-88.687%2077.742-60.816%20125.72-24.795z&#x27;%20fill=&#x27;%23000000&#x27;/%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="Bluesky" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_bluesky DefaultIcon"></span></span></a><a target="_blank" rel="noreferrer" aria-label="GoogleNews" href="https://news.google.com/publications/CAAqBwgKML7GrQswy9HFAw?ceid=US:en&amp;oc=3&amp;hl=en-US&amp;gl=US"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" style="mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Capa_1&#x27;%20enable-background=&#x27;new%200%200%20512.288%20512.288&#x27;%20height=&#x27;512&#x27;%20viewBox=&#x27;0%200%20512.288%20512.288&#x27;%20width=&#x27;512&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cg%3e%3cpath%20d=&#x27;m512.288%20152.697-67.644-13.455v-123.579h-377v123.579l-67.644%2013.455%2052.644%20264.661v79.268h407v-79.268zm-52.644%20110.885v-61.956h-50.232l-8.037-40.402%2075.636%2015.045zm-362-217.919h317v87.612l-19.603-3.899-10.573-53.153-286.824%2057.052zm-62.368%20130.606%20325.621-64.77%2017.927%2090.127h-326.18v61.956zm394.368%20290.356h-347v-235h347z&#x27;/%3e%3cpath%20d=&#x27;m200.144%20436.625c48.248%200%2087.5-39.252%2087.5-87.5v-15h-87.5v30h55.516c-6.615%2024.454-28.998%2042.5-55.516%2042.5-31.706%200-57.5-25.794-57.5-57.5s25.794-57.5%2057.5-57.5c14.834%200%2028.917%205.632%2039.653%2015.86l20.692-21.722c-16.34-15.566-37.771-24.138-60.345-24.138-48.248%200-87.5%2039.252-87.5%2087.5s39.252%2087.5%2087.5%2087.5z&#x27;/%3e%3cpath%20d=&#x27;m317.644%20274.125h82v30h-82z&#x27;/%3e%3cpath%20d=&#x27;m317.644%20334.125h82v30h-82z&#x27;/%3e%3cpath%20d=&#x27;m317.644%20394.125h82v30h-82z&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);-webkit-mask-image:url(&quot;data:image/svg+xml,%3csvg%20id=&#x27;Capa_1&#x27;%20enable-background=&#x27;new%200%200%20512.288%20512.288&#x27;%20height=&#x27;512&#x27;%20viewBox=&#x27;0%200%20512.288%20512.288&#x27;%20width=&#x27;512&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cg%3e%3cpath%20d=&#x27;m512.288%20152.697-67.644-13.455v-123.579h-377v123.579l-67.644%2013.455%2052.644%20264.661v79.268h407v-79.268zm-52.644%20110.885v-61.956h-50.232l-8.037-40.402%2075.636%2015.045zm-362-217.919h317v87.612l-19.603-3.899-10.573-53.153-286.824%2057.052zm-62.368%20130.606%20325.621-64.77%2017.927%2090.127h-326.18v61.956zm394.368%20290.356h-347v-235h347z&#x27;/%3e%3cpath%20d=&#x27;m200.144%20436.625c48.248%200%2087.5-39.252%2087.5-87.5v-15h-87.5v30h55.516c-6.615%2024.454-28.998%2042.5-55.516%2042.5-31.706%200-57.5-25.794-57.5-57.5s25.794-57.5%2057.5-57.5c14.834%200%2028.917%205.632%2039.653%2015.86l20.692-21.722c-16.34-15.566-37.771-24.138-60.345-24.138-48.248%200-87.5%2039.252-87.5%2087.5s39.252%2087.5%2087.5%2087.5z&#x27;/%3e%3cpath%20d=&#x27;m317.644%20274.125h82v30h-82z&#x27;/%3e%3cpath%20d=&#x27;m317.644%20334.125h82v30h-82z&#x27;/%3e%3cpath%20d=&#x27;m317.644%20394.125h82v30h-82z&#x27;/%3e%3c/g%3e%3c/svg%3e&quot;);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain" data-name="GoogleNews" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_googleNews DefaultIcon"></span></span></a></div></div><div class="BrandSection"><div class="BrandSection-Background"></div><div data-testid="brands" class="BrandSection-LinksWrapper"><a class="BrandSection-Link" target="_blank" rel="noreferrer" aria-label="GDC Vault" title="Link to GDC Vault" href="https://www.gdcvault.com/"><img title="GDC Vault Logo" data-component="image" class="BrandSection-LinkImage" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1363a10229efc062/656db9e79761ff040a595688/MicrosoftTeams-image_(3).png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1363a10229efc062/656db9e79761ff040a595688/MicrosoftTeams-image_(3).png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="GDC Vault Logo"/></a><a class="BrandSection-Link" target="_blank" rel="noreferrer" aria-label="GDC" title="Link to GDC" href="https://www.gdconf.com"><img title="GDC" data-component="image" class="BrandSection-LinkImage" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt431090e6027a0c17/690cd59117b10612bd8935ff/GDC-white-new_logo.png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt431090e6027a0c17/690cd59117b10612bd8935ff/GDC-white-new_logo.png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="GDC"/></a><a class="BrandSection-Link" target="_blank" rel="noreferrer" aria-label="Omdia" title="Link to Omdia" href="https://www.omdia.com"><img title="Omdia" data-component="image" class="BrandSection-LinkImage" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt789019463bae70bf/6523eb443c9b45aa9da4f4b2/logo_omdia_white.png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt789019463bae70bf/6523eb443c9b45aa9da4f4b2/logo_omdia_white.png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Omdia"/></a></div></div><div class="CopyrightsSection"><div class="CopyrightsSection-Background"></div><div data-testid="copyrights" class="CopyrightsSection-Wrapper"><a data-testid="businessUnit" class="CopyrightsSection-BusinessLink" rel="noreferrer" target="_blank" href="https://www.informa.com"><img title="Informa" data-component="image" class="CopyrightsSection-BusinessImage" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt6a17e2ccd9083672/674edfd84301993a15a0e9e1/Informa_Logo_OneLine_Graduated_White_RGB.png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt6a17e2ccd9083672/674edfd84301993a15a0e9e1/Informa_Logo_OneLine_Graduated_White_RGB.png?width=1400&amp;auto=webp&amp;quality=80&amp;disable=upscale" loading="lazy" alt="Informa"/></a><div class="CopyrightsSection-TextWrapper"><p data-testid="copyrightText" class="CopyrightsSection-Text"><span class="CopyrightsSection-TextBlock"></span>Copyright © 2026 Informa. This website is owned and operated by Informa. Informa PLC&#x27;s registered office is 5 Howick Place, London SW1P 1WG.</p><div data-testid="copyrightLinks" class="CopyrightsSection-LinksWrapper CopyrightsSection-LinksWrapper_hasLinks"><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://www.informa.com/about-us/">About Informa<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://www.informa.com/contact-us/">Contact Informa<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://www.informa.com/privacy-policy/">Privacy<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://www.informa.com/generic-content/terms--conditions/">Terms</a></div></div></div><div class="PrivacyChoices"><button id="cpra_button" class="PrivacyChoices-Button" aria-label="Your Privacy Choices" disabled=""><img class="PrivacyChoices-Image" src="data:image/svg+xml,%3csvg%20width=&#x27;30&#x27;%20height=&#x27;14&#x27;%20viewBox=&#x27;0%200%2030%2014&#x27;%20fill=&#x27;none&#x27;%20xmlns=&#x27;http://www.w3.org/2000/svg&#x27;%3e%3cg%20clip-path=&#x27;url(%23clip0_4001_1792)&#x27;%3e%3cpath%20fill-rule=&#x27;evenodd&#x27;%20clip-rule=&#x27;evenodd&#x27;%20d=&#x27;M7.39998%2012.8H14.2L17.3%201.20001H7.39998C4.19998%201.20001%201.59998%203.80001%201.59998%207.00001C1.59998%2010.2%204.19998%2012.8%207.39998%2012.8Z&#x27;%20fill=&#x27;white&#x27;/%3e%3cpath%20fill-rule=&#x27;evenodd&#x27;%20clip-rule=&#x27;evenodd&#x27;%20d=&#x27;M22.6%200H7.40002C3.50002%200%200.400024%203.1%200.400024%207C0.400024%2010.9%203.50002%2014%207.40002%2014H22.6C26.5%2014%2029.6%2010.9%2029.6%207C29.6%203.1%2026.4%200%2022.6%200ZM1.60002%207C1.60002%203.8%204.20002%201.2%207.40002%201.2H17.3L14.2%2012.8H7.40002C4.20002%2012.8%201.60002%2010.2%201.60002%207Z&#x27;%20fill=&#x27;%230066FF&#x27;/%3e%3cpath%20d=&#x27;M24.6%203.99998C24.8%204.19998%2024.8%204.59998%2024.6%204.79998L22.5%206.99998L24.7%209.19998C24.9%209.39998%2024.9%209.79998%2024.7%209.99998C24.5%2010.2%2024.1%2010.2%2023.9%209.99998L21.7%207.79998L19.5%209.99998C19.3%2010.2%2018.9%2010.2%2018.7%209.99998C18.5%209.79998%2018.5%209.39998%2018.7%209.19998L20.8%206.99998L18.6%204.79998C18.4%204.59998%2018.4%204.19998%2018.6%203.99998C18.8%203.79998%2019.2%203.79998%2019.4%203.99998L21.6%206.19998L23.8%203.99998C24%203.79998%2024.4%203.79998%2024.6%203.99998Z&#x27;%20fill=&#x27;white&#x27;/%3e%3cpath%20d=&#x27;M12.7%204.10001C12.9%204.30001%2013%204.70001%2012.8%204.90001L8.6%209.80001C8.5%209.90001%208.4%2010%208.3%2010C8.1%2010.1%207.8%2010.1%207.6%209.90001L5.4%207.70001C5.2%207.50001%205.2%207.10001%205.4%206.90001C5.6%206.70001%206%206.70001%206.2%206.90001L8%208.60001L11.8%204.10001C12%203.90001%2012.4%203.90001%2012.7%204.10001Z&#x27;%20fill=&#x27;%230066FF&#x27;/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id=&#x27;clip0_4001_1792&#x27;%3e%3crect%20width=&#x27;30&#x27;%20height=&#x27;14&#x27;%20fill=&#x27;white&#x27;/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e" alt=""/><span class="PrivacyChoices-ButtonText">Your Privacy Choices</span></button></div></div></footer></div></main><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>((storageKey, restoreKey) => {
if (!window.history.state || !window.history.state.key) {
let key = Math.random().toString(32).slice(2);
window.history.replaceState({ key }, "");
}
try {
let storedY = JSON.parse(sessionStorage.getItem(storageKey) || "{}")[restoreKey || window.history.state.key];
if (typeof storedY === "number") window.scrollTo(0, storedY);
} catch (error) {
console.error(error);
sessionStorage.removeItem(storageKey);
}
})("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"","future":{"unstable_enableNodeReadableStream":false,"unstable_optimizeDeps":false},"routeDiscovery":{"mode":"lazy","manifestPath":"/__manifest"},"ssr":true,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</script><script type="module" async="">;
import * as route0 from "/assets/root-axDBxSta.js";
import * as route1 from "/assets/keyword._slug-DVj4VCzT.js";
window.__reactRouterManifest = {
"entry": {
"module": "/assets/entry.client-D8SNnbFQ.js",
"imports": [
"/assets/rolldown-runtime-C0FnF6B9.js",
"/assets/vendor-html-parser-DOJ8foyv.js",
"/assets/vendor-react-BREUBCH4.js",
"/assets/vendor-react-router-C-6Wf3r1.js"
],
"css": []
},
"routes": {
"root": {
"id": "root",
"path": "",
"hasAction": false,
"hasLoader": true,
"hasClientAction": false,
"hasClientLoader": false,
"hasClientMiddleware": false,
"hasDefaultExport": true,
"hasErrorBoundary": true,
"module": "/assets/root-axDBxSta.js",
"imports": [
"/assets/rolldown-runtime-C0FnF6B9.js",
"/assets/vendor-html-parser-DOJ8foyv.js",
"/assets/vendor-react-BREUBCH4.js",
"/assets/vendor-react-router-C-6Wf3r1.js",
"/assets/errorBoundary-DfVczMbW.js",
"/assets/src-BkvMIAeW.js",
"/assets/meta-U5VGOwY8.js",
"/assets/src-CouXQPHZ.js",
"/assets/src-D7QQV_XS.js",
"/assets/src-930pK6ob.js",
"/assets/src-PHRCXHKs.js",
"/assets/src-LD1Uy0HA.js",
"/assets/src-BjKFzooJ.js",
"/assets/src-DHh7ZlQz.js",
"/assets/_baseForOwn-CbXHluAm.js",
"/assets/src-CDQHVsjM.js",
"/assets/swiper-react-frun646h.js",
"/assets/src-DXoHOFKR.js",
"/assets/index.es-CsC_O2B4.js",
"/assets/src-Nngu3sDD.js",
"/assets/useLockBodyScroll-BGJrZGjL.js",
"/assets/useIsomorphicLayoutEffect-BI0Xeo7e.js",
"/assets/src-B2pRdHuh.js",
"/assets/src-Chy4GWFD.js",
"/assets/src-udkYdJij2.js",
"/assets/src-CBIQ4vZ12.js",
"/assets/src-C1EhVVhA2.js",
"/assets/src-D_fDdcnk.js",
"/assets/src-B0SV16J1.js",
"/assets/src-CYX7xg5W.js",
"/assets/src-C35sQ8mk2.js",
"/assets/src-CVZKtC7p.js",
"/assets/esm-D1x6VqTd.js",
"/assets/src-Cp3Qrniv.js",
"/assets/src-CMwyClO9.js",
"/assets/toNumber-6-D1X_Li.js",
"/assets/src-srhSPO1G.js",
"/assets/src-D64ngxa82.js",
"/assets/src-ncxLImPM.js",
"/assets/extends-CvVTau-c.js",
"/assets/src-BDOIYwtt.js",
"/assets/striptags-BwxRt8hs.js",
"/assets/src-_wRPlqkz2.js"
],
"css": []
},
"routes/keyword.$slug": {
"id": "routes/keyword.$slug",
"parentId": "root",
"path": "keyword/:slug",
"hasAction": false,
"hasLoader": true,
"hasClientAction": false,
"hasClientLoader": false,
"hasClientMiddleware": false,
"hasDefaultExport": true,
"hasErrorBoundary": true,
"module": "/assets/keyword._slug-DVj4VCzT.js",
"imports": [
"/assets/errorBoundary-DfVczMbW.js",
"/assets/keyword._slug-C9Q1JDie.js",
"/assets/rolldown-runtime-C0FnF6B9.js",
"/assets/vendor-html-parser-DOJ8foyv.js",
"/assets/vendor-react-BREUBCH4.js",
"/assets/vendor-react-router-C-6Wf3r1.js",
"/assets/meta-U5VGOwY8.js",
"/assets/src-D7QQV_XS.js",
"/assets/src-4WSjVm7A.js",
"/assets/src-CYX7xg5W.js",
"/assets/src-CAqZuU8y.js",
"/assets/src-DWtK7QMI.js",
"/assets/src-DXoHOFKR.js",
"/assets/src-930pK6ob.js",
"/assets/src-PHRCXHKs.js",
"/assets/utils-D-tTJe50.js",
"/assets/src-B2pRdHuh.js",
"/assets/src-udkYdJij2.js",
"/assets/src-CBIQ4vZ12.js",
"/assets/src-Cp3Qrniv.js",
"/assets/src-BWo0DCzI.js",
"/assets/src-C0YCnq-s.js",
"/assets/src-CouXQPHZ.js",
"/assets/index.es-CsC_O2B4.js",
"/assets/src-CDQHVsjM.js",
"/assets/useLockBodyScroll-BGJrZGjL.js",
"/assets/src-srhSPO1G.js",
"/assets/src-BDOIYwtt.js",
"/assets/src-C35sQ8mk2.js",
"/assets/toNumber-6-D1X_Li.js",
"/assets/src-D64ngxa82.js",
"/assets/src-ncxLImPM.js"
],
"css": []
},
"routes/_index": {
"id": "routes/_index",
"parentId": "root",
"index": true,
"hasAction": false,
"hasLoader": true,
"hasClientAction": false,
"hasClientLoader": false,
"hasClientMiddleware": false,
"hasDefaultExport": true,
"hasErrorBoundary": true,
"module": "/assets/_index-BYKL8aWF.js",
"imports": [
"/assets/errorBoundary-DfVczMbW.js",
"/assets/_index-oKqV916I.js",
"/assets/rolldown-runtime-C0FnF6B9.js",
"/assets/vendor-html-parser-DOJ8foyv.js",
"/assets/vendor-react-BREUBCH4.js",
"/assets/vendor-react-router-C-6Wf3r1.js",
"/assets/meta-U5VGOwY8.js",
"/assets/src-D7QQV_XS.js",
"/assets/src-C35sQ8mk2.js",
"/assets/src-Cp3Qrniv.js",
"/assets/src-kMardYvX.js",
"/assets/src-PHRCXHKs.js",
"/assets/src-CDQHVsjM.js",
"/assets/swiper-react-frun646h.js",
"/assets/src-DXoHOFKR.js",
"/assets/src-930pK6ob.js",
"/assets/src-B2pRdHuh.js",
"/assets/src-DHh7ZlQz.js",
"/assets/src-BDOIYwtt.js",
"/assets/src-C0YCnq-s.js",
"/assets/toNumber-6-D1X_Li.js",
"/assets/index.es-CsC_O2B4.js",
"/assets/src-srhSPO1G.js",
"/assets/src-D64ngxa82.js",
"/assets/src-CouXQPHZ.js",
"/assets/src-ncxLImPM.js",
"/assets/extends-CvVTau-c.js"
],
"css": []
},
"routes/$topic._index": {
"id": "routes/$topic._index",
"parentId": "root",
"path": ":topic",
"index": true,
"hasAction": false,
"hasLoader": true,
"hasClientAction": false,
"hasClientLoader": false,
"hasClientMiddleware": false,
"hasDefaultExport": true,
"hasErrorBoundary": true,
"module": "/assets/_topic._index-Dy5XFsno.js",
"imports": [
"/assets/errorBoundary-DfVczMbW.js",
"/assets/_topic._index-BaxF_zRA.js",
"/assets/rolldown-runtime-C0FnF6B9.js",
"/assets/vendor-html-parser-DOJ8foyv.js",
"/assets/vendor-react-BREUBCH4.js",
"/assets/vendor-react-router-C-6Wf3r1.js",
"/assets/src-DmJiyrJ3.js",
"/assets/meta-U5VGOwY8.js",
"/assets/src-CouXQPHZ.js",
"/assets/src-DXoHOFKR.js",
"/assets/src-D7QQV_XS.js",
"/assets/src-930pK6ob.js",
"/assets/src-PHRCXHKs.js",
"/assets/src-Nngu3sDD.js",
"/assets/src-BjKFzooJ.js",
"/assets/src-udkYdJij2.js",
"/assets/src-CYX7xg5W.js",
"/assets/src-Cp3Qrniv.js",
"/assets/src-CAqZuU8y.js",
"/assets/src-kMardYvX.js",
"/assets/src-DWtK7QMI.js",
"/assets/string-DkYk6B6i.js",
"/assets/src-Dp7z_LbF.js",
"/assets/src-DTZSw1L4.js",
"/assets/_baseForOwn-CbXHluAm.js",
"/assets/useLockBodyScroll-BGJrZGjL.js",
"/assets/src-srhSPO1G.js",
"/assets/utils-D-tTJe50.js",
"/assets/src-C35sQ8mk2.js",
"/assets/src-CMwyClO9.js",
"/assets/src-BWo0DCzI.js",
"/assets/dist-BH8LObtE.js",
"/assets/src-B2pRdHuh.js",
"/assets/index.es-CsC_O2B4.js",
"/assets/src-ncxLImPM.js",
"/assets/extends-CvVTau-c.js",
"/assets/src-CDQHVsjM.js",
"/assets/swiper-react-frun646h.js",
"/assets/src-DHh7ZlQz.js",
"/assets/src-BDOIYwtt.js",
"/assets/src-C0YCnq-s.js",
"/assets/toNumber-6-D1X_Li.js",
"/assets/src-D64ngxa82.js",
"/assets/src-CBIQ4vZ12.js",
"/assets/striptags-BwxRt8hs.js",
"/assets/src-D_fDdcnk.js",
"/assets/esm-D1x6VqTd.js"
],
"css": []
}
},
"url": "/assets/manifest-8529d8c0.js",
"version": "8529d8c0"
};
window.__reactRouterRouteModules = {"root":route0,"routes/keyword.$slug":route1};
import("/assets/entry.client-D8SNnbFQ.js");</script><script defer="" src="https://www.instagram.com/embed.js"></script><!--$?--><template id="B:0"></template><!--/$--><script id="_R_">requestAnimationFrame(function(){$RT=performance.now()});</script><div hidden id="S:0"><script>window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_3\":-5,\"_4\":-5},\"loaderData\",{\"_5\":6,\"_7\":8},\"actionData\",\"errors\",\"root\",{\"_107\":20,\"_931\":932,\"_933\":49,\"_934\":935,\"_29\":30,\"_936\":937,\"_938\":939,\"_940\":26,\"_941\":942,\"_943\":944,\"_945\":946,\"_947\":948,\"_949\":950,\"_951\":952,\"_953\":-7,\"_954\":955,\"_956\":957,\"_958\":959,\"_960\":961,\"_17\":962},\"routes/keyword.$slug\",{\"_9\":10,\"_11\":12,\"_13\":14,\"_15\":16,\"_17\":18},\"template\",{\"_54\":45,\"_55\":45,\"_56\":57,\"_58\":59,\"_60\":61,\"_62\":63,\"_64\":65},\"metadata\",{\"_50\":51,\"_52\":53},\"schema\",[32],\"seo\",{\"_19\":20,\"_21\":22,\"_23\":24,\"_25\":26,\"_27\":28,\"_29\":30,\"_31\":-7},\"ruid\",\"nzi7e9a826f\",\"canonicalUrl\",\"https://www.gamedeveloper.com/keyword/blogs\",\"metaDescription\",\"Explore the latest news and expert commentary on Blogs, brought to you by the editors of Game Developer\",\"metaTitle\",\"Blogs recent news | Game Developer\",\"noIndex\",false,\"imageUrl\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltba62518415cda0e2/652fe6ddbc479f8697ef691f/default-cubic.png?disable=upscale\u0026width=1200\u0026height=630\u0026fit=crop\",\"siteName\",\"Game Developer\",\"mediaLinks\",{\"_33\":34,\"_35\":36,\"_37\":38},\"@context\",\"https://schema.org\",\"@type\",\"BreadcrumbList\",\"itemListElement\",[39,40],{\"_35\":41,\"_42\":47,\"_44\":48,\"_46\":49},{\"_35\":41,\"_42\":43,\"_44\":45,\"_46\":20},\"ListItem\",\"position\",2,\"name\",\"Blogs\",\"item\",1,\"Home\",\"https://www.gamedeveloper.com\",\"uid\",\"bltd66f4c5b110bcfbd\",\"aid\",\"663656\",\"title\",\"description\",\"breadcrumbs\",[927,928],\"pagination\",{\"_924\":925,\"_926\":47},\"contents\",[382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416],\"sidebarModules\",[79,80,81,82,83],\"newsletterSignUpPromo\",{\"_54\":66,\"_67\":68,\"_69\":70,\"_71\":72,\"_73\":74,\"_75\":76,\"_77\":78},\"Daily news, dev blogs, and stories from Game Developer straight to your inbox\",\"message\",\"\",\"newsletterId\",\"blt3618a0e49d9eaf7a\",\"buttonText\",\"Stay Updated\",\"buttonUrl\",\"https://gd-resources.gamedeveloper.com/free/w_gamf01/prgm.cgi\",\"variant\",\"vertical\",\"mode\",\"dark\",{\"_84\":85,\"_50\":340,\"_87\":341},{\"_84\":332,\"_50\":333,\"_87\":334},{\"_84\":269,\"_50\":270,\"_87\":271},{\"_84\":85,\"_50\":217,\"_87\":218},{\"_84\":85,\"_50\":86,\"_87\":88},\"type\",\"module_content_cards\",\"blt8c92597b7c5c40d7\",\"data\",{\"_89\":90,\"_54\":91,\"_92\":91,\"_75\":93,\"_94\":95,\"_60\":96,\"_97\":98,\"_99\":98,\"_100\":-7,\"_101\":102,\"_103\":104,\"_105\":106},\"isDynamicContent\",true,\"Game Design \u0026 Marketing Highlights\",\"moduleLabel\",\"column\",\"contentDisplayOption\",\"textList\",[111,112,113,114],\"dateDisplay\",\"hide\",\"contributorDisplay\",\"displayAd\",\"settingOption\",\"dynamic\",\"link\",{\"_107\":108,\"_109\":110},\"moduleLocation\",\"sidebar\",\"href\",\"/marketing\",\"label\",\"See More\",{\"_84\":115,\"_87\":197},{\"_84\":115,\"_87\":179},{\"_84\":115,\"_87\":162},{\"_84\":115,\"_87\":116},\"contentPreview\",{\"_117\":118,\"_75\":119,\"_120\":121,\"_122\":123,\"_124\":123,\"_125\":126,\"_127\":126,\"_128\":129,\"_130\":131,\"_132\":68,\"_133\":134,\"_135\":136,\"_137\":138,\"_139\":140,\"_141\":142,\"_143\":26,\"_144\":145},\"contentType\",\"Article\",\"card-vertical\",\"thumbnail\",{\"_158\":159,\"_160\":161},\"articleName\",\"How you (yes, you) can benefit from 1-on-1 synchronous playtesting\",\"mobileHeadline\",\"articleUrl\",\"/design/how-you-yes-you-can-benefit-from-1-on-1-synchronous-playtesting\",\"listPageUrl\",\"linkAttrs\",{},\"date\",\"Aug 27, 2026\",\"webinarStartTime\",\"categoryName\",\"Design\",\"categoryUrl\",\"/design\",\"contributors\",[151],\"timeRead\",4,\"paidGating\",{\"_148\":26,\"_149\":150},\"hasActivePaidProduct\",\"sponsorshipGatingGroup\",{\"_146\":26,\"_147\":26},\"sponsorshipGatingSponsorFlag\",\"sponsorshipGatingGateRegFlag\",\"paidContent\",\"paidProductTaxonomy\",[],{\"_44\":152,\"_103\":153,\"_154\":155,\"_156\":157},\"Danielle Riendeau\",\"/author/danielle-riendeau\",\"avatar\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt722812705eb8ab24/650f013b8f61917d4dd58a8c/DRPFP.jpg\",\"role\",\"Editor-in-Chief\",\"src\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc032a18e2adfc18e/6a906c70565a3c5a835ddeb1/slumber_realm_key_art_no_logo.png\",\"alt\",\"Key art from Slumber Realm, with colorful characters and dice\",{\"_117\":118,\"_75\":119,\"_120\":163,\"_122\":164,\"_124\":164,\"_125\":165,\"_127\":165,\"_128\":166,\"_130\":167,\"_132\":68,\"_133\":134,\"_135\":136,\"_137\":168,\"_139\":140,\"_141\":169,\"_143\":26,\"_144\":170},{\"_158\":177,\"_160\":178},\"Warlock's magic system was built on game-bending player choices\",\"/design/warlock-s-magic-system-was-built-on-game-breaking-player-choices\",{},\"Aug 28, 2026\",[172],{\"_148\":26,\"_149\":171},{\"_146\":26,\"_147\":26},[],{\"_44\":173,\"_103\":174,\"_154\":175,\"_156\":176},\"Chris Kerr\",\"/author/chris-kerr\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1c7a117d71555292/68df91e67f2d057e47bc3d18/Me.jpeg\",\"Senior Editor, News\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta87fff9bd7965b00/6a917d18467d2f43a64c87b2/Warlock_Header.png\",\"The protagonist in Warlock, a pale woman with a dark black pixie cut wearing magic armour \",{\"_117\":118,\"_75\":119,\"_120\":180,\"_122\":181,\"_124\":181,\"_125\":182,\"_127\":182,\"_128\":183,\"_130\":184,\"_132\":68,\"_133\":134,\"_135\":136,\"_137\":185,\"_139\":186,\"_141\":187,\"_143\":26,\"_144\":188},{\"_158\":195,\"_160\":196},\"Paradox Interactive's Afterworld wants to entice new players to grand strategy with tasty RPG hooks\",\"/design/paradox-interactive-s-afterworld-wants-to-entice-new-players-to-grand-strategy-with-tasty-rpg-hooks\",{},\"Sep 1, 2026\",[190],7,{\"_148\":26,\"_149\":189},{\"_146\":26,\"_147\":26},[],{\"_44\":191,\"_103\":192,\"_154\":193,\"_156\":194},\"Alessandro Fillari\",\"/author/alessandro-fillari\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt12bb8ee118261b99/6a3ac37faf3da32a8ffc0de2/74160366_10156857803648613_4710881105627054080_n.jpg\",\"Contributor\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt25f1adc41d53b5e2/6a9649eed78fd7bff8938dc5/afterworld_key_art_1280.png\",\"Characters from different factions look upon a brightly lit wasteland\",{\"_117\":118,\"_75\":119,\"_120\":198,\"_122\":199,\"_124\":199,\"_125\":200,\"_127\":200,\"_128\":201,\"_130\":202,\"_132\":68,\"_133\":203,\"_135\":204,\"_137\":205,\"_139\":206,\"_141\":207,\"_143\":26,\"_144\":208},{\"_158\":215,\"_160\":216},\"Trump Administration takes down Tetris clone after company warns it takes copyright violation 'very seriously'\",\"/business/trump-administration-takes-down-tetris-clone-after-company-warns-it-takes-copyright-violation-very-seriously-\",{},\"Sep 9, 2026\",\"Business\",\"/business\",[210],3,{\"_148\":26,\"_149\":209},{\"_146\":26,\"_147\":26},[],{\"_44\":211,\"_103\":212,\"_154\":213,\"_156\":214},\"Bryant Francis\",\"/author/bryant-francis\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta3f85503204169fc/696547b565f0535b7c308465/bryant2026headshot.png\",\"Senior Editor\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta0c68fc199e2d594/6aa17c6b6a263b212fd6b712/tetrisfeatured.jpg\",\"Graphic art mimicking the famous Tetris blocks.\",\"blt829b30bf540d67ab\",{\"_89\":90,\"_54\":219,\"_92\":220,\"_75\":93,\"_94\":95,\"_60\":221,\"_97\":222,\"_99\":222,\"_100\":-7,\"_101\":102,\"_103\":223,\"_105\":106},\"Trending\",\"Game Developer Collective\",[226,227,228],\"show\",{\"_107\":224,\"_109\":225},\"/keyword/game-developer-collective\",\"More\",{\"_84\":115,\"_87\":256},{\"_84\":115,\"_87\":243},{\"_84\":115,\"_87\":229},{\"_117\":118,\"_75\":119,\"_120\":230,\"_122\":231,\"_124\":231,\"_125\":232,\"_127\":232,\"_128\":233,\"_130\":234,\"_132\":68,\"_133\":203,\"_135\":204,\"_137\":235,\"_139\":236,\"_141\":237,\"_143\":26,\"_144\":238},{\"_158\":241,\"_160\":242},\"Are 'unreasonable investor expectations' the cause of poor video game market conditions?\",\"/business/are-unreasonable-investor-expectations-the-cause-of-poor-video-game-market-conditions-\",{},\"Jul 15, 2025\",[240],5,{\"_148\":26,\"_149\":239},{\"_146\":26,\"_147\":26},[],{\"_44\":211,\"_103\":212,\"_154\":213,\"_156\":214},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt6f01525d72f5b1c3/687669d83f53364453f30bf2/blameinvestorsfeatured.jpg\",\"A man in a suit hides his face as eight hands point at him in blame.\",{\"_117\":118,\"_75\":119,\"_120\":244,\"_122\":245,\"_124\":245,\"_125\":246,\"_127\":246,\"_128\":247,\"_130\":248,\"_132\":68,\"_133\":203,\"_135\":204,\"_137\":249,\"_139\":140,\"_141\":250,\"_143\":26,\"_144\":251},{\"_158\":254,\"_160\":255},\"Devs are more worried than ever that generative AI will lower the quality of games\",\"/business/devs-are-more-worried-than-ever-that-generative-ai-will-lower-the-quality-of-games\",{},\"Sep 16, 2025\",[253],{\"_148\":26,\"_149\":252},{\"_146\":26,\"_147\":26},[],{\"_44\":211,\"_103\":212,\"_154\":213,\"_156\":214},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc5a3580ea6a37cdc/689b76d8b5ca625122beeab9/frustrateddeveloperfeatured.jpg\",\"An African American woman looks at a laptop in frustration.\",{\"_117\":118,\"_75\":119,\"_120\":257,\"_122\":258,\"_124\":258,\"_125\":259,\"_127\":259,\"_128\":260,\"_130\":261,\"_132\":68,\"_133\":203,\"_135\":204,\"_137\":262,\"_139\":206,\"_141\":263,\"_143\":26,\"_144\":264},{\"_158\":267,\"_160\":268},\"Games that sell DLC and in-app purchases appear to benefit most from subscription services\",\"/business/games-that-sell-dlc-and-in-app-purchases-appear-to-benefit-most-from-subscription-services\",{},\"Jan 27, 2026\",[266],{\"_148\":26,\"_149\":265},{\"_146\":26,\"_147\":26},[],{\"_44\":211,\"_103\":212,\"_154\":213,\"_156\":214},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt7a79424246931087/6967e30f40bb4580b53d61e0/rematchfeatured.png\",\"A player character runs around with their arms extended in Rematch, other players stand behind them.\",\"module_link_list\",\"bltce104cc694e153f5\",{\"_89\":90,\"_272\":273,\"_274\":275,\"_276\":277,\"_278\":68,\"_279\":280,\"_281\":282,\"_283\":26,\"_284\":285},\"listOption\",\"Dynamic\",\"listTitle\",\"Latest Podcasts\",\"icon\",\"Microphone\",\"externalFeed\",\"ctaButton\",{\"_328\":329,\"_330\":331},\"headerMode\",\"light\",\"openInNewTab\",\"articles\",[286,287,288,289],{\"_117\":290,\"_54\":322,\"_292\":323,\"_294\":26,\"_295\":296,\"_297\":324,\"_299\":68,\"_132\":68,\"_300\":26,\"_133\":301,\"_135\":302,\"_141\":325,\"_143\":26,\"_144\":326},{\"_117\":290,\"_54\":314,\"_292\":315,\"_294\":26,\"_295\":296,\"_297\":316,\"_299\":68,\"_132\":68,\"_300\":26,\"_133\":317,\"_135\":318,\"_141\":319,\"_143\":26,\"_144\":320},{\"_117\":290,\"_54\":306,\"_292\":307,\"_294\":26,\"_295\":296,\"_297\":308,\"_299\":68,\"_132\":68,\"_300\":26,\"_133\":309,\"_135\":310,\"_141\":311,\"_143\":26,\"_144\":312},{\"_117\":290,\"_54\":291,\"_292\":293,\"_294\":26,\"_295\":296,\"_297\":298,\"_299\":68,\"_132\":68,\"_300\":26,\"_133\":301,\"_135\":302,\"_141\":303,\"_143\":26,\"_144\":304},\"Podcast\",\"What devs need to know about localization, ft. Concha Fernandez Alvarez, Aurelie Perrin, and Guido Di Carlo\",\"url\",\"/production/what-devs-need-to-know-about-localization-ft-concha-fernandez-alvarez-aurelie-perrin-and-guido-di-carlo\",\"isExternalLink\",\"readTime\",0,\"publishedDate\",\"2026-08-07T14:30:00.000Z\",\"eventDate\",\"sponsored\",\"Production\",\"/production\",{\"_148\":26,\"_149\":305},{\"_146\":26,\"_147\":26},[],\"We're finally talking about AI, ft. David 'Rez' Graham and Luke Dicken\",\"/programming/we-re-finally-talking-about-ai-ft-david-rez-graham-and-luke-dicken\",\"2026-08-21T14:45:37.000Z\",\"Programming\",\"/programming\",{\"_148\":26,\"_149\":313},{\"_146\":26,\"_147\":26},[],\"GDC Side Quest - Inside Austin Wintory's Collaborative Composing Process\",\"/audio/gdc-side-quest-inside-austin-wintory-s-collaborative-composing-process\",\"2026-08-28T14:15:00.000Z\",\"Audio\",\"/audio\",{\"_148\":26,\"_149\":321},{\"_146\":26,\"_147\":26},[],\"Strategically making Star Wars Zero Company, ft. Greg Foertsch\",\"/production/strategically-making-star-wars-zero-company-ft-greg-foertsch\",\"2026-09-04T14:15:00.000Z\",{\"_148\":26,\"_149\":327},{\"_146\":26,\"_147\":26},[],\"ctaButtonLink\",\"/keyword/game-developer-podcast\",\"ctaButtonText\",\"See all\",\"module_newsletter_promo\",\"blt5927fa665b4acf51\",{\"_54\":335,\"_67\":68,\"_69\":333,\"_71\":336,\"_73\":337,\"_75\":338,\"_77\":78,\"_339\":26,\"_105\":106},\"Keep up with the latest News, Interviews, and Talk Coverage from GDC Festival of Gaming right here on Game Developer\",\"READ ON\",\"https://www.gamedeveloper.com/keyword/gdc-festival-of-gaming\",\"horizontal\",\"isOnHomepage\",\"blt1fc59bb4e562c242\",{\"_89\":90,\"_54\":342,\"_92\":342,\"_75\":93,\"_94\":95,\"_60\":343,\"_97\":222,\"_99\":222,\"_100\":-7,\"_101\":102,\"_103\":344,\"_105\":106},\"Latest News\",[347,348,349],{\"_107\":345,\"_109\":346},\"/latest-news\",\"More News\",{\"_84\":115,\"_87\":370},{\"_84\":366,\"_87\":367},{\"_84\":115,\"_87\":350},{\"_117\":118,\"_75\":119,\"_120\":351,\"_122\":352,\"_124\":352,\"_125\":353,\"_127\":353,\"_128\":354,\"_130\":202,\"_132\":68,\"_133\":203,\"_135\":204,\"_137\":355,\"_139\":43,\"_141\":356,\"_143\":26,\"_144\":357},{\"_158\":364,\"_160\":365},\"Planet Zoo maker Frontier Developments' adjusted operating profit jumps 62 percent\",\"/business/planet-zoo-maker-frontier-developments-adjusted-operating-profit-jumps-62-percent\",{},[359],{\"_148\":26,\"_149\":358},{\"_146\":26,\"_147\":26},[],{\"_44\":360,\"_103\":361,\"_154\":362,\"_156\":363},\"Diego Argüello\",\"/author/diego-arguello\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt347a0e7bce060c71/682356963510b060418447c4/pic.jpg\",\"Contributing Editor, News\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1ebafe3b4ee5bd88/6aa16c4198e0574aee49d7d4/planet_coaster.jpg\",\"A screenshot of Planet Coaster 2 showing a group of people with their hands up in the air on a rollercoaster\",\"ad\",{\"_368\":369},\"pos\",\"native_vertical_1v\",{\"_117\":118,\"_75\":119,\"_120\":371,\"_122\":372,\"_124\":372,\"_125\":373,\"_127\":373,\"_128\":374,\"_130\":202,\"_132\":68,\"_133\":203,\"_135\":204,\"_137\":375,\"_139\":140,\"_141\":376,\"_143\":26,\"_144\":377},{\"_158\":380,\"_160\":381},\"Mark Cerny and Geoff Keighley launch university-affiliated fellowship program\",\"/business/mark-cerny-and-geoff-keighley-launch-university-affiliated-fellowship-program\",{},[379],{\"_148\":26,\"_149\":378},{\"_146\":26,\"_147\":26},[],{\"_44\":360,\"_103\":361,\"_154\":362,\"_156\":363},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt92ea441775e23e8b/6aa18297f7ad3d316b41b6fc/New_Project(36).png\",\"The Nova Games Foundation logo on a white background\",{\"_117\":118,\"_120\":911,\"_137\":912,\"_122\":913,\"_124\":913,\"_125\":914,\"_128\":915,\"_127\":68,\"_130\":916,\"_132\":68,\"_423\":917,\"_425\":68,\"_75\":426,\"_133\":203,\"_135\":204,\"_139\":427,\"_143\":26,\"_141\":918,\"_144\":919,\"_430\":431},{\"_117\":118,\"_120\":898,\"_137\":899,\"_122\":900,\"_124\":900,\"_125\":901,\"_128\":902,\"_127\":68,\"_130\":903,\"_132\":68,\"_423\":904,\"_425\":68,\"_75\":426,\"_133\":134,\"_135\":136,\"_139\":140,\"_143\":26,\"_141\":905,\"_144\":906,\"_430\":431},{\"_117\":118,\"_120\":881,\"_137\":882,\"_122\":883,\"_124\":883,\"_125\":884,\"_128\":885,\"_127\":68,\"_130\":886,\"_132\":68,\"_423\":887,\"_425\":68,\"_75\":426,\"_133\":203,\"_135\":204,\"_139\":446,\"_143\":26,\"_141\":888,\"_144\":889,\"_430\":431},{\"_117\":118,\"_120\":864,\"_137\":865,\"_122\":866,\"_124\":866,\"_125\":867,\"_128\":868,\"_127\":68,\"_130\":869,\"_132\":68,\"_423\":870,\"_425\":68,\"_75\":426,\"_133\":203,\"_135\":204,\"_139\":427,\"_143\":26,\"_141\":871,\"_144\":872,\"_430\":431},{\"_117\":118,\"_120\":850,\"_137\":851,\"_122\":852,\"_124\":852,\"_125\":853,\"_128\":854,\"_127\":68,\"_130\":855,\"_132\":68,\"_423\":856,\"_425\":68,\"_75\":426,\"_133\":301,\"_135\":302,\"_139\":639,\"_143\":26,\"_141\":857,\"_144\":858,\"_430\":431},{\"_117\":118,\"_120\":834,\"_137\":835,\"_122\":836,\"_124\":837,\"_125\":838,\"_128\":839,\"_127\":68,\"_130\":840,\"_132\":68,\"_423\":841,\"_425\":68,\"_75\":426,\"_133\":309,\"_135\":310,\"_139\":236,\"_143\":26,\"_141\":842,\"_144\":843,\"_430\":431},{\"_117\":118,\"_120\":820,\"_137\":821,\"_122\":822,\"_124\":822,\"_125\":823,\"_128\":824,\"_127\":68,\"_130\":825,\"_132\":68,\"_423\":826,\"_425\":68,\"_75\":426,\"_133\":134,\"_135\":136,\"_139\":427,\"_143\":26,\"_141\":827,\"_144\":828,\"_430\":431},{\"_117\":118,\"_120\":807,\"_137\":808,\"_122\":809,\"_124\":810,\"_125\":811,\"_128\":812,\"_127\":68,\"_130\":813,\"_132\":68,\"_423\":814,\"_425\":68,\"_75\":426,\"_133\":203,\"_135\":204,\"_139\":140,\"_143\":26,\"_141\":815,\"_144\":816,\"_430\":431},{\"_117\":118,\"_120\":795,\"_137\":796,\"_122\":797,\"_124\":797,\"_125\":798,\"_128\":799,\"_127\":68,\"_130\":800,\"_132\":68,\"_423\":801,\"_425\":68,\"_75\":426,\"_133\":134,\"_135\":136,\"_139\":186,\"_143\":26,\"_141\":802,\"_144\":803,\"_430\":431},{\"_117\":118,\"_120\":783,\"_137\":784,\"_122\":785,\"_124\":785,\"_125\":786,\"_128\":787,\"_127\":68,\"_130\":771,\"_132\":68,\"_423\":788,\"_425\":68,\"_75\":426,\"_133\":134,\"_135\":136,\"_139\":476,\"_143\":26,\"_141\":789,\"_144\":790,\"_430\":431},{\"_117\":118,\"_120\":766,\"_137\":767,\"_122\":768,\"_124\":768,\"_125\":769,\"_128\":770,\"_127\":68,\"_130\":771,\"_132\":68,\"_423\":772,\"_425\":68,\"_75\":426,\"_133\":301,\"_135\":302,\"_139\":446,\"_143\":26,\"_141\":773,\"_144\":774,\"_430\":431},{\"_117\":118,\"_120\":751,\"_137\":752,\"_122\":753,\"_124\":753,\"_125\":754,\"_128\":755,\"_127\":68,\"_130\":756,\"_132\":68,\"_423\":757,\"_425\":68,\"_75\":426,\"_133\":758,\"_135\":759,\"_139\":140,\"_143\":26,\"_141\":760,\"_144\":761,\"_430\":431},{\"_117\":118,\"_120\":735,\"_137\":736,\"_122\":737,\"_124\":737,\"_125\":738,\"_128\":739,\"_127\":68,\"_130\":740,\"_132\":68,\"_423\":741,\"_425\":68,\"_75\":426,\"_133\":203,\"_135\":204,\"_139\":140,\"_143\":26,\"_141\":742,\"_144\":743,\"_430\":431},{\"_117\":118,\"_120\":719,\"_137\":720,\"_122\":721,\"_124\":721,\"_125\":722,\"_128\":723,\"_127\":68,\"_130\":724,\"_132\":68,\"_423\":725,\"_425\":68,\"_75\":426,\"_133\":726,\"_135\":727,\"_139\":728,\"_143\":26,\"_141\":729,\"_144\":730,\"_430\":431},{\"_117\":118,\"_120\":703,\"_137\":704,\"_122\":705,\"_124\":705,\"_125\":706,\"_128\":707,\"_127\":68,\"_130\":708,\"_132\":68,\"_423\":709,\"_425\":68,\"_75\":426,\"_133\":134,\"_135\":136,\"_139\":639,\"_143\":26,\"_141\":710,\"_144\":711,\"_430\":431},{\"_117\":118,\"_120\":687,\"_137\":688,\"_122\":689,\"_124\":689,\"_125\":690,\"_128\":691,\"_127\":68,\"_130\":692,\"_132\":68,\"_423\":693,\"_425\":68,\"_75\":426,\"_133\":203,\"_135\":204,\"_139\":427,\"_143\":26,\"_141\":694,\"_144\":695,\"_430\":431},{\"_117\":118,\"_120\":673,\"_137\":674,\"_122\":675,\"_124\":675,\"_125\":676,\"_128\":677,\"_127\":68,\"_130\":678,\"_132\":68,\"_423\":679,\"_425\":68,\"_75\":426,\"_133\":134,\"_135\":136,\"_139\":639,\"_143\":26,\"_141\":680,\"_144\":681,\"_430\":431},{\"_117\":118,\"_120\":661,\"_137\":662,\"_122\":663,\"_124\":663,\"_125\":664,\"_128\":665,\"_127\":68,\"_130\":666,\"_132\":68,\"_423\":667,\"_425\":68,\"_75\":426,\"_133\":309,\"_135\":310,\"_139\":639,\"_143\":26,\"_141\":668,\"_144\":669,\"_430\":431},{\"_117\":118,\"_120\":647,\"_137\":648,\"_122\":649,\"_124\":649,\"_125\":650,\"_128\":651,\"_127\":68,\"_130\":652,\"_132\":68,\"_423\":653,\"_425\":68,\"_75\":426,\"_133\":203,\"_135\":204,\"_139\":186,\"_143\":26,\"_141\":654,\"_144\":655,\"_430\":431},{\"_117\":118,\"_120\":632,\"_137\":633,\"_122\":634,\"_124\":634,\"_125\":635,\"_128\":636,\"_127\":68,\"_130\":637,\"_132\":68,\"_423\":638,\"_425\":68,\"_75\":426,\"_133\":203,\"_135\":204,\"_139\":639,\"_143\":26,\"_141\":640,\"_144\":641,\"_430\":431},{\"_117\":118,\"_120\":619,\"_137\":620,\"_122\":621,\"_124\":621,\"_125\":622,\"_128\":623,\"_127\":68,\"_130\":624,\"_132\":68,\"_423\":625,\"_425\":68,\"_75\":426,\"_133\":203,\"_135\":204,\"_139\":476,\"_143\":26,\"_141\":626,\"_144\":627,\"_430\":431},{\"_117\":118,\"_120\":606,\"_137\":607,\"_122\":608,\"_124\":608,\"_125\":609,\"_128\":610,\"_127\":68,\"_130\":611,\"_132\":68,\"_423\":612,\"_425\":68,\"_75\":426,\"_133\":134,\"_135\":136,\"_139\":186,\"_143\":26,\"_141\":613,\"_144\":614,\"_430\":431},{\"_117\":118,\"_120\":591,\"_137\":592,\"_122\":593,\"_124\":593,\"_125\":594,\"_128\":595,\"_127\":68,\"_130\":596,\"_132\":68,\"_423\":597,\"_425\":68,\"_75\":426,\"_133\":598,\"_135\":108,\"_139\":140,\"_143\":26,\"_141\":599,\"_144\":600,\"_430\":431},{\"_117\":118,\"_120\":578,\"_137\":579,\"_122\":580,\"_124\":580,\"_125\":581,\"_128\":582,\"_127\":68,\"_130\":583,\"_132\":68,\"_423\":584,\"_425\":68,\"_75\":426,\"_133\":301,\"_135\":302,\"_139\":186,\"_143\":26,\"_141\":585,\"_144\":586,\"_430\":431},{\"_117\":118,\"_120\":565,\"_137\":566,\"_122\":567,\"_124\":567,\"_125\":568,\"_128\":569,\"_127\":68,\"_130\":570,\"_132\":68,\"_423\":571,\"_425\":68,\"_75\":426,\"_133\":134,\"_135\":136,\"_139\":186,\"_143\":26,\"_141\":572,\"_144\":573,\"_430\":431},{\"_117\":118,\"_120\":554,\"_137\":555,\"_122\":556,\"_124\":556,\"_125\":557,\"_128\":558,\"_127\":68,\"_130\":559,\"_132\":68,\"_423\":560,\"_425\":68,\"_75\":426,\"_133\":309,\"_135\":310,\"_139\":186,\"_143\":26,\"_141\":561,\"_144\":562,\"_430\":431},{\"_117\":118,\"_120\":540,\"_137\":541,\"_122\":542,\"_124\":542,\"_125\":543,\"_128\":544,\"_127\":68,\"_130\":545,\"_132\":68,\"_423\":546,\"_425\":68,\"_75\":426,\"_133\":301,\"_135\":302,\"_139\":427,\"_143\":26,\"_141\":547,\"_144\":548,\"_430\":431},{\"_117\":118,\"_120\":526,\"_137\":527,\"_122\":528,\"_124\":528,\"_125\":529,\"_128\":530,\"_127\":68,\"_130\":531,\"_132\":68,\"_423\":532,\"_425\":68,\"_75\":426,\"_133\":317,\"_135\":318,\"_139\":476,\"_143\":26,\"_141\":533,\"_144\":534,\"_430\":431},{\"_117\":118,\"_120\":512,\"_137\":513,\"_122\":514,\"_124\":514,\"_125\":515,\"_128\":516,\"_127\":68,\"_130\":503,\"_132\":68,\"_423\":517,\"_425\":68,\"_75\":426,\"_133\":301,\"_135\":302,\"_139\":518,\"_143\":26,\"_141\":519,\"_144\":520,\"_430\":431},{\"_117\":118,\"_120\":498,\"_137\":499,\"_122\":500,\"_124\":500,\"_125\":501,\"_128\":502,\"_127\":68,\"_130\":503,\"_132\":68,\"_423\":504,\"_425\":68,\"_75\":426,\"_133\":134,\"_135\":136,\"_139\":186,\"_143\":26,\"_141\":505,\"_144\":506,\"_430\":431},{\"_117\":118,\"_120\":483,\"_137\":484,\"_122\":485,\"_124\":485,\"_125\":486,\"_128\":487,\"_127\":68,\"_130\":488,\"_132\":68,\"_423\":489,\"_425\":68,\"_75\":426,\"_133\":301,\"_135\":302,\"_139\":490,\"_143\":26,\"_141\":491,\"_144\":492,\"_430\":431},{\"_117\":118,\"_120\":469,\"_137\":470,\"_122\":471,\"_124\":471,\"_125\":472,\"_128\":473,\"_127\":68,\"_130\":474,\"_132\":68,\"_423\":475,\"_425\":68,\"_75\":426,\"_133\":134,\"_135\":136,\"_139\":476,\"_143\":26,\"_141\":477,\"_144\":478,\"_430\":431},{\"_117\":118,\"_120\":455,\"_137\":456,\"_122\":457,\"_124\":457,\"_125\":458,\"_128\":459,\"_127\":68,\"_130\":460,\"_132\":68,\"_423\":461,\"_425\":68,\"_75\":426,\"_133\":317,\"_135\":318,\"_139\":236,\"_143\":26,\"_141\":462,\"_144\":463,\"_430\":431},{\"_117\":118,\"_120\":439,\"_137\":440,\"_122\":441,\"_124\":441,\"_125\":442,\"_128\":443,\"_127\":68,\"_130\":444,\"_132\":68,\"_423\":445,\"_425\":68,\"_75\":426,\"_133\":134,\"_135\":136,\"_139\":446,\"_143\":26,\"_141\":447,\"_144\":448,\"_430\":431},{\"_117\":118,\"_120\":417,\"_137\":418,\"_122\":419,\"_124\":419,\"_125\":420,\"_128\":421,\"_127\":68,\"_130\":422,\"_132\":68,\"_423\":424,\"_425\":68,\"_75\":426,\"_133\":134,\"_135\":136,\"_139\":427,\"_143\":26,\"_141\":428,\"_144\":429,\"_430\":431},{\"_158\":438,\"_160\":68},[433],\"The overdesign trap of game design\",\"/design/the-overdesign-trap-of-game-design\",{},\"Nov 4, 2024\",\"articleSummary\",\"Why over-designing your game can lead to an unfocused mess.\\n\",\"articleBodyJsonSummary\",\"normal\",6,{\"_148\":26,\"_149\":432},{\"_146\":26,\"_147\":26},\"articleSize\",\"big\",[],{\"_44\":434,\"_103\":435,\"_154\":436,\"_156\":437},\"Josh Bycer\",\"/author/josh-bycer\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt98434093b67825eb/650efd6139ff36eea344b067/bycerportrait.jpg\",\"Blogger\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltcbd718b7be12d37c/6720fe5021f0d3bcd01b1459/Picture2.png\",{\"_158\":454,\"_160\":68},[450],\"Must-have tools and libraries for indie game developers in 2024\",\"/design/must-have-tools-and-libraries-for-indie-game-developers-in-2024\",{},\"Nov 11, 2024\",\"Thanks to the constant development of technology and an ever-growing set of powerful tools, indie developers can create games that rival those made by big studios. If you're an indie developer looking to take your project to the next level, here's your essential toolkit for 2024.\\n\",9,{\"_148\":26,\"_149\":449},{\"_146\":26,\"_147\":26},[],{\"_44\":451,\"_103\":452,\"_154\":453,\"_156\":68},\"Maxim Kiselev\",\"/author/maxim-kiselev\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltdf8a1a742cc4a912/673236419d70b8d5ad06deaa/AdobeStock_615906569.jpeg\",{\"_158\":468,\"_160\":68},[465],\"Reflections on my score for Tactical Breach Wizards\",\"/audio/reflections-on-my-score-for-tactical-breach-wizards\",{},\"Nov 13, 2024\",\"Here's an inside look at the creative process, inspirations, experiences, and challenges behind the score for Tactical Breach Wizards.\",{\"_148\":26,\"_149\":464},{\"_146\":26,\"_147\":26},[],{\"_44\":466,\"_103\":467,\"_154\":453,\"_156\":68},\"Robert Arzola\",\"/author/-title\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt7eada1366ade2416/6734de4921914346f5dc7c6d/Tactical_Breach_Wizards.jpg\",{\"_158\":482,\"_160\":68},[480],\"Bringing improvisation to digital games with GenAI\",\"/design/bringing-improvisation-to-digital-games-with-genai\",{},\"Nov 14, 2024\",\"Jam \u0026 Tea Studios is bringing improvisation to digital games with Generative AI.\",8,{\"_148\":26,\"_149\":479},{\"_146\":26,\"_147\":26},[],{\"_44\":481,\"_103\":467,\"_154\":453,\"_156\":68},\"Michael Yichao\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc9b7dff95a53de60/66b0f657593f06af462b936f/RESIZE_GD_Blogs_Header_RESIZE.png\",{\"_158\":497,\"_160\":68},[494],\"I designed economies for $150M games: here's my ultimate handbook\",\"/production/i-designed-economies-for-150m-games-here-s-my-ultimate-handbook\",{},\"Nov 15, 2024\",\"After 5 years designing game economies generating $150M+, I've compiled my knowledge into a detailed 7-chapter guide on game economy, balance, and monetization.\\n\",86,{\"_148\":26,\"_149\":493},{\"_146\":26,\"_147\":26},[],{\"_44\":495,\"_103\":496,\"_154\":453,\"_156\":68},\"Alex\\tWiserax\",\"/author/alex-wiserax\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blte50972fdeed355f2/67323006df2e42a1b2b398a8/img1.png\",{\"_158\":511,\"_160\":68},[508],\"The art of game balance: evolution\",\"/design/the-art-of-game-balance-evolution\",{},\"Nov 18, 2024\",\"First of a three-part series on combat-focused game balance design, exploring its evolution and showcasing successful case studies.\",{\"_148\":26,\"_149\":507},{\"_146\":26,\"_147\":26},[],{\"_44\":509,\"_103\":510,\"_154\":453,\"_156\":68},\"Breno Azevedo\",\"/author/breno-azevedo\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltdc3edf6006df457b/67324dcc234a34327e8ff50f/Scales.png\",{\"_158\":525,\"_160\":68},[522],\"Reviving retro: the art and science of recharging Atari’s classic games for modern audiences\",\"/production/reviving-retro-the-art-and-science-of-recharging-atari-s-classic-games-for-modern-audiences\",{},\"SneakyBox lead game designer, Augustas Vachauzas, outlines the challenges and solutions in remastering classic Atari games for modern audiences.\",15,{\"_148\":26,\"_149\":521},{\"_146\":26,\"_147\":26},[],{\"_44\":523,\"_103\":524,\"_154\":453,\"_156\":68},\"Augustas Vachauzas\",\"/author/untitled\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltfcf53681e45b9768/673775407a0f437391091a2d/Hero_image.png\",{\"_158\":539,\"_160\":68},[536],\"How to record a giant mech: Recording sound design with War Robots\",\"/audio/how-to-record-a-giant-mech-recording-sound-design-with-war-robots\",{},\"Nov 20, 2024\",\"We explain the sound recording and design process based on our years of experience with War Robots: processes that work and fails to avoid! \",{\"_148\":26,\"_149\":535},{\"_146\":26,\"_147\":26},[],{\"_44\":537,\"_103\":538,\"_154\":453,\"_156\":68},\"Ilya Viktorov\",\"/author/ilya-viktorov\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf525b41c67c3e7f5/673e52c60f3226cb6479b0b2/gdfb_fullsize_test.png\",{\"_158\":553,\"_160\":68},[550],\"10 lessons learned from the development of Nikoderiko\",\"/production/10-lessons-learned-from-the-development-of-nikoderiko\",{},\"Nov 21, 2024\",\"The piece dives into everything from optimizing for weaker platforms to why clear outsourcing guidelines are a lifesaver, with practical takeaways for devs.\",{\"_148\":26,\"_149\":549},{\"_146\":26,\"_147\":26},[],{\"_44\":551,\"_103\":552,\"_154\":453,\"_156\":68},\"Dmitry Smirnov\",\"/author/dmitry-smirnov\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt5bc27479f52b6c81/673f870ce2b6b1c33987b30e/1.png\",{\"_158\":564,\"_160\":68},[],\"How wall running and high-speed movement works in Project: Haste\",\"/programming/how-wall-running-and-high-speed-movement-works-in-project-haste\",{},\"Nov 22, 2024\",\"A walkthrough of the movement system's core design values and how they were programmed and implemented. \",{\"_148\":26,\"_149\":563},{\"_146\":26,\"_147\":26},[],\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt592378c12ebcf88b/673f58f3a45977cf34f3d05a/Greg_(1).png\",{\"_158\":576,\"_160\":577},[575],\"Why you can't objectively build great games\",\"/design/why-you-can-t-objectively-design-the-perfect-game\",{},\"Nov 25, 2024\",\"Developers are always trying to find that winning formula for the perfect game, but it takes more than analytics to build an amazing game.\",{\"_148\":26,\"_149\":574},{\"_146\":26,\"_147\":26},[],{\"_44\":434,\"_103\":435,\"_154\":436,\"_156\":437},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt75aa64b424613e76/67460047a659b01f9c28af7d/synthetic_games.png\",\"game icons on a factory belt\",{\"_158\":590,\"_160\":68},[588],\"Survival guide to developing a game and publishing it on Steam\",\"/production/survival-guide-to-develop-a-game-and-then-publish-it-on-steam-\",{},\"Nov 27, 2024\",\"What seemed like just a technical challenge turned into a journey that included design, production, marketing and all the other aspects of the industry that make a good idea become a finished and published project. \",{\"_148\":26,\"_149\":587},{\"_146\":26,\"_147\":26},[],{\"_44\":589,\"_103\":524,\"_154\":453,\"_156\":68},\"Miguel Enjuto Ojanguren\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt0f223aa82c800eec/673f549ba3cfe714219a4409/Header_Everdark.jpg\",{\"_158\":604,\"_160\":605},[602],\"The art of balance in community management\",\"/marketing/the-art-of-balance-in-community-management\",{},\"Dec 2, 2024\",\"Midjiwan's community manager explains how studios can strike a balance between fan input and preserving the team's creative vision.\",\"Marketing\",{\"_148\":26,\"_149\":601},{\"_146\":26,\"_147\":26},[],{\"_44\":603,\"_103\":524,\"_154\":453,\"_156\":68},\"Brenton Stockwell\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc3c0575110392521/6749d30cd2ab322257f7c41a/Midjiwan_Community_Byline_Featured_Image.png\",\"an icy landscape and giant dice\",{\"_158\":618,\"_160\":68},[616],\"How to play a game if you want to learn about making one\",\"/design/how-to-play-a-game-\",{},\"Dec 3, 2024\",\"Starting game design journey by playing games with a critical eye. Experience games, record your thoughts, research opinions, and reflect to improve your skills.\\n\",{\"_148\":26,\"_149\":615},{\"_146\":26,\"_147\":26},[],{\"_44\":617,\"_103\":524,\"_154\":453,\"_156\":68},\"Ishan Manjrekar\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd928f16f09e68571/6749d48ed80094747c893c31/coverimage.jpg\",{\"_158\":631,\"_160\":68},[629],\"Gnarly content: 9 risks for horror game development\",\"/business/gnarly-content-9-risks-for-horror-game-development\",{},\"Dec 4, 2024\",\"This blog explores some of the risks of horror game development and how to address them.\",{\"_148\":26,\"_149\":628},{\"_146\":26,\"_147\":26},[],{\"_44\":630,\"_103\":524,\"_154\":453,\"_156\":68},\"Chad Habel\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt5f04c90e1430ce0a/674de0f2a5326dc6edc4ea7a/ENd_of_Ember.jpg\",{\"_158\":646,\"_160\":68},[643],\"The Last Humble Bee postmortem: Staying sane in solo development\",\"/business/the-last-humble-bee-postmortem-staying-sane-in-solo-development\",{},\"Dec 5, 2024\",\"This is a postmortem for my second game release, and I share lessons learned for staying sane in independent solo game development.\",10,{\"_148\":26,\"_149\":642},{\"_146\":26,\"_147\":26},[],{\"_44\":644,\"_103\":645,\"_154\":453,\"_156\":437},\"Jacob Weersing\",\"/author/jacob-weersing\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltdfbed1bf39f8655c/674de2bbbeae623ba2080382/The_Last_Humble_Bee.jpg\",{\"_158\":660,\"_160\":68},[657],\"Mastering hybrid-casual game design: Lessons in balancing depth and accessibility\",\"/business/mastering-hybrid-casual-game-design-lessons-in-balancing-depth-and-accessibility\",{},\"Dec 6, 2024\",\"SayGames Chief Publishing Officer Anton Volnykh shares tips on creating engaging gameplay and thoughtful introduction of monetisation. \\n\",{\"_148\":26,\"_149\":656},{\"_146\":26,\"_147\":26},[],{\"_44\":658,\"_103\":659,\"_154\":453,\"_156\":68},\"Anton Volnykh\",\"/author/anton-volnykh\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3a4e6e02a38d453d/675b21c5f38e1a9208bbbba4/header_image.png\",{\"_158\":672,\"_160\":68},[671],\"6 steps to a successful playtesting process for an indie developer\",\"/programming/6-steps-to-a-successful-playtesting-process-for-an-indie-developer\",{},\"Dec 9, 2024\",\"Maxim Kiselev, an indie game developer best known as the co-creator of HighFleet, outlined the playtesting roadmap for indie developers.\\n\",{\"_148\":26,\"_149\":670},{\"_146\":26,\"_147\":26},[],{\"_44\":451,\"_103\":452,\"_154\":453,\"_156\":68},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc1abc82bc4098a66/6751dd7c47226c7aa696d7e5/Pic1.jpg\",{\"_158\":686,\"_160\":68},[683],\"How to create a 'fair' auto-aiming system in a robot shooter\",\"/design/how-to-create-a-fair-auto-aiming-system-in-a-robot-shooter-\",{},\"Dec 10, 2024\",\"Overhauling the algorithm and the introduction of a single mathematical formula to determine target priority has made our auto-aim settings more transparent and predictable for all players–and to great feedback.\",{\"_148\":26,\"_149\":682},{\"_146\":26,\"_147\":26},[],{\"_44\":684,\"_103\":685,\"_154\":453,\"_156\":68},\"Kirill\\tSharikov\",\"/author/kirill-sharikov\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltbb6f9b28881c65e5/6753208a424b7db0d7b05210/image01.jpg\",{\"_158\":702,\"_160\":68},[697],\"Microsoft is not ready to deprioritize Xbox consoles\",\"/business/microsoft-is-not-ready-to-deprioritize-xbox-consoles\",{},\"Dec 13, 2024\",\"While Microsoft's new global marketing campaign reaffirms a shift in their strategy to attract Xbox users off-console, \\nquestions are raised over the company's readiness in the cloud, mobile, PC, and handheld segments.\",{\"_148\":26,\"_149\":696},{\"_146\":26,\"_147\":26},[],{\"_44\":698,\"_103\":699,\"_154\":700,\"_156\":701},\"James McWhirter\",\"/author/james-mcwhirter\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf2b78e3136bc934a/65e0f3d8d12110040acc2c87/James_McWhirter_image_SL.png\",\"Senior Analyst, Games\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt5964c2ff9d771f86/6758a9b10ebbee9e364afedc/TIAX.jpg\",{\"_158\":718,\"_160\":68},[713],\"Game Developer's 2024 Wrap-Up: 10 must-read Featured Blogs\",\"/design/game-developer-s-2024-wrap-up-10-must-read-featured-blogs\",{},\"Dec 17, 2024\",\"Read the most significant featured blogs of the year. \",{\"_148\":26,\"_149\":712},{\"_146\":26,\"_147\":26},[],{\"_44\":714,\"_103\":715,\"_154\":716,\"_156\":717},\"Holly Green\",\"/author/holly-green\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltdec6f50070a70555/650f059f457d12263163b2ca/75258562_10220983058707614_8585122828469141504_n.jpg\",\"Community Editorial Coordinator\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt6c2266ea7220dd97/6765b68cbee97250a3ed6574/Game_Developer_Best_Featured_Blogs_2024.png\",{\"_158\":734,\"_160\":68},[732],\"Death to all zombies: crafting weapons for Zombie State\",\"/art/death-to-all-zombies-crafting-weapons-for-zombie-state\",{},\"Dec 18, 2024\",\"The technical and creative journey to create a wordless story for each gun design and foster an emotional attachment to each weapon.\",\"Art\",\"/art\",17,{\"_148\":26,\"_149\":731},{\"_146\":26,\"_147\":26},[],{\"_44\":733,\"_103\":524,\"_154\":453,\"_156\":68},\"Denis Pozdnyakov\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltcf09a2794423bf81/675c638e32c9f19ad93ac90c/image001.png\",{\"_158\":750,\"_160\":68},[745],\"Reality check for VR: Omdia forecasts decline as Apple’s entry fails to galvanize market\",\"/business/reality-check-for-vr-omdia-forecasts-decline-as-apple-s-entry-fails-to-galvanize-market\",{},\"Dec 20, 2024\",\"Omdia analyst examines key challenges facing the consumer VR market today and shares insights on its future trajectory.\",{\"_148\":26,\"_149\":744},{\"_146\":26,\"_147\":26},[],{\"_44\":746,\"_103\":747,\"_154\":748,\"_156\":749},\"George Jijiashvili\",\"/author/george-jijiashvili\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8c4d643639302af6/65088a9fa2e641425e443627/George_Jijiashvili.jpg\",\"Senior Principal Analyst, Games\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf82b50e29f603d48/676470f60879222a87db12d7/Apple_Vision_Pro.jpg\",{\"_158\":482,\"_160\":68},[763],\"Enhancing experiences through scent: Technological integration across virtual environments, entertainment, and therapeutic applications\",\"/extended-reality/enhancing-experiences-through-scent-technological-integration-across-virtual-environments-entertainment-and-therapeutic-applications\",{},\"Jan 6, 2025\",\"Enhancing experiences through scent.\",\"Extended Reality\",\"/game-platforms/extended-reality\",{\"_148\":26,\"_149\":762},{\"_146\":26,\"_147\":26},[],{\"_44\":764,\"_103\":765,\"_154\":453,\"_156\":68},\"Prateek Polapally\",\"/author/prateek-polapally\",{\"_158\":782,\"_160\":68},[776,777],\"Reflections on the journey of publishing Everseeker: Little Critters\",\"/production/reflections-on-the-journey-of-publishing-everseeker-little-critters\",{},\"Jan 7, 2025\",\"Sharing my journey of creating and publishing my first game, Everseeker: Little Critters, with insights on development, Steam integration, and indie marketing.\",{\"_148\":26,\"_149\":775},{\"_146\":26,\"_147\":26},[],{\"_44\":780,\"_103\":781,\"_154\":453,\"_156\":68},{\"_44\":778,\"_103\":779,\"_154\":453,\"_156\":68},\"Buscariol Maiettini\",\"/author/buscariol-maiettini\",\"João Victor Kaian\",\"/author/joao-victor-kaian\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt5473164f35f05951/677c2a9b316bc66b9370b183/Everseeker_Little_Critters.jpg\",{\"_158\":482,\"_160\":68},[792],\"How balance can affect difficulty\",\"/design/how-balance-can-affect-difficulty\",{},\"Using game balancing to affect the difficulty of games.\",{\"_148\":26,\"_149\":791},{\"_146\":26,\"_147\":26},[],{\"_44\":793,\"_103\":794,\"_154\":453,\"_156\":68},\"Arjun Wagle\",\"/author/arjun-wagle\",{\"_158\":806,\"_160\":68},[805],\"Prince of Persia's accessibility is inaccessible to some\",\"/design/prince-of-persia-s-accessibility-is-inaccessible-to-some\",{},\"Jan 8, 2025\",\"When accessibility becomes commoditized.\",{\"_148\":26,\"_149\":804},{\"_146\":26,\"_147\":26},[],{\"_44\":434,\"_103\":435,\"_154\":436,\"_156\":437},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt92f40eeb9737e88d/677c3300827b1fbe14ab18e8/Prince_of_Persia_Accessibility.jpg\",{\"_158\":819,\"_160\":68},[818],\"Valve stakes its claim to PC gaming handhelds with SteamOS’s arrival on Lenovo Legion Go S\",\"Valve stakes its claim to PC gaming handhelds with SteamOS’s arrival on Lenovo Legion Go S \",\"/business/valve-stakes-its-claim-to-pc-gaming-handhelds-with-steamos-s-arrival-on-lenovo-legion-go-s\",{},\"Jan 9, 2025\",\"Valve’s collaboration with hardware manufacturers and chipset makers strengthens SteamOS’s position in the PC gaming handheld space.\",{\"_148\":26,\"_149\":817},{\"_146\":26,\"_147\":26},[],{\"_44\":698,\"_103\":699,\"_154\":700,\"_156\":701},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt88d4318d528a1cfb/677ed50dbf2d061c2a702fc6/Lenovo_Legion.png\",{\"_158\":833,\"_160\":68},[830],\"6 elements of visual guidance\",\"/design/6-elements-of-visual-guidance\",{},\"Jan 13, 2025\",\"Visual guidance is a crucial aspect of game environment that helps players navigate and interact with the world effectively. \",{\"_148\":26,\"_149\":829},{\"_146\":26,\"_147\":26},[],{\"_44\":831,\"_103\":832,\"_154\":453,\"_156\":68},\"Liu Xinyan\",\"/author/liu-xinyan\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltfe3db091b4851f10/677c3d5fe3dd24e4f8442198/pexels-monicore-134065.jpg\",{\"_158\":848,\"_160\":849},[845],\"Converting saves, a cross platform journey\",\"Save the saves\",\"/programming/save-the-saves\",{},\"Jan 15, 2025\",\"In this article about console porting, we'll discuss specifically the solutions we found to translate the save system.\",{\"_148\":26,\"_149\":844},{\"_146\":26,\"_147\":26},[],{\"_44\":846,\"_103\":847,\"_154\":453,\"_156\":68},\"Oleksii Honcharov\",\"/author/oleksii-honcharov\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd69a9f920f70b945/67881ec41c37bbbb7e2be55b/pingle_image.png\",\"underwater adventure images\",{\"_158\":863,\"_160\":68},[860],\"A developer's guide to effective localization in Unreal Engine\",\"/production/a-developer-s-guide-to-effective-localization-in-unreal-engine\",{},\"Jan 17, 2025\",\"This article shares insights based on the development of Wizard of Legend 2, detailing the complexities encountered in Unreal Engine localization.\",{\"_148\":26,\"_149\":859},{\"_146\":26,\"_147\":26},[],{\"_44\":861,\"_103\":862,\"_154\":453,\"_156\":68},\"Shayan Aminnezhad\",\"/author/shayan-aminnezhad\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt0ef35b851dea1766/677da0a4316bc621d370b71c/Wizard_of_Legend_2.jpg\",{\"_158\":879,\"_160\":880},[874],\"It's time for gaming awards to rethink the strategy/sim category\",\"/business/it-s-time-for-gaming-awards-to-rethink-the-strategy-sim-category\",{},\"Apr 9, 2025\",\"A plea to rethink how strategy and simulation awards are handed out.\",{\"_148\":26,\"_149\":873},{\"_146\":26,\"_147\":26},[],{\"_44\":875,\"_103\":876,\"_154\":877,\"_156\":878},\"Greg Foertsch\",\"/author/greg-foertsch\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt55cc1ac6d2ccc802/67f692d4239d84575c6596e1/BitReactor_Office-82.jpg\",\"CEO\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltcb7aec5e34adbf9d/67f69201e8087a34593ed473/trophyfeatured.png\",\"A trophy.\",{\"_158\":896,\"_160\":897},[891],\"The huge, hidden web game market no one talks about (and how to get in)\",\"/business/the-huge-hidden-web-game-market-no-one-talks-about-and-how-to-get-in-\",{},\"Apr 15, 2025\",\"There's a hidden market of customers who want to play games on the web.\",{\"_148\":26,\"_149\":890},{\"_146\":26,\"_147\":26},[],{\"_44\":892,\"_103\":893,\"_154\":894,\"_156\":895},\"Dmitry Kachmar\",\"/author/dmitry-kachmar\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt120870265293d448/67f69a97f23d8a8aeb9c981d/Dmitry_Kachmar_Playgama_Headshot.png\",\"Founder\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltfc68bfff3fcbeb0f/67f69a4b5d57d86222e2643b/Image_-_Header.png\",\"A graphic with the word \\\"play\\\" in the center\",{\"_158\":909,\"_160\":910},[908],\"Is Blue Prince's success due to 'social play?'\",\"/design/is-blue-prince-s-success-due-to-social-play-\",{},\"Apr 25, 2025\",\"The mystery/adventure hybrid about building rooms in a strange manor has plenty of buzz, and offers great unofficial 'co-op' play.\",{\"_148\":26,\"_149\":907},{\"_146\":26,\"_147\":26},[],{\"_44\":152,\"_103\":153,\"_154\":155,\"_156\":157},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt834e20e36d7a0649/68093db3086eb5cf261918f1/blue_prince_darkroom_photo.jpg\",\"A character portrait next to a note and magnifying glass\",{\"_158\":922,\"_160\":923},[921],\"Doom: The Dark Ages' financial fate rests on a parry mechanic\",\"/business/doom-the-dark-ages-financial-fate-rests-on-a-parry-mechanic\",{},\"May 6, 2025\",\"Rip and tear and press 'L2' until it is done.\",{\"_148\":26,\"_149\":920},{\"_146\":26,\"_147\":26},[],{\"_44\":211,\"_103\":212,\"_154\":213,\"_156\":214},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt29a087a5ab600184/681a6e95092833652bb51a11/doomparyblogfeatured.png\",\"The Doom Slayer stares at the camera.\",\"totalCount\",362,\"currentPage\",{\"_292\":930,\"_54\":48},{\"_292\":929,\"_54\":45},\"/keyword/blogs\",\"/\",\"brand\",\"gamedeveloper\",\"domainUrl\",\"authenticationStatus\",\"anonymous\",\"authConfig\",{\"_1676\":26,\"_1733\":-7,\"_1734\":-7,\"_1329\":26},\"favicons\",[],\"isDctsTurnOn\",\"cookieBanner\",{\"_1238\":90,\"_1239\":90,\"_1240\":1241,\"_1731\":1732,\"_1236\":90},\"ui\",{\"_931\":932,\"_1058\":1059,\"_1060\":1061,\"_284\":1062},\"environment\",\"prod\",\"featureToggles\",{\"_1709\":26,\"_1710\":26,\"_1711\":90,\"_1712\":26,\"_1713\":26,\"_1714\":26,\"_1715\":26,\"_1716\":90,\"_1717\":26,\"_1718\":26,\"_1719\":1720,\"_1721\":26,\"_1722\":90,\"_1723\":90,\"_1724\":26,\"_1725\":90,\"_1726\":90,\"_1727\":90,\"_1728\":90,\"_1729\":26,\"_1730\":90},\"layout\",{\"_1334\":1335,\"_1336\":1337,\"_1338\":1339,\"_1340\":1341,\"_1342\":1343,\"_1344\":1345,\"_1346\":1347},\"newRelicJs\",\"window.NREUM||(NREUM={});NREUM.init={browser_consent_mode:{enabled:false},privacy:{cookies_enabled:true},distributed_tracing:{enabled:true},performance:{capture_measures:true},ajax:{deny_list:[\\\"bam.eu01.nr-data.net\\\"],capture_payloads:'none'}};\\n\\n;NREUM.loader_config={accountID:\\\"3936348\\\",trustKey:\\\"3288925\\\",agentID:\\\"538600205\\\",licenseKey:\\\"NRJS-26ae6a3b09493bbcc87\\\",applicationID:\\\"538600205\\\"};\\n;NREUM.info={beacon:\\\"bam.eu01.nr-data.net\\\",errorBeacon:\\\"bam.eu01.nr-data.net\\\",licenseKey:\\\"NRJS-26ae6a3b09493bbcc87\\\",applicationID:\\\"538600205\\\",sa:1};\\n;/*! For license information please see nr-loader-spa-1.321.0.min.js.LICENSE.txt */\\n(()=\u003e{var e={8122(e,t,r){\\\"use strict\\\";r.d(t,{a:()=\u003ei});var n=r(944);function i(e,t){try{if(!e||\\\"object\\\"!=typeof e)return(0,n.R)(3);if(!t||\\\"object\\\"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),s=0===Object.keys(r).length?e:r;for(let a in s)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])\u0026\u0026Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):e[a]instanceof Map||e[a]instanceof Set||e[a]instanceof Date||e[a]instanceof RegExp?r[a]=e[a]:\\\"object\\\"==typeof e[a]\u0026\u0026null!==t[a]\u0026\u0026\\\"object\\\"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){r[a]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){\\\"use strict\\\";r.d(t,{f:()=\u003ea});var n=r(384),i=r(8122);const s={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function a(e){try{return!!e.licenseKey\u0026\u0026!!e.errorBeacon\u0026\u0026!!e.applicationID}catch(e){return!1}}r.d(t,[\\\"D\\\",0,e=\u003e(0,i.a)(e,s)])},7699(e,t,r){\\\"use strict\\\";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,[\\\"It\\\",0,1e6,\\\"KC\\\",0,i,\\\"qh\\\",0,\\\"SESSION_ERROR\\\"])},9324(e,t,r){\\\"use strict\\\";r.d(t,[\\\"A\\\",0,\\\"@newrelic/rrweb\\\",\\\"x\\\",0,\\\"1.321.0\\\"])},981(e,t,r){\\\"use strict\\\";r.d(t,[\\\"R\\\",0,{AJAX:\\\"AjaxRequest\\\",PA:\\\"PageAction\\\",UA:\\\"UserAction\\\",BP:\\\"BrowserPerformance\\\",WS:\\\"WebSocket\\\",SPV:\\\"SecurityPolicyViolation\\\",JSE:\\\"JavaScriptError\\\",LOG:\\\"Log\\\",PVE:\\\"PageView\\\",PVT:\\\"PageViewTiming\\\",SR:\\\"SessionReplay\\\",ST:\\\"SessionTrace\\\",BI:\\\"BrowserInteraction\\\"}])},9752(e,t,r){\\\"use strict\\\";const n=\\\"newrelic-iframe-\\\",i=n+\\\"timing-update\\\",s=n+\\\"api\\\",a=n+\\\"api-response\\\",o=n+\\\"vitals-update\\\",c=n+\\\"ajax\\\";r.d(t,[\\\"$8\\\",0,o,\\\"Gi\\\",0,a,\\\"KU\\\",0,c,\\\"Pl\\\",0,n,\\\"cS\\\",0,s,\\\"cr\\\",0,i])},6154(e,t,r){\\\"use strict\\\";var n=r(1863);const i=\\\"undefined\\\"!=typeof window\u0026\u0026!!window.document,s=\\\"undefined\\\"!=typeof WorkerGlobalScope\u0026\u0026(\\\"undefined\\\"!=typeof self\u0026\u0026self instanceof WorkerGlobalScope\u0026\u0026self.navigator instanceof WorkerNavigator||\\\"undefined\\\"!=typeof globalThis\u0026\u0026globalThis instanceof WorkerGlobalScope\u0026\u0026globalThis.navigator instanceof WorkerNavigator),a=i?window:\\\"undefined\\\"!=typeof WorkerGlobalScope\u0026\u0026(\\\"undefined\\\"!=typeof self\u0026\u0026self instanceof WorkerGlobalScope\u0026\u0026self||\\\"undefined\\\"!=typeof globalThis\u0026\u0026globalThis instanceof WorkerGlobalScope\u0026\u0026globalThis),o=Boolean(\\\"hidden\\\"===a?.document?.visibilityState),c=\\\"\\\"+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=d\u0026\u0026\\\"undefined\\\"==typeof SharedWorker,l=(()=\u003e{const e=a.navigator?.userAgent?.match(/Firefox[/\\\\s](\\\\d+\\\\.\\\\d+)/);return Array.isArray(e)\u0026\u0026e.length\u003e=2?+e[1]:0})(),f=Date.now()-(0,n.t)();r.d(t,[\\\"OF\\\",0,d,\\\"RI\\\",0,i,\\\"WN\\\",0,f,\\\"bv\\\",0,s,\\\"gm\\\",0,a,\\\"lR\\\",0,l,\\\"m\\\",0,c,\\\"mw\\\",0,o,\\\"sb\\\",0,u,\\\"zk\\\",0,()=\u003e{const e=a?.performance?.getEntriesByType?.(\\\"navigation\\\")?.[0];if(e\u0026\u0026e.responseStart\u003e0\u0026\u0026e.responseStart\u003ca.performance.now())return e}])},7295(e,t,r){\\\"use strict\\\";r.d(t,{Xv:()=\u003ea,gX:()=\u003ei,iW:()=\u003es});var n=[];function i(e){if(!e||s(e))return!1;if(0===n.length)return!0;if(\\\"*\\\"===n[0].hostname)return!1;for(var t=0;t\u003cn.length;t++){var r=n[t];if(r.hostname.test(e.hostname)\u0026\u0026r.pathname.test(e.pathname))return!1}return!0}function s(e){return void 0===e.hostname}function a(e){if(n=[],e\u0026\u0026e.length)for(var t=0;t\u003ce.length;t++){let r=e[t];if(!r)continue;if(\\\"*\\\"===r)return void(n=[{hostname:\\\"*\\\"}]);0===r.indexOf(\\\"http://\\\")?r=r.substring(7):0===r.indexOf(\\\"https://\\\")\u0026\u0026(r=r.substring(8));const i=r.indexOf(\\\"/\\\");let s,a;i\u003e0?(s=r.substring(0,i),a=r.substring(i)):(s=r,a=\\\"*\\\");let[c]=s.split(\\\":\\\");n.push({hostname:o(c),pathname:o(a,!0)})}}function o(e,t=!1){const r=e.replace(/[.+?^${}()|[\\\\]\\\\\\\\]/g,e=\u003e\\\"\\\\\\\\\\\"+e).replace(/\\\\*/g,\\\".*?\\\");return new RegExp((t?\\\"^\\\":\\\"\\\")+r+\\\"$\\\")}},3241(e,t,r){\\\"use strict\\\";r.d(t,{W:()=\u003ei});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent(\\\"newrelic\\\",{detail:e}))}catch(e){}}},1687(e,t,r){\\\"use strict\\\";r.d(t,{Ak:()=\u003eo,Ze:()=\u003ed,x3:()=\u003ec});var n=r(3241),i=r(3606),s=r(860),a=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:s.P3[t]||0};e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r\u0026\u0026(r.get(t)\u0026\u0026r.delete(t),l(e,t,!1),r.size\u0026\u0026u(e))}function d(e,t=\\\"feature\\\",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,u(e)}}function u(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=\u003et.staged)\u0026\u0026(t.sort((e,t)=\u003ee[1].priority-t[1].priority),t.forEach(([t])=\u003e{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const s=e.ee,o=i.i.handlers;if(s\u0026\u0026!s.aborted\u0026\u0026s.backlog\u0026\u0026o){if((0,n.W)({type:\\\"lifecycle\\\",name:\\\"drain\\\",feature:t}),r){const e=s.backlog[t],r=o[t];if(r){for(let t=0;e\u0026\u0026t\u003ce.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=\u003e{Object.values(t||{}).forEach(t=\u003e{t[0]?.on\u0026\u0026t[0].context()instanceof a.y\u0026\u0026!t[0].listeners(e).includes(t[1])\u0026\u0026t[0].on(e,t[1])})})}}s.isolatedBacklog||delete o[t],s.backlog[t]=null,s.emit(\\\"drain-\\\"+t,[])}}function f(e,t){var r=e[1];Object.values(t[r]||{}).forEach(t=\u003e{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],s=e[2];n.apply(i,s)}})}},7836(e,t,r){\\\"use strict\\\";var n=r(384),i=r(8990),s=r(2646),a=r(5607);const o=\\\"nr@context:\\\".concat(a.W),c=function e(t,r){var n={},a={},u={},l=!1;try{l=16===r.length\u0026\u0026d.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i\u003cr.length;i++)r[i]===t\u0026\u0026r.splice(i,1)},emit:function(e,r,n,i,s){!1!==s\u0026\u0026(s=!0);if(c.aborted\u0026\u0026!i)return;t\u0026\u0026s\u0026\u0026t.emit(e,r,n);var o=h(n);g(e).forEach(e=\u003e{e.apply(o,r)});var d=v()[a[e]];d\u0026\u0026d.push([f,e,r,o]);return o},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||\\\"feature\\\",f.aborted)return;Object.entries(e||{}).forEach(([e,n])=\u003e{a[n]=t,t in r||(r[t]=[])})},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach(e=\u003e{delete f.backlog[e]})},isBuffering:function(e){return!!v()[a[e]]},debugId:r,backlog:l?{}:t\u0026\u0026\\\"object\\\"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,\\\"aborted\\\",{get:()=\u003e{let e=f._aborted||!1;return e||(t\u0026\u0026(e=t.aborted),e)}}),f;function h(e){return e\u0026\u0026e instanceof s.y?e:e?(0,i.I)(e,o,()=\u003enew s.y(o)):new s.y(o)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,\\\"globalEE\\\"),d=(0,n.Zm)();d.ee||(d.ee=c),r.d(t,[\\\"P\\\",0,o,\\\"ee\\\",0,c])},2646(e,t,r){\\\"use strict\\\";r.d(t,{y:()=\u003en});class n{constructor(e){this.contextId=e}}},9908(e,t,r){\\\"use strict\\\";r.d(t,{d:()=\u003en,p:()=\u003ei});var n=r(7836).ee.get(\\\"handle\\\");function i(e,t,r,i,s){s?(s.buffer([e],i),s.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){\\\"use strict\\\";r.d(t,{i:()=\u003es});var n=r(9908);s.on=a;var i=s.handlers={};function s(e,t,r,s){a(s||n.d,i,e,t,r)}function a(e,t,r,i,s){s||(s=\\\"feature\\\"),e||(e=n.d);var a=t[s]=t[s]||{};(a[r]=a[r]||[]).push([e,i])}},3878(e,t,r){\\\"use strict\\\";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function s(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=\u003es,jT:()=\u003en,sp:()=\u003ei})},5607(e,t,r){\\\"use strict\\\";const n=(0,r(9566).bz)();r.d(t,[\\\"W\\\",0,n])},9566(e,t,r){\\\"use strict\\\";r.d(t,{LA:()=\u003ea,ZF:()=\u003eo,bz:()=\u003es,el:()=\u003ec});var n=r(6154);function i(e,t){return e?15\u0026e[t]:16*Math.random()|0}function s(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e\u0026\u0026e.getRandomValues\u0026\u0026(t=e.getRandomValues(new Uint8Array(30))),\\\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\\\".split(\\\"\\\").map(e=\u003e\\\"x\\\"===e?i(t,r++).toString(16):\\\"y\\\"===e?(3\u0026i()|8).toString(16):e).join(\\\"\\\")}function a(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,s=0;t\u0026\u0026t.getRandomValues\u0026\u0026(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var o=0;o\u003ce;o++)a.push(i(r,s++).toString(16));return a.join(\\\"\\\")}function o(){return a(16)}function c(){return a(32)}},2614(e,t,r){\\\"use strict\\\";r.d(t,[\\\"BB\\\",0,18e5,\\\"Wt\\\",0,\\\"NRBA_SESSION::\\\",\\\"g\\\",0,{OFF:0,FULL:1,ERROR:2},\\\"iL\\\",0,{SAME_TAB:\\\"same-tab\\\",CROSS_TAB:\\\"cross-tab\\\"},\\\"tS\\\",0,{STARTED:\\\"session-started\\\",PAUSE:\\\"session-pause\\\",RESET:\\\"session-reset\\\",RESUME:\\\"session-resume\\\",UPDATE:\\\"session-update\\\"},\\\"wk\\\",0,144e5])},733(e,t,r){\\\"use strict\\\";function n(e,t){return function(e){let t=2166136261;for(let r=0;r\u003ce.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return(t\u003e\u003e\u003e0).toString(16).padStart(8,\\\"0\\\")}(\\\"\\\".concat(String(e),\\\":\\\").concat(String(t)))}r.d(t,{Y:()=\u003en})},1863(e,t,r){\\\"use strict\\\";function n(){return Math.floor(performance.now())}r.d(t,{t:()=\u003en})},9119(e,t,r){\\\"use strict\\\";r.d(t,{L:()=\u003es});var n=/([^?#]*)[^#]*(#[^?]*|$).*/,i=/([^?#]*)().*/;function s(e,t){return e?e.replace(t?n:i,\\\"$1$2\\\"):e}},7485(e,t,r){\\\"use strict\\\";r.d(t,{D:()=\u003ei});var n=r(6154);function i(e){if(0===(e||\\\"\\\").indexOf(\\\"data:\\\"))return{protocol:\\\"data\\\"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(\\\":\\\")),sameOrigin:t.protocol===n.gm?.location?.protocol\u0026\u0026t.host===n.gm?.location?.host};return r.port\u0026\u0026\\\"\\\"!==r.port||(\\\"http:\\\"===t.protocol\u0026\u0026(r.port=\\\"80\\\"),\\\"https:\\\"===t.protocol\u0026\u0026(r.port=\\\"443\\\")),r.pathname\u0026\u0026\\\"\\\"!==r.pathname?r.pathname.startsWith(\\\"/\\\")||(r.pathname=\\\"/\\\".concat(r.pathname)):r.pathname=\\\"/\\\",r}catch(e){return{}}}},7866(e,t,r){\\\"use strict\\\";r.d(t,[\\\"Nc\\\",0,/^\\\\s*at Function code \\\\(Function code:\\\\d+:\\\\d+\\\\)\\\\s*/i,\\\"cn\\\",0,/^\\\\s*(?:([^@]*)(?:\\\\(.*?\\\\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\\\\d+)(?::(\\\\d+))?\\\\s*$/i,\\\"fL\\\",0,/^\\\\s*at .+ \\\\(eval at \\\\S+ \\\\((?:(?:file|http|https):[^)]+)?\\\\)(?:, [^:]*:\\\\d+:\\\\d+)?\\\\)$/i,\\\"h3\\\",0,/function (.+?)\\\\s*\\\\(/,\\\"hB\\\",0,/^\\\\s*at (?:((?:\\\\[object object\\\\])?(?:[^(]*\\\\([^)]*\\\\))*[^()]*(?: \\\\[as \\\\S+\\\\])?) )?\\\\(?((?:file|http|https|chrome-extension):.*?)?:(\\\\d+)(?::(\\\\d+))?\\\\)?\\\\s*$/i])},944(e,t,r){\\\"use strict\\\";r.d(t,{R:()=\u003ei});var n=r(3241);function i(e,t){\\\"function\\\"==typeof console.debug\u0026\u0026(console.debug(\\\"New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#\\\".concat(e),t),(0,n.W)({drained:null,type:\\\"data\\\",name:\\\"warn\\\",feature:\\\"warn\\\",data:{code:e,secondary:t}}))}},8990(e,t,r){\\\"use strict\\\";r.d(t,{I:()=\u003ei});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty\u0026\u0026Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389(e,t,r){\\\"use strict\\\";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=\u003e{n\u0026\u0026void 0===i\u0026\u0026(e.apply(this,r),i=setTimeout(()=\u003e{i=clearTimeout(i)},t)),n||(clearTimeout(i),i=setTimeout(()=\u003e{e.apply(this,r)},t))}}function i(e){let t=!1;return(...r)=\u003e{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=\u003ei,s:()=\u003en})},1910(e,t,r){\\\"use strict\\\";r.d(t,{i:()=\u003es});var n=r(944);const i=new Map;function s(...e){return e.every(e=\u003e{if(i.has(e))return i.get(e);const t=\\\"function\\\"==typeof e?e.toString():\\\"\\\",r=t.includes(\\\"[native code]\\\"),s=t.includes(\\\"nrWrapper\\\");return r||s||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},3304(e,t,r){\\\"use strict\\\";r.d(t,{A:()=\u003ei});var n=r(7836);function i(e){try{return JSON.stringify(e,(()=\u003e{const e=new WeakSet;return(t,r)=\u003e{if(\\\"object\\\"==typeof r\u0026\u0026null!==r){if(e.has(r))return;e.add(r)}return r}})())??\\\"\\\"}catch(e){try{n.ee.emit(\\\"internal-error\\\",[e])}catch(e){}return\\\"\\\"}}},9232(e,t,r){\\\"use strict\\\";r.d(t,[\\\"f\\\",0,{MFE:\\\"MFE\\\",BA:\\\"BA\\\"}])},5718(e,t,r){\\\"use strict\\\";r.d(t,{AZ:()=\u003em,Qr:()=\u003eE,QL:()=\u003ev});var n=r(6154),i=r(1863),s=r(9119),a=r(7866);class o{dom=new c;performance=new c;constructor(e){this.url=e,this.claimedBy=new Set}get script(){const e=Math.max(this.dom.start,this.performance.end);return{start:e,end:Math.max(this.dom.end,this.performance.end,e)}}}class c{start=0;end=0;value=void 0}function d(e=()=\u003e{},t){return{get:()=\u003evoid 0!==t?t:e(),set:e=\u003e{t=e}}}let u;try{u=m(v())[0]}catch(e){u=m(e)[0]}const l=e=\u003e\\\"script\\\"===e.initiatorType||[\\\"link\\\",\\\"fetch\\\"].includes(e.initiatorType)\u0026\u0026(0,s.L)(e.name).endsWith(\\\".js\\\"),f=new Map;let h=[];function p(e){return f.get(e)}function g(e){const t=p(e);if(t)return t;const r=new o(e);if(f.set(e,r),f.size\u003e1e3){const e=f.keys().next().value;f.delete(e)}return r}if(n.gm.MutationObserver\u0026\u0026n.gm.document){new MutationObserver(e=\u003e{e.forEach(e=\u003e{e.addedNodes.forEach(e=\u003e{if(\\\"SCRIPT\\\"===e.nodeName\u0026\u0026e.src){const t=g((0,s.L)(e.src));t.dom.start=(0,i.t)(),t.dom.value=e;const r=()=\u003e{t.dom.end=(0,i.t)()};[\\\"load\\\",\\\"error\\\"].forEach(t=\u003ee.addEventListener(t,r,{once:!0}))}})})}).observe(n.gm.document,{childList:!0,subtree:!0})}if(n.gm.PerformanceObserver?.supportedEntryTypes.includes(\\\"resource\\\")){new PerformanceObserver(e=\u003e{e.getEntries().filter(l).forEach(e=\u003e{const t=g((0,s.L)(e.name));t.performance.start=Math.floor(e.startTime),t.performance.end=Math.floor(e.responseEnd),t.performance.value=e;const r=[];h.forEach(({test:t,addedAt:n},s)=\u003e{(t(e)||(0,i.t)()-n\u003e1e4)\u0026\u0026r.push(s)}),h=h.filter((e,t)=\u003e!r.includes(t))})}).observe({type:\\\"resource\\\",buffered:!0})}function m(e){if(!e||\\\"string\\\"!=typeof e)return[];const t=new Set,r=e.split(\\\"\\\\n\\\");for(const e of r){const r=e.match(a.cn)||e.match(a.hB)||e.match(a.fL);if(r\u0026\u0026r[2])t.add((0,s.L)(r[2]));else{const r=e.match(/\\\\(([^)]+\\\\.js):\\\\d+:\\\\d+\\\\)/)||e.match(/^\\\\s+at\\\\s+([^\\\\s(]+\\\\.js):\\\\d+:\\\\d+/);r\u0026\u0026r[1]\u0026\u0026t.add((0,s.L)(r[1]))}}return[...t]}function v(){let e;try{const t=Error.stackTraceLimit;Error.stackTraceLimit=50,e=(new Error).stack,Error.stackTraceLimit=t}catch(t){e=(new Error).stack}return e}function y(e,t){return(0,s.L)(e.name)===t}function b(e,t){e.fetchStart=Math.floor(t.startTime),e.fetchEnd=Math.floor(t.responseEnd),e.asset=t.name,e.type=t.initiatorType}function E(e){const t=e?.id,r={registeredAt:(0,i.t)(),reportedAt:void 0,fetchStart:0,fetchEnd:0,scriptStart:0,scriptEnd:0,asset:void 0,type:\\\"unknown\\\"},a=v();if(!a)return r;const o=n.gm.performance?.getEntriesByType(\\\"navigation\\\")?.[0]?.name||\\\"\\\";try{const e=m(a),c=(e.length\u003e1?e.filter(e=\u003eu!==e):e)[0];if(!c)return r;if(o.includes(c))return r.asset=(0,s.L)(o),r.type=\\\"inline\\\",r;r.correlation=p(c);const l=r.correlation?.performance.value||n.gm.performance?.getEntriesByType(\\\"resource\\\")?.find(e=\u003ey(e,c));if(l)b(r,l);else{(function(e){if(!e||!n.gm.document)return!1;try{const t=n.gm.document.querySelectorAll('link[rel=\\\"preload\\\"][as=\\\"script\\\"]');for(const r of t)if((0,s.L)(r.href)===e)return!0}catch(e){}return!1})(c)\u0026\u0026(r.asset=c,r.type=\\\"preload\\\"),function(e,t){n.gm.PerformanceObserver?.supportedEntryTypes?.includes(\\\"resource\\\")\u0026\u0026h.push({addedAt:(0,i.t)(),test:r=\u003e!!y(r,t)\u0026\u0026(b(e,r),!0)})}(r,c)}const f=r.correlation,g=!!t\u0026\u0026!!f?.claimedBy.has(t);f\u0026\u0026t\u0026\u0026f.claimedBy.add(t);const v=()=\u003e{const e=f?.script.start;if(!g||!e)return!1;return r.registeredAt-e\u003e1e4};Object.defineProperty(r,\\\"scriptStart\\\",d(()=\u003ev()?r.registeredAt:f?.script.start??r.fetchEnd)),Object.defineProperty(r,\\\"scriptEnd\\\",d(()=\u003ev()?r.registeredAt:f?.script.end??r.registeredAt))}catch(e){}return r}},5732(e,t,r){\\\"use strict\\\";r.d(t,{$5:()=\u003ef,B5:()=\u003el,M$:()=\u003es,Ms:()=\u003eo,NG:()=\u003ea,Ux:()=\u003ed,YA:()=\u003eu,yx:()=\u003ec});var n=r(5718),i=r(9232);function s(e){return e?.type===i.f.MFE}function a(e,t){if(!p(e,t))return;const r=t.runtime.registeredEntities;return r?.find(t=\u003et.metadata.target.iframeInterfaceId===e)}function o(e,t){if(!p(e,t))return[];const r=t.runtime.registeredEntities;return r?.filter(t=\u003eString(t.metadata.target.id)===String(e)).map(e=\u003ee.metadata.target)||[]}function c(e,t){if(!p(e,t))return[];const r=t.runtime.registeredEntities,n=r?.filter(t=\u003et.metadata.timings?.asset?.endsWith(e));return function(e){if(!e?.length)return e||[];const t=new Map,r=[];for(const n of e){const e=n.metadata?.timings?.asset;if(!e){r.push(n);continue}const i=\\\"\\\".concat(e,\\\"::\\\").concat(n.metadata?.target?.id),s=t.get(i);if(s){if(s.metadata.target?.blocked\u0026\u0026!n.metadata.target?.blocked){const e=r.indexOf(s);-1!==e\u0026\u0026(r[e]=n),t.set(i,n)}}else t.set(i,n),r.push(n)}return r}(n).map(e=\u003ee.metadata.target)}function d(e,t){return h(t)?s(e)?e.attributes:t.agentRef.runtime.v2Target.attributes:{}}function u(e,t){return l(e,t)?{\\\"child.id\\\":e.id,\\\"child.type\\\":e.type,...d(void 0,t)}:{}}function l(e,t){return s(e)\u0026\u0026!!h(t)\u0026\u0026t.agentRef.init.api.register.duplicate_data_to_container}function f(e){if(!e?.runtime)return[];if(!p(!0,e)||!e.runtime.registeredEntities?.length)return[e.runtime.v2Target];const t=[];try{var r=(0,n.AZ)((0,n.QL)());let i=r.length-1;for(;r[i];)t.push(...c(r[i--],e))}catch(e){}const i=function(e){const t=new Set,r=[];for(const n of e){const e=n?.instance;t.has(e)||(t.add(e),r.push(n))}return r}(t);return i.length||i.push(e.runtime.v2Target),i}function h(e){return 2===e?.harvestEndpointVersion}function p(e,t){return!!e\u0026\u0026!!t?.init.api.register.enabled}},5289(e,t,r){\\\"use strict\\\";r.d(t,{GG:()=\u003ea,Qr:()=\u003ec,sB:()=\u003eo});var n=r(3878),i=r(6389);function s(){return\\\"undefined\\\"==typeof document||\\\"complete\\\"===document.readyState}function a(e,t){if(s())return e();const r=(0,i.J)(e),a=setInterval(()=\u003e{s()\u0026\u0026(clearInterval(a),r())},500);(0,n.sp)(\\\"load\\\",r,t)}function o(e){if(s())return e();(0,n.DD)(\\\"DOMContentLoaded\\\",e)}function c(e){if(s())return e();(0,n.sp)(\\\"popstate\\\",e)}},384(e,t,r){\\\"use strict\\\";r.d(t,{Zm:()=\u003ec,bQ:()=\u003eu,dV:()=\u003ed,pV:()=\u003el});var n=r(6154),i=r(1863),s=r(944),a=r(1910);const o={beacon:\\\"bam.nr-data.net\\\",errorBeacon:\\\"bam.nr-data.net\\\"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic\u0026\u0026(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function d(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket},(0,a.i)(...Object.values(e.o))),e}function u(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length\u0026\u0026(0,s.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),d(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}r.d(t,[\\\"NT\\\",0,o])},2843(e,t,r){\\\"use strict\\\";r.d(t,{G:()=\u003es,u:()=\u003ei});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)(\\\"visibilitychange\\\",function(){if(t)return void(\\\"hidden\\\"===document.visibilityState\u0026\u0026e());e(document.visibilityState)},r,i)}function s(e,t,r){(0,n.sp)(\\\"pagehide\\\",e,t,r)}},8139(e,t,r){\\\"use strict\\\";r.d(t,{u:()=\u003ef});var n=r(7836),i=r(3434),s=r(8990),a=r(6154);const o={},c=a.gm.XMLHttpRequest,d=\\\"addEventListener\\\",u=\\\"removeEventListener\\\",l=\\\"nr@wrapped:\\\".concat(n.P);function f(e,t){var r=function(e){return(e||n.ee).get(\\\"events\\\")}(e);if(o[r.debugId]++)return r;o[r.debugId]=1;var f=(0,i.YM)(r,!0,t);function p(e){f.inPlace(e,[d,u],\\\"-\\\",g)}function g(e,t){return e[1]}return\\\"getPrototypeOf\\\"in Object\u0026\u0026(a.RI\u0026\u0026h(document,p),c\u0026\u0026h(c.prototype,p),h(a.gm,p)),r.on(d+\\\"-start\\\",function(e,t){var r=e[1];if(null!==r\u0026\u0026(\\\"function\\\"==typeof r||\\\"object\\\"==typeof r)\u0026\u0026\\\"newrelic\\\"!==e[0]){var n=(0,s.I)(r,l,function(){var e={object:function(){if(\\\"function\\\"!=typeof r.handleEvent)return;return r.handleEvent.apply(r,arguments)},function:r}[typeof r];return e?f(e,\\\"fn-\\\",null,e.name||\\\"anonymous\\\"):r});this.wrapped=e[1]=n}}),r.on(u+\\\"-start\\\",function(e){e[1]=this.wrapped||e[1]}),r}function h(e,t,...r){let n=e;for(;\\\"object\\\"==typeof n\u0026\u0026!Object.prototype.hasOwnProperty.call(n,d);)n=Object.getPrototypeOf(n);n\u0026\u0026t(n,...r)}},3434(e,t,r){\\\"use strict\\\";r.d(t,{YM:()=\u003ed});var n=r(7836),i=r(5607),s=r(5732);const a=\\\"nr@original:\\\".concat(i.W);var o=Object.prototype.hasOwnProperty,c=!1;function d(e,t,r){return e||(e=n.ee),i.inPlace=function(e,t,r,n,s,a){r||(r=\\\"\\\");const o=\\\"-\\\"===r.charAt(0);for(let c=0;c\u003ct.length;c++){const d=t[c],u=e[d];l(u)||(e[d]=i(u,o?d+r:r,n,d,s,a))}},i.flag=a,i;function i(t,n,i,c,f,h){return l(t)?t:(n||(n=\\\"\\\"),nrWrapper[a]=t,function(e,t,r){if(Object.defineProperty\u0026\u0026Object.keys)try{return Object.keys(e).forEach(function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})}),t}catch(e){u([e],r)}for(var n in e)o.call(e,n)\u0026\u0026(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var a,o,l,p;let g,m;try{o=this,a=[...arguments],m=h?(0,s.$5)(r):[r?.runtime?.v2Target],l=\\\"function\\\"==typeof i?i(a,o):i||{}}catch(t){u([t,\\\"\\\",[a,o,c],l],e)}d(n+\\\"start\\\",[a,o,c,m],l,f);const v=performance.now();let y;try{return p=t.apply(o,a),y=performance.now(),p}catch(e){throw y=performance.now(),d(n+\\\"err\\\",[a,o,e,m],l,f),g=e,g}finally{const e=y-v,t={start:v,end:y,duration:e,isLongTask:e\u003e=50,methodName:c,thrownError:g};t.isLongTask\u0026\u0026d(\\\"long-task\\\",[t,o,m],l,f),d(n+\\\"end\\\",[a,o,p,m],l,f)}}}function d(r,n,i,s){if(!c||t){var a=c;c=!0;try{e.emit(r,n,i,t,s)}catch(t){u([t,r,n,i],e)}c=a}}}function u(e,t){t||(t=n.ee);try{t.emit(\\\"internal-error\\\",e)}catch(e){}}function l(e){return!(e\u0026\u0026\\\"function\\\"==typeof e\u0026\u0026e.apply\u0026\u0026!e[a])}r.d(t,[\\\"Jt\\\",0,a])},9300(e,t,r){\\\"use strict\\\";const n=r(860).K7.ajax;r.d(t,[\\\"TZ\\\",0,n,\\\"f5\\\",0,\\\"ajaxRequest.id\\\",\\\"mo\\\",0,{NONE:\\\"none\\\",FAILURES:\\\"failures\\\",ALL:\\\"all\\\"}])},3333(e,t,r){\\\"use strict\\\";var n=r(981);const i=r(860).K7.genericEvents,s=[n.R.PA,n.R.UA,n.R.BP];r.d(t,[\\\"$v\\\",0,{RESOURCES:\\\"experimental.resources\\\",REGISTER:\\\"register\\\"},\\\"TZ\\\",0,i,\\\"Zp\\\",0,[\\\"auxclick\\\",\\\"click\\\",\\\"copy\\\",\\\"keydown\\\",\\\"paste\\\",\\\"scrollend\\\"],\\\"kd\\\",0,s,\\\"qN\\\",0,[\\\"focus\\\",\\\"blur\\\"]])},6774(e,t,r){\\\"use strict\\\";const n=r(860).K7.jserrors;r.d(t,[\\\"T\\\",0,n])},993(e,t,r){\\\"use strict\\\";const n=r(860).K7.logging;r.d(t,[\\\"A$\\\",0,{OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},\\\"TZ\\\",0,n,\\\"p_\\\",0,{ERROR:\\\"ERROR\\\",WARN:\\\"WARN\\\",INFO:\\\"INFO\\\",DEBUG:\\\"DEBUG\\\",TRACE:\\\"TRACE\\\"}])},3785(e,t,r){\\\"use strict\\\";r.d(t,{R:()=\u003ec,b:()=\u003ed});var n=r(9908),i=r(1863),s=r(860),a=r(3969),o=r(993);function c(e,t,r={},c=o.p_.INFO,d=!0,u,l=(0,i.t)()){(0,n.p)(a.xV,[\\\"API/logging/\\\".concat(c.toLowerCase(),\\\"/called\\\")],void 0,s.K7.metrics,e),(0,n.p)(\\\"log\\\",[l,t,r,c,d,u],void 0,s.K7.logging,e)}function d(e){return\\\"string\\\"==typeof e\u0026\u0026Object.values(o.p_).some(t=\u003et===e.toUpperCase().trim())}},3969(e,t,r){\\\"use strict\\\";const n=r(860).K7.metrics;r.d(t,[\\\"TZ\\\",0,n,\\\"XG\\\",0,\\\"storeEventMetrics\\\",\\\"xV\\\",0,\\\"storeSupportabilityMetrics\\\"])},6630(e,t,r){\\\"use strict\\\";const n=r(860).K7.pageViewEvent;r.d(t,[\\\"T\\\",0,n])},782(e,t,r){\\\"use strict\\\";const n=r(860).K7.pageViewTiming;r.d(t,[\\\"T\\\",0,n])},6344(e,t,r){\\\"use strict\\\";var n=r(2614);const i=r(860).K7.sessionReplay,s={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0};r.d(t,[\\\"Qb\\\",0,{API:\\\"api\\\",RESUME:\\\"resume\\\",SWITCH_TO_FULL:\\\"switchToFull\\\",INITIALIZE:\\\"initialize\\\",PRELOAD:\\\"preload\\\"},\\\"TZ\\\",0,i,\\\"Vh\\\",0,\\\"errorDuringReplay\\\",\\\"_s\\\",0,{DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},\\\"bc\\\",0,{RESET:{message:\\\"Session was reset\\\",sm:\\\"Reset\\\"},IMPORT:{message:\\\"Recorder failed to import\\\",sm:\\\"Import\\\"},TOO_MANY:{message:\\\"429: Too Many Requests\\\",sm:\\\"Too-Many\\\"},TOO_BIG:{message:\\\"Payload was too large\\\",sm:\\\"Too-Big\\\"},CROSS_TAB:{message:\\\"Session Entity was set to OFF on another tab\\\",sm:\\\"Cross-Tab\\\"},ENTITLEMENTS:{message:\\\"Session Replay is not allowed and will not be started\\\",sm:\\\"Entitlement\\\"}},\\\"yP\\\",0,s])},5270(e,t,r){\\\"use strict\\\";r.d(t,{Aw:()=\u003ea,SR:()=\u003es,rF:()=\u003eo});var n=r(384),i=r(7767);function s(e){return!!(0,n.dV)().o.MO\u0026\u0026(0,i.V)(e)\u0026\u0026!0===e?.session_trace.enabled}function a(e){return!0===e?.session_replay.preload\u0026\u0026s(e)}function o(e,t){try{if(\\\"string\\\"==typeof t?.type\u0026\u0026\\\"password\\\"===t.type.toLowerCase())return\\\"*\\\".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains(\\\"nr-unmask\\\"))return e}catch(e){}return\\\"string\\\"==typeof e?e.replace(/[\\\\S]/g,\\\"*\\\"):\\\"*\\\".repeat(e?.length||0)}},3738(e,t,r){\\\"use strict\\\";const n=r(860).K7.sessionTrace,i=\\\"-start\\\",s=\\\"-end\\\",a=\\\"fn\\\"+i,o=\\\"fn\\\"+s;r.d(t,[\\\"He\\\",0,\\\"bstResource\\\",\\\"Kp\\\",0,s,\\\"Lc\\\",0,o,\\\"Rz\\\",0,\\\"pushState\\\",\\\"TZ\\\",0,n,\\\"bD\\\",0,\\\"resource\\\",\\\"bc\\\",0,{CROSS_TAB:{message:\\\"Session Entity was set to OFF on another tab\\\"},ENTITLEMENTS:{message:\\\"Session Trace is not allowed and will not be started\\\"},RESET:{message:\\\"Session was reset\\\"},SESSION_CHANGED:{message:\\\"Session identifier changed unexpectedly\\\"}},\\\"d3\\\",0,i,\\\"uP\\\",0,a])},3962(e,t,r){\\\"use strict\\\";const n=r(860).K7.softNav;r.d(t,[\\\"O2\\\",0,{INITIAL_PAGE_LOAD:\\\"\\\",ROUTE_CHANGE:1,UNSPECIFIED:2},\\\"OV\\\",0,\\\"popstate\\\",\\\"Qu\\\",0,{INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},\\\"TZ\\\",0,n,\\\"ih\\\",0,{IP:\\\"in progress\\\",PF:\\\"pending finish\\\",FIN:\\\"finished\\\",CAN:\\\"cancelled\\\"},\\\"pP\\\",0,\\\"initialPageLoad\\\",\\\"tC\\\",0,[\\\"click\\\",\\\"keydown\\\",\\\"submit\\\"]])},4234(e,t,r){\\\"use strict\\\";r.d(t,{W:()=\u003ei});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){\\\"use strict\\\";var n=r(6154);r.d(t,[\\\"V\\\",0,e=\u003en.RI\u0026\u0026!0===e?.privacy.cookies_enabled])},8362(e,t,r){\\\"use strict\\\";r.d(t,{d:()=\u003es});var n=r(9566),i=r(1741);class s extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){\\\"use strict\\\";r.d(t,{W:()=\u003es});var n=r(944),i=r(4261);class s{#e(e,...t){if(this[e]!==s.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e(\\\"log\\\",e,t)}start(){return this.#e(\\\"start\\\")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){\\\"use strict\\\";r.d(t,[\\\"BL\\\",0,\\\"finished\\\",\\\"CH\\\",0,\\\"recordReplay\\\",\\\"Dl\\\",0,\\\"setUserId\\\",\\\"Fw\\\",0,\\\"setPageViewName\\\",\\\"PA\\\",0,\\\"setCurrentRouteName\\\",\\\"Pv\\\",0,\\\"consent\\\",\\\"Tb\\\",0,\\\"pauseReplay\\\",\\\"U2\\\",0,\\\"addToTrace\\\",\\\"V1\\\",0,\\\"measure\\\",\\\"Wb\\\",0,\\\"wrapLogger\\\",\\\"bt\\\",0,\\\"setErrorHandler\\\",\\\"cD\\\",0,\\\"setCustomAttribute\\\",\\\"dT\\\",0,\\\"interaction\\\",\\\"eY\\\",0,\\\"register\\\",\\\"fF\\\",0,\\\"recordCustomEvent\\\",\\\"hG\\\",0,\\\"addPageAction\\\",\\\"hw\\\",0,\\\"api-ixn-\\\",\\\"k6\\\",0,\\\"addRelease\\\",\\\"nb\\\",0,\\\"setApplicationVersion\\\",\\\"o5\\\",0,\\\"noticeError\\\"])},1738(e,t,r){\\\"use strict\\\";r.d(t,{U:()=\u003el,Y:()=\u003eu});var n=r(3241),i=r(9908),s=r(1863),a=r(944),o=r(3969),c=r(8362),d=r(860);function u(e,t,r,s){const u=s||r;!u||u[e]\u0026\u0026u[e]!==c.d.prototype[e]||(u[e]=function(){(0,i.p)(o.xV,[\\\"API/\\\"+e+\\\"/called\\\"],void 0,d.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:\\\"data\\\",name:\\\"api\\\",feature:\\\"api-\\\"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,a.R)(23,e)}})}function l(e,t,r,n,a){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(a||null===r)\u0026\u0026(0,i.p)(\\\"api-\\\"+n,[(0,s.t)(),t,r],void 0,\\\"session\\\",e.ee)}},8374(e,t,r){r.nc=(()=\u003e{try{return document?.currentScript?.nonce}catch(e){}return\\\"\\\"})()},860(e,t,r){\\\"use strict\\\";const n=\\\"events\\\",i=\\\"jserrors\\\",s=\\\"browser/blobs\\\",a=\\\"browser/logs\\\",o={ajax:\\\"ajax\\\",genericEvents:\\\"generic_events\\\",jserrors:i,logging:\\\"logging\\\",metrics:\\\"metrics\\\",pageAction:\\\"page_action\\\",pageViewEvent:\\\"page_view_event\\\",pageViewTiming:\\\"page_view_timing\\\",sessionReplay:\\\"session_replay\\\",sessionTrace:\\\"session_trace\\\",softNav:\\\"soft_navigations\\\"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},d={[o.pageViewEvent]:\\\"rum\\\",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:s,[o.sessionReplay]:s,[o.logging]:a,[o.genericEvents]:\\\"ins\\\"};r.d(t,[\\\"$J\\\",0,d,\\\"K7\\\",0,o,\\\"P3\\\",0,c,\\\"XX\\\",0,i,\\\"Yy\\\",0,a,\\\"df\\\",0,s,\\\"hg\\\",0,\\\"connect\\\"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.m=e,r.d=(e,t)=\u003e{if(Array.isArray(t))for(var n=0;n\u003ct.length;){var i=t[n++],s=t[n++];r.o(e,i)?0===s\u0026\u0026n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in t)r.o(t,i)\u0026\u0026!r.o(e,i)\u0026\u0026Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=\u003ePromise.all(Object.keys(r.f).reduce((t,n)=\u003e(r.f[n](e,t),t),[])),r.u=e=\u003e({212:\\\"nr-spa-compressor\\\",238:\\\"nr-spa-iframe-message-handler\\\",249:\\\"nr-spa-recorder\\\",478:\\\"nr-spa\\\"}[e]+\\\"-1.321.0.min.js\\\"),r.o=(e,t)=\u003eObject.prototype.hasOwnProperty.call(e,t),(()=\u003e{const e={},t=\\\"NRBA-1.321.0.PROD:\\\";r.l=(n,i,s,a)=\u003e{if(e[n])return void e[n].push(i);let o,c;if(void 0!==s){const e=document.getElementsByTagName(\\\"script\\\");for(var d=0;d\u003ce.length;d++){const r=e[d];if(r.getAttribute(\\\"src\\\")==n||r.getAttribute(\\\"data-webpack\\\")==t+s){o=r;break}}}if(!o){c=!0;var u={478:\\\"sha512-nVWQ2qAdkC3R+4ZDG9m4FXftIsO9Pq5DmBg1qtcmsv3aZasLn8Ic+f99MsbVl8ryrIhVHKYpbz6FhJ4EZD9Khg==\\\",249:\\\"sha512-etKeSv8ID6VdNtDO61EFOmnjWRqyLgdgoZ5F0NrnMmhRYhL9lKiWmfYFM1l22L/mmJGxuwmdlByo9OyGnPfJeg==\\\",212:\\\"sha512-1TxkxsJ0uF5an6GCuoKAVBfld3Mj+Q/VIGpQYcmNxHP/9mxMT4n1p5/ZMO0qx7h74qvn7hrJ6pwOcWzxieikhw==\\\",238:\\\"sha512-+Df1BrH+URzKEUOZdB7bLXI05i+qols8eHmofcy/Krjl2dHO9DJCiA4zsRKkcCzj3T0w+SM12WLNCy6RD8ksYg==\\\"};o=document.createElement(\\\"script\\\"),o.charset=\\\"utf-8\\\",r.nc\u0026\u0026o.setAttribute(\\\"nonce\\\",r.nc),o.setAttribute(\\\"data-webpack\\\",t+s),o.src=n,0!==o.src.indexOf(window.location.origin+\\\"/\\\")\u0026\u0026(o.crossOrigin=\\\"anonymous\\\"),u[a]\u0026\u0026(o.integrity=u[a])}e[n]=[i];const l=(t,r)=\u003e{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=\u003ee(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:\\\"timeout\\\",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c\u0026\u0026document.head.appendChild(o)}})(),r.r=e=\u003e{Symbol.toStringTag\u0026\u0026Object.defineProperty(e,Symbol.toStringTag,{value:\\\"Module\\\"}),Object.defineProperty(e,\\\"__esModule\\\",{value:!0})},r.p=\\\"https://js-agent.newrelic.com/\\\",(()=\u003e{const e={38:0,788:0};r.f.j=(t,n)=\u003e{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const s=new Promise((r,n)=\u003ei=e[t]=[r,n]);n.push(i[2]=s);const a=r.p+r.u(t),o=new Error,c=n=\u003e{if(r.o(e,t)\u0026\u0026(i=e[t],0!==i\u0026\u0026(e[t]=void 0),i)){const e=n\u0026\u0026(\\\"load\\\"===n.type?\\\"missing\\\":n.type),r=n\u0026\u0026n.target\u0026\u0026n.target.src;o.message=\\\"Loading chunk \\\"+t+\\\" failed: (\\\"+e+\\\": \\\"+r+\\\")\\\",o.name=\\\"ChunkLoadError\\\",o.type=e,o.request=r,i[1](o)}};r.l(a,c,\\\"chunk-\\\"+t,t)}};const t=(t,n)=\u003e{let[i,s,a]=n;var o,c,d=0;if(i.some(t=\u003e0!==e[t])){for(o in s)r.o(s,o)\u0026\u0026(r.m[o]=s[o]);if(a)a(r)}for(t\u0026\u0026t(n);d\u003ci.length;d++)c=i[d],r.o(e,c)\u0026\u0026e[c]\u0026\u0026e[c][0](),e[c]=0},n=self[\\\"webpackChunk:NRBA-1.321.0.PROD\\\"]=self[\\\"webpackChunk:NRBA-1.321.0.PROD\\\"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=\u003e{\\\"use strict\\\";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),s=r(1741);var a=r(2555),o=r(3333),c=r(9300);const d=e=\u003e{if(!e||\\\"string\\\"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var u=r(2614),l=r(944),f=r(8122);const h=\\\"[data-nr-mask]\\\",p=e=\u003e(0,f.a)(e,(()=\u003e{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},mask_selector:\\\"*\\\",block_selector:\\\"[data-nr-block]\\\",mask_input_options:{color:!1,date:!1,\\\"datetime-local\\\":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0,capture_payloads:c.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(o.$v.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,l.R)(1,t)}}},browser_consent_mode:{enabled:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:u.wk,inactiveMs:u.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector=\\\"\\\".concat(t,\\\",\\\").concat(h):\\\"\\\"===t||null===t?e.mask_selector=h:(0,l.R)(5,t)},get block_class(){return\\\"nr-block\\\"},get ignore_class(){return\\\"nr-ignore\\\"},get mask_text_class(){return\\\"nr-mask\\\"},get block_selector(){return e.block_selector},set block_selector(t){d(t)?e.block_selector+=\\\",\\\".concat(t):\\\"\\\"!==t\u0026\u0026(0,l.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t\u0026\u0026\\\"object\\\"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:[\\\"id\\\",\\\"className\\\",\\\"tagName\\\",\\\"type\\\"]},web_sockets:{enabled:!1}}})());var g=r(6154),m=r(9324);let v=0;const y={buildEnv:\\\"PROD\\\",distMethod:\\\"CDN\\\",version:m.x,originTime:g.WN},b={consented:!1},E={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||b.consented},set consented(e){b.consented=e},customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++v},listeningForIframeMessages:!1};var w=r(9232);var R=r(7836),T=r(3241);const A={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0};var x=r(9908),S=r(9752);function _(e,t={},n,o){let{init:c,info:d,loader_config:u,runtime:l={},exposed:h=!0}=t;if(!d){const e=(0,i.pV)();c=e.init,d=e.info,u=e.loader_config}var m;e.init=p(c||{}),e.loader_config=(m=u||{},(0,f.a)(m,A)),d.jsAttributes??={},g.bv\u0026\u0026(d.jsAttributes.isWorker=!0),e.info=(0,a.D)(d);const v=e.init;e.runtime??=(e=\u003e{const t=(0,f.a)(e,E),r=Object.keys(y).reduce((e,t)=\u003e(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:w.f.BA,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{\\\"entity.guid\\\":this.id,appId:e.info.applicationID}}},v.proxy.assets\u0026\u0026(e=\u003e{const t=e.startsWith(\\\"http\\\");e+=\\\"/\\\",r.p=t?e:\\\"https://\\\"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,\\\"beacons\\\",{get:()=\u003e[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,\\\"denyList\\\",{get:()=\u003e[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(s.W.prototype).forEach(r=\u003e{const n=s.W.prototype[r];if(\\\"function\\\"!=typeof n||\\\"constructor\\\"===n)return;let i=t[r];e[r]\u0026\u0026!1!==e.exposed\u0026\u0026\\\"micro-agent\\\"!==e.runtime?.loaderType\u0026\u0026(t[r]=(...t)=\u003e{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=R.ee.get(e.agentIdentifier),e.exposed=h,(0,T.W)({drained:!!e.runtime.activatedFeatures,type:\\\"lifecycle\\\",name:\\\"initialize\\\",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge\u0026\u0026g.gm.addEventListener(\\\"message\\\",t=\u003e{\\\"string\\\"==typeof t.data?.type\u0026\u0026t.data.type.startsWith(S.Pl)\u0026\u0026(0,x.p)(\\\"iframe-message\\\",[t],void 0,\\\"IFRAME\\\",e.ee)}),e.runtime.configured=!0)}var O=r(1863),N=r(4261),P=r(1738);var L=r(1687),k=r(4234),I=r(5289),C=r(5270),j=r(7767),M=r(6389),D=r(7699);const H=new WeakSet,B=new WeakMap;class W extends k.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=\u003e{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=\u003e{this.ee.on(\\\"manual-start-all\\\",(0,M.J)(()=\u003e{(0,L.Ak)(e,this.featureName),t()}))}):(0,L.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=\u003e{if(await this.deferred,this.#t(e),!(0,a.f)(e.info))return(0,l.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(B.has(e))return B.get(e);const i=(async()=\u003e{if((0,j.V)(e.init))try{const{setupAgentSession:t}=await r.e(478).then(r.bind(r,8766));t(e)}catch(e){(0,l.R)(20,e),t.emit(\\\"internal-error\\\",[e]),(0,x.p)(D.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await r.e(238).then(r.bind(r,6417));t(e)}catch(e){(0,l.R)(23,e)}const[{Connector:i},{Harvester:s}]=await Promise.all([r.e(478).then(r.bind(r,6589)),r.e(478).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new s(e);const a=Object.values(e.features).filter(t=\u003ee.runtime.drainRegistry.has(t.featureName));Promise.all(a.map(e=\u003ee.onAggregateImported)).then(()=\u003ee.runtime.harvester.startTimer())})();B.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,l.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,l.R)(34,e),this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};g.RI?(0,I.GG)(()=\u003ei(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return(0,C.SR)(n)\u0026\u0026!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!H.has(e)\u0026\u0026(H.add(e),!(0,a.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}_(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var K=r(6630);class F extends W{static featureName=K.T;constructor(e){var t;super(e,K.T),this.setupInspectionEvents(),t=e,(0,P.Y)(N.Fw,function(e,r){\\\"string\\\"==typeof e\u0026\u0026(\\\"/\\\"!==e.charAt(0)\u0026\u0026(e=\\\"/\\\"+e),t.runtime.customTransaction=(r||\\\"http://custom.transaction\\\")+e,(0,x.p)(\\\"api-\\\"+N.Fw,[(0,O.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=\u003ee.init.feature_flags.includes(\\\"rum_v2\\\")?r.e(478).then(r.bind(r,908)):r.e(478).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=\u003e{e\u0026\u0026(0,T.W)({timeStamp:e.timeStamp,loaded:\\\"complete\\\"===e.target.readyState,type:\\\"window\\\",name:t,data:e.target.location+\\\"\\\"})};(0,I.sB)(t=\u003e{e(t,\\\"DOMContentLoaded\\\")}),(0,I.GG)(t=\u003e{e(t,\\\"load\\\")}),(0,I.Qr)(t=\u003e{e(t,\\\"navigate\\\")}),this.ee.on(u.tS.UPDATE,(e,t)=\u003e{(0,T.W)({type:\\\"lifecycle\\\",name:\\\"session\\\",data:t})})}}class U extends e.d{constructor(e){var t;(super(),g.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(F),_(this,e,e.loaderType||\\\"agent\\\"),t=this,(0,P.Y)(N.cD,function(e,r,n=!1){if(\\\"string\\\"==typeof e){if([\\\"string\\\",\\\"number\\\",\\\"boolean\\\"].includes(typeof r)||null===r)return(0,P.U)(t,e,r,N.cD,n);(0,l.R)(40,typeof r)}else(0,l.R)(39,typeof e)},t),function(e){(0,P.Y)(N.Dl,function(t,r=!1){if(\\\"string\\\"!=typeof t\u0026\u0026null!==t)return void(0,l.R)(41,typeof t);const n=e.info.jsAttributes[\\\"enduser.id\\\"];r\u0026\u0026null!=n\u0026\u0026n!==t?(0,x.p)(\\\"api-setUserIdAndResetSession\\\",[t],void 0,\\\"session\\\",e.ee):(0,P.U)(e,\\\"enduser.id\\\",t,N.Dl,!0)},e)}(this),function(e){(0,P.Y)(N.nb,function(t){if(\\\"string\\\"==typeof t||null===t)return(0,P.U)(e,\\\"application.version\\\",t,N.nb,!1);(0,l.R)(42,typeof t)},e)}(this),function(e){(0,P.Y)(\\\"start\\\",function(){e.ee.emit(\\\"manual-start-all\\\")},e)}(this),function(e){(0,P.Y)(N.Pv,function(t=!0){if(\\\"boolean\\\"==typeof t){if((0,x.p)(\\\"api-\\\"+N.Pv,[t],void 0,\\\"session\\\",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=\u003e{const r=t.featAggregate;e\u0026\u0026!r.sentRum\u0026\u0026r.sendRum?.()})}}else(0,l.R)(65,typeof t)},e)}(this),this.run()):(0,l.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return n.forEach(r=\u003e{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes(\\\"rum_v2\\\");r.sort((e,r)=\u003et.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=\u003e{if(!e[r.featureName]\u0026\u0026(i||r.featureName!==t.K7.pageViewEvent))return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=\u003e!(e in this.features));n.length\u003e0\u0026\u0026(0,l.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,l.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var V=r(2843),z=r(782);class G extends W{static featureName=z.T;constructor(e){super(e,z.T),g.RI\u0026\u0026((0,V.u)(()=\u003e(0,x.p)(\\\"docHidden\\\",[(0,O.t)()],void 0,z.T,this.ee),!0),(0,V.G)(()=\u003e(0,x.p)(\\\"winPagehide\\\",[(0,O.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=\u003er.e(478).then(r.bind(r,9917))))}}var q=r(3969);class Y extends W{static featureName=q.TZ;constructor(e){super(e,q.TZ),this.importAggregator(e,()=\u003er.e(478).then(r.bind(r,6555)))}}var Z=r(6774),X=r(3878),J=r(3304);class Q{constructor(e,t,r,n,i){this.name=\\\"UncaughtError\\\",this.message=\\\"string\\\"==typeof e?e:(0,J.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function ee(e){return ne(e)?e:new Q(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic,e?.cause)}function te(e){const t=\\\"Unhandled Promise Rejection: \\\";if(!e?.reason)return;if(ne(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return ee(e.reason)}const r=ee(e.reason);return(r.message||\\\"\\\").startsWith(t)||(r.message=t+r.message),r}function re(e){if(e.error instanceof SyntaxError\u0026\u0026!/:\\\\d+$/.test(e.error.stack?.trim())){const t=new Q(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic,e.cause);return t.name=SyntaxError.name,t}return ne(e.error)?e.error:ee(e)}function ne(e){return e instanceof Error\u0026\u0026!!e.stack}function ie(e,r,n,i,s=(0,O.t)()){\\\"string\\\"==typeof e\u0026\u0026(e=new Error(e)),(0,x.p)(\\\"err\\\",[e,s,!1,r,n.runtime.isRecording,void 0,i],void 0,t.K7.jserrors,n.ee),(0,x.p)(\\\"uaErr\\\",[],void 0,t.K7.genericEvents,n.ee)}var se=r(993),ae=r(3785);function oe(e,{customAttributes:t={},level:r=se.p_.INFO}={},n,i,s=(0,O.t)()){(0,ae.R)(n.ee,e,t,r,!1,i,s)}function ce(e,r,n,i,s=(0,O.t)()){(0,x.p)(\\\"api-\\\"+N.hG,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}function de(e,r,n,i,s=(0,O.t)()){const{start:a,end:o,customAttributes:c}=r||{},d={customAttributes:c||{}};if(\\\"object\\\"!=typeof d.customAttributes||\\\"string\\\"!=typeof e||0===e.length)return void(0,l.R)(57);const u=(e,t)=\u003enull==e?t:\\\"number\\\"==typeof e?e:e instanceof PerformanceMark?e.startTime:Number.NaN;if(d.start=u(a,0),d.end=u(o,s),Number.isNaN(d.start)||Number.isNaN(d.end))(0,l.R)(57);else{if(d.duration=d.end-d.start,!(d.duration\u003c0))return(0,x.p)(\\\"api-\\\"+N.V1,[d,e,i],void 0,t.K7.genericEvents,n.ee),d;(0,l.R)(58)}}function ue(e,r={},n,i,s=(0,O.t)()){(0,x.p)(\\\"api-\\\"+N.fF,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}var le=r(5718);const fe=(e,t)=\u003ee?.nrMfeId===t.id\u0026\u0026(!e?.nrMfeObserved||e?.nrMfeObserved===t.instance),he=e=\u003e{try{return g.gm.CSS.escape(e)}catch(t){return e}},pe=(e,t={})=\u003e{const r=t.id,n=t.instance;if(!e||!r||!n)return!1;try{let r=1===e.nodeType?e:e.parentElement;for(;r?.tagName;){if(fe(r.dataset,t))return r.dataset.nrMfeObserved=n,!0;r=r.parentNode}}catch(e){}return!1},ge=(e,t)=\u003e{const r=g.gm.document?.querySelectorAll('[data-nr-mfe-id=\\\"'.concat(he(e.id),'\\\"]')),n=(Array.from(r)||[]).find(t=\u003efe(t.dataset,e));let i=!!n;i\u0026\u0026(n.dataset.nrMfeObserved??=e.instance);const s=new g.gm.MutationObserver(r=\u003e{r.forEach(r=\u003e{r.addedNodes.forEach(r=\u003e{const n=1===r.nodeType?r:null;!i\u0026\u0026fe(n?.dataset,e)\u0026\u0026(s.disconnect(),s.observe(n,{childList:!0,subtree:!0}),i=!0,n.dataset.nrMfeObserved=e.instance),(e=\u003e{try{return e?.textContent?.trim()||[\\\"img\\\",\\\"video\\\",\\\"canvas\\\",\\\"svg\\\"].includes(e?.nodeName?.toLowerCase())}catch(e){return!1}})(r)\u0026\u0026(i||pe(r,e))\u0026\u0026t(r,s)})})});return s.observe(n||g.gm.document,{childList:!0,subtree:!0}),s},me=(e,t,r)=\u003e{try{const n=new g.gm.PerformanceObserver(e=\u003e{e.getEntries().forEach(r)});return n.observe(t),e.push(n),n}catch(e){return null}};function ve(e,t){let r,n,i=!1;const s=e=\u003enull==e?e:e-(t?.scriptStart||t?.registeredAt||0),a={fcp:{get value(){const e=s(r);return e\u003e1e4?void 0:e},set value(e){i||(r=e)}},lcp:{get value(){if(void 0!==a.fcp.value)return s(n)},set value(e){i||(n=e)}},cls:{value:void 0},inp:{value:void 0},disconnect:()=\u003e{}};if(!(e\u0026\u0026g.RI\u0026\u0026g.gm.MutationObserver\u0026\u0026g.gm.PerformanceObserver))return a;const o=[];setTimeout(()=\u003e{r||a.disconnect()},1e4);const c=()=\u003e{if(!i){if(null==r){const e=(0,O.t)();if(s(e)\u003e1e4)return void a.disconnect();r=e}n??=(0,O.t)(),a.cls.value??=0}},d=ge(e,(e,t)=\u003e{c(),t.disconnect()});o.push(d);let u=0,l=null;const f=new Set;try{l=new g.gm.ResizeObserver(e=\u003e{i||e.forEach(e=\u003e{try{const t=e.contentRect.width*e.contentRect.height;t\u003eu\u0026\u0026(u=t,a.lcp.value=(0,O.t)()),l.unobserve(e.target)}catch(e){}})})}catch(e){}const h=ge(e,e=\u003e{if(c(),l)try{const t=1===e.nodeType?e:e.parentElement;t\u0026\u0026!f.has(t)\u0026\u0026(f.add(t),\\\"IMG\\\"===t.tagName?t.complete?l.observe(t):t.addEventListener(\\\"load\\\",()=\u003e{l.observe(t)},{once:!0}):\\\"VIDEO\\\"===t.tagName?t.readyState\u003e=2?l.observe(t):t.addEventListener(\\\"loadeddata\\\",()=\u003e{l.observe(t)},{once:!0}):l.observe(t))}catch(e){}});l\u0026\u0026o.push(l),o.push(h),me(o,{type:\\\"layout-shift\\\",buffered:!0},t=\u003e{i||t.hadRecentInput||(t.sources||[]).some(r=\u003e!!pe(r.node,e)\u0026\u0026(c(),a.cls.value+=t.value,!0))}),me(o,{type:\\\"event\\\",buffered:!0,durationThreshold:40},t=\u003e{!i\u0026\u0026t.interactionId\u0026\u0026pe(t.target,e)\u0026\u0026(void 0===a.inp.value||t.duration\u003ea.inp.value)\u0026\u0026(c(),a.inp.value=t.duration)});const p=[\\\"pointerdown\\\",\\\"keydown\\\"],m=()=\u003e{p.forEach(e=\u003e{g.gm.removeEventListener(e,v,{passive:!0})})};a.disconnect=()=\u003e{i=!0,o.forEach(e=\u003e{try{e?.disconnect()}catch(e){}}),m(),[\\\"visibilitychange\\\",\\\"pagehide\\\"].forEach(e=\u003e{g.gm.removeEventListener(e,a.disconnect,{once:!0,passive:!0})})};const v=t=\u003e{pe(t?.target,e)\u0026\u0026((()=\u003e{try{h?.disconnect(),l?.disconnect()}catch(e){}})(),m())};p.forEach(e=\u003e{g.gm.addEventListener(e,v,{passive:!0})}),[\\\"visibilitychange\\\",\\\"pagehide\\\"].forEach(e=\u003e{g.gm.addEventListener(e,a.disconnect,{once:!0,passive:!0})});const y=g.gm.document?.querySelectorAll('[data-nr-mfe-id=\\\"'.concat(he(e.id),'\\\"]'));return Array.from(y||[]).some(t=\u003efe(t.dataset,e))\u0026\u0026c(),a}var ye=r(9566),be=r(9119);const Ee=[\\\"name\\\",\\\"id\\\",\\\"type\\\"],we=new Map([[ce,\\\"addPageAction\\\"],[oe,\\\"log\\\"],[de,\\\"measure\\\"],[ie,\\\"noticeError\\\"],[ue,\\\"recordCustomEvent\\\"]]),Re={experimental:(0,M.J)(()=\u003e(0,l.R)(54,\\\"newrelic.register\\\")),disabled:(0,M.J)(()=\u003e(0,l.R)(55)),invalidTarget:(0,M.J)(e=\u003e(0,l.R)(48,e)),deregistered:(0,M.J)(()=\u003e(0,l.R)(68))};function Te(e){(0,P.Y)(N.eY,function(t){return Ae(e,t)},e)}function Ae(e,r){Re.experimental(),r||={},r.instance=(0,ye.LA)(8),r.type=w.f.MFE,r.licenseKey||=e.info.licenseKey,r.blocked=!1,(\\\"object\\\"!=typeof r.tags||null===r.tags||Array.isArray(r.tags))\u0026\u0026(r.tags={}),r.parent??={get id(){return e.runtime.appMetadata.agents?.[0].entityGuid},type:w.f.BA};const n=(0,le.Qr)(r),i=ve(r,n),s=(0,be.L)(\\\"\\\"+location),a={};Object.prototype.hasOwnProperty.call(r,\\\"attributes\\\")||Object.defineProperty(r,\\\"attributes\\\",{get:()=\u003e({...a,\\\"source.id\\\":r.id,\\\"source.name\\\":r.name,\\\"source.type\\\":r.type,\\\"parent.type\\\":r.parent?.type||w.f.BA,\\\"parent.id\\\":r.parent?.id})}),Object.entries(r.tags).forEach(([e,t])=\u003e{Ee.includes(e)||(a[\\\"source.\\\".concat(e)]=t)});let o=()=\u003e{};const c=e.runtime.registeredEntities,d=e=\u003e{r.blocked=!0,o=e};function u(e){return\\\"string\\\"==typeof e\u0026\u0026!!e.trim()\u0026\u0026e.trim().length\u003c501}e.init.api.register.enabled||d(Re.disabled),u(r.id)\u0026\u0026u(r.name)||d(()=\u003eRe.invalidTarget(r));const f={addPageAction:(t,n={})=\u003em(ce,[t,{...a,...n},e],r),deregister:()=\u003e{p(),d(Re.deregistered)},log:(t,n={})=\u003em(oe,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),measure:(t,n={})=\u003em(de,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),noticeError:(t,n={})=\u003em(ie,[t,{...a,...n},e],r),recordCustomEvent:(t,n={})=\u003em(ue,[t,{...a,...n},e],r),setApplicationVersion:e=\u003eg(\\\"application.version\\\",e),setCustomAttribute:(e,t)=\u003eg(e,t),setUserId:e=\u003eg(\\\"enduser.id\\\",e),metadata:{get customAttributes(){return a},target:r,timings:n,vitals:i,events:{latestTimestamp:void 0}}},h=()=\u003e(r.blocked\u0026\u0026o(),r.blocked);function p(){if(n.reportedAt)return;n.reportedAt=(0,O.t)(),i.disconnect(),n.fcp=i.fcp,n.lcp=i.lcp,n.cls=i.cls,n.inp=i.inp;const e=n.fetchEnd-n.fetchStart,t=n.scriptEnd-n.scriptStart,r={assetUrl:n.asset,assetType:n.type,registerUrl:s,deregisterUrl:(0,be.L)(\\\"\\\"+location),pageUrl:void 0,currentUrl:void 0,timeAlive:n.reportedAt-n.registeredAt,timeToBeRequested:n.fetchStart,timeToExecute:t,timeToFetch:e,timeToLoad:e+t,timeToRegister:n.registeredAt,...i.fcp.value\u003e=0\u0026\u0026{\\\"vitals.fcp.value\\\":i.fcp.value},...i.lcp.value\u003e=0\u0026\u0026{\\\"vitals.lcp.value\\\":i.lcp.value},...i.cls.value\u003e=0\u0026\u0026{\\\"vitals.cls.value\\\":i.cls.value},...i.inp.value\u003e=0\u0026\u0026{\\\"vitals.inp.value\\\":i.inp.value}};f.recordCustomEvent(\\\"MicroFrontEndTiming\\\",r)}h()||(c.push(f),(0,V.G)(p));const g=(e,t)=\u003e{h()||(a[e]=t)},m=(r,n,i)=\u003e{if(h()\u0026\u0026r!==Ae)return;const s=f.metadata.events.latestTimestamp??(0,O.t)();f.metadata.events.latestTimestamp=void 0;const a=we.get(r)||\\\"unknown\\\";(0,x.p)(q.xV,[\\\"API/register/\\\".concat(a,\\\"/called\\\")],void 0,t.K7.metrics,e.ee);try{return r(...n,i,s)}catch(e){(0,l.R)(50,e)}};return f}class xe extends W{static featureName=Z.T;constructor(e){var t;super(e,Z.T),t=e,(0,P.Y)(N.o5,(e,r)=\u003eie(e,r,t),t),function(e){(0,P.Y)(N.bt,function(t){e.runtime.onerror=t},e)}(e),function(e){let t=0;(0,P.Y)(N.k6,function(e,r){++t\u003e10||(this.runtime.releaseIds[e.slice(-200)]=(\\\"\\\"+r).slice(-200))},e)}(e),Te(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on(\\\"internal-error\\\",(t,r)=\u003e{this.abortHandler\u0026\u0026(0,x.p)(\\\"ierr\\\",[ee(t),(0,O.t)(),!0,{},e.runtime.isRecording,r],void 0,this.featureName,this.ee)}),g.gm.addEventListener(\\\"unhandledrejection\\\",t=\u003e{this.abortHandler\u0026\u0026(0,x.p)(\\\"err\\\",[te(t),(0,O.t)(),!1,{unhandledPromiseRejection:1},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,X.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener(\\\"error\\\",t=\u003e{this.abortHandler\u0026\u0026(0,x.p)(\\\"err\\\",[re(t),(0,O.t)(),!1,{},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,X.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,()=\u003er.e(478).then(r.bind(r,9377)))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var Se=r(8990);let _e=1;function Oe(e){const t=typeof e;return!e||\\\"object\\\"!==t\u0026\u0026\\\"function\\\"!==t?-1:e===g.gm?0:(0,Se.I)(e,\\\"nr@id\\\",function(){return _e++})}function Ne(e){if(\\\"string\\\"==typeof e)return e.length;if(\\\"object\\\"==typeof e){if(\\\"undefined\\\"!=typeof ArrayBuffer\u0026\u0026e instanceof ArrayBuffer\u0026\u0026e.byteLength)return e.byteLength;if(\\\"undefined\\\"!=typeof Blob\u0026\u0026e instanceof Blob\u0026\u0026e.size)return e.size;if(!(\\\"undefined\\\"!=typeof FormData\u0026\u0026e instanceof FormData))try{return(0,J.A)(e).length}catch(e){return}}}var Pe=r(8139),Le=r(3434),ke=r(5732);const Ie={},Ce=[\\\"open\\\",\\\"send\\\",\\\"setRequestHeader\\\"];function je(e,t){var r=e||R.ee;const n=function(e){return(e||R.ee).get(\\\"xhr\\\")}(r);if(void 0===g.gm.XMLHttpRequest)return n;if(Ie[n.debugId]++)return n;Ie[n.debugId]=1,(0,Pe.u)(r,t);var i=(0,Le.YM)(n,void 0,t),s=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,o=g.gm.Promise,c=g.gm.setInterval,d=\\\"readystatechange\\\",u=[\\\"onload\\\",\\\"onerror\\\",\\\"onabort\\\",\\\"onloadstart\\\",\\\"onloadend\\\",\\\"onprogress\\\",\\\"ontimeout\\\"],f=[],h=g.gm.XMLHttpRequest=function(e){const r=new s(e),a=n.context(r);a.targets=(0,ke.$5)(t);try{n.emit(\\\"new-xhr\\\",[r],a),r.addEventListener(d,(o=a,function(){var e=this;e.readyState\u003e3\u0026\u0026!o.resolved\u0026\u0026(o.resolved=!0,n.emit(\\\"xhr-resolved\\\",[],e)),i.inPlace(e,u,\\\"fn-\\\",E)}),(0,X.jT)(!1))}catch(e){(0,l.R)(15,e);try{n.emit(\\\"internal-error\\\",[e])}catch(e){}}var o;return r};function p(e,t){i.inPlace(t,[\\\"onreadystatechange\\\"],\\\"fn-\\\",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(s,h),h.prototype=s.prototype,i.inPlace(h.prototype,Ce,\\\"-xhr-\\\",E),n.on(\\\"send-xhr-start\\\",function(e,t){p(e,t),function(e){f.push(e),a\u0026\u0026(m?m.then(b):c?c(b):(v=-v,y.data=v))}(t)}),n.on(\\\"open-xhr-start\\\",p),a){var m=o\u0026\u0026o.resolve();if(!c\u0026\u0026!o){var v=1,y=document.createTextNode(v);new a(b).observe(y,{characterData:!0})}}else r.on(\\\"fn-end\\\",function(e){e[0]\u0026\u0026e[0].type===d||b()});function b(){for(var e=0;e\u003cf.length;e++)p(0,f[e]);f.length\u0026\u0026(f=[])}function E(e,t){return t}return n}var Me=\\\"fetch-\\\",De=Me+\\\"body-\\\",He=[\\\"arrayBuffer\\\",\\\"blob\\\",\\\"json\\\",\\\"text\\\",\\\"formData\\\"],Be=g.gm.Request,We=g.gm.Response,Ke=\\\"prototype\\\";const Fe={};function Ue(e,t){const r=function(e){return(e||R.ee).get(\\\"fetch\\\")}(e);if(!(Be\u0026\u0026We\u0026\u0026g.gm.fetch))return r;if(Fe[r.debugId]++)return r;function n(e,n,i){var s=e[n];\\\"function\\\"==typeof s\u0026\u0026(e[n]=function(){var e=[...arguments];const n={},a=(0,ke.$5)(t);var o;r.emit(i+\\\"before-start\\\",[e],n),n[R.P]\u0026\u0026n[R.P].dt\u0026\u0026(o=n[R.P].dt);var c=s.apply(this,e);return r.emit(i+\\\"start\\\",[e,o],c),c.then(function(e){return r.emit(i+\\\"end\\\",[null,e,a],c),e},function(e){throw r.emit(i+\\\"end\\\",[e,void 0,a],c),e})})}return Fe[r.debugId]=1,He.forEach(e=\u003e{n(Be[Ke],e,De),n(We[Ke],e,De)}),n(g.gm,\\\"fetch\\\",Me),r.on(Me+\\\"end\\\",function(e,n,i){var s=this;if(s.targets=i||[t.runtime.v2Target],n){var a=n.headers.get(\\\"content-length\\\");null!==a\u0026\u0026(s.rxSize=a),r.emit(Me+\\\"done\\\",[null,n],s)}else r.emit(Me+\\\"done\\\",[e],s)}),r}var Ve=r(7485);class ze{constructor(e){this.agentRef=e}generateTracePayload(e){const t=this.agentRef.loader_config;if(!this.shouldGenerateTrace(e)||!t)return null;var r=(t.accountID||\\\"\\\").toString()||null,n=(t.agentID||\\\"\\\").toString()||null,i=(t.trustKey||\\\"\\\").toString()||null;if(!r||!n)return null;var s=(0,ye.ZF)(),a=(0,ye.el)(),o=Date.now(),c={spanId:s,traceId:a,timestamp:o};return(e.sameOrigin||this.isAllowedOrigin(e)\u0026\u0026this.useTraceContextHeadersForCors())\u0026\u0026(c.traceContextParentHeader=this.generateTraceContextParentHeader(s,a),c.traceContextStateHeader=this.generateTraceContextStateHeader(s,o,r,n,i)),(e.sameOrigin\u0026\u0026!this.excludeNewrelicHeader()||!e.sameOrigin\u0026\u0026this.isAllowedOrigin(e)\u0026\u0026this.useNewrelicHeaderForCors())\u0026\u0026(c.newrelicHeader=this.generateTraceHeader(s,a,o,r,n,i)),c}generateTraceContextParentHeader(e,t){return\\\"00-\\\"+t+\\\"-\\\"+e+\\\"-01\\\"}generateTraceContextStateHeader(e,t,r,n,i){return i+\\\"@nr=0-1-\\\"+r+\\\"-\\\"+n+\\\"-\\\"+e+\\\"----\\\"+t}generateTraceHeader(e,t,r,n,i,s){if(!(\\\"function\\\"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:\\\"Browser\\\",ac:n,ap:i,id:e,tr:t,ti:r}};return s\u0026\u0026n!==s\u0026\u0026(a.d.tk=s),btoa((0,J.A)(a))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing?.enabled\u0026\u0026this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n\u003cr.allowed_origins.length;n++){var i=(0,Ve.D)(r.allowed_origins[n]);if(e.hostname===i.hostname\u0026\u0026e.protocol===i.protocol\u0026\u0026e.port===i.port){t=!0;break}}return t}excludeNewrelicHeader(){var e=this.agentRef.init?.distributed_tracing;return!!e\u0026\u0026!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e\u0026\u0026!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e\u0026\u0026!!e.cors_use_tracecontext_headers}}var Ge=r(7295);function qe(e){return\\\"string\\\"==typeof e?e:e instanceof(0,i.dV)().o.REQ?e.url:g.gm?.URL\u0026\u0026e instanceof URL?e.href:void 0}function Ye(e,t){var r=(0,Ve.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+\\\":\\\"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var Ze=[\\\"load\\\",\\\"error\\\",\\\"abort\\\",\\\"timeout\\\"],$e=Ze.length,Xe=(0,i.dV)().o.REQ,Je=(0,i.dV)().o.XHR;const Qe=\\\"X-NewRelic-App-Data\\\",et=\\\"internal-error\\\";class tt extends W{static featureName=c.TZ;constructor(e){super(e,c.TZ),this.dt=new ze(e),this.handler=(e,t,r,n)=\u003e(0,x.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:\\\"xhr\\\",fetch:\\\"fetch\\\",beacon:\\\"beacon\\\"};g.gm?.performance?.getEntriesByType(\\\"resource\\\").forEach(r=\u003e{if(r.initiatorType in e\u0026\u00260!==r.responseStatus){const n={status:r.responseStatus},i={rxSize:r.transferSize,duration:Math.floor(r.duration),cbTime:0};Ye(n,r.name),this.handler(\\\"xhr\\\",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}Ue(this.ee,e),je(this.ee,e),function(e,r,n,i){const s=[c.mo.ALL,c.mo.FAILURES].includes(e.init.ajax?.capture_payloads);function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=A,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},t.latestLongtaskEnd=0,e.addEventListener(\\\"load\\\",function(r){_(t,e)},(0,X.jT)(!1)),g.lR||e.addEventListener(\\\"progress\\\",function(e){t.lastSize=e.loaded},(0,X.jT)(!1))}function o(e){this.params={method:e[0]},Ye(this,e[1]),this.metrics={}}function d(t,r){e.loader_config.xpid\u0026\u0026this.sameOrigin\u0026\u0026r.setRequestHeader(\\\"X-NewRelic-ID\\\",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var s=!1;n.newrelicHeader\u0026\u0026(r.setRequestHeader(\\\"newrelic\\\",n.newrelicHeader),s=!0),n.traceContextParentHeader\u0026\u0026(r.setRequestHeader(\\\"traceparent\\\",n.traceContextParentHeader),n.traceContextStateHeader\u0026\u0026r.setRequestHeader(\\\"tracestate\\\",n.traceContextStateHeader),s=!0),s\u0026\u0026(this.dt=n)}}function u(e,t){s\u0026\u0026e.length\u003e=2\u0026\u0026(this.requestHeaders??={},this.requestHeaders[e[0].toLowerCase()]=e[1])}function l(e,t){var n=this.metrics,i=e[0],s=this;if(n\u0026\u0026i){var a=Ne(i);a\u0026\u0026(n.txSize=a)}this.startTime=(0,O.t)(),this.requestBody=i,this.listener=function(e){try{\\\"abort\\\"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),(\\\"load\\\"!==e.type||s.called===s.totalCbs\u0026\u0026(s.onloadCalled||\\\"function\\\"!=typeof t.onload)\u0026\u0026\\\"function\\\"==typeof s.end)\u0026\u0026s.end(t)}catch(e){try{r.emit(et,[e])}catch(e){}}};for(var o=0;o\u003c$e;o++)t.addEventListener(Ze[o],this.listener,(0,X.jT)(!1))}function f(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled\u0026\u0026\\\"function\\\"==typeof r.onload||\\\"function\\\"!=typeof this.end||this.end(r)}function h(e,t){var r=\\\"\\\"+Oe(e)+!!t;this.xhrGuids\u0026\u0026!this.xhrGuids[r]\u0026\u0026(this.xhrGuids[r]=!0,this.totalCbs+=1)}function p(e,t){var r=\\\"\\\"+Oe(e)+!!t;this.xhrGuids\u0026\u0026this.xhrGuids[r]\u0026\u0026(delete this.xhrGuids[r],this.totalCbs-=1)}function m(){this.endTime=(0,O.t)()}function v(e,t){t instanceof Je\u0026\u0026\\\"load\\\"===e[0]\u0026\u0026r.emit(\\\"xhr-load-added\\\",[e[1],e[2]],t)}function y(e,t){t instanceof Je\u0026\u0026\\\"load\\\"===e[0]\u0026\u0026r.emit(\\\"xhr-load-removed\\\",[e[1],e[2]],t)}function b(e,t,r){t instanceof Je\u0026\u0026(\\\"onload\\\"===r\u0026\u0026(this.onload=!0),(\\\"load\\\"===(e[0]\u0026\u0026e[0].type)||this.onload)\u0026\u0026(this.xhrCbStart=(0,O.t)()))}function E(e,t){this.xhrCbStart\u0026\u0026r.emit(\\\"xhr-cb-time\\\",[(0,O.t)()-this.xhrCbStart,this.onload,t],t)}function w(e){var t,r=e[1]||{};if(\\\"string\\\"==typeof e[0]?0===(t=e[0]).length\u0026\u0026g.RI\u0026\u0026(t=\\\"\\\"+g.gm.location.href):e[0]\u0026\u0026e[0].url?t=e[0].url:g.gm?.URL\u0026\u0026e[0]\u0026\u0026e[0]instanceof URL?t=e[0].href:\\\"function\\\"==typeof e[0].toString\u0026\u0026(t=e[0].toString()),\\\"string\\\"==typeof t\u0026\u00260!==t.length){t\u0026\u0026(this.parsedOrigin=(0,Ve.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=i.generateTracePayload(this.parsedOrigin);if(n\u0026\u0026(n.newrelicHeader||n.traceContextParentHeader))if(e[0]\u0026\u0026e[0].headers)o(e[0].headers,n)\u0026\u0026(this.dt=n);else{var s={};for(var a in r)s[a]=r[a];s.headers=new Headers(r.headers||{}),o(s.headers,n)\u0026\u0026(this.dt=n),e.length\u003e1?e[1]=s:e.push(s)}}function o(e,t){var r=!1;return t.newrelicHeader\u0026\u0026(e.set(\\\"newrelic\\\",t.newrelicHeader),r=!0),t.traceContextParentHeader\u0026\u0026(e.set(\\\"traceparent\\\",t.traceContextParentHeader),t.traceContextStateHeader\u0026\u0026e.set(\\\"tracestate\\\",t.traceContextStateHeader),r=!0),r}}function R(e,t){this.params={},this.metrics={},this.startTime=(0,O.t)(),this.dt=t;let[r,n={}]=e;Ye(this,qe(r));const i=(\\\"\\\"+(r\u0026\u0026r instanceof Xe\u0026\u0026r.method||n.method||\\\"GET\\\")).toUpperCase();this.params.method=i,this.txSize=Ne(n.body||r?.body)||0;try{var a=n.headers||r?.headers;if(s\u0026\u0026a)if(this.requestHeaders??={},a instanceof Headers)a.forEach(function(e,t){this.requestHeaders[t.toLowerCase()]=e}.bind(this));else if(\\\"object\\\"==typeof a)for(var o in a)this.requestHeaders[o.toLowerCase()]=a[o]}catch(e){}this.requestBody=n.body||r?.body}function T(e,t){if(this.endTime=(0,O.t)(),this.params||(this.params={}),(0,Ge.iW)(this.params))return;this.params.status=t?t.status:0;const n=()=\u003e{const e=+this.rxSize,t=null==this.rxSize||isNaN(e)?void 0:e,r={txSize:this.txSize,rxSize:t,duration:this.endTime-this.startTime},n=[this.params,r,this.startTime,this.endTime,\\\"fetch\\\"];this.targets.forEach(e=\u003eS(n,this,e))};t\u0026\u0026s?t.clone().text().then(e=\u003e{this.responseBody=e,this.rxSize\u0026\u0026\\\"0\\\"!==this.rxSize\u0026\u00260!==this.rxSize||void 0===e||0===this.params.status||(this.rxSize=Ne(e)),t?.headers\u0026\u0026(this.responseHeaders={},t.headers.forEach(function(e,t){this.responseHeaders[t.toLowerCase()]=e}.bind(this)))}).catch(e=\u003e{r.emit(et,[e])}).finally(()=\u003e{n()}):n()}function A(e){const t=this.params,n=this.metrics;if(this.ended)return;this.ended=!0;for(let t=0;t\u003c$e;t++)e.removeEventListener(Ze[t],this.listener,!1);if(t.aborted)return;if((0,Ge.iW)(t))return;if(n.duration=this.endTime-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status\u0026\u0026(t.status=0):_(this,e),n.cbTime=this.cbTime,s){try{this.responseBody=e.responseText}catch(t){this.responseBody=e.response}if((!n.rxSize||0===n.rxSize)\u0026\u0026void 0!==this.responseBody\u0026\u00260!==t.status){const e=Ne(this.responseBody);void 0!==e\u0026\u0026(n.rxSize=e)}try{this.responseHeaders=function(e){const t={};return e?(e.split(\\\"\\\\r\\\\n\\\").forEach(function(e){const r=e.indexOf(\\\": \\\");if(r\u003e0){const n=e.substring(0,r),i=e.substring(r+2);t[n.toLowerCase()]=i}}),t):t}(e.getAllResponseHeaders())}catch(e){r.emit(et,[e])}}const i=[t,n,this.startTime,this.endTime,\\\"xhr\\\"];this.targets.forEach(e=\u003eS(i,this,e))}function S(e,r,i){n(\\\"xhr\\\",[...e,i],r,t.K7.ajax)}function _(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return\\\"json\\\"===r\u0026\u0026null!==t?t:\\\"arraybuffer\\\"===r||\\\"blob\\\"===r||\\\"json\\\"===r?Ne(e.response):\\\"text\\\"===r||\\\"\\\"===r||void 0===r?Ne(e.responseText):void 0}(n,e.lastSize);if(void 0!==i\u0026\u00260!==n.status\u0026\u0026(e.metrics.rxSize=i),e.sameOrigin\u0026\u0026n.getAllResponseHeaders().indexOf(Qe)\u003e=0){var s=n.getResponseHeader(Qe);s\u0026\u0026((0,x.p)(\\\"sm\\\",[\\\"Ajax/CrossApplicationTracing/Header/Seen\\\"],void 0,t.K7.metrics,r),e.params.cat=s.split(\\\", \\\").pop())}e.loadCaptureCalled=!0}r.on(\\\"new-xhr\\\",a),r.on(\\\"open-xhr-start\\\",o),r.on(\\\"open-xhr-end\\\",d),r.on(\\\"send-xhr-start\\\",l),r.on(\\\"setRequestHeader-xhr-start\\\",u),r.on(\\\"xhr-cb-time\\\",f),r.on(\\\"xhr-load-added\\\",h),r.on(\\\"xhr-load-removed\\\",p),r.on(\\\"xhr-resolved\\\",m),r.on(\\\"addEventListener-end\\\",v),r.on(\\\"removeEventListener-end\\\",y),r.on(\\\"fn-end\\\",E),r.on(\\\"fetch-before-start\\\",w),r.on(\\\"fetch-start\\\",R),r.on(\\\"fn-start\\\",b),r.on(\\\"fetch-done\\\",T)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,()=\u003er.e(478).then(r.bind(r,3845)))}}const rt={},nt=[\\\"pushState\\\",\\\"replaceState\\\"];function it(e,t){const r=function(e){return(e||R.ee).get(\\\"history\\\")}(e);return!g.RI||rt[r.debugId]++||(rt[r.debugId]=1,(0,Le.YM)(r,void 0,t).inPlace(window.history,nt,\\\"-\\\")),r}var st=r(3738);function at(e){(0,P.Y)(N.BL,function(r=Date.now()){const n=r-g.WN;n\u003c0\u0026\u0026(0,l.R)(62,r),(0,x.p)(q.XG,[N.BL,{time:n}],void 0,t.K7.metrics,e.ee),e.addToTrace({name:N.BL,start:r,origin:\\\"nr\\\"}),(0,x.p)(\\\"api-\\\"+N.hG,[n,N.BL],void 0,t.K7.genericEvents,e.ee)},e)}const{He:ot,bD:ct,d3:dt,Kp:ut,TZ:lt,Lc:ft,uP:ht,Rz:pt}=st;class gt extends W{static featureName=lt;constructor(e){var n;super(e,lt),n=e,(0,P.Y)(N.U2,function(e){if(!(e\u0026\u0026\\\"object\\\"==typeof e\u0026\u0026e.name\u0026\u0026e.start))return;const r={n:e.name,s:e.start-g.WN,e:(e.end||e.start)-g.WN,o:e.origin||\\\"\\\",t:\\\"api\\\"};r.s\u003c0||r.e\u003c0||r.e\u003cr.s?(0,l.R)(61,{start:r.s,end:r.e}):(0,x.p)(\\\"bstApi\\\",[r],void 0,t.K7.sessionTrace,n.ee)},n),at(e);if(!(0,j.V)(e.init))return void this.deregisterDrain();const i=this.ee;let s;it(i,e),this.eventsEE=(0,Pe.u)(i,e),this.eventsEE.on(ht,function(e,t){this.bstStart=(0,O.t)()}),this.eventsEE.on(ft,function(e,r){(0,x.p)(\\\"bst\\\",[e[0],r,this.bstStart,(0,O.t)()],void 0,t.K7.sessionTrace,i)}),i.on(pt+dt,function(e){this.time=(0,O.t)(),this.startPath=location.pathname+location.hash}),i.on(pt+ut,function(e){(0,x.p)(\\\"bstHist\\\",[location.pathname+location.hash,this.startPath,this.time],void 0,t.K7.sessionTrace,i)});try{s=new PerformanceObserver(e=\u003e{const r=e.getEntries();(0,x.p)(ot,[r],void 0,t.K7.sessionTrace,i)}),s.observe({type:ct,buffered:!0})}catch(e){}this.importAggregator(e,()=\u003er.e(478).then(r.bind(r,6974)),{resourceObserver:s})}}var mt=r(733),vt=r(6344);class yt extends W{static featureName=vt.TZ;#i;recorder;constructor(e){var n;let i;super(e,vt.TZ),n=e,(0,P.Y)(N.CH,function(){(0,x.p)(N.CH,[],void 0,t.K7.sessionReplay,n.ee)},n),function(e){(0,P.Y)(N.Tb,function(){(0,x.p)(N.Tb,[],void 0,t.K7.sessionReplay,e.ee)},e)}(e);const s=\\\"\\\".concat(u.Wt).concat((0,mt.Y)(e.info.licenseKey,e.info.applicationID));try{i=JSON.parse(localStorage.getItem(s))}catch(e){}(0,C.SR)(e.init)\u0026\u0026this.ee.on(N.CH,()=\u003ethis.#s()),this.#a(i)\u0026\u0026this.importRecorder().then(e=\u003e{e.startRecording(vt.Qb.PRELOAD,i?.sessionReplayMode)}),this.abortHandler=this.#n,this.importAggregator(this.agentRef,()=\u003er.e(478).then(r.bind(r,6167)),this),this.ee.on(\\\"err\\\",e=\u003e{this.blocked||this.agentRef.runtime.isRecording\u0026\u0026(this.errorNoticed=!0,(0,x.p)(vt.Vh,[e],void 0,this.featureName,this.ee))})}#a(e){return e\u0026\u0026(e.sessionReplayMode===u.g.FULL||e.sessionReplayMode===u.g.ERROR)||(0,C.Aw)(this.agentRef.init)}importRecorder(){return this.recorder?Promise.resolve(this.recorder):(this.#i??=Promise.all([r.e(478),r.e(249)]).then(r.bind(r,4866)).then(({Recorder:e})=\u003e(this.recorder=new e(this),this.recorder)).catch(e=\u003e{throw this.ee.emit(\\\"internal-error\\\",[e]),this.blocked=!0,e}),this.#i)}#s(){this.blocked||(this.featAggregate?this.featAggregate.mode!==u.g.FULL\u0026\u0026this.featAggregate.initializeRecording(u.g.FULL,!0,vt.Qb.API):this.importRecorder().then(()=\u003e{this.recorder.startRecording(vt.Qb.API,u.g.FULL)}))}#n(){this.recorder?.stopRecording()}}var bt=r(3962);class Et extends W{static featureName=bt.TZ;constructor(e){if(super(e,bt.TZ),function(e){const r=e.ee.get(\\\"tracer\\\");function n(){}(0,P.Y)(N.dT,function(e){return(new n).get(\\\"object\\\"==typeof e?e:{})},e);const i=n.prototype={createTracer:function(n,i){var s={},a=this,o=\\\"function\\\"==typeof i;return(0,x.p)(q.xV,[\\\"API/createTracer/called\\\"],void 0,t.K7.metrics,e.ee),function(){if(r.emit((o?\\\"\\\":\\\"no-\\\")+\\\"fn-start\\\",[(0,O.t)(),a,o],s),o)try{return i.apply(this,arguments)}catch(e){const t=\\\"string\\\"==typeof e?new Error(e):e;throw r.emit(\\\"fn-err\\\",[arguments,this,t],s),t}finally{r.emit(\\\"fn-end\\\",[(0,O.t)()],s)}}}};[\\\"actionText\\\",\\\"setName\\\",\\\"setAttribute\\\",\\\"save\\\",\\\"ignore\\\",\\\"onEnd\\\",\\\"getContext\\\",\\\"end\\\",\\\"get\\\"].forEach(r=\u003e{P.Y.apply(this,[r,function(){return(0,x.p)(N.hw+r,[performance.now(),...arguments],this,t.K7.softNav,e.ee),this},e,i])}),(0,P.Y)(N.PA,function(){(0,x.p)(N.hw+\\\"routeName\\\",[performance.now(),...arguments],void 0,t.K7.softNav,e.ee)},e)}(e),!g.RI||!(0,i.dV)().o.MO)return;const n=it(this.ee,e);try{this.removeOnAbort=new AbortController}catch(e){}bt.tC.forEach(e=\u003e{(0,X.sp)(e,e=\u003e{c(e)},!0,this.removeOnAbort?.signal)});const s=()=\u003e(0,x.p)(\\\"newURL\\\",[(0,O.t)(),\\\"\\\"+window.location],void 0,this.featureName,this.ee);n.on(\\\"pushState-end\\\",s),n.on(\\\"replaceState-end\\\",s),(0,X.sp)(bt.OV,e=\u003e{c(e),(0,x.p)(\\\"newURL\\\",[e.timeStamp,\\\"\\\"+window.location],void 0,this.featureName,this.ee)},!0,this.removeOnAbort?.signal);let a=!1;const o=new((0,i.dV)().o.MO)((e,t)=\u003e{a||(a=!0,requestAnimationFrame(()=\u003e{(0,x.p)(\\\"newDom\\\",[(0,O.t)()],void 0,this.featureName,this.ee),a=!1}))}),c=(0,M.s)(e=\u003e{\\\"loading\\\"!==document.readyState\u0026\u0026((0,x.p)(\\\"newUIEvent\\\",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0}))},100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,()=\u003er.e(478).then(r.bind(r,4393)),{domObserver:o})}}var wt=r(981);const Rt={},Tt=new Set;function At(e){return\\\"string\\\"==typeof e?{type:\\\"string\\\",size:(new TextEncoder).encode(e).length}:e instanceof ArrayBuffer?{type:\\\"ArrayBuffer\\\",size:e.byteLength}:e instanceof Blob?{type:\\\"Blob\\\",size:e.size}:e instanceof DataView?{type:\\\"DataView\\\",size:e.byteLength}:ArrayBuffer.isView(e)?{type:\\\"TypedArray\\\",size:e.byteLength}:{type:\\\"unknown\\\",size:0}}class xt{constructor(e,t){this.timestamp=(0,O.t)(),this.currentUrl=(0,be.L)(window.location.href),this.socketId=(0,ye.LA)(8),this.requestedUrl=(0,be.L)(e),this.requestedProtocols=Array.isArray(t)?t.join(\\\",\\\"):t||\\\"\\\",this.openedAt=void 0,this.protocol=void 0,this.extensions=void 0,this.binaryType=void 0,this.messageOrigin=void 0,this.messageCount=0,this.messageBytes=0,this.messageBytesMin=0,this.messageBytesMax=0,this.messageTypes=void 0,this.sendCount=0,this.sendBytes=0,this.sendBytesMin=0,this.sendBytesMax=0,this.sendTypes=void 0,this.closedAt=void 0,this.closeCode=void 0,this.closeReason=\\\"unknown\\\",this.closeWasClean=void 0,this.connectedDuration=0,this.hasErrors=void 0}}class St extends W{static featureName=o.TZ;constructor(e){super(e,o.TZ);const n=e.init.feature_flags.includes(\\\"websockets\\\")||e.init.web_sockets?.enabled,s=!e.init.feature_flags.includes(\\\"no_spv\\\"),a=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.performance.resources.enabled,e.init.user_actions.enabled,n,s];var c;let d;if(c=e,(0,P.Y)(N.hG,(e,t)=\u003ece(e,t,c),c),function(e){(0,P.Y)(N.fF,(t,r)=\u003eue(t,r,e),e)}(e),at(e),Te(e),function(e){(0,P.Y)(N.V1,(t,r)=\u003ede(t,r,e),e)}(e),this.removeOnAbort=new AbortController,this.abortHandler=()=\u003e{this.removeOnAbort.abort(),this.abortHandler=void 0},n){const u=function(e,t){if(!(0,i.dV)().o.WS)return e;const r=e.get(\\\"websockets\\\");if(Rt[r.debugId]++)return r;Rt[r.debugId]=1,(0,V.G)(()=\u003e{const e=(0,O.t)();Tt.forEach(t=\u003e{t.nrData.closedAt=e,t.nrData.closeCode=1001,t.nrData.closeReason=\\\"Page navigating away\\\",t.nrData.closeWasClean=!1,t.nrData.openedAt\u0026\u0026(t.nrData.connectedDuration=e-t.nrData.openedAt),r.emit(\\\"ws\\\",[t.nrData,t.targets],t)})});class n extends WebSocket{static name=wt.R.WS;static toString(){return\\\"function WebSocket() { [native code] }\\\"}toString(){return\\\"[object WebSocket]\\\"}get[Symbol.toStringTag](){return n.name}#o(e){(e.__newrelic??={}).socketId=this.nrData.socketId,this.nrData.hasErrors??=!0}constructor(...e){super(...e),this.nrData=new xt(e[0],e[1]),this.targets=(0,ke.$5)(t),this.addEventListener(\\\"open\\\",()=\u003e{this.nrData.openedAt=(0,O.t)(),[\\\"protocol\\\",\\\"extensions\\\",\\\"binaryType\\\"].forEach(e=\u003e{this.nrData[e]=this[e]}),Tt.add(this)}),this.addEventListener(\\\"message\\\",e=\u003e{const{type:t,size:r}=At(e.data);this.nrData.messageOrigin??=(0,be.L)(e.origin),this.nrData.messageCount++,this.nrData.messageBytes+=r,this.nrData.messageBytesMin=Math.min(this.nrData.messageBytesMin||1/0,r),this.nrData.messageBytesMax=Math.max(this.nrData.messageBytesMax,r),(this.nrData.messageTypes??\\\"\\\").includes(t)||(this.nrData.messageTypes=this.nrData.messageTypes?\\\"\\\".concat(this.nrData.messageTypes,\\\",\\\").concat(t):t)}),this.addEventListener(\\\"close\\\",e=\u003e{this.nrData.closedAt=(0,O.t)(),this.nrData.closeCode=e.code,e.reason\u0026\u0026(this.nrData.closeReason=e.reason),this.nrData.closeWasClean=e.wasClean,this.nrData.connectedDuration=this.nrData.closedAt-this.nrData.openedAt,Tt.delete(this),r.emit(\\\"ws\\\",[this.nrData,this.targets],this)})}addEventListener(e,t,...r){const n=this,i=\\\"function\\\"==typeof t?function(...e){try{return t.apply(this,e)}catch(e){throw n.#o(e),e}}:t?.handleEvent?{handleEvent:function(...e){try{return t.handleEvent.apply(t,e)}catch(e){throw n.#o(e),e}}}:t;return super.addEventListener(e,i,...r)}send(e){if(this.readyState===WebSocket.OPEN){const{type:t,size:r}=At(e);this.nrData.sendCount++,this.nrData.sendBytes+=r,this.nrData.sendBytesMin=Math.min(this.nrData.sendBytesMin||1/0,r),this.nrData.sendBytesMax=Math.max(this.nrData.sendBytesMax,r),(this.nrData.sendTypes??\\\"\\\").includes(t)||(this.nrData.sendTypes=this.nrData.sendTypes?\\\"\\\".concat(this.nrData.sendTypes,\\\",\\\").concat(t):t)}try{return super.send(e)}catch(e){throw this.#o(e),e}}close(...e){try{super.close(...e)}catch(e){throw this.#o(e),e}}}return g.gm.WebSocket=n,r}(this.ee,e);u.on(\\\"ws\\\",(e,t)=\u003e{(0,x.p)(\\\"ws-complete\\\",[e,t],void 0,this.featureName,this.ee)})}if(s\u0026\u0026g.gm.addEventListener(\\\"securitypolicyviolation\\\",e=\u003e{(0,x.p)(\\\"spv\\\",[e],void 0,t.K7.genericEvents,this.ee)},(0,X.jT)(!1,this.removeOnAbort.signal)),g.RI){if(Ue(this.ee,e),je(this.ee,e),d=it(this.ee,e),e.init.user_actions.enabled){function l(t){const r=(0,Ve.D)(t);return e.beacons.includes(r.hostname+\\\":\\\"+r.port)}function f(){d.emit(\\\"navChange\\\")}o.Zp.forEach(e=\u003e(0,X.sp)(e,e=\u003e(0,x.p)(\\\"ua\\\",[e],void 0,this.featureName,this.ee),!0)),o.qN.forEach(e=\u003e{const t=(0,M.s)(e=\u003e{(0,x.p)(\\\"ua\\\",[e],void 0,this.featureName,this.ee)},500,{leading:!0});(0,X.sp)(e,t)}),g.gm.addEventListener(\\\"error\\\",()=\u003e{(0,x.p)(\\\"uaErr\\\",[],void 0,t.K7.genericEvents,this.ee)},(0,X.jT)(!1,this.removeOnAbort.signal)),this.ee.on(\\\"open-xhr-start\\\",(e,r)=\u003e{l(e[1])||r.addEventListener(\\\"readystatechange\\\",()=\u003e{2===r.readyState\u0026\u0026(0,x.p)(\\\"uaXhr\\\",[],void 0,t.K7.genericEvents,this.ee)},(0,X.jT)(void 0,this.removeOnAbort.signal))}),this.ee.on(\\\"fetch-start\\\",e=\u003e{e.length\u003e=1\u0026\u0026!l(qe(e[0]))\u0026\u0026(0,x.p)(\\\"uaXhr\\\",[],void 0,t.K7.genericEvents,this.ee)}),d.on(\\\"pushState-end\\\",f),d.on(\\\"replaceState-end\\\",f),window.addEventListener(\\\"hashchange\\\",f,(0,X.jT)(!0,this.removeOnAbort.signal)),window.addEventListener(\\\"popstate\\\",f,(0,X.jT)(!0,this.removeOnAbort.signal))}if(e.init.performance.resources.enabled\u0026\u0026g.gm.PerformanceObserver?.supportedEntryTypes.includes(\\\"resource\\\")){new PerformanceObserver(e=\u003e{e.getEntries().forEach(e=\u003e{(0,x.p)(\\\"browserPerformance.resource\\\",[e],void 0,this.featureName,this.ee)})}).observe({type:\\\"resource\\\",buffered:!0})}}a.some(e=\u003ee)?this.importAggregator(e,()=\u003er.e(478).then(r.bind(r,8019))):this.deregisterDrain()}}var _t=r(2646);const Ot=new Map;function Nt(e,t,r,n,i=!0,s){if(\\\"object\\\"!=typeof t||!t||\\\"string\\\"!=typeof r||!r||\\\"function\\\"!=typeof t[r])return(0,l.R)(29);const a=function(e){return(e||R.ee).get(\\\"logger\\\")}(e),o=(0,Le.YM)(a,void 0,s),c=new _t.y(R.P);c.level=n.level,c.customAttributes=n.customAttributes,c.autoCaptured=i;const d=t[r]?.[Le.Jt]||t[r];return Ot.set(d,c),o.inPlace(t,[r],\\\"wrap-logger-\\\",()=\u003eOt.get(d),void 0,!0),a}var Pt=r(1910);class Lt extends W{static featureName=se.TZ;constructor(e){var t;super(e,se.TZ),t=e,(0,P.Y)(\\\"log\\\",(e,r)=\u003eoe(e,r,t),t),function(e){(0,P.Y)(N.Wb,(t,r,{customAttributes:n={},level:i=se.p_.INFO}={})=\u003e{Nt(e.ee,t,r,{customAttributes:n,level:i},!1,e)},e)}(e),Te(e);const n=this.ee;[\\\"log\\\",\\\"error\\\",\\\"warn\\\",\\\"info\\\",\\\"debug\\\",\\\"trace\\\"].forEach(t=\u003e{(0,Pt.i)(g.gm.console[t]),Nt(n,g.gm.console,t,{level:\\\"log\\\"===t?\\\"info\\\":t},void 0,e)}),this.ee.on(\\\"wrap-logger-end\\\",function([t],r,i,s=[e.runtime.v2Target]){const{level:a,customAttributes:o,autoCaptured:c}=this;s.forEach(e=\u003e{(0,ae.R)(n,t,o,a,c,e)})}),this.importAggregator(e,()=\u003er.e(478).then(r.bind(r,5288)))}}new U({features:[tt,F,G,gt,yt,Y,xe,St,Lt,Et],loaderType:\\\"spa\\\"})})()})();\\n\",\"google\",\"testAutomationFlags\",{\"_1320\":26,\"_1321\":26,\"_1322\":26,\"_1323\":26,\"_1324\":26,\"_1325\":26,\"_1326\":26,\"_1327\":26,\"_1328\":26,\"_1329\":26,\"_1330\":26,\"_1331\":68,\"_1332\":68,\"_1333\":26},\"configState\",{\"_1060\":1061,\"_1058\":1059,\"_1258\":1259,\"_1260\":932,\"_29\":30,\"_1261\":68,\"_1262\":-7,\"_1263\":-7,\"_1264\":1265,\"_1266\":1267,\"_1268\":1269,\"_1270\":1271,\"_1272\":-7,\"_993\":1273,\"_971\":1092,\"_1274\":-7,\"_1275\":1276,\"_284\":1062},\"brandConfig\",{\"_963\":946,\"_941\":964,\"_965\":966,\"_967\":968,\"_969\":970,\"_971\":972,\"_973\":974,\"_29\":30,\"_975\":30,\"_976\":49,\"_977\":978,\"_979\":980,\"_981\":68,\"_982\":983,\"_984\":985,\"_943\":986,\"_987\":988,\"_989\":990,\"_991\":992,\"_993\":994,\"_995\":996,\"_997\":998,\"_999\":1000},\"releaseVersion\",\"2.62.1\",\"9pwb3dhc34w\",\"irisEnvironment\",{\"_1235\":1236,\"_1236\":1237},\"ads\",{\"_1109\":1110,\"_1111\":1112,\"_1113\":1114,\"_1115\":26,\"_1116\":1117,\"_1118\":1119,\"_1120\":1121,\"_1122\":26,\"_1123\":90,\"_1124\":90,\"_1125\":90},\"iirisAudienceProfileConfig\",{\"_946\":1106},\"iirisBaseUrl\",{\"_946\":1105},\"connectMeConfig\",{\"_946\":1092},\"newRelicEnvConfiguration\",{\"_1086\":1087,\"_1088\":1089,\"_1090\":1091},\"siteFullName\",\"siteUrl\",\"authentication\",{},\"unbounce\",{\"_1072\":1082,\"_1074\":1083,\"_1076\":1084,\"_946\":1085},\"brightcoveAccountId\",\"oneTrust\",{\"_1072\":1073,\"_1074\":1075,\"_1076\":1077,\"_946\":1078},\"gtmIds\",{\"_1064\":1070,\"_1066\":1071},{\"_931\":932,\"_1058\":1059,\"_1060\":1061,\"_284\":1062},\"socialUrls\",[1049,1050,1051],\"newsletterSignupPromoContent\",{\"_54\":1047,\"_67\":1048},\"copyright\",\" Informa. This website is owned and operated by Informa. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG.\",\"iirisRecommendation\",{\"_1013\":1014,\"_1015\":1016,\"_1017\":1018,\"_1019\":1020,\"_1021\":1022,\"_1023\":1024,\"_1025\":68,\"_1026\":1027,\"_1028\":1029,\"_1030\":1031,\"_1032\":1033,\"_1034\":1035,\"_1036\":76,\"_1037\":68,\"_1038\":1039,\"_1040\":1035,\"_1041\":1020,\"_1042\":1024,\"_1043\":1044,\"_1045\":1046},\"newrelic\",{\"_1011\":1012},\"transactionTrackerEnvConfig\",{\"_1007\":1008,\"_1009\":1010},\"pageContent\",{\"_1001\":1002},\"registration\",{\"_1003\":1004,\"_1005\":1006},\"labelTextInFooter\",\"Subscribe Today\",\"labelText\",\"REGISTER\",\"newsletterTrackingEnabled\",\"true\",\"siteRegistrationTrackingEnabled\",\"false\",\"guid\",\"MzkzNjM0OHxCUk9XU0VSfEFQUExJQ0FUSU9OfDUzODYwMDIwNQ\",\"id\",\"widget-1697807002233\",\"division\",\"it\",\"brandFamily\",\"entertainment\",\"entityTagBackground\",\"#000000\",\"dateFormat\",\"Mmm DD, YYYY\",\"showBy\",\"yes\",\"showTime\",\"borderRadius\",\"0\",\"imageWidth\",\"324\",\"imageHeight\",\"182\",\"dateTimeBgcolor\",\"#ff0000\",\"dateTimeFontColor\",\"#ffffff\",\"imagePosition\",\"dropShadow\",\"dateTimeFontsize\",\"12\",\"entityTagBorderColor\",\"borderColor\",\"showdate\",\"redirectMode\",\"new\",\"recipe\",\"related-items\",\"Newsletter sign up title\",\"Newsletter sign up message\",{\"_84\":1056,\"_292\":1057},{\"_84\":1054,\"_292\":1055},{\"_84\":1052,\"_292\":1053},\"Twitter\",\"https://twitter.com/gamedevdotcom/\",\"Facebook\",\"https://www.facebook.com/GameDeveloperOfficial/\",\"Linkedin\",\"https://www.linkedin.com/company/gamedeveloperofficial\",\"theme\",\"theme2\",\"font\",{\"_1064\":1065,\"_1066\":1067},{\"_1063\":426},\"socialVariant\",\"primary\",{\"_44\":1068,\"_292\":1069},\"secondary\",{\"_44\":1068,\"_292\":1069},\"Poppins\",\"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900\u0026display=swap\",\"GTM-5523ZCM\",\"GTM-KSPX23J\",\"local\",{\"_1079\":1081},\"preview\",{\"_1079\":68},\"staging\",{\"_1079\":1080},{\"_1079\":1080},\"siteId\",\"8aaa0413-1bf0-4c5f-b2b7-20f59225831b\",\"8aaa0413-1bf0-4c5f-b2b7-20f59225831b-test\",{\"_292\":74},{\"_292\":74},{\"_292\":74},{\"_292\":74},\"accountId\",\"TSS-SCM_Prod-1D8HF23EQFV80\",\"apiKey\",\"eu01xx8a36195d1e12f7ee86fdb984a6FFFFNRAL\",\"newrelicEndpoint\",\"https://insights-collector.eu01.nr-data.net\",{\"_1093\":1094,\"_1095\":90,\"_1096\":90,\"_1097\":1098,\"_1099\":1100,\"_1101\":1102,\"_1103\":1104},\"eventId\",\"9E89FC22DE131DDBF1AD6DFEDC03EB48\",\"externalConsent\",\"expressAccess\",\"expressType\",\"stage\",\"sandboxBaseUrl\",\"https://sandbox.connectmeinforma.com\",\"fallbackUrl\",\"https://webinar.connectmeinforma.com\",\"seamlessRegistrationEndpoint\",\"/{event_id}/agenda/viewer/{session_id}\",\"https://api.iiris.com\",{\"_1107\":26,\"_292\":1108},\"useLegacyIrisEndpoint\",\"/v3/audience/registration/{profileId}/{configId}\",\"networkId\",3834,\"parentAdUnit\",\"gamasutra.home\",\"enabledAds\",[1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,369,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234],\"checkClientIP\",\"throttling\",120,\"frequencyCap\",{},\"loadingConfig\",{\"_1126\":1127},\"destroyEmpty\",\"welcAdOff\",\"ppcTargeting\",\"autoSelectPos\",\"base\",300,\"728_1v\",\"728_2v\",\"728_3v\",\"728_4v\",\"728_5v\",\"728_6v\",\"728_7v\",\"728_8v\",\"728_9v\",\"728_10v\",\"728_11v\",\"slide_728_1v\",\"300_1v\",\"300_2v\",\"300_3v\",\"300_4v\",\"300_5v\",\"300_6v\",\"300_7v\",\"300_8v\",\"300_9v\",\"300_10v\",\"300_1v_microlist\",\"slide_300_1v\",\"300_1v_article\",\"300_2v_article\",\"300_3v_article\",\"native_featured_1v\",\"native_latestleft_1v\",\"native_latestleft_2v\",\"native_latestleft_3v\",\"native_latestleft_4v\",\"native_latestleft_5v\",\"native_latestleft_6v\",\"native_latestleft_7v\",\"native_latestleft_8v\",\"native_latestleft_9v\",\"native_latestleft_10v\",\"native_latestright_1v\",\"native_latestright_2v\",\"native_latestright_3v\",\"native_latestright_4v\",\"native_latestright_5v\",\"native_latestright_6v\",\"native_latestright_7v\",\"native_latestright_8v\",\"native_latestright_9v\",\"native_latestright_10v\",\"native_related_1v\",\"native_related_2v\",\"native_related_3v\",\"native_related_4v\",\"native_related_5v\",\"native_related_6v\",\"native_related_7v\",\"native_related_8v\",\"native_related_9v\",\"native_related_10v\",\"native_1v\",\"native_2v\",\"native_right_1v\",\"native_right_2v\",\"native_right_3v\",\"native_right_4v\",\"native_right_5v\",\"native_right_6v\",\"native_right_7v\",\"native_right_8v\",\"native_right_9v\",\"native_right_10v\",\"native_vertical_2v\",\"native_vertical_3v\",\"native_vertical_4v\",\"native_vertical_5v\",\"native_vertical_6v\",\"native_vertical_7v\",\"native_vertical_8v\",\"native_vertical_9v\",\"native_vertical_10v\",\"native_grid_1v\",\"native_grid_2v\",\"native_grid_3v\",\"native_grid_4v\",\"native_topic_1v\",\"native_topic_2v\",\"native_topic_3v\",\"native_topicright_1v\",\"native_topicright_2v\",\"native_topicright_3v\",\"resource_v\",\"bigsky_v\",\"floor_v\",\"adhesion_v\",\"wallpaper_v\",\"video_v\",\"oop_v\",\"sponsoredlogo_weather_1v\",\"sponsoredlogo_commodities_1v\",\"logo_1v\",\"reveal_1v\",\"slide_interstitial_1v\",\"slide_interstitial_2v\",\"slide_interstitial_3v\",\"slide_interstitial_4v\",\"slide_interstitial_5v\",\"chatbox_1v\",\"welcome_v\",\"active\",\"transcend\",{\"_1238\":90,\"_1239\":90,\"_1240\":1241},\"stub\",\"advancedConsentOverride\",\"settings\",{\"_1242\":1010,\"_1243\":1244,\"_1245\":1246,\"_1247\":1248,\"_1249\":1250,\"_1251\":1252,\"_1253\":1254,\"_1255\":1256,\"_158\":1257},\"data-cfasync\",\"data-local-sync\",\"allow-network-observable\",\"data-prompt\",\"1\",\"data-report-only\",\"off\",\"data-dismissed-view-state\",\"Closed\",\"data-tcf-ui-dismissed-view-state\",\"Collapsed\",\"data-ui-shadow-root\",\"open\",\"data-privacy-policy\",\"https://privacy.informa.com/\",\"https://transcend-cdn.com/cm/ef49a3f1-d8c1-47d6-88fc-50e41130631f/airgap.js\",\"oneInforma\",{\"_1312\":1313,\"_1314\":1315,\"_1316\":1317,\"_1318\":1319},\"uiBrand\",\"optimizelyUrl\",\"colors\",\"isMarketsDivision\",\"image\",{\"_931\":1307,\"_1308\":1309,\"_1310\":68,\"_1311\":68},\"media\",{\"_981\":68},\"newsletterSignupPromo\",{\"_1305\":74,\"_1306\":-7},\"newsletterCta\",{\"_1301\":1302,\"_1303\":1304},\"nextgen\",{\"_949\":1278,\"_1279\":26,\"_1280\":26,\"_1281\":26,\"_931\":-7,\"_1017\":1018,\"_1282\":-7,\"_1283\":140,\"_1015\":1016,\"_1284\":1285,\"_1045\":1046,\"_1043\":1286,\"_1287\":296,\"_54\":1288,\"_1289\":26,\"_1290\":1291,\"_1292\":1293,\"_117\":-7,\"_1294\":1295,\"_106\":1296,\"_1297\":1298},\"excludedPaidProductIdsForConsent\",\"newsletterManagementMeta\",{\"_1277\":-5},\"newsletter_management\",\"combined\",\"disabled\",\"disableSidebar\",\"disableArticleFooter\",\"by\",\"count\",\"itemAge\",12,\"_blank\",\"sponsoredCount\",\"You May Also Like\",\"showSponsored\",\"sponsoredTag\",\"Sponsored Content\",\"sponsoredTitle\",\"Sponsored\",\"articleFooter\",{\"_1283\":140,\"_1045\":1046,\"_1284\":1285,\"_1287\":296,\"_117\":-7},{\"_1283\":140,\"_1045\":1046,\"_1284\":1285,\"_1287\":296,\"_117\":-7},\"authorPrefix\",{\"_1299\":1282,\"_300\":1300},\"content\",\"Brought to you by\",\"newsletterTitle\",\"Newsletter Sign-Up\",\"newsletterUrl\",\"https://gd-resources.gamedeveloper.com/c/pubRD.mpl?secure=1\u0026sr=pp\u0026_t=pp:\u0026qf=w_gamf01\u0026ch=gdwebbutton\",\"unbounceURL\",\"elnConfig\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltba62518415cda0e2/652fe6ddbc479f8697ef691f/default-cubic.png\",\"contributor\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd407cb100c7b5f81/650f1838250230f99e1ddc78/Game_Developer_G_Logo_RGB.jpg\",\"openGraphImage\",\"openGraphLogoOverlay\",\"primaryColorPalette\",\"mint\",\"secondaryColorPalette\",\"saffronxindigo\",\"endorsementLevel\",\"full-endorsement\",\"personality\",\"soft\",\"disableAds\",\"disableIirisAuth\",\"disableWelcomeAd\",\"disableBigskyAd\",\"disableIirisRecommend\",\"disableDcts\",\"disableWeatherWidget\",\"disableCashGrainWidget\",\"disableCommoditiesWidget\",\"disableCaptcha\",\"disableCookieBanner\",\"overrideBrandStyling\",\"overrideThemeStyling\",\"extendedBreakpointsEnabled\",\"socialLinks\",[1696,1697,1698,1699,1700,1701],\"informaBar\",{\"_1676\":90,\"_1678\":1679,\"_1680\":1681},\"ittNetworkBar\",{\"_1676\":26,\"_1449\":1677},\"nav\",{\"_1574\":1575,\"_1576\":1577},\"megaMenu\",{\"_1437\":1438,\"_1439\":1440,\"_1441\":1442,\"_1443\":1444,\"_1445\":68,\"_1446\":68},\"navBase\",{\"_1348\":1436},\"footer\",{\"_1348\":1349,\"_1350\":1351,\"_1352\":1353,\"_991\":1354},\"logo\",{\"_292\":1434,\"_1366\":1435},\"linkSections\",[1396,1397],\"brandLinks\",[1380,1381,1382],{\"_1355\":1356,\"_1357\":1358,\"_54\":992},\"businessUnit\",{\"_292\":1376,\"_44\":1377,\"_1378\":1379},\"links\",[1359,1360,1361,1362],{\"_1264\":1373,\"_283\":90,\"_54\":1374,\"_292\":1375},{\"_1264\":1370,\"_283\":90,\"_54\":1371,\"_292\":1372},{\"_1264\":1367,\"_283\":90,\"_54\":1368,\"_292\":1369},{\"_1264\":1363,\"_283\":90,\"_54\":1364,\"_292\":1365},{\"_1366\":1364,\"_292\":1365},\"Terms\",\"https://www.informa.com/generic-content/terms--conditions/\",\"altText\",{\"_1366\":1368,\"_292\":1369},\"Privacy\",\"https://www.informa.com/privacy-policy/\",{\"_1366\":1371,\"_292\":1372},\"Contact Informa\",\"https://www.informa.com/contact-us/\",{\"_1366\":1374,\"_292\":1375},\"About Informa\",\"https://www.informa.com/about-us/\",\"https://www.informa.com\",\"Informa\",\"logoUrl\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt6a17e2ccd9083672/674edfd84301993a15a0e9e1/Informa_Logo_OneLine_Graduated_White_RGB.png\",{\"_1264\":1391,\"_283\":90,\"_54\":1392,\"_292\":1393},{\"_1264\":1387,\"_283\":90,\"_54\":1388,\"_292\":1389},{\"_1264\":1383,\"_283\":90,\"_54\":1384,\"_292\":1385},{\"_1366\":1384,\"_292\":1386},\"Omdia\",\"https://www.omdia.com\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt789019463bae70bf/6523eb443c9b45aa9da4f4b2/logo_omdia_white.png\",{\"_1366\":1388,\"_292\":1390},\"GDC\",\"https://www.gdconf.com\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt431090e6027a0c17/690cd59117b10612bd8935ff/GDC-white-new_logo.png\",{\"_1366\":1394,\"_292\":1395},\"GDC Vault\",\"https://www.gdcvault.com/\",\"GDC Vault Logo\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1363a10229efc062/656db9e79761ff040a595688/MicrosoftTeams-image_(3).png\",{\"_1357\":1414,\"_54\":1415,\"_84\":1246},{\"_1357\":1398,\"_54\":1399,\"_84\":1246},[1400,1401,1402],\"Connect\",{\"_1264\":1411,\"_283\":90,\"_54\":1412,\"_292\":1413},{\"_1264\":1408,\"_283\":90,\"_54\":1409,\"_292\":1410},{\"_1264\":1403,\"_283\":90,\"_54\":1404,\"_292\":1405},{\"_1366\":1406,\"_292\":1407},\"Contact Us\",\"/contact-game-developer\",\"placeholder\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd1cdb5ad637f7f4e/651d415bd9bb870df1310c25/placeholder.png\",{\"_1366\":1406,\"_292\":1407},\"Advertise\",\"https://info.gamedeveloper.com/request-info\",{\"_1366\":1406,\"_292\":1407},\"About Us\",\"/author\",[1416,1417,1418,1419],\"More from GD\",{\"_1264\":1430,\"_283\":90,\"_54\":1431,\"_292\":1432},{\"_1264\":1427,\"_283\":90,\"_54\":1428,\"_292\":1429},{\"_1264\":1424,\"_283\":90,\"_54\":1425,\"_292\":1426},{\"_1264\":1420,\"_283\":90,\"_54\":1421,\"_292\":1422},{\"_1366\":1423,\"_292\":1407},\"Submit a Tip\",\"mailto:news@gamedeveloper.com\",\"placeholder image\",{\"_1366\":1423,\"_292\":1407},\"Game Developer Podcast\",\"/podcasts\",{\"_1366\":1423,\"_292\":1407},\"Blogging Guidelines\",\"/blogging-guidelines\",{\"_1366\":1433,\"_292\":1407},\"Blog with Game Developer\",\"https://reg.gdconf.com/blog-submission\",\"Placeholder image\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8d5417b628e6b04b/656f5ed8485fda040aba11a1/Game_Developer_Logo_RGB_1.png\",\"Game Developer Logo\",{\"_292\":1434,\"_1366\":1435},\"largeMenu\",[1498,1499,1500,1501,1502,1503,1504],\"smallMenu\",[1463,1464,1465],\"sideNavSections\",[1447],\"socialSectionTitle\",\"Follow Us\",\"registrationSectionTitle\",\"registrationStatementText\",{\"_54\":1448,\"_292\":68,\"_1449\":1450,\"_1451\":68,\"_1452\":68},\"Keep in Touch\",\"subMenu\",[1453,1454,1455,1456],\"seeAllLink\",\"seeAllLinkUrl\",{\"_54\":1404,\"_292\":1405},{\"_54\":1461,\"_292\":1462},{\"_54\":1459,\"_292\":1460},{\"_54\":1457,\"_292\":1458},\"Report a Problem\",\"mailto:support@gamedeveloper.com\",\"Media Partnerships\",\"https://reg.gdconf.com/gamedeveloper-media-kit\",\"Submit a News Tip\",\"mailto:tips@gamedeveloper.com\",{\"_54\":1480,\"_292\":68,\"_1449\":1481},{\"_54\":1470,\"_292\":68,\"_1449\":1471},{\"_54\":1399,\"_292\":68,\"_1449\":1466},[1467,1468],{\"_54\":1412,\"_292\":1469},{\"_54\":1409,\"_292\":1410},\"https://www.gamedeveloper.com/author\",\"More from Game Developer\",[1472,1473,1474],{\"_54\":1425,\"_292\":1479},{\"_54\":1477,\"_292\":1478},{\"_54\":1475,\"_292\":1476},\"Press Releases\",\"/press-release\",\"Resource Library\",\"/resources\",\"/program/game-developer-podcast\",\"Event Calendar\",[1482,1483,1484,1485,1486,1487],{\"_54\":1496,\"_292\":1497},{\"_54\":1495,\"_292\":337},{\"_54\":1493,\"_292\":1494},{\"_54\":1492,\"_292\":1489},{\"_54\":1490,\"_292\":1491},{\"_54\":1488,\"_292\":1489},\"Gamescom\",\"https://www.gamedeveloper.com/keyword/-event-gamescom\",\"Summer Game Fest\",\"https://www.gamedeveloper.com/keyword/summer-game-fest\",\"Gamescom Latam\",\"PAX East\",\"/series/pax-east\",\"GDC Festival of Gaming\",\"DICE Summit\",\"https://www.gamedeveloper.com/keyword/dice-2026\",{\"_54\":219,\"_292\":1505,\"_1449\":1555,\"_1451\":1556,\"_1452\":1505},{\"_54\":342,\"_292\":345,\"_1449\":1545,\"_1451\":68,\"_1452\":345},{\"_54\":1525,\"_292\":1526,\"_1449\":1527,\"_1451\":1528,\"_1452\":1526},{\"_54\":1425,\"_292\":1523,\"_1449\":1524,\"_1451\":68,\"_1452\":1523},{\"_54\":1520,\"_292\":136,\"_1449\":1521,\"_1451\":1522,\"_1452\":136},{\"_54\":309,\"_292\":310,\"_1449\":1519,\"_1451\":1507,\"_1452\":310},{\"_54\":225,\"_292\":1505,\"_1449\":1506,\"_1451\":1507,\"_1452\":1505},\"/latest-interviews\",[1508,1509,1510,1511],\"Read More\",{\"_54\":1518,\"_292\":1505},{\"_54\":1516,\"_292\":1517},{\"_54\":1514,\"_292\":1515},{\"_54\":1512,\"_292\":1513},\"▫️ Partner Perspectives\",\"https://www.gamedeveloper.com/program/partner-perspective-unity\",\"▫️ Video Game Postmortems\",\"/keyword/postmortems\",\"▫️ Game Dev Deep Dives\",\"/latest-case-studies\",\"▫️ Developer Interviews\",[],\"Game Design\",[],\"See All\",\"/about-the-game-developer-podcast\",[],\"[GDC]\",\"/keyword/gdc-festival-of-gaming\",[1529,1530,1531,1532,1533,1534],\"Learn More\",{\"_54\":1544,\"_292\":1526},{\"_54\":1542,\"_292\":1543},{\"_54\":1540,\"_292\":1541},{\"_54\":1539,\"_292\":1389},{\"_54\":1537,\"_292\":1538},{\"_54\":1535,\"_292\":1536},\"▫️ Dev Surveys, Data, \u0026 Insights\",\"/keyword/state-of-the-game-industry-report\",\"▫️ GDC Vault: Full Library \",\"https://www.gdcvault.com\",\"▫️ Register for GDC\",\"▫️ GDC Vault: Editor Picks\",\"/series/unlocking-the-vault-gdc-vault-highlights-game-dev-tips\",\"▫️ GDC News\",\"https://gdconf.com/news-insights/\",\"▫️ Talks \u0026 Interviews\",[1546,1547,1548],{\"_54\":1553,\"_292\":1554},{\"_54\":1551,\"_292\":1552},{\"_54\":1549,\"_292\":1550},\"▫️ GD Collective Research\",\"/about-the-game-developer-collective\",\"▫️ News Deep Dives\",\"/series/news-trending-story-deep-dives-column\",\"▫️ Weekly News Highlights\",\"/series/patch-notes-newsletter\",[1557,1558,1559,1560,1561,1562],\"Top Stories\",{\"_54\":1572,\"_292\":1573},{\"_54\":1571,\"_292\":1526},{\"_54\":1569,\"_292\":1570},{\"_54\":1567,\"_292\":1568},{\"_54\":1565,\"_292\":1566},{\"_54\":1563,\"_292\":1564},\"▫️ Culture \u0026 Dev Communities\",\"/keyword/culture\",\"▫️ Development Tools\",\"/keyword/game-engines-development-tools\",\"▫️ Industry Lawsuits\",\"/keyword/lawsuits\",\"▫️ Generative AI \u0026 ML\",\"/keyword/generative-ai\",\"▫️ GDC Festival of Gaming\",\"▫️ Layoffs \u0026 Studio Closures\",\"/keyword/layoffs\",\"mainMenuItems\",[1587,1588,1589,1590,1591,1592,1593],\"secondaryMenu\",[1578,1579,1580,1581],{\"_54\":1585,\"_292\":1586},{\"_54\":1584,\"_292\":1393},{\"_54\":1582,\"_292\":1583},{\"_54\":1409,\"_292\":1410},\"Attend or Exhibit at GDC\",\"https://gdconf.com/\",\"Watch GDC Talks on GDC Vault\",\"Game Market Research\",\"https://omdia.tech.informa.com/advance-your-business/media-and-entertainment/games-spotlight-service\",{\"_54\":219,\"_292\":1505,\"_1451\":1556,\"_1452\":1505,\"_1594\":90,\"_1449\":1660,\"_1596\":1661},{\"_54\":342,\"_292\":345,\"_1451\":68,\"_1452\":345,\"_1594\":90,\"_1449\":1645,\"_1596\":1646},{\"_54\":1525,\"_292\":1526,\"_1451\":1528,\"_1452\":1526,\"_1594\":90,\"_1449\":1629,\"_1596\":1630},{\"_54\":1425,\"_292\":1523,\"_1451\":68,\"_1452\":1523,\"_1594\":26,\"_1449\":1627,\"_1596\":1628},{\"_54\":1520,\"_292\":136,\"_1451\":1522,\"_1452\":136,\"_1594\":26,\"_1449\":1625,\"_1596\":1626},{\"_54\":309,\"_292\":310,\"_1451\":1507,\"_1452\":310,\"_1594\":26,\"_1449\":1623,\"_1596\":1624},{\"_54\":225,\"_292\":1505,\"_1451\":1507,\"_1452\":1505,\"_1594\":90,\"_1449\":1595,\"_1596\":1597},\"hasSubMenu\",[1619,1620,1621,1622],\"recentContents\",[1598,1599],{\"_120\":1610,\"_122\":1611,\"_124\":1611,\"_423\":1612,\"_125\":1613,\"_127\":68,\"_130\":1614,\"_132\":68,\"_133\":203,\"_135\":204,\"_117\":118,\"_137\":1615,\"_139\":140,\"_75\":119,\"_1604\":76},{\"_120\":1600,\"_122\":322,\"_124\":322,\"_423\":1601,\"_125\":323,\"_127\":1426,\"_130\":1602,\"_132\":68,\"_133\":301,\"_135\":302,\"_117\":290,\"_137\":1603,\"_139\":296,\"_75\":119,\"_1604\":76},{\"_158\":1608,\"_160\":1609},\"Bit Reactor CEO and Star Wars Zero Company creative director Greg Foertsch discusses the development of the latest adventure from the world of Star Wars.\",\"Sep 4, 2026\",[1605],\"layoutVariant\",{\"_44\":1425,\"_103\":1606,\"_154\":1607},\"/author/podcast\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt370f6e834922acca/6894c20e3dfe74bc4ab30a63/ab6765630000ba8ac75ba80b4d9fa9b0cc090ce5.jpg\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt55f6cfa89c8f3c97/6a99b1a0644fc53ff178b28e/GregFoertsch.png\",\"A headshot of Bit Reactor CEO Greg Foertsch next to the Game Developer Podcast logo.\",{\"_158\":1617,\"_160\":1618},\"Riot Games is considering making premium titles, says co-founder\",\"'Not every game needs to be infinite.'\",\"/business/riot-games-marc-merrill-says-company-is-considering-making-premium-games\",\"Sep 8, 2026\",[1616],{\"_44\":211,\"_103\":212,\"_154\":213},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd91808b3cb9ad307/6aa075749d9ca61597ee4626/riotgamessignfeatured.jpg\",\"The sign for Riot Games outside its Santa Monica headquarters.\",{\"_54\":1518,\"_292\":1505},{\"_54\":1516,\"_292\":1517},{\"_54\":1514,\"_292\":1515},{\"_54\":1512,\"_292\":1513},[],[],[],[],[],[],[1639,1640,1641,1642,1643,1644],[1631,1632],{\"_120\":1636,\"_122\":1611,\"_124\":1611,\"_423\":1612,\"_125\":1613,\"_127\":68,\"_130\":1614,\"_132\":68,\"_133\":203,\"_135\":204,\"_117\":118,\"_137\":1637,\"_139\":140,\"_75\":119,\"_1604\":76},{\"_120\":1633,\"_122\":322,\"_124\":322,\"_423\":1601,\"_125\":323,\"_127\":1426,\"_130\":1602,\"_132\":68,\"_133\":301,\"_135\":302,\"_117\":290,\"_137\":1634,\"_139\":296,\"_75\":119,\"_1604\":76},{\"_158\":1608,\"_160\":1609},[1635],{\"_44\":1425,\"_103\":1606,\"_154\":1607},{\"_158\":1617,\"_160\":1618},[1638],{\"_44\":211,\"_103\":212,\"_154\":213},{\"_54\":1544,\"_292\":1526},{\"_54\":1542,\"_292\":1543},{\"_54\":1540,\"_292\":1541},{\"_54\":1539,\"_292\":1389},{\"_54\":1537,\"_292\":1538},{\"_54\":1535,\"_292\":1536},[1657,1658,1659],[1647,1648],{\"_120\":1653,\"_122\":372,\"_124\":372,\"_423\":1654,\"_125\":373,\"_127\":68,\"_130\":202,\"_132\":68,\"_133\":203,\"_135\":204,\"_117\":118,\"_137\":1655,\"_139\":140,\"_75\":119,\"_1604\":76},{\"_120\":1649,\"_122\":352,\"_124\":352,\"_423\":1650,\"_125\":353,\"_127\":68,\"_130\":202,\"_132\":68,\"_133\":203,\"_135\":204,\"_117\":118,\"_137\":1651,\"_139\":43,\"_75\":119,\"_1604\":76},{\"_158\":364,\"_160\":365},\"Frontier reports multiple 'company records' as revenue grows 16 percent in FY2026.\",[1652],{\"_44\":360,\"_103\":361,\"_154\":362},{\"_158\":380,\"_160\":381},\"The program, called Nova Games Foundation, aims to offer six-figure grants to 20 young game designers each year.\",[1656],{\"_44\":360,\"_103\":361,\"_154\":362},{\"_54\":1553,\"_292\":1554},{\"_54\":1551,\"_292\":1552},{\"_54\":1549,\"_292\":1550},[1670,1671,1672,1673,1674,1675],[1662,1663],{\"_120\":1667,\"_122\":1611,\"_124\":1611,\"_423\":1612,\"_125\":1613,\"_127\":68,\"_130\":1614,\"_132\":68,\"_133\":203,\"_135\":204,\"_117\":118,\"_137\":1668,\"_139\":140,\"_75\":119,\"_1604\":76},{\"_120\":1664,\"_122\":322,\"_124\":322,\"_423\":1601,\"_125\":323,\"_127\":1426,\"_130\":1602,\"_132\":68,\"_133\":301,\"_135\":302,\"_117\":290,\"_137\":1665,\"_139\":296,\"_75\":119,\"_1604\":76},{\"_158\":1608,\"_160\":1609},[1666],{\"_44\":1425,\"_103\":1606,\"_154\":1607},{\"_158\":1617,\"_160\":1618},[1669],{\"_44\":211,\"_103\":212,\"_154\":213},{\"_54\":1572,\"_292\":1573},{\"_54\":1571,\"_292\":1526},{\"_54\":1569,\"_292\":1570},{\"_54\":1567,\"_292\":1568},{\"_54\":1565,\"_292\":1566},{\"_54\":1563,\"_292\":1564},\"enabled\",[],\"leftSection\",{\"_55\":1683,\"_1449\":1684},\"rightSection\",{\"_55\":1682},\"This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.\",\"Together, we power an unparalleled network of 220+ online properties covering 10,000+ granular topics, serving an audience of 50+ million professionals with original, objective content from trusted sources. We help you gain critical insights and make more informed decisions across your business priorities.\",[1685,1686,1687,1688],{\"_54\":1694,\"_292\":1695},{\"_54\":1693,\"_292\":1375},{\"_54\":1691,\"_292\":1692},{\"_54\":1689,\"_292\":1690},\"TALENT\",\"https://www.informa.com/talent/\",\"INVESTOR RELATIONS\",\"https://www.informa.com/investors/\",\"ABOUT US\",\"Informa PLC\",\"https://www.informa.com/\",{\"_84\":1707,\"_292\":1708},{\"_84\":1052,\"_292\":1053},{\"_84\":1056,\"_292\":1057},{\"_84\":1054,\"_292\":1706},{\"_84\":1704,\"_292\":1705},{\"_84\":1702,\"_292\":1703},\"GoogleNews\",\"https://news.google.com/publications/CAAqBwgKML7GrQswy9HFAw?ceid=US:en\u0026oc=3\u0026hl=en-US\u0026gl=US\",\"Bluesky\",\"https://bsky.app/profile/gamedeveloper.bsky.social\",\"https://www.facebook.com/GameDeveloperOfficial\",\"RSS\",\"/rss.xml\",\"elnNewsletter\",\"elnWithoutNewsletter\",\"iirisAuthentication\",\"subBrand\",\"useSettingsRedirectAPIVersion1\",\"gatingEnabled\",\"iirisRecommendationDisabled\",\"iasPetEnabled\",\"bridgedMediaEnabled\",\"ecommerceEnabled\",\"iirisRecommendationVer\",\"version4\",\"weather3MonthForecastEnabled\",\"useContentApiVersion2\",\"cloudflareCachingEnabled\",\"oneTrustEnabled\",\"transcendEnabled\",\"disablePaymentServiceHealthCheck\",\"shouldUseNewsletterManagement\",\"useMassRedirectsEngine\",\"useTechInformaBar\",\"useNewEventResolver\",\"props\",{\"_1242\":1010,\"_1243\":1244,\"_1245\":1246,\"_1247\":1248,\"_1249\":1250,\"_1251\":1252,\"_1253\":1254,\"_1255\":1256,\"_158\":1257},\"authenticationConfigId\",\"standaloneRegistrationPage\"]\n");</script><!--$?--><template id="B:1"></template><!--/$--></div><script>$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><div hidden id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>