CINXE.COM
Game Developer | Game Industry News, Deep Dives, and Developer Blogs
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><script async="" src="//static.adsafeprotected.com/iasPET.1.js"></script><script async="" src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" type="text/javascript"></script><script async="" defer="" src="https://connect.facebook.net/en_US/sdk.js?xfbml=1&version=v3.2&hash=606879e94b06283a619cebf5b7449644"></script><script async="" defer="" src="https://www.instagram.com/embed.js"></script><meta name="robots" content="max-image-preview:large"/><title>Game Developer | Game Industry News, Deep Dives, and Developer Blogs</title><meta name="description" content="The game industry resource for breaking news and in-depth analysis of the latest game industry tech and trends."/><meta property="og:title" content="Game Developer | Game Industry News, Deep Dives, and Developer Blogs"/><meta property="og:description" content="The game industry resource for breaking news and in-depth analysis of the latest game industry tech and trends."/><meta property="og:url" content="https://www.gamedeveloper.com"/><meta property="og:type" content="website"/><meta property="og:image" content="https://www.gamedeveloper.com/assets/gamedeveloper-CAvl2PCb.ico"/><link rel="canonical" href="https://www.gamedeveloper.com"/><link rel="preload" href="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta8b354162c3d5a92/67f00d2efab4ef3b774e32e2/Switch_2_Header.png?width=700&auto=webp&quality=10&disable=upscale&blur=40" as="image"/><link rel="preload" href="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt37b8c730feb4733d/67eea82b3d46cdfb230d1306/samusmouse.png?width=300&auto=webp&quality=10&disable=upscale&blur=40" as="image"/><link rel="preload" href="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt43c0b9dfecc199ad/67eea8a58257bc12fff6dd07/CoLab_Header.png?width=300&auto=webp&quality=10&disable=upscale&blur=40" as="image"/><meta property="twitter:card" content="summary"/><link rel="preconnect" href="https://cdn.cookielaw.org"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="preconnect" href="https://fonts.googleapis.com" crossorigin="anonymous"/><link rel="preconnect" href="https://www.googletagmanager.com"/><link rel="icon" type="image/x-icon" href="/assets/gamedeveloper-CAvl2PCb.ico"/><link rel="modulepreload" href="/assets/entry.client-BD0gr1j2.js"/><link rel="modulepreload" href="/assets/chunk-K6AXKMTT-CFxckDQd.js"/><link rel="modulepreload" href="/assets/index-KvFBagxD.js"/><link rel="modulepreload" href="/assets/with-props-BDipnzPk.js"/><link rel="modulepreload" href="/assets/gtm-Cfr17zZ2.js"/><link rel="modulepreload" href="/assets/contentPreview-PDrWzgnB.js"/><link rel="modulepreload" href="/assets/_-d8tDFFIp.js"/><link rel="modulepreload" href="/assets/useArticleProps-BFMiF0cj.js"/><link rel="modulepreload" href="/assets/provider-2eXNRXRJ.js"/><link rel="modulepreload" href="/assets/newsletterSignupPromo-DQJ3oE2b.js"/><link rel="modulepreload" href="/assets/iirisRecommendation-DJSRaa5a.js"/><link rel="modulepreload" href="/assets/socialShare-TkawqgR_.js"/><link rel="modulepreload" href="/assets/link-CaYNVeAz.js"/><link rel="modulepreload" href="/assets/button-D1ddzMB9.js"/><link rel="modulepreload" href="/assets/util-Bs87kmMU.js"/><link rel="modulepreload" href="/assets/searchBar-fudlkoTs.js"/><link rel="modulepreload" href="/assets/useSearchBar-bQYUZDbc.js"/><link rel="modulepreload" href="/assets/navigation-CTPR0xcZ.js"/><link rel="modulepreload" href="/assets/redirection-CYnJkDek.js"/><link rel="modulepreload" href="/assets/meta-L0MNvQHo.js"/><link rel="modulepreload" href="/assets/form-B94n5omu.js"/><link rel="modulepreload" href="/assets/loadingIndicator-6bCghogW.js"/><link rel="modulepreload" href="/assets/root-CMgB3kEF.js"/><link rel="modulepreload" href="/assets/moduleSection-CvWuIxBA.js"/><link rel="modulepreload" href="/assets/contentDomain.generated-OA12p8lf.js"/><link rel="modulepreload" href="/assets/useStorage-BxG0xmea.js"/><link rel="modulepreload" href="/assets/contentCards-DPjU4Jk5.js"/><link rel="modulepreload" href="/assets/contentList-DPj2iTbm.js"/><link rel="modulepreload" href="/assets/weatherHomepage-Dkdiwep8.js"/><link rel="modulepreload" href="/assets/constants-BFi_MVLe.js"/><link rel="modulepreload" href="/assets/changeLocationBar-CA8Gmgoe.js"/><link rel="modulepreload" href="/assets/commodityPrices-Dp7A16P5.js"/><link rel="modulepreload" href="/assets/useGetDynamicDataModule-CuTq5TXb.js"/><link rel="modulepreload" href="/assets/toNumber-0AM5n0GZ.js"/><link rel="modulepreload" href="/assets/resources-LqF-uvn-.js"/><link rel="modulepreload" href="/assets/_index-CY2kWbbF.js"/><script type="text/javascript" src="https://cdn.cookielaw.org/consent/8aaa0413-1bf0-4c5f-b2b7-20f59225831b/OtAutoBlock.js"></script><script type="text/javascript" src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" data-domain-script="8aaa0413-1bf0-4c5f-b2b7-20f59225831b"></script><script type="application/ld+json">{"@context":"https://schema.org","@type":"NewsMediaOrganization","name":"Prod Homepage","description":"The game industry resource for breaking news and in-depth analysis of the latest game industry tech and trends.","url":"https://www.gamedeveloper.com","logo":"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8d5417b628e6b04b/656f5ed8485fda040aba11a1/Game_Developer_Logo_RGB_1.png","publisher":{"@type":["NewsMediaOrganization","Organization","OnlineBusiness"],"identifier":"https://www.gamedeveloper.com","name":"Game Developer","url":"https://www.gamedeveloper.com","sameAs":["https://twitter.com/gamedevdotcom/","https://www.linkedin.com/company/gamedeveloperofficial/","https://www.facebook.com/gamedeveloper","https://news.google.com/publications/CAAqBwgKML7GrQswy9HFAw","https://cohost.org/gamedeveloper?page=0"],"foundingDate":"1997","description":"To inform, empower, and inspire its game developer readership","logo":{"@type":"ImageObject","url":"https://www.gamedeveloper.com/assets/GameDeveloper-CJqTITZx.svg","width":{"@type":"QuantitativeValue","value":626},"height":{"@type":"QuantitativeValue","value":112}}}}</script><script type="text/javascript">window.NREUM||(NREUM={});NREUM.init={distributed_tracing:{enabled:true},privacy:{cookies_enabled:true},ajax:{deny_list:["bam.eu01.nr-data.net"]}}; ;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.286.0.min.js.LICENSE.txt */ (()=>{var e,t,r={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)),o=0===Object.keys(r).length?e:r;for(let a in o)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]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(8122);const o={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},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function u(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>h,gD:()=>g,xN:()=>p});var n=r(3333);const i=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const u="[data-nr-mask]",d=()=>{const e={feature_flags:[],experimental:{marks:!1,measures:!1,resources:!1},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},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:{get capture_marks(){return e.feature_flags.includes(n.$v.MARKS)||e.experimental.marks},set capture_marks(t){e.experimental.marks=t},get capture_measures(){return e.feature_flags.includes(n.$v.MEASURES)||e.experimental.measures},set capture_measures(t){e.experimental.measures=t},capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(n.$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:o.wk,inactiveMs:o.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){i(t)?e.mask_selector="".concat(t,",").concat(u):""===t||null===t?e.mask_selector=u:(0,a.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){i(t)?e.block_selector+=",".concat(t):""!==t&&(0,a.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,a.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},spa:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]}}},l={},f="All configuration objects require an agent identifier!";function h(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function p(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,d());const r=(0,s.nY)(e);r&&(r.init=l[e])}function g(e,t){if(!e)throw new Error(f);var r=h(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},5603:(e,t,r)=>{"use strict";r.d(t,{a:()=>c,o:()=>s});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!a[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.loader_config=a[e])}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0,harvester:void 0},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,Yq:()=>a,xv:()=>n});const n="1.286.0",i="PROD",o="CDN",a="^2.0.0-alpha.18"},6154:(e,t,r)=>{"use strict";r.d(t,{A4:()=>s,OF:()=>d,RI:()=>i,WN:()=>h,bv:()=>o,gm:()=>a,lR:()=>f,m:()=>u,mw:()=>c,sb:()=>l});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="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),s="complete"===a?.document?.readyState,c=Boolean("hidden"===a?.document?.visibilityState),u=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),l=d&&"undefined"==typeof SharedWorker,f=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),h=Date.now()-(0,n.t)()},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>o});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t<n.length;t++){var r=n[t];if("*"===r.hostname)return!1;if(s(r.hostname,e.hostname)&&c(r.pathname,e.pathname))return!1}return!0}function o(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;0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let o,a;i>0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a="");let[s]=o.split(":");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length>t.length)&&t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf("/")&&(e=e.substring(1)),0===t.indexOf("/")&&(t=t.substring(1)),""===e||e===t}},3241:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(6154);const i="newrelic";function o(e={}){try{n.gm.dispatchEvent(new CustomEvent(i,{detail:e}))}catch(e){}}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),h(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)p(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].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(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],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.f)(r).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,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=h(n),c=g(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=v()[s[e]];p&&p.push([f,e,r,a]);return a},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])=>{s[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()[s[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 a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},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,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(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 o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,ZF:()=>c,bz:()=>a,el:()=>u});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}function c(){return s(16)}function u(){return s(32)}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},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{}}}},944:(e,t,r)=>{"use strict";function n(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)}r.d(t,{R:()=>n})},5701:(e,t,r)=>{"use strict";r.d(t,{B:()=>a,t:()=>s});var n=r(7836),i=r(3241);const o=new Set,a={};function s(e,t){const r=n.ee.get(t);a[t]??={},e&&"object"==typeof e&&(o.has(t)||(r.emit("rumresp",[e]),a[t]=e,o.add(t),(0,i.W)({agentIdentifier:t,loaded:!0,drained:!0,type:"lifecycle",name:"load",feature:void 0,data:e})))}},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})},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7836);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,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}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{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)}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,u="addEventListener",d="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[u,d],"-",p)}function p(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,f),c&&h(c.prototype,f),h(a.gm,f)),t.on(u+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(d+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,u);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=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)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},9414:(e,t,r)=>{"use strict";r.d(t,{J:()=>c});var n=r(7836),i=r(2646),o=r(944),a=r(3434);const s=new Map;function c(e,t,r,c){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,o.R)(29);const u=function(e){return(e||n.ee).get("logger")}(e),d=(0,a.YM)(u),l=new i.y(n.P);l.level=c.level,l.customAttributes=c.customAttributes;const f=t[r]?.[a.Jt]||t[r];return s.set(f,l),d.inPlace(t,[r],"wrap-logger-",(()=>s.get(f))),u}},9300:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},3333:(e,t,r)=>{"use strict";r.d(t,{$v:()=>u,TZ:()=>n,Zp:()=>i,kd:()=>c,mq:()=>s,nf:()=>a,qN:()=>o});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],o=["focus","blur"],a=4,s=1e3,c=["PageAction","UserAction","BrowserPerformance"],u={MARKS:"experimental.marks",MEASURES:"experimental.measures",RESOURCES:"experimental.resources"}},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},993:(e,t,r)=>{"use strict";r.d(t,{A$:()=>o,ET:()=>a,TZ:()=>s,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o={OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},a="log",s=n.K7.logging},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>u});var n=r(9908),i=r(1863),o=r(860),a=r(8154),s=r(993);function c(e,t,r={},c=s.p_.INFO){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[(0,i.t)(),t,r,c],void 0,o.K7.logging,e)}function u(e){return"string"==typeof e&&Object.values(s.p_).some((t=>t===e.toUpperCase().trim()))}},8154:(e,t,r)=>{"use strict";r.d(t,{z_:()=>o,XG:()=>s,TZ:()=>n,rs:()=>i,xV:()=>a});r(6154),r(9566),r(384);const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>d,G4:()=>o,Qb:()=>l,TZ:()=>i,Ug:()=>a,_s:()=>s,bc:()=>u,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},u={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"}},d=5e3,l={API:"api"}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>c,CT:()=>u,SR:()=>s,rF:()=>d});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO&&(0,o.V)(e)&&!0===(0,i.gD)(e,"session_trace.enabled")}function c(e){return!0===(0,i.gD)(e,"session_replay.preload")&&s(e)}function u(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}function d(e,t){try{if("string"==typeof t?.type){if("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";r.d(t,{He:()=>i,Kp:()=>s,Lc:()=>u,Rz:()=>d,TZ:()=>n,bD:()=>o,d3:()=>a,jx:()=>l,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState",l=1e3},3962:(e,t,r)=>{"use strict";r.d(t,{AM:()=>o,O2:()=>c,Qu:()=>u,TZ:()=>s,ih:()=>d,pP:()=>a,tC:()=>i});var n=r(860);const i=["click","keydown","submit","popstate"],o="api",a="initialPageLoad",s=n.K7.softNav,c={INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},u={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},d={IP:"in progress",FIN:"finished",CAN:"cancelled"}},7378:(e,t,r)=>{"use strict";r.d(t,{$p:()=>x,BR:()=>b,Kp:()=>R,L3:()=>y,Lc:()=>c,NC:()=>o,SG:()=>d,TZ:()=>i,U6:()=>p,UT:()=>m,d3:()=>w,dT:()=>f,e5:()=>A,gx:()=>v,l9:()=>l,oW:()=>h,op:()=>g,rw:()=>u,tH:()=>T,uP:()=>s,wW:()=>E,xq:()=>a});var n=r(384);const i=r(860).K7.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",l="remaining",f="interaction",h="spaNode",p="jsonpNode",g="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=(0,n.dV)().o.ST,w="-start",R="-end",x="-body",E="cb"+R,A="jsTime",T="fetch"},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>o});var n=r(9417),i=r(6154);const o=e=>i.RI&&!0===(0,n.gD)(e,"privacy.cookies_enabled")},8969:(e,t,r)=>{"use strict";r.d(t,{j:()=>I});var n=r(860),i=r(2555),o=r(9908),a=r(1687),s=r(5289),c=r(6154),u=r(944),d=r(8154),l=r(384),f=r(6344);const h=["setErrorHandler","finished","addToTrace","addRelease","recordCustomEvent","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",f.G4.RECORD,f.G4.PAUSE,"log","wrapLogger"],p=["setErrorHandler","finished","addToTrace","addRelease"];var g=r(1863),m=r(2614),v=r(993),b=r(3785),y=r(9414),w=r(3241),R=r(5701);function x(){const e=(0,l.pV)();h.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.runtime?e.exposed&&e[t]&&"micro-agent"!==e.runtime.loaderType&&n.push(e[t](...r)):(0,u.R)(38,t)})),n[0]}(t,...r)}))}const E={};var A=r(9417),T=r(5603),S=r(3371);const N=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};var O=r(7836);const _=new Set;function I(e,t={},h,I){let{init:P,info:j,loader_config:C,runtime:k={},exposed:L=!0}=t;k.loaderType=h;const H=(0,l.pV)();j||(P=H.init,j=H.info,C=H.loader_config),(0,A.xN)(e.agentIdentifier,P||{}),(0,T.a)(e.agentIdentifier,C||{}),j.jsAttributes??={},c.bv&&(j.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,j);const M=e.init,D=[j.beacon,j.errorBeacon];_.has(e.agentIdentifier)||(M.proxy.assets&&(N(M.proxy.assets),D.push(M.proxy.assets)),M.proxy.beacon&&D.push(M.proxy.beacon),x(),(0,l.US)("activatedFeatures",R.B),e.runSoftNavOverSpa&&=!0===M.soft_navigations.enabled&&M.feature_flags.includes("soft_nav")),k.denyList=[...M.ajax.deny_list||[],...M.ajax.block_internal?D:[]],k.ptid=e.agentIdentifier,(0,S.V)(e.agentIdentifier,k),_.has(e.agentIdentifier)||(e.ee=O.ee.get(e.agentIdentifier),e.exposed=L,function(e,t){t||(0,a.Ak)(e.agentIdentifier,"api");const l=e.ee.get("tracer");E[e.agentIdentifier]=m.g.OFF,e.ee.on(f.G4.REPLAY_RUNNING,(t=>{E[e.agentIdentifier]=t}));const h="api-",x=h+"ixn-";function A(t,r,n,o){const a=e.info;return null===r?delete a.jsAttributes[t]:(0,i.x1)(e.agentIdentifier,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),N(h,n,!0,o||null===r?"session":void 0)(t,r)}function T(){}e.log=function(t,{customAttributes:r={},level:i=v.p_.INFO}={}){(0,o.p)(d.xV,["API/log/called"],void 0,n.K7.metrics,e.ee),(0,b.R)(e.ee,t,r,i)},e.wrapLogger=(t,r,{customAttributes:i={},level:a=v.p_.INFO}={})=>{(0,o.p)(d.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,e.ee),(0,y.J)(e.ee,t,r,{customAttributes:i,level:a})},p.forEach((t=>{e[t]=N(h,t,!0,"api")})),e.addPageAction=N(h,"addPageAction",!0,n.K7.genericEvents),e.recordCustomEvent=N(h,"recordCustomEvent",!0,n.K7.genericEvents),e.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),e.runtime.customTransaction=(r||"http://custom.transaction")+t,N(h,"setPageViewName",!0)()},e.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return A(e,t,"setCustomAttribute",r);(0,u.R)(40,typeof t)}else(0,u.R)(39,typeof e)},e.setUserId=function(e){if("string"==typeof e||null===e)return A("enduser.id",e,"setUserId",!0);(0,u.R)(41,typeof e)},e.setApplicationVersion=function(e){if("string"==typeof e||null===e)return A("application.version",e,"setApplicationVersion",!1);(0,u.R)(42,typeof e)},e.start=()=>{try{(0,o.p)(d.xV,["API/start/called"],void 0,n.K7.metrics,e.ee),e.ee.emit("manual-start-all")}catch(e){(0,u.R)(23,e)}},e[f.G4.RECORD]=function(){(0,o.p)(d.xV,["API/recordReplay/called"],void 0,n.K7.metrics,e.ee),(0,o.p)(f.G4.RECORD,[],void 0,n.K7.sessionReplay,e.ee)},e[f.G4.PAUSE]=function(){(0,o.p)(d.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,e.ee),(0,o.p)(f.G4.PAUSE,[],void 0,n.K7.sessionReplay,e.ee)},e.interaction=function(e){return(new T).get("object"==typeof e?e:{})};const S=T.prototype={createTracer:function(t,r){var i={},a=this,s="function"==typeof r;return(0,o.p)(d.xV,["API/createTracer/called"],void 0,n.K7.metrics,e.ee),e.runSoftNavOverSpa||(0,o.p)(x+"tracer",[(0,g.t)(),t,i],a,n.K7.spa,e.ee),function(){if(l.emit((s?"":"no-")+"fn-start",[(0,g.t)(),a,s],i),s)try{return r.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw l.emit("fn-err",[arguments,this,t],i),t}finally{l.emit("fn-end",[(0,g.t)()],i)}}}};function N(t,r,i,a){return function(){return(0,o.p)(d.xV,["API/"+r+"/called"],void 0,n.K7.metrics,e.ee),(0,w.W)({agentIdentifier:e.agentIdentifier,drained:!!R.B?.[e.agentIdentifier],type:"data",name:"api",feature:t+r,data:{notSpa:i,bufferGroup:a}}),a&&(0,o.p)(t+r,[i?(0,g.t)():performance.now(),...arguments],i?null:this,a,e.ee),i?void 0:this}}function O(){r.e(478).then(r.bind(r,8778)).then((({setAsyncAPI:t})=>{t(e),(0,a.Ze)(e.agentIdentifier,"api")})).catch((t=>{(0,u.R)(27,t),e.ee.abort()}))}["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((t=>{S[t]=N(x,t,void 0,e.runSoftNavOverSpa?n.K7.softNav:n.K7.spa)})),e.setCurrentRouteName=e.runSoftNavOverSpa?N(x,"routeName",void 0,n.K7.softNav):N(h,"routeName",!0,n.K7.spa),e.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,o.p)(d.xV,["API/noticeError/called"],void 0,n.K7.metrics,e.ee),(0,o.p)("err",[t,(0,g.t)(),!1,r,!!E[e.agentIdentifier]],void 0,n.K7.jserrors,e.ee)},c.RI?(0,s.GG)((()=>O()),!0):O()}(e,I),(0,w.W)({agentIdentifier:e.agentIdentifier,drained:!!R.B?.[e.agentIdentifier],type:"lifecycle",name:"initialize",feature:void 0,data:e.config})),_.add(e.agentIdentifier)}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>d,K7:()=>c,P3:()=>u,XX:()=>i,Yy:()=>s,df:()=>o,qY:()=>n,v4:()=>a});const n="events",i="jserrors",o="browser/blobs",a="rum",s="browser/logs",c={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",spa:"spa"},u={[c.pageViewEvent]:1,[c.pageViewTiming]:2,[c.metrics]:3,[c.jserrors]:4,[c.spa]:5,[c.ajax]:6,[c.sessionTrace]:7,[c.softNav]:8,[c.sessionReplay]:9,[c.logging]:10,[c.genericEvents]:11},d={[c.pageViewEvent]:a,[c.pageViewTiming]:n,[c.ajax]:n,[c.spa]:n,[c.softNav]:n,[c.metrics]:i,[c.jserrors]:i,[c.sessionTrace]:o,[c.sessionReplay]:o,[c.logging]:s,[c.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({212:"nr-spa-compressor",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.286.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.286.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={478:"sha512-xt9QypT23DNupLy9wXPzK6uGCHucLx9ieBiprVZwJD/HfkKcTY5t9xUrMvJ/ybOBfVDiFPL8R/YCJHdANxjV3g==",249:"sha512-KxJzV7dF4ry7RzxsxRBMJPnHjRdZUbseWowgGkDemMtubSveBZAlqlWb/489Lpd5K2u0Q2zTSBK599A9+u9jpA==",212:"sha512-ges3wTNuYgFINvgkoryTYKsHZWBqvLFD9qo1XJQWq5OYq+1DVXuGFs9cYogVoQEoCQxuaUdKAXcxF/sl3Ntbrg=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var h=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={38:0,788:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.286.0.PROD"]=self["webpackChunk:NRBA-1.286.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(){this.agentIdentifier=(0,r.LA)(16)}#e(t,...r){if(this[t]!==n.prototype[t])return this[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}recordCustomEvent(e,t){return this.#e("recordCustomEvent",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if(this[t]!==o.prototype[t]&&this[t]!==n.prototype[t])return this[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var d=i(8969);var l=i(1687),f=i(4234),h=i(5289),p=i(6154),g=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,v.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(478).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(478).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),t.runtime.harvester.initializedAggregates.push(this.featAggregate),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,h.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,g.SR)(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class w extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var R=i(384);var x=i(9908),E=i(2843),A=i(3878),T=i(782),S=i(1863);class N extends b{static featureName=T.T;constructor(e,t=!0){super(e,T.T,t),p.RI&&((0,E.u)((()=>(0,x.p)("docHidden",[(0,S.t)()],void 0,T.T,this.ee)),!0),(0,A.sp)("pagehide",(()=>(0,x.p)("winPagehide",[(0,S.t)()],void 0,T.T,this.ee))),this.importAggregator(e))}}var O=i(8154);class _ extends b{static featureName=O.TZ;constructor(e,t=!0){super(e,O.TZ,t),p.RI&&document.addEventListener("securitypolicyviolation",(e=>{(0,x.p)(O.xV,["Generic/CSPViolation/Detected"],void 0,this.featureName,this.ee)})),this.importAggregator(e)}}var I=i(6774),P=i(3304);class j{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,P.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return H(e)?e:new j(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(H(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return C(e.reason)}const r=C(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function L(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new j(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return H(e.error)?e.error:C(e)}function H(e){return e instanceof Error&&!!e.stack}class M extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",((e,t)=>{this.abortHandler&&(0,x.p)("ierr",[C(e),(0,S.t)(),!0,{},this.#r,t],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.#r=e})),p.gm.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,x.p)("err",[k(e),(0,S.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),p.gm.addEventListener("error",(e=>{this.abortHandler&&(0,x.p)("err",[L(e),(0,S.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var D=i(8990);let K=1;const U="nr@id";function V(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===p.gm?0:(0,D.I)(e,U,(function(){return K++}))}function G(e){if("string"==typeof e&&e.length)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,P.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=["open","send"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get("xhr")}(r);if(void 0===p.gm.XMLHttpRequest)return n;if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=p.gm.XMLHttpRequest,a=p.gm.MutationObserver,s=p.gm.Promise,c=p.gm.setInterval,u="readystatechange",d=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],l=[],f=p.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit("new-xhr",[r],a),r.addEventListener(u,(s=a,function(){var e=this;e.readyState>3&&!s.resolved&&(s.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,d,"fn-",y)}),(0,A.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit("internal-error",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,["onreadystatechange"],"fn-",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,q,"-xhr-",y),n.on("send-xhr-start",(function(e,t){h(e,t),function(e){l.push(e),a&&(g?g.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on("open-xhr-start",h),a){var g=s&&s.resolve();if(!c&&!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on("fn-end",(function(e){e[0]&&e[0].type===u||b()}));function b(){for(var e=0;e<l.length;e++)h(0,l[e]);l.length&&(l=[])}function y(e,t){return t}return n}var Y="fetch-",J=Y+"body-",X=["arrayBuffer","blob","json","text","formData"],Q=p.gm.Request,ee=p.gm.Response,te="prototype";const re={};function ne(e){const t=function(e){return(e||B.ee).get("fetch")}(e);if(!(Q&&ee&&p.gm.fetch))return t;if(re[t.debugId]++)return t;function r(e,r,n){var i=e[r];"function"==typeof i&&(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+"before-start",[r],o),o[B.P]&&o[B.P].dt&&(e=o[B.P].dt);var a=i.apply(this,r);return t.emit(n+"start",[r,e],a),a.then((function(e){return t.emit(n+"end",[null,e],a),e}),(function(e){throw t.emit(n+"end",[e],a),e}))})}return re[t.debugId]=1,X.forEach((e=>{r(Q[te],e,J),r(ee[te],e,J)})),r(p.gm,"fetch",Y),t.on(Y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(Y+"done",[null,r],n)}else t.emit(Y+"done",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}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,o){if(!("function"==typeof p.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,P.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,"distributed_tracing")&&(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,ie.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),ue=["load","error","abort","timeout"],de=ue.length,le=(0,R.dV)().o.REQ,fe=(0,R.dV)().o.XHR;const he="X-NewRelic-App-Data";class pe extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),this.handler=(e,t,r,n)=>(0,x.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};p.gm?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};ge(r,t.name),this.handler("xhr",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=R,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){E(t,e)}),(0,A.jT)(!1)),p.lR||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,A.jT)(!1))}function o(e){this.params={method:e[0]},ge(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader&&(r.setRequestHeader("newrelic",i.newrelicHeader),o=!0),i.traceContextParentHeader&&(r.setRequestHeader("traceparent",i.traceContextParentHeader),i.traceContextStateHeader&&r.setRequestHeader("tracestate",i.traceContextStateHeader),o=!0),o&&(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=G(i);a&&(n.txSize=a)}this.startTime=(0,S.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<de;s++)r.addEventListener(ue[s],this.listener,(0,A.jT)(!1))}function u(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 d(e,t){var r=""+V(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function l(e,t){var r=""+V(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function f(){this.endTime=(0,S.t)()}function h(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function g(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function m(e,t,r){t instanceof fe&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,S.t)()))}function v(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,S.t)()-this.xhrCbStart,this.onload,r],r)}function b(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&p.RI&&(t=""+p.gm.location.href):e[0]&&e[0].url?t=e[0].url:p.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,ie.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i&&(i.newrelicHeader||i.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,i)&&(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)&&(this.dt=i),e.length>1?e[1]=o:e.push(o)}}function s(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 y(e,t){this.params={},this.metrics={},this.startTime=(0,S.t)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof le?r=i.url:p.gm?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),ge(this,r);var o=(""+(i&&i instanceof le&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=G(n.body)||0}function w(e,t){if(this.endTime=(0,S.t)(),this.params||(this.params={}),(0,ce.iW)(this.params))return;let n;this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,S.t)()-this.startTime};r("xhr",[this.params,i,this.startTime,this.endTime,"fetch"],this,a.K7.ajax)}function R(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t<de;t++)e.removeEventListener(ue[t],this.listener,!1);t.aborted||(0,ce.iW)(t)||(n.duration=(0,S.t)()-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):E(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,a.K7.ajax))}}function E(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?G(e.response):"text"===r||""===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n&&(e.metrics.rxSize=n),e.sameOrigin&&r.getAllResponseHeaders().indexOf(he)>=0){var i=r.getResponseHeader(he);i&&((0,x.p)(O.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,a.K7.metrics,t),e.params.cat=i.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",i),t.on("open-xhr-start",o),t.on("open-xhr-end",s),t.on("send-xhr-start",c),t.on("xhr-cb-time",u),t.on("xhr-load-added",d),t.on("xhr-load-removed",l),t.on("xhr-resolved",f),t.on("addEventListener-end",h),t.on("removeEventListener-end",g),t.on("fn-end",v),t.on("fetch-before-start",b),t.on("fetch-start",y),t.on("fn-start",m),t.on("fetch-done",w)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function ge(e,t){var r=(0,ie.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}const me={},ve=["pushState","replaceState"];function be(e){const t=function(e){return(e||B.ee).get("history")}(e);return!p.RI||me[t.debugId]++||(me[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,ve,"-")),t}var ye=i(3738);const{He:we,bD:Re,d3:xe,Kp:Ee,TZ:Ae,Lc:Te,uP:Se,Rz:Ne}=ye;class Oe extends b{static featureName=Ae;constructor(e,t=!0){super(e,Ae,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;be(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Se,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Te,(function(e,t){(0,x.p)("bst",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Ne+xe,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(Ne+Ee,(function(e){(0,x.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=>{const t=e.getEntries();(0,x.p)(we,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:Re,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var _e=i(2614);class Ie extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem("".concat(_e.H3,"_").concat(_e.uh)))}catch(e){}(0,g.SR)(e.agentIdentifier)&&this.ee.on(t.G4.RECORD,(()=>this.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on("err",(e=>{this.replayRunning&&(this.errorNoticed=!0,(0,x.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.replayRunning=e}))}#s(e){return e&&(e.sessionReplayMode===_e.g.FULL||e.sessionReplayMode===_e.g.ERROR)||(0,g.Aw)(this.agentIdentifier)}#u=!1;async#c(e){if(!this.#u){this.#u=!0;try{const{Recorder:t}=await Promise.all([i.e(478),i.e(249)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee,agentRef:this.#o}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==_e.g.FULL&&this.featAggregate.initializeRecording(_e.g.FULL,!0):(this.#i=_e.g.FULL,this.#c(t.Qb.API),this.recorder&&this.recorder.parent.mode!==_e.g.FULL&&(this.recorder.parent.mode=_e.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Pe=i(3962);class je extends b{static featureName=Pe.TZ;constructor(e,t=!0){if(super(e,Pe.TZ,t),!p.RI||!(0,R.dV)().o.MO)return;const r=be(this.ee);Pe.tC.forEach((e=>{(0,A.sp)(e,(e=>{a(e)}),!0)}));const n=()=>(0,x.p)("newURL",[(0,S.t)(),""+window.location],void 0,this.featureName,this.ee);r.on("pushState-end",n),r.on("replaceState-end",n);try{this.removeOnAbort=new AbortController}catch(e){}(0,A.sp)("popstate",(e=>(0,x.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)),!0,this.removeOnAbort?.signal);let i=!1;const o=new((0,R.dV)().o.MO)(((e,t)=>{i||(i=!0,requestAnimationFrame((()=>{(0,x.p)("newDom",[(0,S.t)()],void 0,this.featureName,this.ee),i=!1})))})),a=(0,v.s)((e=>{(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,{domObserver:o})}}var Ce=i(7378);const ke={},Le=["appendChild","insertBefore","replaceChild"];function He(e){const t=function(e){return(e||B.ee).get("jsonp")}(e);if(!p.RI||ke[t.debugId])return t;ke[t.debugId]=!0;var r=(0,W.YM)(t),n=/[?&](?:callback|cb)=([^&#]+)/,i=/(.*)\.([^.]+)/,o=/^(\w+)(\.|$)(.*)$/;function a(e,t){if(!e)return t;const r=e.match(o),n=r[1];return a(r[3],t[n])}return r.inPlace(Node.prototype,Le,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var o=(s=e.src,c=s.match(n),c?c[1]:null);var s,c;if(!o)return;var u=function(e){var t=e.match(i);if(t&&t.length>=3)return{key:t[2],parent:a(t[1],window)};return{key:e,parent:window}}(o);if("function"!=typeof u.parent[u.key])return;var d={};function l(){t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,A.jT)(!1)),e.removeEventListener("error",f,(0,A.jT)(!1))}function f(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,A.jT)(!1)),e.removeEventListener("error",f,(0,A.jT)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",l,(0,A.jT)(!1)),e.addEventListener("error",f,(0,A.jT)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}const Me={};function De(e){const t=function(e){return(e||B.ee).get("promise")}(e);if(Me[t.debugId])return t;Me[t.debugId]=!0;var r=t.context,n=(0,W.YM)(t),i=p.gm.Promise;return i&&function(){function e(r){var o=t.context(),a=n(r,"executor-",o,null,!1);const s=Reflect.construct(i,[a],e);return t.context(s).getCtx=function(){return o},s}p.gm.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return i.toString()},Object.setPrototypeOf(e,i),["all","race"].forEach((function(r){const n=i[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=i[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=i.prototype;const o=i.prototype.then;i.prototype.then=function(...e){var i=this,a=r(i);a.promise=i,e[0]=n(e[0],"cb-",a,null,!1),e[1]=n(e[1],"cb-",a,null,!1);const s=o.apply(this,e);return a.nextPromise=s,t.emit("propagate",[i,!0],s,!1,!1),s},i.prototype.then[W.Jt]=o,t.on("executor-start",(function(e){e[0]=n(e[0],"resolve-",this,null,!1),e[1]=n(e[1],"resolve-",this,null,!1)})),t.on("executor-err",(function(e,t,r){e[1](r)})),t.on("cb-end",(function(e,r,n){t.emit("propagate",[n,!0],this.nextPromise,!1,!1)})),t.on("propagate",(function(e,r,n){this.getCtx&&!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r&&r.getCtx?r.getCtx():this})}))}(),t}const Ke={},Ue="setTimeout",Ve="setInterval",Ge="clearTimeout",Fe="-start",Be=[Ue,"setImmediate",Ve,Ge,"clearImmediate"];function We(e){const t=function(e){return(e||B.ee).get("timer")}(e);if(Ke[t.debugId]++)return t;Ke[t.debugId]=1;var r=(0,W.YM)(t);return r.inPlace(p.gm,Be.slice(0,2),Ue+"-"),r.inPlace(p.gm,Be.slice(2,3),Ve+"-"),r.inPlace(p.gm,Be.slice(3),Ge+"-"),t.on(Ve+Fe,(function(e,t,n){e[0]=r(e[0],"fn-",null,n)})),t.on(Ue+Fe,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],"fn-",this,n)})),t}const ze={};function qe(e){const t=function(e){return(e||B.ee).get("mutation")}(e);if(!p.RI||ze[t.debugId])return t;ze[t.debugId]=!0;var r=(0,W.YM)(t),n=p.gm.MutationObserver;return n&&(window.MutationObserver=function(e){return this instanceof n?new n(r(e,"fn-")):n.apply(this,arguments)},MutationObserver.prototype=n.prototype),t}const{TZ:Ze,d3:Ye,Kp:Je,$p:Xe,wW:$e,e5:Qe,tH:et,uP:tt,rw:rt,Lc:nt}=Ce;class it extends b{static featureName=Ze;constructor(e,t=!0){if(super(e,Ze,t),!p.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,n=0;const i=this.ee.get("tracer"),o=He(this.ee),a=De(this.ee),s=We(this.ee),c=Z(this.ee),u=this.ee.get("events"),d=ne(this.ee),l=be(this.ee),f=qe(this.ee);function h(e,t){l.emit("newURL",[""+window.location,t])}function g(){n++,r=window.location.hash,this[tt]=(0,S.t)()}function m(){n--,window.location.hash!==r&&h(0,!0);var e=(0,S.t)();this[Qe]=~~this[Qe]+e-this[tt],this[nt]=e}function v(e,t){e.on(t,(function(){this[t]=(0,S.t)()}))}this.ee.on(tt,g),a.on(rt,g),o.on(rt,g),this.ee.on(nt,m),a.on($e,m),o.on($e,m),this.ee.on("fn-err",((...t)=>{t[2]?.__newrelic?.[e.agentIdentifier]||(0,x.p)("function-err",[...t],void 0,this.featureName,this.ee)})),this.ee.buffer([tt,nt,"xhr-resolved"],this.featureName),u.buffer([tt],this.featureName),s.buffer(["setTimeout"+Je,"clearTimeout"+Ye,tt],this.featureName),c.buffer([tt,"new-xhr","send-xhr"+Ye],this.featureName),d.buffer([et+Ye,et+"-done",et+Xe+Ye,et+Xe+Je],this.featureName),l.buffer(["newURL"],this.featureName),f.buffer([tt],this.featureName),a.buffer(["propagate",rt,$e,"executor-err","resolve"+Ye],this.featureName),i.buffer([tt,"no-"+tt],this.featureName),o.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),v(d,et+Ye),v(d,et+"-done"),v(o,"new-jsonp"),v(o,"jsonp-end"),v(o,"cb-start"),l.on("pushState-end",h),l.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){h(0,n>1)}),(0,A.jT)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var ot=i(3333);class at extends b{static featureName=ot.TZ;constructor(e,t=!0){super(e,ot.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled,e.init.performance.resources.enabled];if(p.RI&&(e.init.user_actions.enabled&&(ot.Zp.forEach((e=>(0,A.sp)(e,(e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),ot.qN.forEach((e=>{const t=(0,v.s)((e=>{(0,x.p)("ua",[e],void 0,this.featureName,this.ee)}),500,{leading:!0});(0,A.sp)(e,t)}))),e.init.performance.resources.enabled&&p.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})}r.some((e=>e))?this.importAggregator(e):this.deregisterDrain()}}var st=i(993),ct=i(3785),ut=i(9414);class dt extends b{static featureName=st.TZ;constructor(e,t=!0){super(e,st.TZ,t);const r=this.ee;(0,ut.J)(r,p.gm.console,"log",{level:"info"}),(0,ut.J)(r,p.gm.console,"error",{level:"error"}),(0,ut.J)(r,p.gm.console,"warn",{level:"warn"}),(0,ut.J)(r,p.gm.console,"info",{level:"info"}),(0,ut.J)(r,p.gm.console,"debug",{level:"debug"}),(0,ut.J)(r,p.gm.console,"trace",{level:"trace"}),this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,ct.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t){super(),p.gm?(this.features={},(0,R.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(w),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.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 t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,R.Zm)();delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[pe,w,N,Oe,Ie,_,M,at,dt,je,it],loaderType:"spa"})})()})(); </script><link rel="stylesheet" href="/assets/styles.generated-CmzcVq8e.css"/><link rel="stylesheet" href="/assets/brand.generated-ClZxmlNj.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"/><noscript><style type="text/css">.gptHideContent { opacity: 1!important; }</style></noscript></head><body class="brand-gamedeveloper gptHideContent"><noscript></noscript><div id="bigsky_v"></div><div id="welcome_v"></div><main data-theme="theme2" class="Provider"><div data-testid="ad_blocker" class="ads ad adsbox doubleclick ad-placement carbon-ads" style="height:1px;width:1px;position:absolute;left:-999em;top:-999em"></div><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="InformaBarTech" data-component="informa-bar"><div class="InformaBarTech-LogoSectionWrapper"><div class="InformaBarTech-LogoSection" data-testid="informa-bar-logo-section" role="button" tabindex="0" aria-label="Open Informa bar"><div class="InformaBarTech-LogoWrapper"><img class="InformaBarTech-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="Logo Informa"/></div><span class="InformaBarTech-IconWrapper InformaBarTech-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><p class="InformaBarTech-LogoInfoWrapper"><span class="InformaBarTech-LogoInfo">TechTarget and Informa Tech鈥檚 Digital Business Combine.</span><span class="InformaBarTech-LogoInfo InformaBarTech-LogoInfo_isMobile">TechTarget and Informa</span></p></div><div class="InformaBarTech-TopSection InformaBarTech-TopSection_hidden"><h2 class="InformaBarTech-TopSectionTitle">TechTarget and Informa Tech鈥檚 Digital Business Combine.</h2><p class="InformaBarTech-TopSectionDescription">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.</p></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" 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" target="_blank" href="https://www.gdcvault.com/">GDC Vault</a><a class="SecondaryMenu-Link" target="_blank" href="https://gdconf.com/">GDC</a><a class="SecondaryMenu-Link" target="_blank" href="https://reg.gdconf.com/gamedeveloper-media-kit">Advertise With Game Developer</a></nav></div></div><div style="padding-top:0px"></div><div id="navigation-header" class="Navigation-NavBase"><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" data-name="Bars" class="NavBase-MegaMenuIcon NavBase-MegaMenuIcon_iconVariant_small NavBase-MegaMenuIcon_iconType_bars" style="mask-image:url("data:image/svg+xml,%3csvg%20id='Hamburger'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='16'%20height='13'%20viewBox='0%200%2016%2013'%3e%3crect%20id='Rectangle_1690'%20data-name='Rectangle%201690'%20width='16'%20height='3'%20transform='translate(0)'/%3e%3crect%20id='Rectangle_1691'%20data-name='Rectangle%201691'%20width='13'%20height='3'%20transform='translate(0%205)'/%3e%3crect%20id='Rectangle_1692'%20data-name='Rectangle%201692'%20width='10'%20height='3'%20transform='translate(0%2010)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20id='Hamburger'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='16'%20height='13'%20viewBox='0%200%2016%2013'%3e%3crect%20id='Rectangle_1690'%20data-name='Rectangle%201690'%20width='16'%20height='3'%20transform='translate(0)'/%3e%3crect%20id='Rectangle_1691'%20data-name='Rectangle%201691'%20width='13'%20height='3'%20transform='translate(0%205)'/%3e%3crect%20id='Rectangle_1692'%20data-name='Rectangle%201692'%20width='10'%20height='3'%20transform='translate(0%2010)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button><button data-testid="SearchButtonDesktop" class="NavBase-SearchButtonDesktop" aria-label="Open Search"><span data-component="icon" data-name="Search" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_large NavBase-SearchIcon_iconType_search" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='20'%20height='20.004'%20viewBox='0%200%2020%2020.004'%3e%3cpath%20id='Search'%20d='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'%20transform='translate(-1208%20-101)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='20'%20height='20.004'%20viewBox='0%200%2020%2020.004'%3e%3cpath%20id='Search'%20d='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'%20transform='translate(-1208%20-101)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button><button data-testid="SearchButtonTablet" class="NavBase-SearchButtonTablet" aria-label="Open Search in MegaMenu"><span data-component="icon" data-name="Search" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_small NavBase-SearchIcon_iconType_search" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='20'%20height='20.004'%20viewBox='0%200%2020%2020.004'%3e%3cpath%20id='Search'%20d='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'%20transform='translate(-1208%20-101)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='20'%20height='20.004'%20viewBox='0%200%2020%2020.004'%3e%3cpath%20id='Search'%20d='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'%20transform='translate(-1208%20-101)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div><div class="NavBase-LogoWrapper"><button data-testid="navBase-LogoMegaMenuButton" class="NavBase-LogoMegaMenuButton" aria-label="Open Mega menu"><span data-component="icon" data-name="Bars" class="NavBase-LogoMegaMenuIcon NavBase-LogoMegaMenuIcon_iconVariant_small NavBase-LogoMegaMenuIcon_iconType_bars" style="mask-image:url("data:image/svg+xml,%3csvg%20id='Hamburger'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='16'%20height='13'%20viewBox='0%200%2016%2013'%3e%3crect%20id='Rectangle_1690'%20data-name='Rectangle%201690'%20width='16'%20height='3'%20transform='translate(0)'/%3e%3crect%20id='Rectangle_1691'%20data-name='Rectangle%201691'%20width='13'%20height='3'%20transform='translate(0%205)'/%3e%3crect%20id='Rectangle_1692'%20data-name='Rectangle%201692'%20width='10'%20height='3'%20transform='translate(0%2010)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20id='Hamburger'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='16'%20height='13'%20viewBox='0%200%2016%2013'%3e%3crect%20id='Rectangle_1690'%20data-name='Rectangle%201690'%20width='16'%20height='3'%20transform='translate(0)'/%3e%3crect%20id='Rectangle_1691'%20data-name='Rectangle%201691'%20width='13'%20height='3'%20transform='translate(0%205)'/%3e%3crect%20id='Rectangle_1692'%20data-name='Rectangle%201692'%20width='10'%20height='3'%20transform='translate(0%2010)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button><a class="NavBase-Logo" href="/" 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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8d5417b628e6b04b/656f5ed8485fda040aba11a1/Game_Developer_Logo_RGB_1.png?width=476&auto=webp&quality=80&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="nofollow" data-action-type="sign-up" data-name="subscribe-nav" href="https://gamedeveloper.tradepub.com/c/pubRD.mpl?secure=1&sr=pp&_t=pp:&qf=w_gamf01&ch=gdwebbutton%20" target="_blank"><span data-component="icon" data-name="Email" class="Button-Icon Button-Icon_position_left" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='12'%20viewBox='0%200%2013%2012'%3e%3cpath%20id='Path_2045'%20data-name='Path%202045'%20d='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'%20transform='translate(-1052.33%20-38)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='12'%20viewBox='0%200%2013%2012'%3e%3cpath%20id='Path_2045'%20data-name='Path%202045'%20d='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'%20transform='translate(-1052.33%20-38)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><span class="Button-ContentWrapper">Stay Updated</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="_blank" data-discover="true"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="RSS" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_rss" style="mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Layer_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20310%20310'%20style='enable-background:new%200%200%20310%20310;'%20xml:space='preserve'%3e%3cg%20id='XMLID_788_'%3e%3cpath%20id='XMLID_789_'%20d='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'/%3e%3cpath%20id='XMLID_790_'%20d='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'/%3e%3cpath%20id='XMLID_791_'%20d='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'/%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");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Layer_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20310%20310'%20style='enable-background:new%200%200%20310%20310;'%20xml:space='preserve'%3e%3cg%20id='XMLID_788_'%3e%3cpath%20id='XMLID_789_'%20d='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'/%3e%3cpath%20id='XMLID_790_'%20d='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'/%3e%3cpath%20id='XMLID_791_'%20d='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'/%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");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></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" data-name="Twitter" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_twitter" style="mask-image:url("data:image/svg+xml,%3csvg%20id='Capa_1'%20enable-background='new%200%200%201226.37%201226.37'%20viewBox='0%200%201226.37%201226.37'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='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'/%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");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20id='Capa_1'%20enable-background='new%200%200%201226.37%201226.37'%20viewBox='0%200%201226.37%201226.37'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='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'/%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");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></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" data-name="Linkedin" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_linkedin" style="mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Capa_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20409.6%20409.6'%20style='enable-background:new%200%200%20409.6%20409.6;'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cpath%20d='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'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3crect%20x='102.4'%20y='170.65'%20width='34.135'%20height='136.535'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3ccircle%20cx='119.45'%20cy='128'%20r='25.6'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d='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'/%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");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Capa_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20409.6%20409.6'%20style='enable-background:new%200%200%20409.6%20409.6;'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cpath%20d='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'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3crect%20x='102.4'%20y='170.65'%20width='34.135'%20height='136.535'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3ccircle%20cx='119.45'%20cy='128'%20r='25.6'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d='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'/%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");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></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" data-name="Facebook" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_facebook" style="mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Capa_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20409.6%20409.6'%20style='enable-background:new%200%200%20409.6%20409.6;'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cpath%20d='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'/%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");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Capa_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20409.6%20409.6'%20style='enable-background:new%200%200%20409.6%20409.6;'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cpath%20d='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'/%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");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="GoogleNews" class="Layout-SocialLink" href="https://news.google.com/publications/CAAqBwgKML7GrQswy9HFAw?ceid=US:en&oc=3&hl=en-US&gl=US"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="GoogleNews" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_googleNews" style="mask-image:url("data:image/svg+xml,%3csvg%20id='Capa_1'%20enable-background='new%200%200%20512.288%20512.288'%20height='512'%20viewBox='0%200%20512.288%20512.288'%20width='512'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%3e%3cpath%20d='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'/%3e%3cpath%20d='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'/%3e%3cpath%20d='m317.644%20274.125h82v30h-82z'/%3e%3cpath%20d='m317.644%20334.125h82v30h-82z'/%3e%3cpath%20d='m317.644%20394.125h82v30h-82z'/%3e%3c/g%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20id='Capa_1'%20enable-background='new%200%200%20512.288%20512.288'%20height='512'%20viewBox='0%200%20512.288%20512.288'%20width='512'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%3e%3cpath%20d='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'/%3e%3cpath%20d='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'/%3e%3cpath%20d='m317.644%20274.125h82v30h-82z'/%3e%3cpath%20d='m317.644%20334.125h82v30h-82z'/%3e%3cpath%20d='m317.644%20394.125h82v30h-82z'/%3e%3c/g%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a></div><a data-component="button" data-testid="headerMediumNewsletterButton" class="Button Button_size_medium Button_variant_primaryFilled" rel="nofollow" data-action-type="sign-up" data-name="subscribe-nav" href="https://gamedeveloper.tradepub.com/c/pubRD.mpl?secure=1&sr=pp&_t=pp:&qf=w_gamf01&ch=gdwebbutton%20" target="_blank"><span data-component="icon" data-name="Email" class="Button-Icon Button-Icon_position_left" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='12'%20viewBox='0%200%2013%2012'%3e%3cpath%20id='Path_2045'%20data-name='Path%202045'%20d='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'%20transform='translate(-1052.33%20-38)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='12'%20viewBox='0%200%2013%2012'%3e%3cpath%20id='Path_2045'%20data-name='Path%202045'%20d='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'%20transform='translate(-1052.33%20-38)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><span class="Button-ContentWrapper">Stay Updated</span></a></div></div><button data-testid="RegisterSearchButton" class="NavBase-RegisterSearchButton" aria-label="Open Search in MegaMenu"><span data-component="icon" data-name="Search" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_large NavBase-SearchIcon_iconType_search" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='20'%20height='20.004'%20viewBox='0%200%2020%2020.004'%3e%3cpath%20id='Search'%20d='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'%20transform='translate(-1208%20-101)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='20'%20height='20.004'%20viewBox='0%200%2020%2020.004'%3e%3cpath%20id='Search'%20d='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'%20transform='translate(-1208%20-101)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></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" data-name="Close" class="NavBase-SearchIcon NavBase-SearchIcon_iconVariant_medium NavBase-SearchIcon_iconType_close" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%3e%3cpath%20id='Icon_material-close'%20data-name='Icon%20material-close'%20d='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'%20transform='translate(-7.5%20-7.5)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%3e%3cpath%20id='Icon_material-close'%20data-name='Icon%20material-close'%20d='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'%20transform='translate(-7.5%20-7.5)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></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" data-name="Bars" class="MainMenu-MegaMenuIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20id='Hamburger'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='16'%20height='13'%20viewBox='0%200%2016%2013'%3e%3crect%20id='Rectangle_1690'%20data-name='Rectangle%201690'%20width='16'%20height='3'%20transform='translate(0)'/%3e%3crect%20id='Rectangle_1691'%20data-name='Rectangle%201691'%20width='13'%20height='3'%20transform='translate(0%205)'/%3e%3crect%20id='Rectangle_1692'%20data-name='Rectangle%201692'%20width='10'%20height='3'%20transform='translate(0%2010)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20id='Hamburger'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='16'%20height='13'%20viewBox='0%200%2016%2013'%3e%3crect%20id='Rectangle_1690'%20data-name='Rectangle%201690'%20width='16'%20height='3'%20transform='translate(0)'/%3e%3crect%20id='Rectangle_1691'%20data-name='Rectangle%201691'%20width='13'%20height='3'%20transform='translate(0%205)'/%3e%3crect%20id='Rectangle_1692'%20data-name='Rectangle%201692'%20width='10'%20height='3'%20transform='translate(0%2010)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></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 Nintendo Switch 2"><span class="MainMenu-MainTitle">Nintendo Switch 2<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='21'%20height='13'%20viewBox='0%200%2021%2013'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z'%20transform='translate(-9%20-11.76)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='21'%20height='13'%20viewBox='0%200%2021%2013'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z'%20transform='translate(-9%20-11.76)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></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="/console/-redesigned-from-the-ground-up-the-nintendo-switch-2-will-launch-on-june-5" data-discover="true">Switch 2 - Price & Tech Info</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/console/nintendo-switch-2-shows-nintendo-s-strategy-for-a-social-future" data-discover="true">Switch 2 - Hands-On Impressions</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/nintendo-switch-2" data-discover="true">Switch 2 - More Articles</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/top-stories" data-discover="true">More Trending Stories</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/nintendo-switch-2" data-discover="true">Nintendo Switch 2</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/keyword/nintendo-switch-2" data-discover="true"><span class="SubMenu-SeeMoreText"></span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></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/nintendo-scraps-switch-2-pre-orders-in-the-u-s-over-trump-tariffs" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">Promotional artwork of the Switch 2</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta8b354162c3d5a92/67f00d2efab4ef3b774e32e2/Switch_2_Header.png?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta8b354162c3d5a92/67f00d2efab4ef3b774e32e2/Switch_2_Header.png?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_business ContentPreview-Category" href="/business" 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/nintendo-scraps-switch-2-pre-orders-in-the-u-s-over-trump-tariffs" data-discover="true">Nintendo delays Switch 2 pre-orders in the U.S. over Trump tariffs</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/business/nintendo-scraps-switch-2-pre-orders-in-the-u-s-over-trump-tariffs" data-discover="true">Nintendo delays Switch 2 pre-orders in the U.S. over Trump tariffs</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/chris-kerr" data-discover="true">Chris Kerr</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Apr 4, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>2 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="/design/design-opportunities-for-devs-from-our-time-trying-out-the-nintendo-switch-2" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">Samus looks down at a player using the Nintendo Switch 2 Joy-Con as a mouse.</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt37b8c730feb4733d/67eea82b3d46cdfb230d1306/samusmouse.png?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt37b8c730feb4733d/67eea82b3d46cdfb230d1306/samusmouse.png?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_design ContentPreview-Category" href="/design" 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/design-opportunities-for-devs-from-our-time-trying-out-the-nintendo-switch-2" data-discover="true">Design opportunities for devs from our time trying out the Nintendo Switch 2</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/design/design-opportunities-for-devs-from-our-time-trying-out-the-nintendo-switch-2" data-discover="true">Design opportunities for devs from our time trying out the Nintendo Switch 2</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" data-discover="true">Bryant Francis</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Apr 3, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>13 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div></div></div></div></div></div></div></div><div class="MainMenu-TitleWrapper"><a class="MainMenu-Title" href="/latest-news" data-discover="true">News</a></div><div class="MainMenu-TitleWrapper"><a class="MainMenu-Title" href="/latest-case-studies" data-discover="true">Deep Dives</a></div><div class="MainMenu-TitleWrapper"><a class="MainMenu-Title" href="/game-platforms/mobile" data-discover="true">Mobile</a></div><div class="MainMenu-TitleWrapper"><a class="MainMenu-Title" href="/design" data-discover="true">Game Design</a></div><div class="MainMenu-TitleWrapper"><a class="MainMenu-Title" href="/programming" 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 Developer Blogs"><span class="MainMenu-MainTitle">Developer Blogs<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='21'%20height='13'%20viewBox='0%200%2021%2013'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z'%20transform='translate(-9%20-11.76)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='21'%20height='13'%20viewBox='0%200%2021%2013'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z'%20transform='translate(-9%20-11.76)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></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="/program/blogs" data-discover="true">Browse Latest Blogs</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" target="_blank" href="https://reg.gdconf.com/blog-submission">Submit Your Blog Post</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/blogging-frequently-asked-questions" data-discover="true">Frequently Asked Questions</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/blogging-guidelines" data-discover="true">Blogging Rules and Guidelines</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/featured-blogs" data-discover="true">Developer Blogs</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/keyword/featured-blogs" data-discover="true"><span class="SubMenu-SeeMoreText">Read Featured Blogs</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></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="/art/the-creator-of-tactical-breach-wizards-is-right-animate-words-not-letters-" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">Zan and Jen, two characters from Tactical Breach Wizards, strike a pose.</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta6d198af8a72d72f/66bb73fe91a77dfd342db170/tacticalbreachwizardsfeatured.jpg?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta6d198af8a72d72f/66bb73fe91a77dfd342db170/tacticalbreachwizardsfeatured.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_art ContentPreview-Category" href="/art" data-discover="true">Art</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/art/the-creator-of-tactical-breach-wizards-is-right-animate-words-not-letters-" data-discover="true">The director of Tactical Breach Wizards is right: animate words, not letters!</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/art/the-creator-of-tactical-breach-wizards-is-right-animate-words-not-letters-" data-discover="true">The director of Tactical Breach Wizards is right: animate words, not letters!</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" data-discover="true">Bryant Francis</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Mar 25, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>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="/design/ghostrunner-2-deep-dive" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">Game director playing Ghostrunner 2 at desk</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt6df81c9c42a7f530/67d02e051b33471d342904e4/OML2.png?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt6df81c9c42a7f530/67d02e051b33471d342904e4/OML2.png?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_design ContentPreview-Category" href="/design" 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/ghostrunner-2-deep-dive" data-discover="true">Feedback and experimentation: the foundations of Ghostrunner 2</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/design/ghostrunner-2-deep-dive" data-discover="true">Feedback and experimentation: the foundations of Ghostrunner 2</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/rados-aw-ratusznik" data-discover="true">Rados艂aw Ratusznik</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Mar 10, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>9 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 More"><span class="MainMenu-MainTitle">More<span data-component="icon" data-name="ChevronDown" class="MainMenu-SubMenuIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='21'%20height='13'%20viewBox='0%200%2021%2013'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z'%20transform='translate(-9%20-11.76)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='21'%20height='13'%20viewBox='0%200%2021%2013'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M11.467,11.76,19.5,19.8l8.032-8.035L30,14.234,19.5,24.76,9,14.234Z'%20transform='translate(-9%20-11.76)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></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" data-discover="true">Interviews</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/q-a-s" data-discover="true">Q&As</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/deep-dives" data-discover="true">Deep Dives</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/postmortems" data-discover="true">Postmortems</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/culture" data-discover="true">Culture</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/unionization" data-discover="true">Unionization</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/business" data-discover="true">Business</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/marketing" data-discover="true">Marketing</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/design" data-discover="true">Design</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/programming" data-discover="true">Programming</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/production" data-discover="true">Production</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/art" data-discover="true">Art</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/audio" data-discover="true">Audio</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/game-platforms/pc" data-discover="true">PC</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/steam-deck" data-discover="true">Steam Deck</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/game-platforms/console" data-discover="true">Console</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/game-platforms/mobile" data-discover="true">Mobile</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/game-platforms/extended-reality" data-discover="true">Extended Reality</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-commentary" data-discover="true">More</a></h4><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent" href="/latest-commentary" data-discover="true"><span class="SubMenu-SeeMoreText">Read More: Business</span><span data-component="icon" data-name="ChevronRight" class="SubMenu-SeeMoreIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></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="/art/the-creator-of-tactical-breach-wizards-is-right-animate-words-not-letters-" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">Zan and Jen, two characters from Tactical Breach Wizards, strike a pose.</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta6d198af8a72d72f/66bb73fe91a77dfd342db170/tacticalbreachwizardsfeatured.jpg?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta6d198af8a72d72f/66bb73fe91a77dfd342db170/tacticalbreachwizardsfeatured.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_art ContentPreview-Category" href="/art" data-discover="true">Art</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/art/the-creator-of-tactical-breach-wizards-is-right-animate-words-not-letters-" data-discover="true">The director of Tactical Breach Wizards is right: animate words, not letters!</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/art/the-creator-of-tactical-breach-wizards-is-right-animate-words-not-letters-" data-discover="true">The director of Tactical Breach Wizards is right: animate words, not letters!</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" data-discover="true">Bryant Francis</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Mar 25, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>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="/design/ghostrunner-2-deep-dive" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">Game director playing Ghostrunner 2 at desk</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt6df81c9c42a7f530/67d02e051b33471d342904e4/OML2.png?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt6df81c9c42a7f530/67d02e051b33471d342904e4/OML2.png?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_design ContentPreview-Category" href="/design" 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/ghostrunner-2-deep-dive" data-discover="true">Feedback and experimentation: the foundations of Ghostrunner 2</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/design/ghostrunner-2-deep-dive" data-discover="true">Feedback and experimentation: the foundations of Ghostrunner 2</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/rados-aw-ratusznik" data-discover="true">Rados艂aw Ratusznik</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Mar 10, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>9 Min<!-- --> <!-- -->Read</span></div></div></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" data-name="Search" class="MainMenu-SearchButtonIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='20'%20height='20.004'%20viewBox='0%200%2020%2020.004'%3e%3cpath%20id='Search'%20d='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'%20transform='translate(-1208%20-101)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='20'%20height='20.004'%20viewBox='0%200%2020%2020.004'%3e%3cpath%20id='Search'%20d='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'%20transform='translate(-1208%20-101)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></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" data-name="Close" class="MainMenu-SearchCloseIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%3e%3cpath%20id='Icon_material-close'%20data-name='Icon%20material-close'%20d='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'%20transform='translate(-7.5%20-7.5)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%3e%3cpath%20id='Icon_material-close'%20data-name='Icon%20material-close'%20d='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'%20transform='translate(-7.5%20-7.5)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></button></div></div></div></div></nav><div class="SponsorBar" data-component="sponsor-bar"><div class="SponsorBar-Wrapper"><span class="SponsorBar-Sponsored" data-testid="sponsored">Sponsored By</span><div class="SponsorBar-LogosWrapper"></div></div></div><section class="Layout-Section"><div id="iiris-identity" data-testid="iris-identity"></div><div data-template="home-page" class="HomePage"><div class="HomePage-Wrapper"><div data-module="top-featured" class="TopFeatured TopFeatured_variant_recent"><div data-testid="latest-news-wrapper" class="TopFeatured-WrapLatestNews"><div><h2 data-testid="recent-label" class="TopFeatured-WrapLatestNewsTop">Latest News</h2></div><div class="TopFeatured-LatestNewsItem"><div class="TopFeatured-LatestNewsItemTitle"><a href="/business/krafton-brands-life-simulator-inzoi-a-long-term-franchise-after-it-hits-1-million-sales" data-discover="true"><h3 class="TopFeatured-LatestNewsItemTitle">Krafton brands life simulator InZoi a 'long-term franchise' after it hits 1 million sales</h3></a></div><div class="TopFeatured-LatestNewsItemDate">Apr 4, 2025</div></div><div class="TopFeatured-LatestNewsItem"><div class="TopFeatured-LatestNewsItemTitle"><a href="/business/parents-can-now-moderate-their-child-s-friend-list-and-block-experiences-in-roblox" data-discover="true"><h3 class="TopFeatured-LatestNewsItemTitle">Parents can now moderate their child's friend list and block specific experiences in Roblox</h3></a></div><div class="TopFeatured-LatestNewsItemDate">Apr 3, 2025</div></div><div class="TopFeatured-LatestNewsItem"><div class="TopFeatured-LatestNewsItemTitle"><a href="/business/australian-company-playside-studios-has-laid-off-workers-in-restructuring-" data-discover="true"><h3 class="TopFeatured-LatestNewsItemTitle">Australian studio PlaySide is making layoffs after delivering record revenue</h3></a></div><div class="TopFeatured-LatestNewsItemDate">Apr 3, 2025</div></div><div class="TopFeatured-LatestNewsItem"><div class="TopFeatured-LatestNewsItemTitle"><a href="/production/epic-buys-ai-powered-3d-asset-tagging-technology-loci" data-discover="true"><h3 class="TopFeatured-LatestNewsItemTitle">Epic acquires AI-powered 3D asset tagging technology Loci</h3></a></div><div class="TopFeatured-LatestNewsItemDate">Apr 3, 2025</div></div></div><div data-testid="content-preview-wrapper" class="TopFeatured-WrapContentPreview"><div class="ContentPreview" data-module="content-preview" data-variant="top-featured"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_topFeatured"><a data-testid="thumbnail" href="/business/nintendo-scraps-switch-2-pre-orders-in-the-u-s-over-trump-tariffs" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">Promotional artwork of the Switch 2</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta8b354162c3d5a92/67f00d2efab4ef3b774e32e2/Switch_2_Header.png?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta8b354162c3d5a92/67f00d2efab4ef3b774e32e2/Switch_2_Header.png?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_business ContentPreview-Category" href="/business" data-discover="true">Business</a><div class="TopFeaturedPreview"><a class="TopFeaturedPreview-TitleWrapper" href="/business/nintendo-scraps-switch-2-pre-orders-in-the-u-s-over-trump-tariffs" data-discover="true"><h2 class="TopFeaturedPreview-Title" data-testid="preview-default-title">Nintendo delays Switch 2 pre-orders in the U.S. over Trump tariffs</h2></a><a class="TopFeaturedPreview-MobileTitleWrapper" href="/business/nintendo-scraps-switch-2-pre-orders-in-the-u-s-over-trump-tariffs" data-discover="true"><h2 class="TopFeaturedPreview-Title" data-testid="preview-mobile-title">Nintendo delays Switch 2 pre-orders in the U.S. over Trump tariffs</h2></a><p class="TopFeaturedPreview-Summary">The Japanese company has explained it must 'assess the potential impact of tariffs and evolving market conditions.'</p></div><div class="TopFeaturedPreview-Footer"><span class="TopFeaturedPreview-Date">Apr 4, 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>2 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div><div class="TopFeatured-WrapContentPreviewHorizontal TopFeatured-WrapContentPreviewHorizontal_isAdsRendered_init TopFeatured-WrapContentPreviewHorizontal_variant_recent"><div class="TopFeatured-WrapContentPreviewHorizontal2 TopFeatured-WrapContentPreviewHorizontal2_isAdsRendered_init"><div class="ContentPreview TopFeatured-ContentPreviewHorizontal TopFeatured-ContentPreviewHorizontal_variant_recent" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a href="/design/design-opportunities-for-devs-from-our-time-trying-out-the-nintendo-switch-2" data-discover="true"><span class="HorizontalCard-ImageScreenReaderText">Samus looks down at a player using the Nintendo Switch 2 Joy-Con as a mouse.</span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt37b8c730feb4733d/67eea82b3d46cdfb230d1306/samusmouse.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt37b8c730feb4733d/67eea82b3d46cdfb230d1306/samusmouse.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="HorizontalCard-ContentWrapper"><div class="HorizontalCard-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_design HorizontalCard-Keyword" href="/design" data-discover="true">Design</a></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" href="/design/design-opportunities-for-devs-from-our-time-trying-out-the-nintendo-switch-2" data-discover="true">Design opportunities for devs from our time trying out the Nintendo Switch 2</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" href="/design/design-opportunities-for-devs-from-our-time-trying-out-the-nintendo-switch-2" data-discover="true">Design opportunities for devs from our time trying out the Nintendo Switch 2</a></div><p class="HorizontalCard-Date" data-testid="horizontalCardDate">Apr 3, 2025</p></div></div></div><div class="ContentPreview TopFeatured-ContentPreviewHorizontal TopFeatured-ContentPreviewHorizontal_isLast TopFeatured-ContentPreviewHorizontal_variant_recent" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a href="/business/disney-codemasters-and-jagex-veterans-launch-indie-publishing-label-colab" data-discover="true"><span class="HorizontalCard-ImageScreenReaderText">A mug with the CoLab logo sits on a table next to a laptop and a plate with cookies</span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt43c0b9dfecc199ad/67eea8a58257bc12fff6dd07/CoLab_Header.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt43c0b9dfecc199ad/67eea8a58257bc12fff6dd07/CoLab_Header.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="HorizontalCard-ContentWrapper"><div class="HorizontalCard-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_business HorizontalCard-Keyword" href="/business" data-discover="true">Business</a></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" href="/business/disney-codemasters-and-jagex-veterans-launch-indie-publishing-label-colab" data-discover="true">Disney, Codemasters, and Jagex veterans launch indie publishing label The CoLab</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" href="/business/disney-codemasters-and-jagex-veterans-launch-indie-publishing-label-colab" data-discover="true">Disney, Codemasters, and Jagex veterans launch indie publishing label The CoLab</a></div><p class="HorizontalCard-Date" data-testid="horizontalCardDate">Apr 3, 2025</p></div></div></div></div><div data-testid="content-preview-ad-container" class="TopFeatured-RetangleAds TopFeatured-RetangleAds_isShowAd"></div></div></div><div data-module="newsletter-signup-promo"><div class="SubscribeBanner SubscribeBanner_mode_dark SubscribeBanner_variant_horizontal HomePage-NewsletterContent"><div class="SubscribeBanner-Wrapper"><div class="SubscribeBanner-Title" data-testid="subscribeBanner_title">Get daily news, dev blogs, and stories from Game Developer straight to your inbox</div><div class="SubscribeBanner-Message" data-testid="subscribeBanner_message">Subscribe to Game Developer Newsletters to stay caught up with the latest news, design insights, marketing tips, and more</div><div class="SubscribeBanner-Button"><a data-component="button" data-testid="bannerNewsletterbutton" class="Button Button_size_medium Button_variant_secondaryFilled" rel="nofollow" data-action-type="sign-up" data-name="subscribe-banner" href="https://gamedeveloper.tradepub.com/c/pubRD.mpl?secure=1&sr=pp&_t=pp:&qf=w_gamf01&ch=gdwebbutton%20" target="_blank"><span class="Button-ContentWrapper">Stay Updated</span></a></div></div></div></div><div data-module="latest-featured" class="LatestFeatured LatestFeatured_moduleHeight_tall"><div class="LatestFeatured-ColumnList LatestFeatured-ColumnList_left" data-testid="list-content"><p class="LatestFeatured-Title" data-testid="list-content-title">LATEST UPDATES</p><div class="LatestFeatured-Content LatestFeatured-Content_left"><div class="ContentPreview LatestFeatured-ContentItem LatestFeatured-ContentItem_left" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Promotional artwork of the Switch 2" href="/business/nintendo-scraps-switch-2-pre-orders-in-the-u-s-over-trump-tariffs" data-discover="true"><div title="Promotional artwork of the Switch 2"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta8b354162c3d5a92/67f00d2efab4ef3b774e32e2/Switch_2_Header.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta8b354162c3d5a92/67f00d2efab4ef3b774e32e2/Switch_2_Header.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Promotional artwork of the Switch 2" title="Promotional artwork of the Switch 2"/></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" data-discover="true">Business</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/business/nintendo-scraps-switch-2-pre-orders-in-the-u-s-over-trump-tariffs" data-discover="true">Nintendo delays Switch 2 pre-orders in the U.S. over Trump tariffs</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/nintendo-scraps-switch-2-pre-orders-in-the-u-s-over-trump-tariffs" data-discover="true">Nintendo delays Switch 2 pre-orders in the U.S. over Trump tariffs</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Apr 4, 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>2 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="Chris Kerr" href="/author/chris-kerr" 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/blt1c7a117d71555292/650efbcad3423169a8871059/chris_kerr_headshot.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1c7a117d71555292/650efbcad3423169a8871059/chris_kerr_headshot.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Chris Kerr" title="Picture of Chris Kerr"/></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/chris-kerr" data-discover="true">Chris Kerr</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">, <!-- -->News Editor</span></div></div></div></div></div><div class="ContentPreview LatestFeatured-ContentItem LatestFeatured-ContentItem_left" 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 human and their feline on promotional artwork for InZoi" href="/business/krafton-brands-life-simulator-inzoi-a-long-term-franchise-after-it-hits-1-million-sales" data-discover="true"><div title="A human and their feline on promotional artwork for InZoi"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltaba7da62a94b92d8/67efd6c98be2b700c6eaf438/Inzoi_Header.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltaba7da62a94b92d8/67efd6c98be2b700c6eaf438/Inzoi_Header.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="A human and their feline on promotional artwork for InZoi" title="A human and their feline on promotional artwork for InZoi"/></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" data-discover="true">Business</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/business/krafton-brands-life-simulator-inzoi-a-long-term-franchise-after-it-hits-1-million-sales" data-discover="true">Krafton brands life simulator InZoi a 'long-term franchise' after it hits 1 million sales</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/krafton-brands-life-simulator-inzoi-a-long-term-franchise-after-it-hits-1-million-sales" data-discover="true">Krafton brands life simulator InZoi a 'long-term franchise' after it hits 1 million sales</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Apr 4, 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>2 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="Chris Kerr" href="/author/chris-kerr" 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/blt1c7a117d71555292/650efbcad3423169a8871059/chris_kerr_headshot.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1c7a117d71555292/650efbcad3423169a8871059/chris_kerr_headshot.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Chris Kerr" title="Picture of Chris Kerr"/></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/chris-kerr" data-discover="true">Chris Kerr</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">, <!-- -->News Editor</span></div></div></div></div></div><div class="ContentPreview LatestFeatured-ContentItem LatestFeatured-ContentItem_left" 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 Roblox-style chicken in an emerging UGC experience " href="/business/parents-can-now-moderate-their-child-s-friend-list-and-block-experiences-in-roblox" data-discover="true"><div title="A Roblox-style chicken in an emerging UGC experience "><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt2932fe65c3c92bd3/67eeaa45fd2647b4a30aa295/roblox_header.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt2932fe65c3c92bd3/67eeaa45fd2647b4a30aa295/roblox_header.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="A Roblox-style chicken in an emerging UGC experience " title="A Roblox-style chicken in an emerging UGC experience "/></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" data-discover="true">Business</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/business/parents-can-now-moderate-their-child-s-friend-list-and-block-experiences-in-roblox" data-discover="true">Parents can now moderate their child's friend list and block specific experiences in Roblox</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/parents-can-now-moderate-their-child-s-friend-list-and-block-experiences-in-roblox" data-discover="true">Parents can now moderate their child's friend list and block specific experiences in Roblox</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Apr 3, 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>2 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="Chris Kerr" href="/author/chris-kerr" 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/blt1c7a117d71555292/650efbcad3423169a8871059/chris_kerr_headshot.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1c7a117d71555292/650efbcad3423169a8871059/chris_kerr_headshot.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Chris Kerr" title="Picture of Chris Kerr"/></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/chris-kerr" data-discover="true">Chris Kerr</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">, <!-- -->News Editor</span></div></div></div></div></div><div class="ContentPreview LatestFeatured-ContentItem LatestFeatured-ContentItem_left" 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 mug with the CoLab logo sits on a table next to a laptop and a plate with cookies" href="/business/disney-codemasters-and-jagex-veterans-launch-indie-publishing-label-colab" data-discover="true"><div title="A mug with the CoLab logo sits on a table next to a laptop and a plate with cookies"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt43c0b9dfecc199ad/67eea8a58257bc12fff6dd07/CoLab_Header.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt43c0b9dfecc199ad/67eea8a58257bc12fff6dd07/CoLab_Header.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="A mug with the CoLab logo sits on a table next to a laptop and a plate with cookies" title="A mug with the CoLab logo sits on a table next to a laptop and a plate with cookies"/></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" data-discover="true">Business</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/business/disney-codemasters-and-jagex-veterans-launch-indie-publishing-label-colab" data-discover="true">Disney, Codemasters, and Jagex veterans launch indie publishing label The CoLab</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/disney-codemasters-and-jagex-veterans-launch-indie-publishing-label-colab" data-discover="true">Disney, Codemasters, and Jagex veterans launch indie publishing label The CoLab</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Apr 3, 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>1 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="Diego Arguello" href="/author/diego-arguello" 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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Diego Arguello" title="Picture of Diego Arguello"/></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/diego-arguello" data-discover="true">Diego Arguello</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">, <!-- -->Contributor</span></div></div></div></div></div><div class="ContentPreview LatestFeatured-ContentItem LatestFeatured-ContentItem_left" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Samus looks down at a player using the Nintendo Switch 2 Joy-Con as a mouse." href="/design/design-opportunities-for-devs-from-our-time-trying-out-the-nintendo-switch-2" data-discover="true"><div title="Samus looks down at a player using the Nintendo Switch 2 Joy-Con as a mouse."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt37b8c730feb4733d/67eea82b3d46cdfb230d1306/samusmouse.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt37b8c730feb4733d/67eea82b3d46cdfb230d1306/samusmouse.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Samus looks down at a player using the Nintendo Switch 2 Joy-Con as a mouse." title="Samus looks down at a player using the Nintendo Switch 2 Joy-Con as a mouse."/></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" data-discover="true">Design</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/design/design-opportunities-for-devs-from-our-time-trying-out-the-nintendo-switch-2" data-discover="true">Design opportunities for devs from our time trying out the Nintendo Switch 2</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/design/design-opportunities-for-devs-from-our-time-trying-out-the-nintendo-switch-2" data-discover="true">Design opportunities for devs from our time trying out the Nintendo Switch 2</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Apr 3, 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>13 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="Bryant Francis" href="/author/bryant-francis" 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/blt862ca995183d2fdf/650efe5138b21120135ae4ac/bryantcropped.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt862ca995183d2fdf/650efe5138b21120135ae4ac/bryantcropped.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Bryant Francis" title="Picture of Bryant Francis"/></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/bryant-francis" data-discover="true">Bryant Francis</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">, <!-- -->Senior Editor</span></div></div></div></div></div><div class="ContentPreview LatestFeatured-ContentItem LatestFeatured-ContentItem_left" 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 Nintendo Switch 2 with the Nintendo Switch 2 Camera." href="/console/nintendo-switch-2-shows-nintendo-s-strategy-for-a-social-future" data-discover="true"><div title="A Nintendo Switch 2 with the Nintendo Switch 2 Camera."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt96842368ef633cc8/67edc0a58764f99e4f3612f4/switctch2camera.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt96842368ef633cc8/67edc0a58764f99e4f3612f4/switctch2camera.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="A Nintendo Switch 2 with the Nintendo Switch 2 Camera." title="A Nintendo Switch 2 with the Nintendo Switch 2 Camera."/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_console ListPreview-Keyword" href="/game-platforms/console" data-discover="true">Console</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/console/nintendo-switch-2-shows-nintendo-s-strategy-for-a-social-future" data-discover="true">Nintendo Switch 2 shows Nintendo's strategy for an online social future</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/console/nintendo-switch-2-shows-nintendo-s-strategy-for-a-social-future" data-discover="true">Nintendo Switch 2 shows Nintendo's strategy for an online social future</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Apr 3, 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>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="Bryant Francis" href="/author/bryant-francis" 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/blt862ca995183d2fdf/650efe5138b21120135ae4ac/bryantcropped.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt862ca995183d2fdf/650efe5138b21120135ae4ac/bryantcropped.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Bryant Francis" title="Picture of Bryant Francis"/></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/bryant-francis" data-discover="true">Bryant Francis</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">, <!-- -->Senior Editor</span></div></div></div></div></div><div class="ContentPreview LatestFeatured-ContentItem LatestFeatured-ContentItem_left" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Promotional artwork for PlaySide franchise Dumb Ways to Die" href="/business/australian-company-playside-studios-has-laid-off-workers-in-restructuring-" data-discover="true"><div title="Promotional artwork for PlaySide franchise Dumb Ways to Die"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltb15ff1b9355e1c77/67ee6bfa2c4eae860b078c93/DUMB.webp?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltb15ff1b9355e1c77/67ee6bfa2c4eae860b078c93/DUMB.webp?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Promotional artwork for PlaySide franchise Dumb Ways to Die" title="Promotional artwork for PlaySide franchise Dumb Ways to Die"/></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" data-discover="true">Business</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/business/australian-company-playside-studios-has-laid-off-workers-in-restructuring-" data-discover="true">Australian studio PlaySide is making layoffs after delivering record revenue</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/australian-company-playside-studios-has-laid-off-workers-in-restructuring-" data-discover="true">Australian studio PlaySide is making layoffs after delivering record revenue</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Apr 3, 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>2 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="Diego Arguello" href="/author/diego-arguello" 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&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Diego Arguello" title="Picture of Diego Arguello"/></a><a class="Contributors-AvatarLink Contributors-AvatarLink_isMultiple" aria-label="Chris Kerr" href="/author/chris-kerr" 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/blt1c7a117d71555292/650efbcad3423169a8871059/chris_kerr_headshot.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1c7a117d71555292/650efbcad3423169a8871059/chris_kerr_headshot.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Chris Kerr" title="Picture of Chris Kerr"/></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/diego-arguello" data-discover="true">Diego Arguello<!-- -->, </a><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/chris-kerr" data-discover="true">Chris Kerr</a></div></div></div></div></div><div class="ContentPreview LatestFeatured-ContentItem LatestFeatured-ContentItem_left" 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 screenshot of asset tags created by Loci" href="/production/epic-buys-ai-powered-3d-asset-tagging-technology-loci" data-discover="true"><div title="A screenshot of asset tags created by Loci"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3725719e60ecbc6a/67ee59579e881c7eba7bf75a/Loci_Header.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3725719e60ecbc6a/67ee59579e881c7eba7bf75a/Loci_Header.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="A screenshot of asset tags created by Loci" title="A screenshot of asset tags created by Loci"/></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" data-discover="true">Production</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/production/epic-buys-ai-powered-3d-asset-tagging-technology-loci" data-discover="true">Epic acquires AI-powered 3D asset tagging technology Loci</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/production/epic-buys-ai-powered-3d-asset-tagging-technology-loci" data-discover="true">Epic acquires AI-powered 3D asset tagging technology Loci</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Apr 3, 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>1 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="Chris Kerr" href="/author/chris-kerr" 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/blt1c7a117d71555292/650efbcad3423169a8871059/chris_kerr_headshot.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1c7a117d71555292/650efbcad3423169a8871059/chris_kerr_headshot.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Chris Kerr" title="Picture of Chris Kerr"/></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/chris-kerr" data-discover="true">Chris Kerr</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">, <!-- -->News Editor</span></div></div></div></div></div><div class="ContentPreview LatestFeatured-ContentItem LatestFeatured-ContentItem_left" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: The Switch 2 Joy-Con 2 being used in mouse mode" href="/production/unity-promises-to-deliver-battle-tested-switch-2-support" data-discover="true"><div title="The Switch 2 Joy-Con 2 being used in mouse mode"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltb6e7545617457826/67ed5c7a4c457d0ff2e2130f/Switch_Mouse.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltb6e7545617457826/67ed5c7a4c457d0ff2e2130f/Switch_Mouse.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="The Switch 2 Joy-Con 2 being used in mouse mode" title="The Switch 2 Joy-Con 2 being used in mouse mode"/></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" data-discover="true">Production</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/production/unity-promises-to-deliver-battle-tested-switch-2-support" data-discover="true">Unity promises to deliver 'battle-tested' Switch 2 support</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/production/unity-promises-to-deliver-battle-tested-switch-2-support" data-discover="true">Unity promises to deliver 'battle-tested' Switch 2 support</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Apr 2, 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>1 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="Chris Kerr" href="/author/chris-kerr" 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/blt1c7a117d71555292/650efbcad3423169a8871059/chris_kerr_headshot.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1c7a117d71555292/650efbcad3423169a8871059/chris_kerr_headshot.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Chris Kerr" title="Picture of Chris Kerr"/></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/chris-kerr" data-discover="true">Chris Kerr</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">, <!-- -->News Editor</span></div></div></div></div></div><div class="ContentPreview LatestFeatured-ContentItem LatestFeatured-ContentItem_left" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: The Switch 2 on a stylised background" href="/console/-redesigned-from-the-ground-up-the-nintendo-switch-2-will-launch-on-june-5" data-discover="true"><div title="The Switch 2 on a stylised background"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt15f3f053b4163abf/67ed45bc190cb7210c698120/Switch_2_Header.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt15f3f053b4163abf/67ed45bc190cb7210c698120/Switch_2_Header.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="The Switch 2 on a stylised background" title="The Switch 2 on a stylised background"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_console ListPreview-Keyword" href="/game-platforms/console" data-discover="true">Console</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/console/-redesigned-from-the-ground-up-the-nintendo-switch-2-will-launch-on-june-5" data-discover="true">'Redesigned from the ground up:' The Nintendo Switch 2 will launch on June 5 for $449</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/console/-redesigned-from-the-ground-up-the-nintendo-switch-2-will-launch-on-june-5" data-discover="true">'Redesigned from the ground up:' The Nintendo Switch 2 will launch on June 5 for $449</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Apr 2, 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>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="Chris Kerr" href="/author/chris-kerr" 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/blt1c7a117d71555292/650efbcad3423169a8871059/chris_kerr_headshot.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1c7a117d71555292/650efbcad3423169a8871059/chris_kerr_headshot.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Chris Kerr" title="Picture of Chris Kerr"/></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/chris-kerr" data-discover="true">Chris Kerr</a><span class="Contributors-ContributorTitle" data-testid="contributor-title">, <!-- -->News Editor</span></div></div></div></div></div></div><a data-testid="list-content-more-content" class="LatestFeatured-Link" href="/keyword/features" data-discover="true">More Features</a></div><div class="LatestFeatured-ColumnList" data-testid="list-content"><div class="LatestFeatured-Ad"></div><p class="LatestFeatured-Title LatestFeatured-Title_right" data-testid="list-content-title">FEATURED BLOGS</p><div class="LatestFeatured-Content LatestFeatured-Content_displayType_contributorFocused"><div class="ContentPreview LatestFeatured-ContentItem" data-module="content-preview" data-variant="contributor-focused"><div class="ContributorFocusedCard"><div class="ContributorFocusedCard-Wrapper"><div class="ContributorFocusedCard-Body"><a aria-label="Bryant Francis" href="/author/bryant-francis" data-discover="true"><span class="ContributorFocusedCard-ScreenReaderText">Picture of Bryant Francis</span><img aria-hidden="true" data-component="image" class="ContributorFocusedCard-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt862ca995183d2fdf/650efe5138b21120135ae4ac/bryantcropped.jpg?width=150&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt862ca995183d2fdf/650efe5138b21120135ae4ac/bryantcropped.jpg?width=150&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="ContributorFocusedCard-InfoWrapper"><a class="ContributorFocusedCard-ContributorName" href="/author/bryant-francis" data-discover="true">Bryant Francis</a><p class="ContributorFocusedCard-ContributorTitle" data-testid="preview-contributor-title">Senior Editor</p></div></div><div class="ContributorFocusedCard-ContentWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_art" href="/art" data-discover="true">Art</a><div class="ContributorFocusedCard-TitleWrapper"><a class="ContributorFocusedCard-Title" data-testid="contributor-focused-card-title" href="/art/the-creator-of-tactical-breach-wizards-is-right-animate-words-not-letters-" data-discover="true">The director of Tactical Breach Wizards is right: animate words, not letters!</a></div><div class="ContributorFocusedCard-Footer"><span class="ContributorFocusedCard-Date">Mar 25, 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>4 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div><div class="ContentPreview LatestFeatured-ContentItem" data-module="content-preview" data-variant="contributor-focused"><div class="ContributorFocusedCard"><div class="ContributorFocusedCard-Wrapper"><div class="ContributorFocusedCard-Body"><a aria-label="Rados艂aw Ratusznik" href="/author/rados-aw-ratusznik" data-discover="true"><span class="ContributorFocusedCard-ScreenReaderText">Picture of Rados艂aw Ratusznik</span><img aria-hidden="true" data-component="image" class="ContributorFocusedCard-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd407cb100c7b5f81/650f1838250230f99e1ddc78/Game_Developer_G_Logo_RGB.jpg?width=150&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd407cb100c7b5f81/650f1838250230f99e1ddc78/Game_Developer_G_Logo_RGB.jpg?width=150&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="ContributorFocusedCard-InfoWrapper"><a class="ContributorFocusedCard-ContributorName" href="/author/rados-aw-ratusznik" data-discover="true">Rados艂aw Ratusznik</a></div></div><div class="ContributorFocusedCard-ContentWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_design" href="/design" data-discover="true">Design</a><div class="ContributorFocusedCard-TitleWrapper"><a class="ContributorFocusedCard-Title" data-testid="contributor-focused-card-title" href="/design/ghostrunner-2-deep-dive" data-discover="true">Feedback and experimentation: the foundations of Ghostrunner 2</a></div><div class="ContributorFocusedCard-Footer"><span class="ContributorFocusedCard-Date">Mar 10, 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>9 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div><div class="ContentPreview LatestFeatured-ContentItem" data-module="content-preview" data-variant="contributor-focused"><div class="ContributorFocusedCard"><div class="ContributorFocusedCard-Wrapper"><div class="ContributorFocusedCard-Body"><a aria-label="Beth Elderkin" href="/author/beth-elderkin" data-discover="true"><span class="ContributorFocusedCard-ScreenReaderText">Picture of Beth Elderkin</span><img aria-hidden="true" data-component="image" class="ContributorFocusedCard-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta4a6afc5bf4300eb/650f170cde47dca7a8f21ba2/source_small.jpeg?width=150&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta4a6afc5bf4300eb/650f170cde47dca7a8f21ba2/source_small.jpeg?width=150&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="ContributorFocusedCard-InfoWrapper"><a class="ContributorFocusedCard-ContributorName" href="/author/beth-elderkin" data-discover="true">Beth Elderkin</a><p class="ContributorFocusedCard-ContributorTitle" data-testid="preview-contributor-title">Content Marketing Manager (GDC)</p></div></div><div class="ContributorFocusedCard-ContentWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_design" href="/design" data-discover="true">Design</a><div class="ContributorFocusedCard-TitleWrapper"><a class="ContributorFocusedCard-Title" data-testid="contributor-focused-card-title" href="/design/writer-director-sam-lake-and-game-designer-lucas-pope-honored-at-gdca-2025" data-discover="true">Writer-director Sam Lake and game designer Lucas Pope honored at GDCA 2025</a></div><div class="ContributorFocusedCard-Footer"><span class="ContributorFocusedCard-Date">Feb 21, 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>3 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div><div class="ContentPreview LatestFeatured-ContentItem" data-module="content-preview" data-variant="contributor-focused"><div class="ContributorFocusedCard"><div class="ContributorFocusedCard-Wrapper"><div class="ContributorFocusedCard-Body"><a aria-label="Beth Elderkin" href="/author/beth-elderkin" data-discover="true"><span class="ContributorFocusedCard-ScreenReaderText">Picture of Beth Elderkin</span><img aria-hidden="true" data-component="image" class="ContributorFocusedCard-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta4a6afc5bf4300eb/650f170cde47dca7a8f21ba2/source_small.jpeg?width=150&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta4a6afc5bf4300eb/650f170cde47dca7a8f21ba2/source_small.jpeg?width=150&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="ContributorFocusedCard-InfoWrapper"><a class="ContributorFocusedCard-ContributorName" href="/author/beth-elderkin" data-discover="true">Beth Elderkin</a><p class="ContributorFocusedCard-ContributorTitle" data-testid="preview-contributor-title">Content Marketing Manager (GDC)</p></div></div><div class="ContributorFocusedCard-ContentWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_production" href="/production" data-discover="true">Production</a><div class="ContributorFocusedCard-TitleWrapper"><a class="ContributorFocusedCard-Title" data-testid="contributor-focused-card-title" href="/production/esa-brings-top-studios-together-at-gdc-to-unveil-new-accessibility-initiative" data-discover="true">ESA Brings top studios together at GDC to unveil new accessibility initiative</a></div><div class="ContributorFocusedCard-Footer"><span class="ContributorFocusedCard-Date">Feb 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>2 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div><div class="ContentPreview LatestFeatured-ContentItem" data-module="content-preview" data-variant="contributor-focused"><div class="ContributorFocusedCard"><div class="ContributorFocusedCard-Wrapper"><div class="ContributorFocusedCard-Body"><a aria-label="Dmitri Brevdo" href="/author/dmitri-brevdo" data-discover="true"><span class="ContributorFocusedCard-ScreenReaderText">Picture of Dmitri Brevdo</span><img aria-hidden="true" data-component="image" class="ContributorFocusedCard-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt67b877227d9e0551/67acfa5567589e7bad2c60a4/Dmitri_Brevdo.jpg?width=150&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt67b877227d9e0551/67acfa5567589e7bad2c60a4/Dmitri_Brevdo.jpg?width=150&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="ContributorFocusedCard-InfoWrapper"><a class="ContributorFocusedCard-ContributorName" href="/author/dmitri-brevdo" data-discover="true">Dmitri Brevdo</a></div></div><div class="ContributorFocusedCard-ContentWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_production" href="/production" data-discover="true">Production</a><div class="ContributorFocusedCard-TitleWrapper"><a class="ContributorFocusedCard-Title" data-testid="contributor-focused-card-title" href="/production/creating-seamless-multiplayer-experiences-for-games-like-space-marine-2" data-discover="true">Creating seamless multiplayer experiences for games like Space Marine 2</a></div><div class="ContributorFocusedCard-Footer"><span class="ContributorFocusedCard-Date">Feb 5, 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>4 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div><div class="ContentPreview LatestFeatured-ContentItem" data-module="content-preview" data-variant="contributor-focused"><div class="ContributorFocusedCard"><div class="ContributorFocusedCard-Wrapper"><div class="ContributorFocusedCard-Body"><a aria-label="Bryant Francis" href="/author/bryant-francis" data-discover="true"><span class="ContributorFocusedCard-ScreenReaderText">Picture of Bryant Francis</span><img aria-hidden="true" data-component="image" class="ContributorFocusedCard-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt862ca995183d2fdf/650efe5138b21120135ae4ac/bryantcropped.jpg?width=150&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt862ca995183d2fdf/650efe5138b21120135ae4ac/bryantcropped.jpg?width=150&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="ContributorFocusedCard-InfoWrapper"><a class="ContributorFocusedCard-ContributorName" href="/author/bryant-francis" data-discover="true">Bryant Francis</a><p class="ContributorFocusedCard-ContributorTitle" data-testid="preview-contributor-title">Senior Editor</p></div></div><div class="ContributorFocusedCard-ContentWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_business" href="/business" data-discover="true">Business</a><div class="ContributorFocusedCard-TitleWrapper"><a class="ContributorFocusedCard-Title" data-testid="contributor-focused-card-title" href="/business/developers-still-aren-t-warming-up-to-generative-ai" data-discover="true">Developers still aren't warming up to generative AI</a></div><div class="ContributorFocusedCard-Footer"><span class="ContributorFocusedCard-Date">Jan 22, 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>4 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div></div><a data-testid="list-content-more-content" class="LatestFeatured-Link LatestFeatured-Link_right" href="/keyword/featured-blogs" data-discover="true">More Featured Blogs</a></div></div><div data-module="feature-series-v2" class="FeatureSeriesV2"><div data-testid="title" class="FeatureSeriesV2-Title">Latest Featured Blogs on Game Developer</div><div class="FeatureSeriesV2-ContentWrapper"><div class="FeatureSeriesV2-Col"><div data-testid="content-featured" class="ContentFeatured"><div class="ContentFeatured-ImageWrapper"><div class="ContentFeatured-Aspect"><a href="/business/valve-stakes-its-claim-to-pc-gaming-handhelds-with-steamos-s-arrival-on-lenovo-legion-go-s" data-discover="true"><img data-component="image" class="ContentFeatured-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt88d4318d528a1cfb/677ed50dbf2d061c2a702fc6/Lenovo_Legion.png?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt88d4318d528a1cfb/677ed50dbf2d061c2a702fc6/Lenovo_Legion.png?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_business ContentFeatured-Keyword" href="/business" data-discover="true">Business</a></div><a class="ContentFeatured-Title" data-testid="content-featured-title" href="/business/valve-stakes-its-claim-to-pc-gaming-handhelds-with-steamos-s-arrival-on-lenovo-legion-go-s" data-discover="true">Valve stakes its claim to PC gaming handhelds with SteamOS鈥檚 arrival on Lenovo Legion Go S</a><p class="ContentFeatured-Summary" data-testid="content-featured-summary">Valve鈥檚 collaboration with hardware manufacturers and chipset makers strengthens SteamOS鈥檚 position in the PC gaming handheld space.</p></div></div><div class="FeatureSeriesV2-Col"><div data-testid="content-group" class="ContentGroup"><div class="ContentGroup-ItemWrapper ContentGroup-ItemWrapper_index ContentGroup-ItemWrapper_content"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_business ContentGroup-Keyword" href="/business" data-discover="true">Business</a><a class="ContentGroup-Title" href="/business/the-last-humble-bee-postmortem-staying-sane-in-solo-development" data-discover="true">The Last Humble Bee postmortem: Staying sane in solo development</a></div><div class="ContentGroup-ItemWrapper ContentGroup-ItemWrapper_content"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_business ContentGroup-Keyword" href="/business" data-discover="true">Business</a><a class="ContentGroup-Title" href="/business/gnarly-content-9-risks-for-horror-game-development" data-discover="true">Gnarly content: 9 risks for horror game development</a></div><div class="ContentGroup-ItemWrapper ContentGroup-ItemWrapper_content"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_audio ContentGroup-Keyword" href="/audio" data-discover="true">Audio</a><a class="ContentGroup-Title" href="/audio/how-to-record-a-giant-mech-recording-sound-design-with-war-robots" data-discover="true">How to record a giant mech: Recording sound design with War Robots</a></div><div class="ContentGroup-ItemWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_design ContentGroup-Keyword" href="/design" data-discover="true">Design</a><a class="ContentGroup-Title" href="/design/the-art-of-game-balance-evolution" data-discover="true">The art of game balance: evolution</a></div></div></div></div><div data-testid="button" class="FeatureSeriesV2-ButtonWrapper"><a class="FeatureSeriesV2-ButtonText" rel="noreferrer" href="/program/featured-blogs/" data-discover="true">More Featured Blogs</a></div></div><div data-module="content-cards" class="ContentCards"><div class="ContentCards-CardsWrapper ContentCards-CardsWrapper_horizontal"><div class="ContentCards-Header ContentCards-Header_horizontal" data-testid="content-cards-header"><h3 class="ContentCards-Title" data-testid="contentCardsTitle">Game Developer Essentials</h3><a class="ContentCards-Link" data-testid="content-card-link" href="/keyword/game-developer-essentials" data-discover="true"><span class="ContentCards-LinkText" data-testid="contentCardsBreadcrumbsLinkTitle">More resources for devs</span><span data-component="icon" data-name="ChevronRight" class="ContentCards-LinkIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div><div class="ContentCards-Content ContentCards-Content_horizontal ContentCards-Content_none"><div class="ContentCards-ContentPreview ContentCards-ContentPreview_horizontal" data-testid="content-preview-horizontal"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a href="/design/game-developer-s-2024-wrap-up-holly-green-s-top-10-games-of-the-year" data-discover="true"><span class="HorizontalCard-ImageScreenReaderText"></span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta1d4ac75d1205177/676d82673bae9a2233b704a5/Game_Developer_Holly_Green_Best_of_2024.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta1d4ac75d1205177/676d82673bae9a2233b704a5/Game_Developer_Holly_Green_Best_of_2024.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="HorizontalCard-ContentWrapper"><div class="HorizontalCard-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_design HorizontalCard-Keyword" href="/design" data-discover="true">Design</a></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" href="/design/game-developer-s-2024-wrap-up-holly-green-s-top-10-games-of-the-year" data-discover="true">Game Developer's 2024 Wrap-Up: Holly Green's top 10 games of the year</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" href="/design/game-developer-s-2024-wrap-up-holly-green-s-top-10-games-of-the-year" data-discover="true">Game Developer's 2024 Wrap-Up: Holly Green's top 10 games of the year</a></div></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_horizontal" data-testid="content-preview-horizontal"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a href="/production/game-developer-s-2024-wrap-up-chris-kerr-s-top-games-of-the-year" data-discover="true"><span class="HorizontalCard-ImageScreenReaderText">screenshots showing a selection of games</span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltb30b7e9ac00c9f1d/6765a134087922441ddb1740/Chris_Kerr_Best_Games_2024.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltb30b7e9ac00c9f1d/6765a134087922441ddb1740/Chris_Kerr_Best_Games_2024.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="HorizontalCard-ContentWrapper"><div class="HorizontalCard-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_production HorizontalCard-Keyword" href="/production" data-discover="true">Production</a></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" href="/production/game-developer-s-2024-wrap-up-chris-kerr-s-top-games-of-the-year" data-discover="true">Game Developer's 2024 Wrap-Up: Chris Kerr's top 5 games of the year</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" href="/production/game-developer-s-2024-wrap-up-chris-kerr-s-top-games-of-the-year" data-discover="true">Game Developer's 2024 Wrap-Up: Chris Kerr's top 5 games of the year</a></div></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_horizontal" data-testid="content-preview-horizontal"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a href="/design/game-developer-2024-wrap-up-bryant-francis-top-10-games-of-the-year" data-discover="true"><span class="HorizontalCard-ImageScreenReaderText">A promo image for Bryant's top 10 game of the year list featuring four games.</span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt0cf104abf5409937/67645190c5e375038d55ebb5/Game_Developer_Bryant_Francis_Best_Games_2024.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt0cf104abf5409937/67645190c5e375038d55ebb5/Game_Developer_Bryant_Francis_Best_Games_2024.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="HorizontalCard-ContentWrapper"><div class="HorizontalCard-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_design HorizontalCard-Keyword" href="/design" data-discover="true">Design</a></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" href="/design/game-developer-2024-wrap-up-bryant-francis-top-10-games-of-the-year" data-discover="true">Game Developer 2024 Wrap-Up: Bryant Francis' top 10 games of the year</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" href="/design/game-developer-2024-wrap-up-bryant-francis-top-10-games-of-the-year" data-discover="true">Game Developer 2024 Wrap-Up: Bryant Francis' top 10 games of the year</a></div></div></div></div></div></div></div></div><div data-module="content-cards" class="ContentCards"><div class="ContentCards-CardsWrapper ContentCards-CardsWrapper_horizontal"><div class="ContentCards-Header ContentCards-Header_horizontal" data-testid="content-cards-header"><h3 class="ContentCards-Title" data-testid="contentCardsTitle">From Our Sponsors</h3><a class="ContentCards-Link" data-testid="content-card-link" href="/keyword/sponsor-resource-center" data-discover="true"><span class="ContentCards-LinkText" data-testid="contentCardsBreadcrumbsLinkTitle">LEARN MORE</span><span data-component="icon" data-name="ChevronRight" class="ContentCards-LinkIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='13'%20height='21'%20viewBox='0%200%2013%2021'%3e%3cpath%20id='Icon_material-keyboard-arrow-down'%20data-name='Icon%20material-keyboard-arrow-down'%20d='M2.467,13,10.5,4.965,18.533,13,21,10.526,10.5,0,0,10.526Z'%20transform='translate(13)%20rotate(90)'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></a></div><div class="ContentCards-Content ContentCards-Content_horizontal ContentCards-Content_none"><div class="ContentCards-ContentPreview ContentCards-ContentPreview_horizontal" data-testid="content-preview-horizontal"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a href="/production/collaboration-without-boundaries-virtuos-redraws-the-game-development-map" data-discover="true"><span class="HorizontalCard-ImageScreenReaderText"></span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt86260ffe6bba532d/67af93c864f859136a05fb12/Cover_without_title-_2x.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt86260ffe6bba532d/67af93c864f859136a05fb12/Cover_without_title-_2x.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="HorizontalCard-ContentWrapper"><div class="HorizontalCard-KeywordWrapper"><span data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_sponsoredContent HorizontalCard-Keyword">Sponsored Content</span></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" href="/production/collaboration-without-boundaries-virtuos-redraws-the-game-development-map" data-discover="true">Collaboration Without Boundaries: Virtuos Redraws the Game Development Map</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" href="/production/collaboration-without-boundaries-virtuos-redraws-the-game-development-map" data-discover="true">Collaboration Without Boundaries: Virtuos Redraws the Game Development Map</a></div><p class="HorizontalCard-Date" data-testid="horizontalCardDate">Feb 14, 2025</p></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_horizontal" data-testid="content-preview-horizontal"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a href="/art/lemon-sky-studios-bridging-tech-and-art-in-game-dev" data-discover="true"><span class="HorizontalCard-ImageScreenReaderText">Lemon Sky Studios HQ Lobby</span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blte27c26f10d0cce44/66bccec455cb94f58ddf41f1/Lemon_Sky_HQ_Office_-_Lobby_3.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blte27c26f10d0cce44/66bccec455cb94f58ddf41f1/Lemon_Sky_HQ_Office_-_Lobby_3.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="HorizontalCard-ContentWrapper"><div class="HorizontalCard-KeywordWrapper"><span data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_sponsoredContent HorizontalCard-Keyword">Sponsored Content</span></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" href="/art/lemon-sky-studios-bridging-tech-and-art-in-game-dev" data-discover="true">Lemon Sky Studios: Bridging Tech and Art in Game Dev</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" href="/art/lemon-sky-studios-bridging-tech-and-art-in-game-dev" data-discover="true">Lemon Sky Studios: Bridging Tech and Art in Game Dev</a></div><p class="HorizontalCard-Date" data-testid="horizontalCardDate">Aug 26, 2024</p></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_horizontal" data-testid="content-preview-horizontal"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a href="/business/live-service-developers-are-increasingly-looking-to-buy-rather-than-build" data-discover="true"><span class="HorizontalCard-ImageScreenReaderText"></span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt9580c2bfd5ca2040/66194b5cbf90240fa8f26e3c/Blog_Header_-_Omdia_x_AccelByte_Live_Service_Developers_-_830x467px_-_Mar24.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt9580c2bfd5ca2040/66194b5cbf90240fa8f26e3c/Blog_Header_-_Omdia_x_AccelByte_Live_Service_Developers_-_830x467px_-_Mar24.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="HorizontalCard-ContentWrapper"><div class="HorizontalCard-KeywordWrapper"><span data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_sponsoredContent HorizontalCard-Keyword">Sponsored Content</span></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" href="/business/live-service-developers-are-increasingly-looking-to-buy-rather-than-build" data-discover="true">Live service developers are increasingly looking to buy rather than build</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" href="/business/live-service-developers-are-increasingly-looking-to-buy-rather-than-build" data-discover="true">Live service developers are increasingly looking to buy rather than build</a></div><p class="HorizontalCard-Date" data-testid="horizontalCardDate">Apr 22, 2024</p></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_horizontal" data-testid="content-preview-horizontal"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a href="/game-platforms/lightspeed-studios-outlines-vision-for-future-of-game-development" data-discover="true"><span class="HorizontalCard-ImageScreenReaderText">LIGHTSPEED STUDIOS Vice President and head of Lightspeed LA, Steve C. Martin presents at GDC 2024</span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt098bdb12a3de843f/6616e27e1dfadc2983426235/2featuredimage.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt098bdb12a3de843f/6616e27e1dfadc2983426235/2featuredimage.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="HorizontalCard-ContentWrapper"><div class="HorizontalCard-KeywordWrapper"><span data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_sponsoredContent HorizontalCard-Keyword">Sponsored Content</span></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" href="/game-platforms/lightspeed-studios-outlines-vision-for-future-of-game-development" data-discover="true">LIGHTSPEED STUDIOS Outlines Vision for Future of Game Development</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" href="/game-platforms/lightspeed-studios-outlines-vision-for-future-of-game-development" data-discover="true">LIGHTSPEED STUDIOS Outlines Vision for Future of Game Development</a></div><p class="HorizontalCard-Date" data-testid="horizontalCardDate">Apr 15, 2024</p></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_horizontal" data-testid="content-preview-horizontal"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a href="/production/equal-access-for-all-learn-how-xsolla-helps-games-reach-more-players" data-discover="true"><span class="HorizontalCard-ImageScreenReaderText"></span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt69ca537c9b5bc149/65ef292f32eb75040a886910/xsollalogo.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt69ca537c9b5bc149/65ef292f32eb75040a886910/xsollalogo.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="HorizontalCard-ContentWrapper"><div class="HorizontalCard-KeywordWrapper"><span data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_sponsoredContent HorizontalCard-Keyword">Sponsored Content</span></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" href="/production/equal-access-for-all-learn-how-xsolla-helps-games-reach-more-players" data-discover="true">Equal access for all: Learn how Xsolla helps games reach more players</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" href="/production/equal-access-for-all-learn-how-xsolla-helps-games-reach-more-players" data-discover="true">Equal access for all: Learn how Xsolla helps games reach more players</a></div><p class="HorizontalCard-Date" data-testid="horizontalCardDate">Mar 11, 2024</p></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_horizontal" data-testid="content-preview-horizontal"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a href="/production/why-game-preservation-is-vital-and-how-technology-helps" data-discover="true"><span class="HorizontalCard-ImageScreenReaderText"></span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltacbeb2b8321b6164/65e9ef28f0712c040a6dcf8f/Header_GD.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltacbeb2b8321b6164/65e9ef28f0712c040a6dcf8f/Header_GD.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></a></div><div class="HorizontalCard-ContentWrapper"><div class="HorizontalCard-KeywordWrapper"><span data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_sponsoredContent HorizontalCard-Keyword">Sponsored Content</span></div><div class="HorizontalCard-TitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-default-title" href="/production/why-game-preservation-is-vital-and-how-technology-helps" data-discover="true">Why Game Preservation Is Vital--And How Technology Helps</a></div><div class="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-title" href="/production/why-game-preservation-is-vital-and-how-technology-helps" data-discover="true">Why Game Preservation Is Vital鈥擜nd How Technology Helps</a></div><p class="HorizontalCard-Date" data-testid="horizontalCardDate">Mar 8, 2024</p></div></div></div></div></div></div></div></div></div></section><footer data-module="footer" class="Footer"><div class="Footer-Background"></div><div data-testid="logo" class="Footer-LogoContainer Footer-LogoContainer_length_2"><a href="/" 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=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8d5417b628e6b04b/656f5ed8485fda040aba11a1/Game_Developer_Logo_RGB_1.png?width=700&auto=webp&quality=80&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="_blank" data-discover="true">Blogging Guidelines</a><a class="LinkSection-Link" rel="noreferrer" href="/podcasts" target="_blank" data-discover="true">Game Developer Podcast</a><a class="LinkSection-Link" target="_self" rel="noreferrer" href="/cdn-cgi/l/email-protection#97f9f2e0e4d7f0f6faf2f3f2e1f2fbf8e7f2e5b9f4f8fa">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="/about-game-developer" target="_blank" data-discover="true">About Us</a><a class="LinkSection-Link" target="_blank" rel="noreferrer" href="https://reg.gdconf.com/gamedeveloper-media-kit">Advertise With Game Developer</a><a class="LinkSection-Link" rel="noreferrer" href="/contact-game-developer" target="_blank" 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="nofollow" data-action-type="sign-up" data-name="subscribe-footer" href="https://gamedeveloper.tradepub.com/c/pubRD.mpl?secure=1&sr=pp&_t=pp:&qf=w_gamf01&ch=gdwebbutton%20" target="_blank"><span class="Button-ContentWrapper">Stay Updated</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="_blank" data-discover="true"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="RSS" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_rss" style="mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Layer_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20310%20310'%20style='enable-background:new%200%200%20310%20310;'%20xml:space='preserve'%3e%3cg%20id='XMLID_788_'%3e%3cpath%20id='XMLID_789_'%20d='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'/%3e%3cpath%20id='XMLID_790_'%20d='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'/%3e%3cpath%20id='XMLID_791_'%20d='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'/%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");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Layer_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20310%20310'%20style='enable-background:new%200%200%20310%20310;'%20xml:space='preserve'%3e%3cg%20id='XMLID_788_'%3e%3cpath%20id='XMLID_789_'%20d='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'/%3e%3cpath%20id='XMLID_790_'%20d='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'/%3e%3cpath%20id='XMLID_791_'%20d='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'/%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");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></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" data-name="Twitter" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_twitter" style="mask-image:url("data:image/svg+xml,%3csvg%20id='Capa_1'%20enable-background='new%200%200%201226.37%201226.37'%20viewBox='0%200%201226.37%201226.37'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='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'/%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");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20id='Capa_1'%20enable-background='new%200%200%201226.37%201226.37'%20viewBox='0%200%201226.37%201226.37'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='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'/%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");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></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" data-name="Linkedin" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_linkedin" style="mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Capa_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20409.6%20409.6'%20style='enable-background:new%200%200%20409.6%20409.6;'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cpath%20d='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'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3crect%20x='102.4'%20y='170.65'%20width='34.135'%20height='136.535'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3ccircle%20cx='119.45'%20cy='128'%20r='25.6'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d='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'/%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");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Capa_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20409.6%20409.6'%20style='enable-background:new%200%200%20409.6%20409.6;'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cpath%20d='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'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3crect%20x='102.4'%20y='170.65'%20width='34.135'%20height='136.535'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3ccircle%20cx='119.45'%20cy='128'%20r='25.6'/%3e%3c/g%3e%3c/g%3e%3cg%3e%3cg%3e%3cpath%20d='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'/%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");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></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" data-name="Facebook" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_facebook" style="mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Capa_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20409.6%20409.6'%20style='enable-background:new%200%200%20409.6%20409.6;'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cpath%20d='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'/%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");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20version='1.1'%20id='Capa_1'%20fill='currentColor'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20x='0px'%20y='0px'%20viewBox='0%200%20409.6%20409.6'%20style='enable-background:new%200%200%20409.6%20409.6;'%20xml:space='preserve'%3e%3cg%3e%3cg%3e%3cpath%20d='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'/%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");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span></span></a><a target="_blank" rel="noreferrer" aria-label="GoogleNews" href="https://news.google.com/publications/CAAqBwgKML7GrQswy9HFAw?ceid=US:en&oc=3&hl=en-US&gl=US"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_layout"><span data-component="icon" data-name="GoogleNews" class="SocialShare-Icon SocialShare-Icon_variant_layout SocialShare-Icon_type_googleNews" style="mask-image:url("data:image/svg+xml,%3csvg%20id='Capa_1'%20enable-background='new%200%200%20512.288%20512.288'%20height='512'%20viewBox='0%200%20512.288%20512.288'%20width='512'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%3e%3cpath%20d='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'/%3e%3cpath%20d='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'/%3e%3cpath%20d='m317.644%20274.125h82v30h-82z'/%3e%3cpath%20d='m317.644%20334.125h82v30h-82z'/%3e%3cpath%20d='m317.644%20394.125h82v30h-82z'/%3e%3c/g%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20id='Capa_1'%20enable-background='new%200%200%20512.288%20512.288'%20height='512'%20viewBox='0%200%20512.288%20512.288'%20width='512'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%3e%3cpath%20d='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'/%3e%3cpath%20d='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'/%3e%3cpath%20d='m317.644%20274.125h82v30h-82z'/%3e%3cpath%20d='m317.644%20334.125h82v30h-82z'/%3e%3cpath%20d='m317.644%20394.125h82v30h-82z'/%3e%3c/g%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></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=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1363a10229efc062/656db9e79761ff040a595688/MicrosoftTeams-image_(3).png?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="GDC Vault Logo"/></a><a class="BrandSection-Link" target="_blank" rel="noreferrer" aria-label="Game Developer Job Board" title="Link to Game Developer Job Board" href="https://jobs.gamasutra.com"><img title="Game Developer Job Board" data-component="image" class="BrandSection-LinkImage" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1bbfb7520e56ef03/65250cc0c5c21b80cfb55335/Game_Developer_Jobs_Logo_white.png?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1bbfb7520e56ef03/65250cc0c5c21b80cfb55335/Game_Developer_Jobs_Logo_white.png?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Game Developer Job Board"/></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/65250c42e4f4b80857d3c9cb/gdc_logo_(1).png?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt431090e6027a0c17/65250c42e4f4b80857d3c9cb/gdc_logo_(1).png?width=700&auto=webp&quality=80&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=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt789019463bae70bf/6523eb443c9b45aa9da4f4b2/logo_omdia_white.png?width=700&auto=webp&quality=80&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" 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=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt6a17e2ccd9083672/674edfd84301993a15a0e9e1/Informa_Logo_OneLine_Graduated_White_RGB.png?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Informa"/></a><div class="CopyrightsSection-TextWrapper"><p data-testid="copyrightText" class="CopyrightsSection-Text"><span class="CopyrightsSection-TextBlock"></span>Copyright 漏 2025. This website is owned and operated by Informa TechTarget, part of a global network that informs, influences and connects the world鈥檚 technology buyers and sellers. All copyright resides with them. Informa PLC鈥檚 registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. TechTarget, Inc.鈥檚 registered office is 275 Grove St. Newton, MA 02466.</p><div data-testid="copyrightLinks" class="CopyrightsSection-LinksWrapper CopyrightsSection-LinksWrapper_hasLinks"><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://www.informatech.com/">Home<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" href="/cookie-policy" target="_blank" data-discover="true">Cookie Policy<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://www.techtarget.com/privacy-policy/">Privacy<span class="CopyrightsSection-LinkSeparator">|</span></a><a class="CopyrightsSection-Link" rel="noreferrer" target="_blank" href="https://www.informatech.com/terms-and-conditions/">Terms of Use</a></div></div></div></div></footer></div></div></main><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>((storageKey2, restoreKey) => { if (!window.history.state || !window.history.state.key) { let key = Math.random().toString(32).slice(2); window.history.replaceState({ key }, ""); } try { let positions = JSON.parse(sessionStorage.getItem(storageKey2) || "{}"); let storedY = positions[restoreKey || window.history.state.key]; if (typeof storedY === "number") { window.scrollTo(0, storedY); } } catch (error) { console.error(error); sessionStorage.removeItem(storageKey2); } })("react-router-scroll-positions", null)</script><script>window.__reactRouterContext = {"basename":"/","future":{"unstable_optimizeDeps":false},"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-CMgB3kEF.js"; import * as route1 from "/assets/_index-CY2kWbbF.js"; window.__reactRouterManifest = { "entry": { "module": "/assets/entry.client-BD0gr1j2.js", "imports": [ "/assets/chunk-K6AXKMTT-CFxckDQd.js", "/assets/index-KvFBagxD.js" ], "css": [] }, "routes": { "root": { "id": "root", "path": "", "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/root-CMgB3kEF.js", "imports": [ "/assets/chunk-K6AXKMTT-CFxckDQd.js", "/assets/index-KvFBagxD.js", "/assets/with-props-BDipnzPk.js", "/assets/gtm-Cfr17zZ2.js", "/assets/contentPreview-PDrWzgnB.js", "/assets/_-d8tDFFIp.js", "/assets/useArticleProps-BFMiF0cj.js", "/assets/provider-2eXNRXRJ.js", "/assets/newsletterSignupPromo-DQJ3oE2b.js", "/assets/iirisRecommendation-DJSRaa5a.js", "/assets/socialShare-TkawqgR_.js", "/assets/link-CaYNVeAz.js", "/assets/button-D1ddzMB9.js", "/assets/util-Bs87kmMU.js", "/assets/searchBar-fudlkoTs.js", "/assets/useSearchBar-bQYUZDbc.js", "/assets/navigation-CTPR0xcZ.js", "/assets/redirection-CYnJkDek.js", "/assets/meta-L0MNvQHo.js", "/assets/form-B94n5omu.js", "/assets/loadingIndicator-6bCghogW.js" ], "css": [] }, "routes/_index": { "id": "routes/_index", "parentId": "root", "index": true, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_index-CY2kWbbF.js", "imports": [ "/assets/with-props-BDipnzPk.js", "/assets/chunk-K6AXKMTT-CFxckDQd.js", "/assets/_-d8tDFFIp.js", "/assets/gtm-Cfr17zZ2.js", "/assets/useArticleProps-BFMiF0cj.js", "/assets/moduleSection-CvWuIxBA.js", "/assets/contentDomain.generated-OA12p8lf.js", "/assets/useStorage-BxG0xmea.js", "/assets/meta-L0MNvQHo.js", "/assets/link-CaYNVeAz.js", "/assets/index-KvFBagxD.js", "/assets/contentCards-DPjU4Jk5.js", "/assets/contentList-DPj2iTbm.js", "/assets/contentPreview-PDrWzgnB.js", "/assets/weatherHomepage-Dkdiwep8.js", "/assets/button-D1ddzMB9.js", "/assets/socialShare-TkawqgR_.js", "/assets/constants-BFi_MVLe.js", "/assets/changeLocationBar-CA8Gmgoe.js", "/assets/form-B94n5omu.js", "/assets/loadingIndicator-6bCghogW.js", "/assets/commodityPrices-Dp7A16P5.js", "/assets/useGetDynamicDataModule-CuTq5TXb.js", "/assets/newsletterSignupPromo-DQJ3oE2b.js", "/assets/toNumber-0AM5n0GZ.js", "/assets/resources-LqF-uvn-.js" ], "css": [] } }, "url": "/assets/manifest-e02f8305.js", "version": "e02f8305" }; window.__reactRouterRouteModules = {"root":route0,"routes/_index":route1}; import("/assets/entry.client-BD0gr1j2.js");</script><!--$--><script>window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_1387\":-5,\"_1388\":-5},\"loaderData\",{\"_3\":4,\"_760\":761},\"root\",{\"_5\":6,\"_7\":8,\"_9\":10,\"_11\":12,\"_13\":14,\"_15\":16,\"_141\":142,\"_147\":-7,\"_148\":140,\"_149\":150,\"_160\":161,\"_166\":-7,\"_167\":168,\"_179\":180,\"_181\":182,\"_200\":201,\"_642\":643,\"_644\":-7,\"_645\":646,\"_659\":660,\"_680\":681},\"href\",\"http://www.gamedeveloper.com/\",\"brand\",\"gamedeveloper\",\"domainUrl\",\"https://www.gamedeveloper.com\",\"authenticationStatus\",\"anonymous\",\"siteName\",\"Game Developer\",\"ads\",{\"_17\":18,\"_19\":20,\"_21\":22,\"_139\":140},\"networkId\",3834,\"parentAdUnit\",\"gamasutra.home\",\"enabledAds\",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],\"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\",\"100_1v\",\"100_2v\",\"100_3v\",\"100_4v\",\"100_5v\",\"100_6v\",\"100_7v\",\"100_8v\",\"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_1v\",\"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\",\"checkClientIP\",false,\"authConfig\",{\"_143\":140,\"_144\":-7,\"_145\":-7,\"_146\":140},\"enabled\",\"authenticationConfigId\",\"standaloneRegistrationPage\",\"disableCaptcha\",\"vwo\",\"isDctsTurnOn\",\"cookieBanner\",{\"_151\":152,\"_157\":140,\"_158\":159},\"props\",{\"_153\":154,\"_155\":156},\"src\",\"\",\"siteId\",\"8aaa0413-1bf0-4c5f-b2b7-20f59225831b\",\"transcend\",\"oneTrust\",true,\"gtmIds\",{\"_162\":163,\"_164\":165},\"primary\",\"GTM-5523ZCM\",\"secondary\",\"GTM-KSPX23J\",\"pageContent\",\"ui\",{\"_7\":8,\"_169\":170,\"_171\":172},\"theme\",\"theme2\",\"font\",{\"_162\":173,\"_164\":178},{\"_174\":175,\"_176\":177},\"name\",\"Poppins\",\"url\",\"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\",{\"_174\":175,\"_176\":177},\"environment\",\"prod\",\"featureToggles\",{\"_183\":140,\"_184\":140,\"_185\":159,\"_186\":140,\"_187\":140,\"_188\":140,\"_189\":140,\"_190\":159,\"_191\":140,\"_192\":140,\"_193\":194,\"_195\":140,\"_196\":159,\"_197\":140,\"_198\":159,\"_199\":159},\"elnNewsletter\",\"elnWithoutNewsletter\",\"iirisAuthentication\",\"subBrand\",\"useSettingsRedirectAPIVersion1\",\"gatingEnabled\",\"iirisRecommendationDisabled\",\"iasPetEnabled\",\"bridgedMediaEnabled\",\"ecommerceEnabled\",\"iirisRecommendationVer\",\"version4\",\"weather3MonthForecastEnabled\",\"oneTrustEnabled\",\"transcendEnabled\",\"useTechInformaBar\",\"cloudflareCachingEnabled\",\"layout\",{\"_202\":203,\"_220\":221,\"_244\":245,\"_463\":464,\"_548\":549,\"_555\":556,\"_641\":159},\"socialLinks\",[204,208,211,214,217],{\"_205\":206,\"_176\":207},\"type\",\"RSS\",\"/rss.xml\",{\"_205\":209,\"_176\":210},\"Twitter\",\"https://twitter.com/gamedevdotcom/\",{\"_205\":212,\"_176\":213},\"Linkedin\",\"https://www.linkedin.com/company/gamedeveloperofficial\",{\"_205\":215,\"_176\":216},\"Facebook\",\"https://www.facebook.com/GameDeveloperOfficial\",{\"_205\":218,\"_176\":219},\"GoogleNews\",\"https://news.google.com/publications/CAAqBwgKML7GrQswy9HFAw?ceid=US:en\u0026oc=3\u0026hl=en-US\u0026gl=US\",\"informaBar\",{\"_143\":159,\"_222\":223,\"_241\":242},\"leftSection\",{\"_224\":225,\"_226\":227},\"description\",\"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.\",\"subMenu\",[228,232,235,238],{\"_229\":230,\"_176\":231},\"title\",\"Informa PLC\",\"https://www.informa.com/\",{\"_229\":233,\"_176\":234},\"ABOUT US\",\"https://www.informa.com/about-us/\",{\"_229\":236,\"_176\":237},\"INVESTOR RELATIONS\",\"https://www.informa.com/investors/\",{\"_229\":239,\"_176\":240},\"TALENT\",\"https://www.informa.com/talent/\",\"rightSection\",{\"_224\":243},\"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.\",\"nav\",{\"_246\":247,\"_449\":450},\"mainMenuItems\",[248,321,326,332,338,343,348,392],{\"_229\":249,\"_176\":250,\"_251\":154,\"_252\":250,\"_253\":159,\"_226\":254,\"_266\":267},\"Nintendo Switch 2\",\"/keyword/nintendo-switch-2\",\"seeAllLink\",\"seeAllLinkUrl\",\"hasSubMenu\",[255,258,261,263],{\"_229\":256,\"_176\":257},\"Switch 2 - Price \u0026 Tech Info\",\"/console/-redesigned-from-the-ground-up-the-nintendo-switch-2-will-launch-on-june-5\",{\"_229\":259,\"_176\":260},\"Switch 2 - Hands-On Impressions\",\"/console/nintendo-switch-2-shows-nintendo-s-strategy-for-a-social-future\",{\"_229\":262,\"_176\":250},\"Switch 2 - More Articles\",{\"_229\":264,\"_176\":265},\"More Trending Stories\",\"/keyword/top-stories\",\"recentContents\",[268,305],{\"_269\":270,\"_274\":275,\"_276\":275,\"_277\":278,\"_279\":280,\"_281\":154,\"_282\":283,\"_284\":154,\"_285\":286,\"_287\":288,\"_289\":290,\"_291\":292,\"_299\":300,\"_301\":302,\"_303\":304},\"thumbnail\",{\"_153\":271,\"_272\":273},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta8b354162c3d5a92/67f00d2efab4ef3b774e32e2/Switch_2_Header.png\",\"alt\",\"Promotional artwork of the Switch 2\",\"articleName\",\"Nintendo delays Switch 2 pre-orders in the U.S. over Trump tariffs\",\"mobileHeadline\",\"articleSummary\",\"The Japanese company has explained it must 'assess the potential impact of tariffs and evolving market conditions.'\",\"articleUrl\",\"/business/nintendo-scraps-switch-2-pre-orders-in-the-u-s-over-trump-tariffs\",\"listPageUrl\",\"date\",\"Apr 4, 2025\",\"webinarStartTime\",\"categoryName\",\"Business\",\"categoryUrl\",\"/business\",\"contentType\",\"Article\",\"contributors\",[293],{\"_174\":294,\"_295\":296,\"_297\":298},\"Chris Kerr\",\"link\",\"/author/chris-kerr\",\"avatar\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1c7a117d71555292/650efbcad3423169a8871059/chris_kerr_headshot.jpg\",\"timeRead\",2,\"variant\",\"card-vertical\",\"layoutVariant\",\"vertical\",{\"_269\":306,\"_274\":309,\"_276\":309,\"_277\":310,\"_279\":311,\"_281\":154,\"_282\":312,\"_284\":154,\"_285\":313,\"_287\":314,\"_289\":290,\"_291\":315,\"_299\":320,\"_301\":302,\"_303\":304},{\"_153\":307,\"_272\":308},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt37b8c730feb4733d/67eea82b3d46cdfb230d1306/samusmouse.png\",\"Samus looks down at a player using the Nintendo Switch 2 Joy-Con as a mouse.\",\"Design opportunities for devs from our time trying out the Nintendo Switch 2\",\"Nintendo Switch 2's mouse controls feel incredible. Dragging two of them back and forth at once across a table does not.\",\"/design/design-opportunities-for-devs-from-our-time-trying-out-the-nintendo-switch-2\",\"Apr 3, 2025\",\"Design\",\"/design\",[316],{\"_174\":317,\"_295\":318,\"_297\":319},\"Bryant Francis\",\"/author/bryant-francis\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt862ca995183d2fdf/650efe5138b21120135ae4ac/bryantcropped.jpg\",13,{\"_229\":322,\"_176\":323,\"_251\":154,\"_252\":323,\"_253\":140,\"_226\":324,\"_266\":325},\"News\",\"/latest-news\",[],[],{\"_229\":327,\"_176\":328,\"_251\":329,\"_252\":328,\"_253\":140,\"_226\":330,\"_266\":331},\"Deep Dives\",\"/latest-case-studies\",\"Read More\",[],[],{\"_229\":333,\"_176\":334,\"_251\":335,\"_252\":334,\"_253\":140,\"_226\":336,\"_266\":337},\"Mobile\",\"/game-platforms/mobile\",\"Mobile Game Development\",[],[],{\"_229\":339,\"_176\":314,\"_251\":340,\"_252\":314,\"_253\":140,\"_226\":341,\"_266\":342},\"Game Design\",\"See All\",[],[],{\"_229\":344,\"_176\":345,\"_251\":329,\"_252\":345,\"_253\":140,\"_226\":346,\"_266\":347},\"Programming\",\"/programming\",[],[],{\"_229\":349,\"_176\":350,\"_251\":351,\"_252\":350,\"_253\":159,\"_226\":352,\"_266\":365},\"Developer Blogs\",\"/keyword/featured-blogs\",\"Read Featured Blogs\",[353,356,359,362],{\"_229\":354,\"_176\":355},\"Browse Latest Blogs\",\"/program/blogs\",{\"_229\":357,\"_176\":358},\"Submit Your Blog Post\",\"https://reg.gdconf.com/blog-submission\",{\"_229\":360,\"_176\":361},\"Frequently Asked Questions\",\"/blogging-frequently-asked-questions\",{\"_229\":363,\"_176\":364},\"Blogging Rules and Guidelines\",\"/blogging-guidelines\",[366,379],{\"_269\":367,\"_274\":370,\"_276\":370,\"_277\":371,\"_279\":372,\"_281\":154,\"_282\":373,\"_284\":154,\"_285\":374,\"_287\":375,\"_289\":290,\"_291\":376,\"_299\":378,\"_301\":302,\"_303\":304},{\"_153\":368,\"_272\":369},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta6d198af8a72d72f/66bb73fe91a77dfd342db170/tacticalbreachwizardsfeatured.jpg\",\"Zan and Jen, two characters from Tactical Breach Wizards, strike a pose.\",\"The director of Tactical Breach Wizards is right: animate words, not letters!\",\"Animated words and sound design can engage players in a different way than voice acting.\",\"/art/the-creator-of-tactical-breach-wizards-is-right-animate-words-not-letters-\",\"Mar 25, 2025\",\"Art\",\"/art\",[377],{\"_174\":317,\"_295\":318,\"_297\":319},4,{\"_269\":380,\"_274\":383,\"_276\":383,\"_277\":384,\"_279\":385,\"_281\":154,\"_282\":386,\"_284\":154,\"_285\":313,\"_287\":314,\"_289\":290,\"_291\":387,\"_299\":391,\"_301\":302,\"_303\":304},{\"_153\":381,\"_272\":382},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt6df81c9c42a7f530/67d02e051b33471d342904e4/OML2.png\",\"Game director playing Ghostrunner 2 at desk\",\"Feedback and experimentation: the foundations of Ghostrunner 2\",\"Ghostrunner 2 was a challenge, and not just for players. One More Level shares their journey of crafting a sequel to a successful game.\",\"/design/ghostrunner-2-deep-dive\",\"Mar 10, 2025\",[388],{\"_174\":389,\"_295\":390,\"_297\":154},\"Rados艂aw Ratusznik\",\"/author/rados-aw-ratusznik\",9,{\"_229\":393,\"_176\":394,\"_251\":395,\"_252\":394,\"_253\":159,\"_226\":396,\"_266\":440},\"More\",\"/latest-commentary\",\"Read More: Business\",[397,400,403,405,408,411,414,415,418,419,420,423,424,427,430,433,436,437],{\"_229\":398,\"_176\":399},\"Interviews\",\"/latest-interviews\",{\"_229\":401,\"_176\":402},\"Q\u0026As\",\"/keyword/q-a-s\",{\"_229\":327,\"_176\":404},\"/keyword/deep-dives\",{\"_229\":406,\"_176\":407},\"Postmortems\",\"/keyword/postmortems\",{\"_229\":409,\"_176\":410},\"Culture\",\"/keyword/culture\",{\"_229\":412,\"_176\":413},\"Unionization\",\"/keyword/unionization\",{\"_229\":286,\"_176\":288},{\"_229\":416,\"_176\":417},\"Marketing\",\"/marketing\",{\"_229\":313,\"_176\":314},{\"_229\":344,\"_176\":345},{\"_229\":421,\"_176\":422},\"Production\",\"/production\",{\"_229\":374,\"_176\":375},{\"_229\":425,\"_176\":426},\"Audio\",\"/audio\",{\"_229\":428,\"_176\":429},\"PC\",\"/game-platforms/pc\",{\"_229\":431,\"_176\":432},\"Steam Deck\",\"/keyword/steam-deck\",{\"_229\":434,\"_176\":435},\"Console\",\"/game-platforms/console\",{\"_229\":333,\"_176\":334},{\"_229\":438,\"_176\":439},\"Extended Reality\",\"/game-platforms/extended-reality\",[441,445],{\"_269\":442,\"_274\":370,\"_276\":370,\"_277\":371,\"_279\":372,\"_281\":154,\"_282\":373,\"_284\":154,\"_285\":374,\"_287\":375,\"_289\":290,\"_291\":443,\"_299\":378,\"_301\":302,\"_303\":304},{\"_153\":368,\"_272\":369},[444],{\"_174\":317,\"_295\":318,\"_297\":319},{\"_269\":446,\"_274\":383,\"_276\":383,\"_277\":384,\"_279\":385,\"_281\":154,\"_282\":386,\"_284\":154,\"_285\":313,\"_287\":314,\"_289\":290,\"_291\":447,\"_299\":391,\"_301\":302,\"_303\":304},{\"_153\":381,\"_272\":382},[448],{\"_174\":389,\"_295\":390,\"_297\":154},\"secondaryMenu\",[451,454,457,460],{\"_229\":452,\"_176\":453},\"Game Market Research\",\"https://omdia.tech.informa.com/advance-your-business/media-and-entertainment/games-spotlight-service\",{\"_229\":455,\"_176\":456},\"GDC Vault\",\"https://www.gdcvault.com/\",{\"_229\":458,\"_176\":459},\"GDC\",\"https://gdconf.com/\",{\"_229\":461,\"_176\":462},\"Advertise With Game Developer\",\"https://reg.gdconf.com/gamedeveloper-media-kit\",\"megaMenu\",{\"_465\":466,\"_509\":510,\"_540\":541},\"largeMenu\",[467,473,475,477,479,481,483,489],{\"_229\":249,\"_176\":250,\"_226\":468,\"_251\":154,\"_252\":250},[469,470,471,472],{\"_229\":256,\"_176\":257},{\"_229\":259,\"_176\":260},{\"_229\":262,\"_176\":250},{\"_229\":264,\"_176\":265},{\"_229\":322,\"_176\":323,\"_226\":474,\"_251\":154,\"_252\":323},[],{\"_229\":327,\"_176\":328,\"_226\":476,\"_251\":329,\"_252\":328},[],{\"_229\":333,\"_176\":334,\"_226\":478,\"_251\":335,\"_252\":334},[],{\"_229\":339,\"_176\":314,\"_226\":480,\"_251\":340,\"_252\":314},[],{\"_229\":344,\"_176\":345,\"_226\":482,\"_251\":329,\"_252\":345},[],{\"_229\":349,\"_176\":350,\"_226\":484,\"_251\":351,\"_252\":350},[485,486,487,488],{\"_229\":354,\"_176\":355},{\"_229\":357,\"_176\":358},{\"_229\":360,\"_176\":361},{\"_229\":363,\"_176\":364},{\"_229\":393,\"_176\":394,\"_226\":490,\"_251\":395,\"_252\":394},[491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508],{\"_229\":398,\"_176\":399},{\"_229\":401,\"_176\":402},{\"_229\":327,\"_176\":404},{\"_229\":406,\"_176\":407},{\"_229\":409,\"_176\":410},{\"_229\":412,\"_176\":413},{\"_229\":286,\"_176\":288},{\"_229\":416,\"_176\":417},{\"_229\":313,\"_176\":314},{\"_229\":344,\"_176\":345},{\"_229\":421,\"_176\":422},{\"_229\":374,\"_176\":375},{\"_229\":425,\"_176\":426},{\"_229\":428,\"_176\":429},{\"_229\":431,\"_176\":432},{\"_229\":434,\"_176\":435},{\"_229\":333,\"_176\":334},{\"_229\":438,\"_176\":439},\"smallMenu\",[511,531,535],{\"_229\":393,\"_176\":154,\"_226\":512},[513,516,519,522,525,528],{\"_229\":514,\"_176\":515},\"Sponsored Articles\",\"/keyword/sponsor-resource-center\",{\"_229\":517,\"_176\":518},\"Podcasts\",\"/podcasts\",{\"_229\":520,\"_176\":521},\"Webinars \u0026 Virtual Events\",\"/webinars\",{\"_229\":523,\"_176\":524},\"Press Releases\",\"/press-release\",{\"_229\":526,\"_176\":527},\"Resource Library\",\"/resources\",{\"_229\":529,\"_176\":530},\"GCG Status Update\",\"/gcg-status-update\",{\"_229\":532,\"_176\":154,\"_226\":533},\"Events\",[534],{\"_229\":458,\"_176\":459},{\"_229\":536,\"_176\":154,\"_226\":537},\"Advertise\",[538],{\"_229\":539,\"_176\":462},\"Advertise With Us\",\"sideNavSections\",[542],{\"_229\":543,\"_176\":154,\"_226\":544,\"_251\":154,\"_252\":154},\"Communicate\",[545],{\"_229\":546,\"_176\":547},\"Contact Us\",\"/contact-game-developer\",\"navBase\",{\"_550\":551},\"logo\",{\"_176\":552,\"_553\":554},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8d5417b628e6b04b/656f5ed8485fda040aba11a1/Game_Developer_Logo_RGB_1.png\",\"altText\",\"Game Developer Logo\",\"footer\",{\"_550\":557,\"_558\":559,\"_595\":596,\"_615\":616},{\"_176\":552,\"_553\":554},\"linkSections\",[560,583],{\"_561\":562,\"_229\":581,\"_205\":582},\"links\",[563,570,574,577],{\"_564\":565,\"_568\":159,\"_229\":569,\"_176\":358},\"image\",{\"_553\":566,\"_176\":567},\"Placeholder image\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd1cdb5ad637f7f4e/651d415bd9bb870df1310c25/placeholder.png\",\"openInNewTab\",\"Blog with Game Developer\",{\"_564\":571,\"_568\":159,\"_229\":573,\"_176\":364},{\"_553\":572,\"_176\":567},\"placeholder image\",\"Blogging Guidelines\",{\"_564\":575,\"_568\":159,\"_229\":576,\"_176\":518},{\"_553\":572,\"_176\":567},\"Game Developer Podcast\",{\"_564\":578,\"_568\":159,\"_229\":579,\"_176\":580},{\"_553\":572,\"_176\":567},\"Submit a Tip\",\"mailto:news@gamedeveloper.com\",\"More from GD\",\"1\",{\"_561\":584,\"_229\":594,\"_205\":582},[585,590,592],{\"_564\":586,\"_568\":159,\"_229\":588,\"_176\":589},{\"_553\":587,\"_176\":567},\"placeholder\",\"About Us\",\"/about-game-developer\",{\"_564\":591,\"_568\":159,\"_229\":461,\"_176\":462},{\"_553\":587,\"_176\":567},{\"_564\":593,\"_568\":159,\"_229\":546,\"_176\":547},{\"_553\":587,\"_176\":567},\"Connect\",\"brandLinks\",[597,601,606,610],{\"_564\":598,\"_568\":159,\"_229\":455,\"_176\":456},{\"_553\":599,\"_176\":600},\"GDC Vault Logo\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1363a10229efc062/656db9e79761ff040a595688/MicrosoftTeams-image_(3).png\",{\"_564\":602,\"_568\":159,\"_229\":603,\"_176\":605},{\"_553\":603,\"_176\":604},\"Game Developer Job Board\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1bbfb7520e56ef03/65250cc0c5c21b80cfb55335/Game_Developer_Jobs_Logo_white.png\",\"https://jobs.gamasutra.com\",{\"_564\":607,\"_568\":159,\"_229\":458,\"_176\":609},{\"_553\":458,\"_176\":608},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt431090e6027a0c17/65250c42e4f4b80857d3c9cb/gdc_logo_(1).png\",\"https://www.gdconf.com\",{\"_564\":611,\"_568\":159,\"_229\":612,\"_176\":614},{\"_553\":612,\"_176\":613},\"Omdia\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt789019463bae70bf/6523eb443c9b45aa9da4f4b2/logo_omdia_white.png\",\"https://www.omdia.com\",\"copyright\",{\"_617\":618,\"_561\":623,\"_229\":640},\"businessUnit\",{\"_176\":619,\"_174\":620,\"_621\":622},\"https://www.informa.com\",\"Informa\",\"logoUrl\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt6a17e2ccd9083672/674edfd84301993a15a0e9e1/Informa_Logo_OneLine_Graduated_White_RGB.png\",[624,628,632,636],{\"_564\":625,\"_568\":159,\"_229\":626,\"_176\":627},{\"_553\":626,\"_176\":627},\"Home\",\"https://www.informatech.com/\",{\"_564\":629,\"_568\":159,\"_229\":630,\"_176\":631},{\"_553\":630,\"_176\":631},\"Cookie Policy\",\"/cookie-policy\",{\"_564\":633,\"_568\":159,\"_229\":634,\"_176\":635},{\"_553\":634,\"_176\":635},\"Privacy\",\"https://www.techtarget.com/privacy-policy/\",{\"_564\":637,\"_568\":159,\"_229\":638,\"_176\":639},{\"_553\":638,\"_176\":639},\"Terms of Use\",\"https://www.informatech.com/terms-and-conditions/\",\". This website is owned and operated by Informa TechTarget, part of a global network that informs, influences and connects the world鈥檚 technology buyers and sellers. All copyright resides with them. Informa PLC鈥檚 registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. TechTarget, Inc.鈥檚 registered office is 275 Grove St. Newton, MA 02466.\",\"isSponsorBarEnabled\",\"newRelicJs\",\"window.NREUM||(NREUM={});NREUM.init={distributed_tracing:{enabled:true},privacy:{cookies_enabled:true},ajax:{deny_list:[\\\"bam.eu01.nr-data.net\\\"]}};\\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.286.0.min.js.LICENSE.txt */\\n(()=\u003e{var e,t,r={8122:(e,t,r)=\u003e{\\\"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)),o=0===Object.keys(r).length?e:r;for(let a in o)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]])):\\\"object\\\"==typeof e[a]\u0026\u0026\\\"object\\\"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{Vp:()=\u003ec,fn:()=\u003es,x1:()=\u003eu});var n=r(384),i=r(8122);const o={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},a={};function s(e){try{const t=c(e);return!!t.licenseKey\u0026\u0026!!t.errorBeacon\u0026\u0026!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error(\\\"All info objects require an agent identifier!\\\");if(!a[e])throw new Error(\\\"Info for \\\".concat(e,\\\" was never set\\\"));return a[e]}function u(e,t){if(!e)throw new Error(\\\"All info objects require an agent identifier!\\\");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r\u0026\u0026(r.info=a[e])}},9417:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{D0:()=\u003eh,gD:()=\u003eg,xN:()=\u003ep});var n=r(3333);const i=e=\u003e{if(!e||\\\"string\\\"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const u=\\\"[data-nr-mask]\\\",d=()=\u003e{const e={feature_flags:[],experimental:{marks:!1,measures:!1,resources:!1},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},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:{get capture_marks(){return e.feature_flags.includes(n.$v.MARKS)||e.experimental.marks},set capture_marks(t){e.experimental.marks=t},get capture_measures(){return e.feature_flags.includes(n.$v.MEASURES)||e.experimental.measures},set capture_measures(t){e.experimental.measures=t},capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(n.$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:o.wk,inactiveMs:o.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){i(t)?e.mask_selector=\\\"\\\".concat(t,\\\",\\\").concat(u):\\\"\\\"===t||null===t?e.mask_selector=u:(0,a.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){i(t)?e.block_selector+=\\\",\\\".concat(t):\\\"\\\"!==t\u0026\u0026(0,a.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,a.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},spa:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:[\\\"id\\\",\\\"className\\\",\\\"tagName\\\",\\\"type\\\"]}}},l={},f=\\\"All configuration objects require an agent identifier!\\\";function h(e){if(!e)throw new Error(f);if(!l[e])throw new Error(\\\"Configuration for \\\".concat(e,\\\" was never set\\\"));return l[e]}function p(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,d());const r=(0,s.nY)(e);r\u0026\u0026(r.init=l[e])}function g(e,t){if(!e)throw new Error(f);var r=h(e);if(r){for(var n=t.split(\\\".\\\"),i=0;i\u003cn.length-1;i++)if(\\\"object\\\"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},5603:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{a:()=\u003ec,o:()=\u003es});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error(\\\"All loader-config objects require an agent identifier!\\\");if(!a[e])throw new Error(\\\"LoaderConfig for \\\".concat(e,\\\" was never set\\\"));return a[e]}function c(e,t){if(!e)throw new Error(\\\"All loader-config objects require an agent identifier!\\\");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r\u0026\u0026(r.loader_config=a[e])}},3371:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{V:()=\u003ef,f:()=\u003el});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0,harvester:void 0},d={};function l(e){if(!e)throw new Error(\\\"All runtime objects require an agent identifier!\\\");if(!d[e])throw new Error(\\\"Runtime for \\\".concat(e,\\\" was never set\\\"));return d[e]}function f(e,t){if(!e)throw new Error(\\\"All runtime objects require an agent identifier!\\\");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],\\\"harvestCount\\\")||Object.defineProperty(d[e],\\\"harvestCount\\\",{get:()=\u003e++s});const r=(0,i.nY)(e);r\u0026\u0026(r.runtime=d[e])}},9324:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{F3:()=\u003ei,Xs:()=\u003eo,Yq:()=\u003ea,xv:()=\u003en});const n=\\\"1.286.0\\\",i=\\\"PROD\\\",o=\\\"CDN\\\",a=\\\"^2.0.0-alpha.18\\\"},6154:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{A4:()=\u003es,OF:()=\u003ed,RI:()=\u003ei,WN:()=\u003eh,bv:()=\u003eo,gm:()=\u003ea,lR:()=\u003ef,m:()=\u003eu,mw:()=\u003ec,sb:()=\u003el});var n=r(1863);const i=\\\"undefined\\\"!=typeof window\u0026\u0026!!window.document,o=\\\"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),s=\\\"complete\\\"===a?.document?.readyState,c=Boolean(\\\"hidden\\\"===a?.document?.visibilityState),u=\\\"\\\"+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),l=d\u0026\u0026\\\"undefined\\\"==typeof SharedWorker,f=(()=\u003e{const e=a.navigator?.userAgent?.match(/Firefox[/\\\\s](\\\\d+\\\\.\\\\d+)/);return Array.isArray(e)\u0026\u0026e.length\u003e=2?+e[1]:0})(),h=Date.now()-(0,n.t)()},7295:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{Xv:()=\u003ea,gX:()=\u003ei,iW:()=\u003eo});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t\u003cn.length;t++){var r=n[t];if(\\\"*\\\"===r.hostname)return!1;if(s(r.hostname,e.hostname)\u0026\u0026c(r.pathname,e.pathname))return!1}return!0}function o(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;0===r.indexOf(\\\"http://\\\")?r=r.substring(7):0===r.indexOf(\\\"https://\\\")\u0026\u0026(r=r.substring(8));const i=r.indexOf(\\\"/\\\");let o,a;i\u003e0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a=\\\"\\\");let[s]=o.split(\\\":\\\");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length\u003et.length)\u0026\u0026t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf(\\\"/\\\")\u0026\u0026(e=e.substring(1)),0===t.indexOf(\\\"/\\\")\u0026\u0026(t=t.substring(1)),\\\"\\\"===e||e===t}},3241:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{W:()=\u003eo});var n=r(6154);const i=\\\"newrelic\\\";function o(e={}){try{n.gm.dispatchEvent(new CustomEvent(i,{detail:e}))}catch(e){}}},1687:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{Ak:()=\u003ec,Ze:()=\u003el,x3:()=\u003eu});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e\u0026\u0026s[e]\u0026\u0026(s[e].get(t)\u0026\u0026s[e].delete(t),h(e,t,!1),s[e].size\u0026\u0026f(e))}function d(e){if(!e)throw new Error(\\\"agentIdentifier required\\\");s[e]||(s[e]=new Map)}function l(e=\\\"\\\",t=\\\"feature\\\",r=!1){if(d(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=\u003et.staged))\u0026\u0026(t.sort(((e,t)=\u003ee[1].priority-t[1].priority)),t.forEach((([t])=\u003e{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted\u0026\u0026o.backlog\u0026\u0026s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e\u0026\u0026t\u003ce.length;++t)p(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\u0026t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit(\\\"drain-\\\"+t,[])}}function p(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],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{P:()=\u003ec,ee:()=\u003eu});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c=\\\"nr@context:\\\".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length\u0026\u0026(0,o.f)(r).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,o){!1!==o\u0026\u0026(o=!0);if(u.aborted\u0026\u0026!i)return;t\u0026\u0026o\u0026\u0026t.emit(e,r,n);for(var a=h(n),c=g(e),d=c.length,l=0;l\u003cd;l++)c[l].apply(a,r);var p=v()[s[e]];p\u0026\u0026p.push([f,e,r,a]);return a},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{s[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()[s[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 a.y?e:e?(0,i.I)(e,c,(()=\u003enew a.y(c))):new a.y(c)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,\\\"globalEE\\\"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{y:()=\u003en});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{d:()=\u003en,p:()=\u003ei});var n=r(7836).ee.get(\\\"handle\\\");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{i:()=\u003eo});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o=\\\"feature\\\"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=\u003e{\\\"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 o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=\u003eo,jT:()=\u003en,sp:()=\u003ei})},5607:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{W:()=\u003en});const n=(0,r(9566).bz)()},9566:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{LA:()=\u003es,ZF:()=\u003ec,bz:()=\u003ea,el:()=\u003eu});var n=r(6154);const i=\\\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\\\";function o(e,t){return e?15\u0026e[t]:16*Math.random()|0}function a(){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))),i.split(\\\"\\\").map((e=\u003e\\\"x\\\"===e?o(t,r++).toString(16):\\\"y\\\"===e?(3\u0026o()|8).toString(16):e)).join(\\\"\\\")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t\u0026\u0026t.getRandomValues\u0026\u0026(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s\u003ce;s++)a.push(o(r,i++).toString(16));return a.join(\\\"\\\")}function c(){return s(16)}function u(){return s(32)}},2614:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{BB:()=\u003ea,H3:()=\u003en,g:()=\u003eu,iL:()=\u003ec,tS:()=\u003es,uh:()=\u003ei,wk:()=\u003eo});const n=\\\"NRBA\\\",i=\\\"SESSION\\\",o=144e5,a=18e5,s={STARTED:\\\"session-started\\\",PAUSE:\\\"session-pause\\\",RESET:\\\"session-reset\\\",RESUME:\\\"session-resume\\\",UPDATE:\\\"session-update\\\"},c={SAME_TAB:\\\"same-tab\\\",CROSS_TAB:\\\"cross-tab\\\"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=\u003e{\\\"use strict\\\";function n(){return Math.floor(performance.now())}r.d(t,{t:()=\u003en})},7485:(e,t,r)=\u003e{\\\"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{}}}},944:(e,t,r)=\u003e{\\\"use strict\\\";function n(e,t){\\\"function\\\"==typeof console.debug\u0026\u0026console.debug(\\\"New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#\\\".concat(e),t)}r.d(t,{R:()=\u003en})},5701:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{B:()=\u003ea,t:()=\u003es});var n=r(7836),i=r(3241);const o=new Set,a={};function s(e,t){const r=n.ee.get(t);a[t]??={},e\u0026\u0026\\\"object\\\"==typeof e\u0026\u0026(o.has(t)||(r.emit(\\\"rumresp\\\",[e]),a[t]=e,o.add(t),(0,i.W)({agentIdentifier:t,loaded:!0,drained:!0,type:\\\"lifecycle\\\",name:\\\"load\\\",feature:void 0,data:e})))}},8990:(e,t,r)=\u003e{\\\"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)=\u003e{\\\"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})},3304:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{A:()=\u003eo});var n=r(7836);const i=()=\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}};function o(e){try{return JSON.stringify(e,i())??\\\"\\\"}catch(e){try{n.ee.emit(\\\"internal-error\\\",[e])}catch(e){}return\\\"\\\"}}},5289:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{GG:()=\u003eo,sB:()=\u003ea});var n=r(3878);function i(){return\\\"undefined\\\"==typeof document||\\\"complete\\\"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)(\\\"load\\\",e,t)}function a(e){if(i())return e();(0,n.DD)(\\\"DOMContentLoaded\\\",e)}},384:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{NT:()=\u003eo,US:()=\u003ed,Zm:()=\u003ea,bQ:()=\u003ec,dV:()=\u003es,nY:()=\u003eu,pV:()=\u003el});var n=r(6154),i=r(1863);const o={beacon:\\\"bam.nr-data.net\\\",errorBeacon:\\\"bam.nr-data.net\\\"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic\u0026\u0026(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,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}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{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)}},8139:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{u:()=\u003ef});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,u=\\\"addEventListener\\\",d=\\\"removeEventListener\\\",l=\\\"nr@wrapped:\\\".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get(\\\"events\\\")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[u,d],\\\"-\\\",p)}function p(e,t){return e[1]}return\\\"getPrototypeOf\\\"in Object\u0026\u0026(a.RI\u0026\u0026h(document,f),c\u0026\u0026h(c.prototype,f),h(a.gm,f)),t.on(u+\\\"-start\\\",(function(e,t){var n=e[1];if(null!==n\u0026\u0026(\\\"function\\\"==typeof n||\\\"object\\\"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if(\\\"function\\\"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,\\\"fn-\\\",null,e.name||\\\"anonymous\\\"):n}));this.wrapped=e[1]=i}})),t.on(d+\\\"-start\\\",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;\\\"object\\\"==typeof n\u0026\u0026!Object.prototype.hasOwnProperty.call(n,u);)n=Object.getPrototypeOf(n);n\u0026\u0026t(n,...r)}},3434:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{Jt:()=\u003eo,YM:()=\u003ec});var n=r(7836),i=r(5607);const o=\\\"nr@original:\\\".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n=\\\"\\\");const a=\\\"-\\\"===n.charAt(0);for(let s=0;s\u003ct.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=\\\"\\\"),nrWrapper[o]=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)a.call(e,n)\u0026\u0026(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d=\\\"function\\\"==typeof n?n(o,a):n||{}}catch(t){u([t,\\\"\\\",[o,a,s],d],e)}i(r+\\\"start\\\",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+\\\"err\\\",[o,a,e],d,c),e}finally{i(r+\\\"end\\\",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit(\\\"internal-error\\\",e)}catch(e){}}function d(e){return!(e\u0026\u0026\\\"function\\\"==typeof e\u0026\u0026e.apply\u0026\u0026!e[o])}},9414:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{J:()=\u003ec});var n=r(7836),i=r(2646),o=r(944),a=r(3434);const s=new Map;function c(e,t,r,c){if(\\\"object\\\"!=typeof t||!t||\\\"string\\\"!=typeof r||!r||\\\"function\\\"!=typeof t[r])return(0,o.R)(29);const u=function(e){return(e||n.ee).get(\\\"logger\\\")}(e),d=(0,a.YM)(u),l=new i.y(n.P);l.level=c.level,l.customAttributes=c.customAttributes;const f=t[r]?.[a.Jt]||t[r];return s.set(f,l),d.inPlace(t,[r],\\\"wrap-logger-\\\",(()=\u003es.get(f))),u}},9300:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{T:()=\u003en});const n=r(860).K7.ajax},3333:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{$v:()=\u003eu,TZ:()=\u003en,Zp:()=\u003ei,kd:()=\u003ec,mq:()=\u003es,nf:()=\u003ea,qN:()=\u003eo});const n=r(860).K7.genericEvents,i=[\\\"auxclick\\\",\\\"click\\\",\\\"copy\\\",\\\"keydown\\\",\\\"paste\\\",\\\"scrollend\\\"],o=[\\\"focus\\\",\\\"blur\\\"],a=4,s=1e3,c=[\\\"PageAction\\\",\\\"UserAction\\\",\\\"BrowserPerformance\\\"],u={MARKS:\\\"experimental.marks\\\",MEASURES:\\\"experimental.measures\\\",RESOURCES:\\\"experimental.resources\\\"}},6774:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{T:()=\u003en});const n=r(860).K7.jserrors},993:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{A$:()=\u003eo,ET:()=\u003ea,TZ:()=\u003es,p_:()=\u003ei});var n=r(860);const i={ERROR:\\\"ERROR\\\",WARN:\\\"WARN\\\",INFO:\\\"INFO\\\",DEBUG:\\\"DEBUG\\\",TRACE:\\\"TRACE\\\"},o={OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},a=\\\"log\\\",s=n.K7.logging},3785:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{R:()=\u003ec,b:()=\u003eu});var n=r(9908),i=r(1863),o=r(860),a=r(8154),s=r(993);function c(e,t,r={},c=s.p_.INFO){(0,n.p)(a.xV,[\\\"API/logging/\\\".concat(c.toLowerCase(),\\\"/called\\\")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[(0,i.t)(),t,r,c],void 0,o.K7.logging,e)}function u(e){return\\\"string\\\"==typeof e\u0026\u0026Object.values(s.p_).some((t=\u003et===e.toUpperCase().trim()))}},8154:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{z_:()=\u003eo,XG:()=\u003es,TZ:()=\u003en,rs:()=\u003ei,xV:()=\u003ea});r(6154),r(9566),r(384);const n=r(860).K7.metrics,i=\\\"sm\\\",o=\\\"cm\\\",a=\\\"storeSupportabilityMetrics\\\",s=\\\"storeEventMetrics\\\"},6630:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{T:()=\u003en});const n=r(860).K7.pageViewEvent},782:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{T:()=\u003en});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{BB:()=\u003ed,G4:()=\u003eo,Qb:()=\u003el,TZ:()=\u003ei,Ug:()=\u003ea,_s:()=\u003es,bc:()=\u003eu,yP:()=\u003ec});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:\\\"recordReplay\\\",PAUSE:\\\"pauseReplay\\\",REPLAY_RUNNING:\\\"replayRunning\\\",ERROR_DURING_REPLAY:\\\"errorDuringReplay\\\"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},u={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\\\"}},d=5e3,l={API:\\\"api\\\"}},5270:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{Aw:()=\u003ec,CT:()=\u003eu,SR:()=\u003es,rF:()=\u003ed});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO\u0026\u0026(0,o.V)(e)\u0026\u0026!0===(0,i.gD)(e,\\\"session_trace.enabled\\\")}function c(e){return!0===(0,i.gD)(e,\\\"session_replay.preload\\\")\u0026\u0026s(e)}function u(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}function d(e,t){try{if(\\\"string\\\"==typeof t?.type){if(\\\"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)=\u003e{\\\"use strict\\\";r.d(t,{He:()=\u003ei,Kp:()=\u003es,Lc:()=\u003eu,Rz:()=\u003ed,TZ:()=\u003en,bD:()=\u003eo,d3:()=\u003ea,jx:()=\u003el,uP:()=\u003ec});const n=r(860).K7.sessionTrace,i=\\\"bstResource\\\",o=\\\"resource\\\",a=\\\"-start\\\",s=\\\"-end\\\",c=\\\"fn\\\"+a,u=\\\"fn\\\"+s,d=\\\"pushState\\\",l=1e3},3962:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{AM:()=\u003eo,O2:()=\u003ec,Qu:()=\u003eu,TZ:()=\u003es,ih:()=\u003ed,pP:()=\u003ea,tC:()=\u003ei});var n=r(860);const i=[\\\"click\\\",\\\"keydown\\\",\\\"submit\\\",\\\"popstate\\\"],o=\\\"api\\\",a=\\\"initialPageLoad\\\",s=n.K7.softNav,c={INITIAL_PAGE_LOAD:\\\"\\\",ROUTE_CHANGE:1,UNSPECIFIED:2},u={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},d={IP:\\\"in progress\\\",FIN:\\\"finished\\\",CAN:\\\"cancelled\\\"}},7378:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{$p:()=\u003ex,BR:()=\u003eb,Kp:()=\u003eR,L3:()=\u003ey,Lc:()=\u003ec,NC:()=\u003eo,SG:()=\u003ed,TZ:()=\u003ei,U6:()=\u003ep,UT:()=\u003em,d3:()=\u003ew,dT:()=\u003ef,e5:()=\u003eA,gx:()=\u003ev,l9:()=\u003el,oW:()=\u003eh,op:()=\u003eg,rw:()=\u003eu,tH:()=\u003eT,uP:()=\u003es,wW:()=\u003eE,xq:()=\u003ea});var n=r(384);const i=r(860).K7.spa,o=[\\\"click\\\",\\\"submit\\\",\\\"keypress\\\",\\\"keydown\\\",\\\"keyup\\\",\\\"change\\\"],a=999,s=\\\"fn-start\\\",c=\\\"fn-end\\\",u=\\\"cb-start\\\",d=\\\"api-ixn-\\\",l=\\\"remaining\\\",f=\\\"interaction\\\",h=\\\"spaNode\\\",p=\\\"jsonpNode\\\",g=\\\"fetch-start\\\",m=\\\"fetch-done\\\",v=\\\"fetch-body-\\\",b=\\\"jsonp-end\\\",y=(0,n.dV)().o.ST,w=\\\"-start\\\",R=\\\"-end\\\",x=\\\"-body\\\",E=\\\"cb\\\"+R,A=\\\"jsTime\\\",T=\\\"fetch\\\"},4234:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{W:()=\u003eo});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{V:()=\u003eo});var n=r(9417),i=r(6154);const o=e=\u003ei.RI\u0026\u0026!0===(0,n.gD)(e,\\\"privacy.cookies_enabled\\\")},8969:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{j:()=\u003eI});var n=r(860),i=r(2555),o=r(9908),a=r(1687),s=r(5289),c=r(6154),u=r(944),d=r(8154),l=r(384),f=r(6344);const h=[\\\"setErrorHandler\\\",\\\"finished\\\",\\\"addToTrace\\\",\\\"addRelease\\\",\\\"recordCustomEvent\\\",\\\"addPageAction\\\",\\\"setCurrentRouteName\\\",\\\"setPageViewName\\\",\\\"setCustomAttribute\\\",\\\"interaction\\\",\\\"noticeError\\\",\\\"setUserId\\\",\\\"setApplicationVersion\\\",\\\"start\\\",f.G4.RECORD,f.G4.PAUSE,\\\"log\\\",\\\"wrapLogger\\\"],p=[\\\"setErrorHandler\\\",\\\"finished\\\",\\\"addToTrace\\\",\\\"addRelease\\\"];var g=r(1863),m=r(2614),v=r(993),b=r(3785),y=r(9414),w=r(3241),R=r(5701);function x(){const e=(0,l.pV)();h.forEach((t=\u003e{e[t]=(...r)=\u003efunction(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=\u003e{e\u0026\u0026e.runtime?e.exposed\u0026\u0026e[t]\u0026\u0026\\\"micro-agent\\\"!==e.runtime.loaderType\u0026\u0026n.push(e[t](...r)):(0,u.R)(38,t)})),n[0]}(t,...r)}))}const E={};var A=r(9417),T=r(5603),S=r(3371);const N=e=\u003e{const t=e.startsWith(\\\"http\\\");e+=\\\"/\\\",r.p=t?e:\\\"https://\\\"+e};var O=r(7836);const _=new Set;function I(e,t={},h,I){let{init:P,info:j,loader_config:C,runtime:k={},exposed:L=!0}=t;k.loaderType=h;const H=(0,l.pV)();j||(P=H.init,j=H.info,C=H.loader_config),(0,A.xN)(e.agentIdentifier,P||{}),(0,T.a)(e.agentIdentifier,C||{}),j.jsAttributes??={},c.bv\u0026\u0026(j.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,j);const M=e.init,D=[j.beacon,j.errorBeacon];_.has(e.agentIdentifier)||(M.proxy.assets\u0026\u0026(N(M.proxy.assets),D.push(M.proxy.assets)),M.proxy.beacon\u0026\u0026D.push(M.proxy.beacon),x(),(0,l.US)(\\\"activatedFeatures\\\",R.B),e.runSoftNavOverSpa\u0026\u0026=!0===M.soft_navigations.enabled\u0026\u0026M.feature_flags.includes(\\\"soft_nav\\\")),k.denyList=[...M.ajax.deny_list||[],...M.ajax.block_internal?D:[]],k.ptid=e.agentIdentifier,(0,S.V)(e.agentIdentifier,k),_.has(e.agentIdentifier)||(e.ee=O.ee.get(e.agentIdentifier),e.exposed=L,function(e,t){t||(0,a.Ak)(e.agentIdentifier,\\\"api\\\");const l=e.ee.get(\\\"tracer\\\");E[e.agentIdentifier]=m.g.OFF,e.ee.on(f.G4.REPLAY_RUNNING,(t=\u003e{E[e.agentIdentifier]=t}));const h=\\\"api-\\\",x=h+\\\"ixn-\\\";function A(t,r,n,o){const a=e.info;return null===r?delete a.jsAttributes[t]:(0,i.x1)(e.agentIdentifier,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),N(h,n,!0,o||null===r?\\\"session\\\":void 0)(t,r)}function T(){}e.log=function(t,{customAttributes:r={},level:i=v.p_.INFO}={}){(0,o.p)(d.xV,[\\\"API/log/called\\\"],void 0,n.K7.metrics,e.ee),(0,b.R)(e.ee,t,r,i)},e.wrapLogger=(t,r,{customAttributes:i={},level:a=v.p_.INFO}={})=\u003e{(0,o.p)(d.xV,[\\\"API/wrapLogger/called\\\"],void 0,n.K7.metrics,e.ee),(0,y.J)(e.ee,t,r,{customAttributes:i,level:a})},p.forEach((t=\u003e{e[t]=N(h,t,!0,\\\"api\\\")})),e.addPageAction=N(h,\\\"addPageAction\\\",!0,n.K7.genericEvents),e.recordCustomEvent=N(h,\\\"recordCustomEvent\\\",!0,n.K7.genericEvents),e.setPageViewName=function(t,r){if(\\\"string\\\"==typeof t)return\\\"/\\\"!==t.charAt(0)\u0026\u0026(t=\\\"/\\\"+t),e.runtime.customTransaction=(r||\\\"http://custom.transaction\\\")+t,N(h,\\\"setPageViewName\\\",!0)()},e.setCustomAttribute=function(e,t,r=!1){if(\\\"string\\\"==typeof e){if([\\\"string\\\",\\\"number\\\",\\\"boolean\\\"].includes(typeof t)||null===t)return A(e,t,\\\"setCustomAttribute\\\",r);(0,u.R)(40,typeof t)}else(0,u.R)(39,typeof e)},e.setUserId=function(e){if(\\\"string\\\"==typeof e||null===e)return A(\\\"enduser.id\\\",e,\\\"setUserId\\\",!0);(0,u.R)(41,typeof e)},e.setApplicationVersion=function(e){if(\\\"string\\\"==typeof e||null===e)return A(\\\"application.version\\\",e,\\\"setApplicationVersion\\\",!1);(0,u.R)(42,typeof e)},e.start=()=\u003e{try{(0,o.p)(d.xV,[\\\"API/start/called\\\"],void 0,n.K7.metrics,e.ee),e.ee.emit(\\\"manual-start-all\\\")}catch(e){(0,u.R)(23,e)}},e[f.G4.RECORD]=function(){(0,o.p)(d.xV,[\\\"API/recordReplay/called\\\"],void 0,n.K7.metrics,e.ee),(0,o.p)(f.G4.RECORD,[],void 0,n.K7.sessionReplay,e.ee)},e[f.G4.PAUSE]=function(){(0,o.p)(d.xV,[\\\"API/pauseReplay/called\\\"],void 0,n.K7.metrics,e.ee),(0,o.p)(f.G4.PAUSE,[],void 0,n.K7.sessionReplay,e.ee)},e.interaction=function(e){return(new T).get(\\\"object\\\"==typeof e?e:{})};const S=T.prototype={createTracer:function(t,r){var i={},a=this,s=\\\"function\\\"==typeof r;return(0,o.p)(d.xV,[\\\"API/createTracer/called\\\"],void 0,n.K7.metrics,e.ee),e.runSoftNavOverSpa||(0,o.p)(x+\\\"tracer\\\",[(0,g.t)(),t,i],a,n.K7.spa,e.ee),function(){if(l.emit((s?\\\"\\\":\\\"no-\\\")+\\\"fn-start\\\",[(0,g.t)(),a,s],i),s)try{return r.apply(this,arguments)}catch(e){const t=\\\"string\\\"==typeof e?new Error(e):e;throw l.emit(\\\"fn-err\\\",[arguments,this,t],i),t}finally{l.emit(\\\"fn-end\\\",[(0,g.t)()],i)}}}};function N(t,r,i,a){return function(){return(0,o.p)(d.xV,[\\\"API/\\\"+r+\\\"/called\\\"],void 0,n.K7.metrics,e.ee),(0,w.W)({agentIdentifier:e.agentIdentifier,drained:!!R.B?.[e.agentIdentifier],type:\\\"data\\\",name:\\\"api\\\",feature:t+r,data:{notSpa:i,bufferGroup:a}}),a\u0026\u0026(0,o.p)(t+r,[i?(0,g.t)():performance.now(),...arguments],i?null:this,a,e.ee),i?void 0:this}}function O(){r.e(478).then(r.bind(r,8778)).then((({setAsyncAPI:t})=\u003e{t(e),(0,a.Ze)(e.agentIdentifier,\\\"api\\\")})).catch((t=\u003e{(0,u.R)(27,t),e.ee.abort()}))}[\\\"actionText\\\",\\\"setName\\\",\\\"setAttribute\\\",\\\"save\\\",\\\"ignore\\\",\\\"onEnd\\\",\\\"getContext\\\",\\\"end\\\",\\\"get\\\"].forEach((t=\u003e{S[t]=N(x,t,void 0,e.runSoftNavOverSpa?n.K7.softNav:n.K7.spa)})),e.setCurrentRouteName=e.runSoftNavOverSpa?N(x,\\\"routeName\\\",void 0,n.K7.softNav):N(h,\\\"routeName\\\",!0,n.K7.spa),e.noticeError=function(t,r){\\\"string\\\"==typeof t\u0026\u0026(t=new Error(t)),(0,o.p)(d.xV,[\\\"API/noticeError/called\\\"],void 0,n.K7.metrics,e.ee),(0,o.p)(\\\"err\\\",[t,(0,g.t)(),!1,r,!!E[e.agentIdentifier]],void 0,n.K7.jserrors,e.ee)},c.RI?(0,s.GG)((()=\u003eO()),!0):O()}(e,I),(0,w.W)({agentIdentifier:e.agentIdentifier,drained:!!R.B?.[e.agentIdentifier],type:\\\"lifecycle\\\",name:\\\"initialize\\\",feature:void 0,data:e.config})),_.add(e.agentIdentifier)}},8374:(e,t,r)=\u003e{r.nc=(()=\u003e{try{return document?.currentScript?.nonce}catch(e){}return\\\"\\\"})()},860:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{$J:()=\u003ed,K7:()=\u003ec,P3:()=\u003eu,XX:()=\u003ei,Yy:()=\u003es,df:()=\u003eo,qY:()=\u003en,v4:()=\u003ea});const n=\\\"events\\\",i=\\\"jserrors\\\",o=\\\"browser/blobs\\\",a=\\\"rum\\\",s=\\\"browser/logs\\\",c={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\\\",spa:\\\"spa\\\"},u={[c.pageViewEvent]:1,[c.pageViewTiming]:2,[c.metrics]:3,[c.jserrors]:4,[c.spa]:5,[c.ajax]:6,[c.sessionTrace]:7,[c.softNav]:8,[c.sessionReplay]:9,[c.logging]:10,[c.genericEvents]:11},d={[c.pageViewEvent]:a,[c.pageViewTiming]:n,[c.ajax]:n,[c.spa]:n,[c.softNav]:n,[c.metrics]:i,[c.jserrors]:i,[c.sessionTrace]:o,[c.sessionReplay]:o,[c.logging]:s,[c.genericEvents]:\\\"ins\\\"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=\u003e{for(var r in t)i.o(t,r)\u0026\u0026!i.o(e,r)\u0026\u0026Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=\u003ePromise.all(Object.keys(i.f).reduce(((t,r)=\u003e(i.f[r](e,t),t)),[])),i.u=e=\u003e({212:\\\"nr-spa-compressor\\\",249:\\\"nr-spa-recorder\\\",478:\\\"nr-spa\\\"}[e]+\\\"-1.286.0.min.js\\\"),i.o=(e,t)=\u003eObject.prototype.hasOwnProperty.call(e,t),e={},t=\\\"NRBA-1.286.0.PROD:\\\",i.l=(r,n,o,a)=\u003e{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName(\\\"script\\\"),d=0;d\u003cu.length;d++){var l=u[d];if(l.getAttribute(\\\"src\\\")==r||l.getAttribute(\\\"data-webpack\\\")==t+o){s=l;break}}if(!s){c=!0;var f={478:\\\"sha512-xt9QypT23DNupLy9wXPzK6uGCHucLx9ieBiprVZwJD/HfkKcTY5t9xUrMvJ/ybOBfVDiFPL8R/YCJHdANxjV3g==\\\",249:\\\"sha512-KxJzV7dF4ry7RzxsxRBMJPnHjRdZUbseWowgGkDemMtubSveBZAlqlWb/489Lpd5K2u0Q2zTSBK599A9+u9jpA==\\\",212:\\\"sha512-ges3wTNuYgFINvgkoryTYKsHZWBqvLFD9qo1XJQWq5OYq+1DVXuGFs9cYogVoQEoCQxuaUdKAXcxF/sl3Ntbrg==\\\"};(s=document.createElement(\\\"script\\\")).charset=\\\"utf-8\\\",s.timeout=120,i.nc\u0026\u0026s.setAttribute(\\\"nonce\\\",i.nc),s.setAttribute(\\\"data-webpack\\\",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+\\\"/\\\")\u0026\u0026(s.crossOrigin=\\\"anonymous\\\"),f[a]\u0026\u0026(s.integrity=f[a])}e[r]=[n];var h=(t,n)=\u003e{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode\u0026\u0026s.parentNode.removeChild(s),i\u0026\u0026i.forEach((e=\u003ee(n))),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:\\\"timeout\\\",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c\u0026\u0026document.head.appendChild(s)}},i.r=e=\u003e{\\\"undefined\\\"!=typeof Symbol\u0026\u0026Symbol.toStringTag\u0026\u0026Object.defineProperty(e,Symbol.toStringTag,{value:\\\"Module\\\"}),Object.defineProperty(e,\\\"__esModule\\\",{value:!0})},i.p=\\\"https://js-agent.newrelic.com/\\\",(()=\u003e{var e={38:0,788:0};i.f.j=(t,r)=\u003e{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=\u003en=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=\u003e{if(i.o(e,t)\u0026\u0026(0!==(n=e[t])\u0026\u0026(e[t]=void 0),n)){var o=r\u0026\u0026(\\\"load\\\"===r.type?\\\"missing\\\":r.type),a=r\u0026\u0026r.target\u0026\u0026r.target.src;s.message=\\\"Loading chunk \\\"+t+\\\" failed.\\\\n(\\\"+o+\\\": \\\"+a+\\\")\\\",s.name=\\\"ChunkLoadError\\\",s.type=o,s.request=a,n[1](s)}}),\\\"chunk-\\\"+t,t)}};var t=(t,r)=\u003e{var n,o,[a,s,c]=r,u=0;if(a.some((t=\u003e0!==e[t]))){for(n in s)i.o(s,n)\u0026\u0026(i.m[n]=s[n]);if(c)c(i)}for(t\u0026\u0026t(r);u\u003ca.length;u++)o=a[u],i.o(e,o)\u0026\u0026e[o]\u0026\u0026e[o][0](),e[o]=0},r=self[\\\"webpackChunk:NRBA-1.286.0.PROD\\\"]=self[\\\"webpackChunk:NRBA-1.286.0.PROD\\\"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=\u003e{\\\"use strict\\\";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(){this.agentIdentifier=(0,r.LA)(16)}#e(t,...r){if(this[t]!==n.prototype[t])return this[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e(\\\"addPageAction\\\",e,t)}recordCustomEvent(e,t){return this.#e(\\\"recordCustomEvent\\\",e,t)}setPageViewName(e,t){return this.#e(\\\"setPageViewName\\\",e,t)}setCustomAttribute(e,t,r){return this.#e(\\\"setCustomAttribute\\\",e,t,r)}noticeError(e,t){return this.#e(\\\"noticeError\\\",e,t)}setUserId(e){return this.#e(\\\"setUserId\\\",e)}setApplicationVersion(e){return this.#e(\\\"setApplicationVersion\\\",e)}setErrorHandler(e){return this.#e(\\\"setErrorHandler\\\",e)}addRelease(e,t){return this.#e(\\\"addRelease\\\",e,t)}log(e,t){return this.#e(\\\"log\\\",e,t)}}class o extends n{#e(t,...r){if(this[t]!==o.prototype[t]\u0026\u0026this[t]!==n.prototype[t])return this[t](...r);(0,e.R)(35,t)}start(){return this.#e(\\\"start\\\")}finished(e){return this.#e(\\\"finished\\\",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e(\\\"addToTrace\\\",e)}setCurrentRouteName(e){return this.#e(\\\"setCurrentRouteName\\\",e)}interaction(){return this.#e(\\\"interaction\\\")}wrapLogger(e,t,r){return this.#e(\\\"wrapLogger\\\",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=\u003e{t[r]=function(e,t){return!0===(0,s.gD)(t,\\\"\\\".concat(e,\\\".enabled\\\"))}(r,e)})),t}var d=i(8969);var l=i(1687),f=i(4234),h=i(5289),p=i(6154),g=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart\u0026\u0026(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on(\\\"manual-start-all\\\",(0,v.J)((()=\u003e{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=\u003e{n=e}));const o=async()=\u003e{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(478).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit(\\\"internal-error\\\",[t]),this.featureName===a.K7.sessionReplay\u0026\u0026this.abortHandler?.()}try{if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(478).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,\\\"aggregate\\\");this.featAggregate=new a(t,r),t.runtime.harvester.initializedAggregates.push(this.featAggregate),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee\u0026\u0026this.ee.abort()}};p.RI?(0,h.GG)((()=\u003eo()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,g.SR)(this.agentIdentifier)\u0026\u0026!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class w extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var R=i(384);var x=i(9908),E=i(2843),A=i(3878),T=i(782),S=i(1863);class N extends b{static featureName=T.T;constructor(e,t=!0){super(e,T.T,t),p.RI\u0026\u0026((0,E.u)((()=\u003e(0,x.p)(\\\"docHidden\\\",[(0,S.t)()],void 0,T.T,this.ee)),!0),(0,A.sp)(\\\"pagehide\\\",(()=\u003e(0,x.p)(\\\"winPagehide\\\",[(0,S.t)()],void 0,T.T,this.ee))),this.importAggregator(e))}}var O=i(8154);class _ extends b{static featureName=O.TZ;constructor(e,t=!0){super(e,O.TZ,t),p.RI\u0026\u0026document.addEventListener(\\\"securitypolicyviolation\\\",(e=\u003e{(0,x.p)(O.xV,[\\\"Generic/CSPViolation/Detected\\\"],void 0,this.featureName,this.ee)})),this.importAggregator(e)}}var I=i(6774),P=i(3304);class j{constructor(e,t,r,n,i){this.name=\\\"UncaughtError\\\",this.message=\\\"string\\\"==typeof e?e:(0,P.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return H(e)?e:new j(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t=\\\"Unhandled Promise Rejection: \\\";if(!e?.reason)return;if(H(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return C(e.reason)}const r=C(e.reason);return(r.message||\\\"\\\").startsWith(t)||(r.message=t+r.message),r}function L(e){if(e.error instanceof SyntaxError\u0026\u0026!/:\\\\d+$/.test(e.error.stack?.trim())){const t=new j(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return H(e.error)?e.error:C(e)}function H(e){return e instanceof Error\u0026\u0026!!e.stack}class M extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on(\\\"internal-error\\\",((e,t)=\u003e{this.abortHandler\u0026\u0026(0,x.p)(\\\"ierr\\\",[C(e),(0,S.t)(),!0,{},this.#r,t],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=\u003e{this.#r=e})),p.gm.addEventListener(\\\"unhandledrejection\\\",(e=\u003e{this.abortHandler\u0026\u0026(0,x.p)(\\\"err\\\",[k(e),(0,S.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),p.gm.addEventListener(\\\"error\\\",(e=\u003e{this.abortHandler\u0026\u0026(0,x.p)(\\\"err\\\",[L(e),(0,S.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var D=i(8990);let K=1;const U=\\\"nr@id\\\";function V(e){const t=typeof e;return!e||\\\"object\\\"!==t\u0026\u0026\\\"function\\\"!==t?-1:e===p.gm?0:(0,D.I)(e,U,(function(){return K++}))}function G(e){if(\\\"string\\\"==typeof e\u0026\u0026e.length)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,P.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=[\\\"open\\\",\\\"send\\\"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get(\\\"xhr\\\")}(r);if(void 0===p.gm.XMLHttpRequest)return n;if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=p.gm.XMLHttpRequest,a=p.gm.MutationObserver,s=p.gm.Promise,c=p.gm.setInterval,u=\\\"readystatechange\\\",d=[\\\"onload\\\",\\\"onerror\\\",\\\"onabort\\\",\\\"onloadstart\\\",\\\"onloadend\\\",\\\"onprogress\\\",\\\"ontimeout\\\"],l=[],f=p.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit(\\\"new-xhr\\\",[r],a),r.addEventListener(u,(s=a,function(){var e=this;e.readyState\u003e3\u0026\u0026!s.resolved\u0026\u0026(s.resolved=!0,n.emit(\\\"xhr-resolved\\\",[],e)),i.inPlace(e,d,\\\"fn-\\\",y)}),(0,A.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit(\\\"internal-error\\\",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,[\\\"onreadystatechange\\\"],\\\"fn-\\\",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,q,\\\"-xhr-\\\",y),n.on(\\\"send-xhr-start\\\",(function(e,t){h(e,t),function(e){l.push(e),a\u0026\u0026(g?g.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on(\\\"open-xhr-start\\\",h),a){var g=s\u0026\u0026s.resolve();if(!c\u0026\u0026!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on(\\\"fn-end\\\",(function(e){e[0]\u0026\u0026e[0].type===u||b()}));function b(){for(var e=0;e\u003cl.length;e++)h(0,l[e]);l.length\u0026\u0026(l=[])}function y(e,t){return t}return n}var Y=\\\"fetch-\\\",J=Y+\\\"body-\\\",X=[\\\"arrayBuffer\\\",\\\"blob\\\",\\\"json\\\",\\\"text\\\",\\\"formData\\\"],Q=p.gm.Request,ee=p.gm.Response,te=\\\"prototype\\\";const re={};function ne(e){const t=function(e){return(e||B.ee).get(\\\"fetch\\\")}(e);if(!(Q\u0026\u0026ee\u0026\u0026p.gm.fetch))return t;if(re[t.debugId]++)return t;function r(e,r,n){var i=e[r];\\\"function\\\"==typeof i\u0026\u0026(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+\\\"before-start\\\",[r],o),o[B.P]\u0026\u0026o[B.P].dt\u0026\u0026(e=o[B.P].dt);var a=i.apply(this,r);return t.emit(n+\\\"start\\\",[r,e],a),a.then((function(e){return t.emit(n+\\\"end\\\",[null,e],a),e}),(function(e){throw t.emit(n+\\\"end\\\",[e],a),e}))})}return re[t.debugId]=1,X.forEach((e=\u003e{r(Q[te],e,J),r(ee[te],e,J)})),r(p.gm,\\\"fetch\\\",Y),t.on(Y+\\\"end\\\",(function(e,r){var n=this;if(r){var i=r.headers.get(\\\"content-length\\\");null!==i\u0026\u0026(n.rxSize=i),t.emit(Y+\\\"done\\\",[null,r],n)}else t.emit(Y+\\\"done\\\",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||\\\"\\\").toString()||null,i=(t.agentID||\\\"\\\").toString()||null,o=(t.trustKey||\\\"\\\").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)\u0026\u0026this.useTraceContextHeadersForCors())\u0026\u0026(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin\u0026\u0026!this.excludeNewrelicHeader()||!e.sameOrigin\u0026\u0026this.isAllowedOrigin(e)\u0026\u0026this.useNewrelicHeaderForCors())\u0026\u0026(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}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,o){if(!(\\\"function\\\"==typeof p.gm?.btoa))return null;var a={v:[0,1],d:{ty:\\\"Browser\\\",ac:n,ap:i,id:e,tr:t,ti:r}};return o\u0026\u0026n!==o\u0026\u0026(a.d.tk=o),btoa((0,P.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()\u0026\u0026this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,\\\"distributed_tracing\\\")\u0026\u0026(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n\u003cr.allowed_origins.length;n++){var i=(0,ie.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}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,\\\"distributed_tracing\\\");return!!e\u0026\u0026!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,\\\"distributed_tracing\\\");return!!e\u0026\u0026!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,\\\"distributed_tracing\\\");return!!e\u0026\u0026!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,\\\"distributed_tracing\\\");return!!e\u0026\u0026!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),ue=[\\\"load\\\",\\\"error\\\",\\\"abort\\\",\\\"timeout\\\"],de=ue.length,le=(0,R.dV)().o.REQ,fe=(0,R.dV)().o.XHR;const he=\\\"X-NewRelic-App-Data\\\";class pe extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),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\\\"};p.gm?.performance?.getEntriesByType(\\\"resource\\\").forEach((t=\u003e{if(t.initiatorType in e\u0026\u00260!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};ge(r,t.name),this.handler(\\\"xhr\\\",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=R,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener(\\\"load\\\",(function(r){E(t,e)}),(0,A.jT)(!1)),p.lR||e.addEventListener(\\\"progress\\\",(function(e){t.lastSize=e.loaded}),(0,A.jT)(!1))}function o(e){this.params={method:e[0]},ge(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid\u0026\u0026this.sameOrigin\u0026\u0026r.setRequestHeader(\\\"X-NewRelic-ID\\\",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader\u0026\u0026(r.setRequestHeader(\\\"newrelic\\\",i.newrelicHeader),o=!0),i.traceContextParentHeader\u0026\u0026(r.setRequestHeader(\\\"traceparent\\\",i.traceContextParentHeader),i.traceContextStateHeader\u0026\u0026r.setRequestHeader(\\\"tracestate\\\",i.traceContextStateHeader),o=!0),o\u0026\u0026(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n\u0026\u0026i){var a=G(i);a\u0026\u0026(n.txSize=a)}this.startTime=(0,S.t)(),this.body=i,this.listener=function(e){try{\\\"abort\\\"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),(\\\"load\\\"!==e.type||o.called===o.totalCbs\u0026\u0026(o.onloadCalled||\\\"function\\\"!=typeof r.onload)\u0026\u0026\\\"function\\\"==typeof o.end)\u0026\u0026o.end(r)}catch(e){try{t.emit(\\\"internal-error\\\",[e])}catch(e){}}};for(var s=0;s\u003cde;s++)r.addEventListener(ue[s],this.listener,(0,A.jT)(!1))}function u(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 d(e,t){var r=\\\"\\\"+V(e)+!!t;this.xhrGuids\u0026\u0026!this.xhrGuids[r]\u0026\u0026(this.xhrGuids[r]=!0,this.totalCbs+=1)}function l(e,t){var r=\\\"\\\"+V(e)+!!t;this.xhrGuids\u0026\u0026this.xhrGuids[r]\u0026\u0026(delete this.xhrGuids[r],this.totalCbs-=1)}function f(){this.endTime=(0,S.t)()}function h(e,r){r instanceof fe\u0026\u0026\\\"load\\\"===e[0]\u0026\u0026t.emit(\\\"xhr-load-added\\\",[e[1],e[2]],r)}function g(e,r){r instanceof fe\u0026\u0026\\\"load\\\"===e[0]\u0026\u0026t.emit(\\\"xhr-load-removed\\\",[e[1],e[2]],r)}function m(e,t,r){t instanceof fe\u0026\u0026(\\\"onload\\\"===r\u0026\u0026(this.onload=!0),(\\\"load\\\"===(e[0]\u0026\u0026e[0].type)||this.onload)\u0026\u0026(this.xhrCbStart=(0,S.t)()))}function v(e,r){this.xhrCbStart\u0026\u0026t.emit(\\\"xhr-cb-time\\\",[(0,S.t)()-this.xhrCbStart,this.onload,r],r)}function b(e){var t,r=e[1]||{};if(\\\"string\\\"==typeof e[0]?0===(t=e[0]).length\u0026\u0026p.RI\u0026\u0026(t=\\\"\\\"+p.gm.location.href):e[0]\u0026\u0026e[0].url?t=e[0].url:p.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,ie.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i\u0026\u0026(i.newrelicHeader||i.traceContextParentHeader))if(e[0]\u0026\u0026e[0].headers)s(e[0].headers,i)\u0026\u0026(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)\u0026\u0026(this.dt=i),e.length\u003e1?e[1]=o:e.push(o)}}function s(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 y(e,t){this.params={},this.metrics={},this.startTime=(0,S.t)(),this.dt=t,e.length\u003e=1\u0026\u0026(this.target=e[0]),e.length\u003e=2\u0026\u0026(this.opts=e[1]);var r,n=this.opts||{},i=this.target;\\\"string\\\"==typeof i?r=i:\\\"object\\\"==typeof i\u0026\u0026i instanceof le?r=i.url:p.gm?.URL\u0026\u0026\\\"object\\\"==typeof i\u0026\u0026i instanceof URL\u0026\u0026(r=i.href),ge(this,r);var o=(\\\"\\\"+(i\u0026\u0026i instanceof le\u0026\u0026i.method||n.method||\\\"GET\\\")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=G(n.body)||0}function w(e,t){if(this.endTime=(0,S.t)(),this.params||(this.params={}),(0,ce.iW)(this.params))return;let n;this.params.status=t?t.status:0,\\\"string\\\"==typeof this.rxSize\u0026\u0026this.rxSize.length\u003e0\u0026\u0026(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,S.t)()-this.startTime};r(\\\"xhr\\\",[this.params,i,this.startTime,this.endTime,\\\"fetch\\\"],this,a.K7.ajax)}function R(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t\u003cde;t++)e.removeEventListener(ue[t],this.listener,!1);t.aborted||(0,ce.iW)(t)||(n.duration=(0,S.t)()-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status\u0026\u0026(t.status=0):E(this,e),n.cbTime=this.cbTime,r(\\\"xhr\\\",[t,n,this.startTime,this.endTime,\\\"xhr\\\"],this,a.K7.ajax))}}function E(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return\\\"json\\\"===r\u0026\u0026null!==t?t:\\\"arraybuffer\\\"===r||\\\"blob\\\"===r||\\\"json\\\"===r?G(e.response):\\\"text\\\"===r||\\\"\\\"===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n\u0026\u0026(e.metrics.rxSize=n),e.sameOrigin\u0026\u0026r.getAllResponseHeaders().indexOf(he)\u003e=0){var i=r.getResponseHeader(he);i\u0026\u0026((0,x.p)(O.rs,[\\\"Ajax/CrossApplicationTracing/Header/Seen\\\"],void 0,a.K7.metrics,t),e.params.cat=i.split(\\\", \\\").pop())}e.loadCaptureCalled=!0}t.on(\\\"new-xhr\\\",i),t.on(\\\"open-xhr-start\\\",o),t.on(\\\"open-xhr-end\\\",s),t.on(\\\"send-xhr-start\\\",c),t.on(\\\"xhr-cb-time\\\",u),t.on(\\\"xhr-load-added\\\",d),t.on(\\\"xhr-load-removed\\\",l),t.on(\\\"xhr-resolved\\\",f),t.on(\\\"addEventListener-end\\\",h),t.on(\\\"removeEventListener-end\\\",g),t.on(\\\"fn-end\\\",v),t.on(\\\"fetch-before-start\\\",b),t.on(\\\"fetch-start\\\",y),t.on(\\\"fn-start\\\",m),t.on(\\\"fetch-done\\\",w)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function ge(e,t){var r=(0,ie.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}const me={},ve=[\\\"pushState\\\",\\\"replaceState\\\"];function be(e){const t=function(e){return(e||B.ee).get(\\\"history\\\")}(e);return!p.RI||me[t.debugId]++||(me[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,ve,\\\"-\\\")),t}var ye=i(3738);const{He:we,bD:Re,d3:xe,Kp:Ee,TZ:Ae,Lc:Te,uP:Se,Rz:Ne}=ye;class Oe extends b{static featureName=Ae;constructor(e,t=!0){super(e,Ae,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;be(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Se,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Te,(function(e,t){(0,x.p)(\\\"bst\\\",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Ne+xe,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(Ne+Ee,(function(e){(0,x.p)(\\\"bstHist\\\",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=\u003e{const t=e.getEntries();(0,x.p)(we,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:Re,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var _e=i(2614);class Ie extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem(\\\"\\\".concat(_e.H3,\\\"_\\\").concat(_e.uh)))}catch(e){}(0,g.SR)(e.agentIdentifier)\u0026\u0026this.ee.on(t.G4.RECORD,(()=\u003ethis.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on(\\\"err\\\",(e=\u003e{this.replayRunning\u0026\u0026(this.errorNoticed=!0,(0,x.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=\u003e{this.replayRunning=e}))}#s(e){return e\u0026\u0026(e.sessionReplayMode===_e.g.FULL||e.sessionReplayMode===_e.g.ERROR)||(0,g.Aw)(this.agentIdentifier)}#u=!1;async#c(e){if(!this.#u){this.#u=!0;try{const{Recorder:t}=await Promise.all([i.e(478),i.e(249)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee,agentRef:this.#o}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==_e.g.FULL\u0026\u0026this.featAggregate.initializeRecording(_e.g.FULL,!0):(this.#i=_e.g.FULL,this.#c(t.Qb.API),this.recorder\u0026\u0026this.recorder.parent.mode!==_e.g.FULL\u0026\u0026(this.recorder.parent.mode=_e.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Pe=i(3962);class je extends b{static featureName=Pe.TZ;constructor(e,t=!0){if(super(e,Pe.TZ,t),!p.RI||!(0,R.dV)().o.MO)return;const r=be(this.ee);Pe.tC.forEach((e=\u003e{(0,A.sp)(e,(e=\u003e{a(e)}),!0)}));const n=()=\u003e(0,x.p)(\\\"newURL\\\",[(0,S.t)(),\\\"\\\"+window.location],void 0,this.featureName,this.ee);r.on(\\\"pushState-end\\\",n),r.on(\\\"replaceState-end\\\",n);try{this.removeOnAbort=new AbortController}catch(e){}(0,A.sp)(\\\"popstate\\\",(e=\u003e(0,x.p)(\\\"newURL\\\",[e.timeStamp,\\\"\\\"+window.location],void 0,this.featureName,this.ee)),!0,this.removeOnAbort?.signal);let i=!1;const o=new((0,R.dV)().o.MO)(((e,t)=\u003e{i||(i=!0,requestAnimationFrame((()=\u003e{(0,x.p)(\\\"newDom\\\",[(0,S.t)()],void 0,this.featureName,this.ee),i=!1})))})),a=(0,v.s)((e=\u003e{(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,{domObserver:o})}}var Ce=i(7378);const ke={},Le=[\\\"appendChild\\\",\\\"insertBefore\\\",\\\"replaceChild\\\"];function He(e){const t=function(e){return(e||B.ee).get(\\\"jsonp\\\")}(e);if(!p.RI||ke[t.debugId])return t;ke[t.debugId]=!0;var r=(0,W.YM)(t),n=/[?\u0026](?:callback|cb)=([^\u0026#]+)/,i=/(.*)\\\\.([^.]+)/,o=/^(\\\\w+)(\\\\.|$)(.*)$/;function a(e,t){if(!e)return t;const r=e.match(o),n=r[1];return a(r[3],t[n])}return r.inPlace(Node.prototype,Le,\\\"dom-\\\"),t.on(\\\"dom-start\\\",(function(e){!function(e){if(!e||\\\"string\\\"!=typeof e.nodeName||\\\"script\\\"!==e.nodeName.toLowerCase())return;if(\\\"function\\\"!=typeof e.addEventListener)return;var o=(s=e.src,c=s.match(n),c?c[1]:null);var s,c;if(!o)return;var u=function(e){var t=e.match(i);if(t\u0026\u0026t.length\u003e=3)return{key:t[2],parent:a(t[1],window)};return{key:e,parent:window}}(o);if(\\\"function\\\"!=typeof u.parent[u.key])return;var d={};function l(){t.emit(\\\"jsonp-end\\\",[],d),e.removeEventListener(\\\"load\\\",l,(0,A.jT)(!1)),e.removeEventListener(\\\"error\\\",f,(0,A.jT)(!1))}function f(){t.emit(\\\"jsonp-error\\\",[],d),t.emit(\\\"jsonp-end\\\",[],d),e.removeEventListener(\\\"load\\\",l,(0,A.jT)(!1)),e.removeEventListener(\\\"error\\\",f,(0,A.jT)(!1))}r.inPlace(u.parent,[u.key],\\\"cb-\\\",d),e.addEventListener(\\\"load\\\",l,(0,A.jT)(!1)),e.addEventListener(\\\"error\\\",f,(0,A.jT)(!1)),t.emit(\\\"new-jsonp\\\",[e.src],d)}(e[0])})),t}const Me={};function De(e){const t=function(e){return(e||B.ee).get(\\\"promise\\\")}(e);if(Me[t.debugId])return t;Me[t.debugId]=!0;var r=t.context,n=(0,W.YM)(t),i=p.gm.Promise;return i\u0026\u0026function(){function e(r){var o=t.context(),a=n(r,\\\"executor-\\\",o,null,!1);const s=Reflect.construct(i,[a],e);return t.context(s).getCtx=function(){return o},s}p.gm.Promise=e,Object.defineProperty(e,\\\"name\\\",{value:\\\"Promise\\\"}),e.toString=function(){return i.toString()},Object.setPrototypeOf(e,i),[\\\"all\\\",\\\"race\\\"].forEach((function(r){const n=i[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=\u003e{this.resolve(e).then(a(\\\"all\\\"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit(\\\"propagate\\\",[null,!i],o,!1,!1),i=i||!e}}}})),[\\\"resolve\\\",\\\"reject\\\"].forEach((function(r){const n=i[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r\u0026\u0026t.emit(\\\"propagate\\\",[e,!0],r,!1,!1),r}})),e.prototype=i.prototype;const o=i.prototype.then;i.prototype.then=function(...e){var i=this,a=r(i);a.promise=i,e[0]=n(e[0],\\\"cb-\\\",a,null,!1),e[1]=n(e[1],\\\"cb-\\\",a,null,!1);const s=o.apply(this,e);return a.nextPromise=s,t.emit(\\\"propagate\\\",[i,!0],s,!1,!1),s},i.prototype.then[W.Jt]=o,t.on(\\\"executor-start\\\",(function(e){e[0]=n(e[0],\\\"resolve-\\\",this,null,!1),e[1]=n(e[1],\\\"resolve-\\\",this,null,!1)})),t.on(\\\"executor-err\\\",(function(e,t,r){e[1](r)})),t.on(\\\"cb-end\\\",(function(e,r,n){t.emit(\\\"propagate\\\",[n,!0],this.nextPromise,!1,!1)})),t.on(\\\"propagate\\\",(function(e,r,n){this.getCtx\u0026\u0026!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r\u0026\u0026r.getCtx?r.getCtx():this})}))}(),t}const Ke={},Ue=\\\"setTimeout\\\",Ve=\\\"setInterval\\\",Ge=\\\"clearTimeout\\\",Fe=\\\"-start\\\",Be=[Ue,\\\"setImmediate\\\",Ve,Ge,\\\"clearImmediate\\\"];function We(e){const t=function(e){return(e||B.ee).get(\\\"timer\\\")}(e);if(Ke[t.debugId]++)return t;Ke[t.debugId]=1;var r=(0,W.YM)(t);return r.inPlace(p.gm,Be.slice(0,2),Ue+\\\"-\\\"),r.inPlace(p.gm,Be.slice(2,3),Ve+\\\"-\\\"),r.inPlace(p.gm,Be.slice(3),Ge+\\\"-\\\"),t.on(Ve+Fe,(function(e,t,n){e[0]=r(e[0],\\\"fn-\\\",null,n)})),t.on(Ue+Fe,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],\\\"fn-\\\",this,n)})),t}const ze={};function qe(e){const t=function(e){return(e||B.ee).get(\\\"mutation\\\")}(e);if(!p.RI||ze[t.debugId])return t;ze[t.debugId]=!0;var r=(0,W.YM)(t),n=p.gm.MutationObserver;return n\u0026\u0026(window.MutationObserver=function(e){return this instanceof n?new n(r(e,\\\"fn-\\\")):n.apply(this,arguments)},MutationObserver.prototype=n.prototype),t}const{TZ:Ze,d3:Ye,Kp:Je,$p:Xe,wW:$e,e5:Qe,tH:et,uP:tt,rw:rt,Lc:nt}=Ce;class it extends b{static featureName=Ze;constructor(e,t=!0){if(super(e,Ze,t),!p.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,n=0;const i=this.ee.get(\\\"tracer\\\"),o=He(this.ee),a=De(this.ee),s=We(this.ee),c=Z(this.ee),u=this.ee.get(\\\"events\\\"),d=ne(this.ee),l=be(this.ee),f=qe(this.ee);function h(e,t){l.emit(\\\"newURL\\\",[\\\"\\\"+window.location,t])}function g(){n++,r=window.location.hash,this[tt]=(0,S.t)()}function m(){n--,window.location.hash!==r\u0026\u0026h(0,!0);var e=(0,S.t)();this[Qe]=~~this[Qe]+e-this[tt],this[nt]=e}function v(e,t){e.on(t,(function(){this[t]=(0,S.t)()}))}this.ee.on(tt,g),a.on(rt,g),o.on(rt,g),this.ee.on(nt,m),a.on($e,m),o.on($e,m),this.ee.on(\\\"fn-err\\\",((...t)=\u003e{t[2]?.__newrelic?.[e.agentIdentifier]||(0,x.p)(\\\"function-err\\\",[...t],void 0,this.featureName,this.ee)})),this.ee.buffer([tt,nt,\\\"xhr-resolved\\\"],this.featureName),u.buffer([tt],this.featureName),s.buffer([\\\"setTimeout\\\"+Je,\\\"clearTimeout\\\"+Ye,tt],this.featureName),c.buffer([tt,\\\"new-xhr\\\",\\\"send-xhr\\\"+Ye],this.featureName),d.buffer([et+Ye,et+\\\"-done\\\",et+Xe+Ye,et+Xe+Je],this.featureName),l.buffer([\\\"newURL\\\"],this.featureName),f.buffer([tt],this.featureName),a.buffer([\\\"propagate\\\",rt,$e,\\\"executor-err\\\",\\\"resolve\\\"+Ye],this.featureName),i.buffer([tt,\\\"no-\\\"+tt],this.featureName),o.buffer([\\\"new-jsonp\\\",\\\"cb-start\\\",\\\"jsonp-error\\\",\\\"jsonp-end\\\"],this.featureName),v(d,et+Ye),v(d,et+\\\"-done\\\"),v(o,\\\"new-jsonp\\\"),v(o,\\\"jsonp-end\\\"),v(o,\\\"cb-start\\\"),l.on(\\\"pushState-end\\\",h),l.on(\\\"replaceState-end\\\",h),window.addEventListener(\\\"hashchange\\\",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener(\\\"load\\\",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener(\\\"popstate\\\",(function(){h(0,n\u003e1)}),(0,A.jT)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var ot=i(3333);class at extends b{static featureName=ot.TZ;constructor(e,t=!0){super(e,ot.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled,e.init.performance.resources.enabled];if(p.RI\u0026\u0026(e.init.user_actions.enabled\u0026\u0026(ot.Zp.forEach((e=\u003e(0,A.sp)(e,(e=\u003e(0,x.p)(\\\"ua\\\",[e],void 0,this.featureName,this.ee)),!0))),ot.qN.forEach((e=\u003e{const t=(0,v.s)((e=\u003e{(0,x.p)(\\\"ua\\\",[e],void 0,this.featureName,this.ee)}),500,{leading:!0});(0,A.sp)(e,t)}))),e.init.performance.resources.enabled\u0026\u0026p.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})}r.some((e=\u003ee))?this.importAggregator(e):this.deregisterDrain()}}var st=i(993),ct=i(3785),ut=i(9414);class dt extends b{static featureName=st.TZ;constructor(e,t=!0){super(e,st.TZ,t);const r=this.ee;(0,ut.J)(r,p.gm.console,\\\"log\\\",{level:\\\"info\\\"}),(0,ut.J)(r,p.gm.console,\\\"error\\\",{level:\\\"error\\\"}),(0,ut.J)(r,p.gm.console,\\\"warn\\\",{level:\\\"warn\\\"}),(0,ut.J)(r,p.gm.console,\\\"info\\\",{level:\\\"info\\\"}),(0,ut.J)(r,p.gm.console,\\\"debug\\\",{level:\\\"debug\\\"}),(0,ut.J)(r,p.gm.console,\\\"trace\\\",{level:\\\"trace\\\"}),this.ee.on(\\\"wrap-logger-end\\\",(function([e]){const{level:t,customAttributes:n}=this;(0,ct.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t){super(),p.gm?(this.features={},(0,R.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(w),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=\u003ee.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||\\\"agent\\\"),this.run()):(0,e.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 t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=\u003ea.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=\u003e{if(!t[r.featureName]\u0026\u0026r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa\u0026\u0026r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa\u0026\u0026r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=\u003e!(e in this.features)));n.length\u003e0\u0026\u0026(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,R.Zm)();delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[pe,w,N,Oe,Ie,_,M,at,dt,je,it],loaderType:\\\"spa\\\"})})()})();\\n\",\"google\",\"testAutomationFlags\",{\"_647\":140,\"_648\":140,\"_649\":140,\"_650\":140,\"_651\":140,\"_652\":140,\"_653\":140,\"_654\":140,\"_655\":140,\"_146\":140,\"_656\":140,\"_657\":154,\"_658\":154},\"disableAds\",\"disableIirisAuth\",\"disableWelcomeAd\",\"disableBigskyAd\",\"disableIirisRecommend\",\"disableDcts\",\"disableWeatherWidget\",\"disableCashGrainWidget\",\"disableCommoditiesWidget\",\"disableCookieBanner\",\"overrideBrandStyling\",\"overrideThemeStyling\",\"configState\",{\"_171\":172,\"_169\":170,\"_661\":8,\"_662\":-7,\"_663\":140,\"_564\":664,\"_668\":669,\"_671\":672,\"_676\":677},\"uiBrand\",\"colors\",\"isMarketsDivision\",{\"_7\":665,\"_666\":667},\"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\",\"media\",{\"_670\":154},\"brightcoveAccountId\",\"newsletterSignupPromo\",{\"_673\":674,\"_675\":-7},\"unbounceURL\",\"https://gamedeveloper.tradepub.com/c/pubRD.mpl?secure=1\u0026sr=pp\u0026_t=pp:\u0026qf=w_gamf01\u0026ch=gdwebbutton \",\"elnConfig\",\"proxyConfigs\",{\"_678\":140,\"_679\":154},\"proxyEnabled\",\"proxyRootPath\",\"brandConfig\",{\"_682\":180,\"_13\":14,\"_683\":14,\"_684\":10,\"_15\":16,\"_685\":686,\"_687\":688,\"_670\":154,\"_158\":697,\"_160\":161,\"_167\":703,\"_704\":705,\"_710\":711,\"_715\":716,\"_615\":640,\"_720\":721,\"_756\":757},\"irisEnvironment\",\"siteFullName\",\"siteUrl\",\"authentication\",{},\"unbounce\",{\"_689\":690,\"_692\":693,\"_694\":695,\"_180\":696},\"local\",{\"_176\":691},\"https://gd-resources.gamedeveloper.com/free/w_gamf01/prgm.cgi\",\"preview\",{\"_176\":691},\"staging\",{\"_176\":691},{\"_176\":691},{\"_689\":698,\"_692\":700,\"_694\":701,\"_180\":702},{\"_155\":699},\"8aaa0413-1bf0-4c5f-b2b7-20f59225831b-test\",{\"_155\":154},{\"_155\":156},{\"_155\":156},{\"_7\":8,\"_169\":170,\"_171\":172},\"socialUrls\",[706,707,709],{\"_205\":212,\"_176\":213},{\"_205\":215,\"_176\":708},\"https://www.facebook.com/GameDeveloperOfficial/\",{\"_205\":209,\"_176\":210},\"articleSocialShareToggle\",{\"_712\":159,\"_713\":159,\"_714\":159},\"print\",\"email\",\"reddit\",\"newsletterSignupPromoContent\",{\"_229\":717,\"_718\":719},\"Newsletter sign up title\",\"message\",\"Newsletter sign up message\",\"iirisRecommendation\",{\"_722\":723,\"_724\":725,\"_726\":727,\"_728\":729,\"_730\":731,\"_732\":733,\"_734\":154,\"_735\":736,\"_737\":738,\"_739\":740,\"_741\":742,\"_743\":744,\"_745\":304,\"_746\":154,\"_747\":748,\"_749\":744,\"_750\":729,\"_751\":733,\"_752\":753,\"_754\":755},\"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\",\"newrelic\",{\"_758\":759},\"guid\",\"MzkzNjM0OHxCUk9XU0VSfEFQUExJQ0FUSU9OfDUzODYwMDIwNQ\",\"routes/_index\",{\"_762\":763,\"_1327\":1328,\"_1337\":1338,\"_1371\":1372},\"modules\",[764,879,892,1108,1168,1247],{\"_205\":765,\"_766\":767,\"_768\":769},\"module_featured\",\"uid\",\"blt02a37174d2917e7d\",\"data\",{\"_770\":159,\"_229\":771,\"_772\":773,\"_816\":817,\"_301\":867,\"_868\":869,\"_870\":154,\"_871\":872,\"_873\":874,\"_875\":876,\"_877\":35,\"_878\":765},\"isDynamicContent\",\"Featured\",\"features\",[774,789,798],{\"_301\":775,\"_289\":290,\"_269\":776,\"_274\":275,\"_279\":280,\"_281\":280,\"_777\":778,\"_276\":275,\"_282\":779,\"_284\":154,\"_285\":286,\"_287\":288,\"_291\":780,\"_299\":300,\"_277\":278,\"_784\":785},\"normal\",{\"_153\":271,\"_272\":273},\"linkAttrs\",{},\"2025-04-04T16:40:14.000Z\",[781],{\"_174\":294,\"_295\":296,\"_297\":298,\"_782\":783},\"role\",\"News Editor\",\"paidGating\",{\"_786\":140,\"_787\":788},\"paidContent\",\"paidProductTaxonomy\",[],{\"_301\":775,\"_289\":290,\"_269\":790,\"_274\":309,\"_279\":311,\"_281\":311,\"_777\":791,\"_276\":309,\"_282\":792,\"_284\":154,\"_285\":313,\"_287\":314,\"_291\":793,\"_299\":320,\"_277\":310,\"_784\":796},{\"_153\":307,\"_272\":308},{},\"2025-04-03T14:00:01.000Z\",[794],{\"_174\":317,\"_295\":318,\"_297\":319,\"_782\":795},\"Senior Editor\",{\"_786\":140,\"_787\":797},[],{\"_301\":775,\"_289\":290,\"_269\":799,\"_274\":802,\"_279\":803,\"_281\":803,\"_777\":804,\"_276\":802,\"_282\":805,\"_284\":154,\"_285\":286,\"_287\":288,\"_291\":806,\"_299\":812,\"_277\":813,\"_784\":814},{\"_153\":800,\"_272\":801},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt43c0b9dfecc199ad/67eea8a58257bc12fff6dd07/CoLab_Header.png\",\"A mug with the CoLab logo sits on a table next to a laptop and a plate with cookies\",\"Disney, Codemasters, and Jagex veterans launch indie publishing label The CoLab\",\"/business/disney-codemasters-and-jagex-veterans-launch-indie-publishing-label-colab\",{},\"2025-04-03T14:12:47.000Z\",[807],{\"_174\":808,\"_295\":809,\"_297\":810,\"_782\":811},\"Diego Arguello\",\"/author/diego-arguello\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd709c2f6ad0896cd/66df238c1ceec85b3ae644da/Game_Developer_G_Logo_RGB.webp\",\"Contributor\",1,\"The nascent publishing label hopes to counter 'greedflation' in the video game industry.\",{\"_786\":140,\"_787\":815},[],\"latestNews\",[818,830,842,855],{\"_301\":775,\"_289\":290,\"_269\":819,\"_274\":822,\"_279\":823,\"_281\":823,\"_777\":824,\"_276\":822,\"_282\":825,\"_285\":286,\"_287\":288,\"_291\":826,\"_299\":300,\"_784\":828},{\"_153\":820,\"_272\":821},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltaba7da62a94b92d8/67efd6c98be2b700c6eaf438/Inzoi_Header.png\",\"A human and their feline on promotional artwork for InZoi\",\"Krafton brands life simulator InZoi a 'long-term franchise' after it hits 1 million sales\",\"/business/krafton-brands-life-simulator-inzoi-a-long-term-franchise-after-it-hits-1-million-sales\",{},\"2025-04-04T12:49:26.000Z\",[827],{\"_174\":294,\"_295\":296,\"_297\":298,\"_782\":783},{\"_786\":140,\"_787\":829},[],{\"_301\":775,\"_289\":290,\"_269\":831,\"_274\":834,\"_279\":835,\"_281\":835,\"_777\":836,\"_276\":834,\"_282\":837,\"_285\":286,\"_287\":288,\"_291\":838,\"_299\":300,\"_784\":840},{\"_153\":832,\"_272\":833},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt2932fe65c3c92bd3/67eeaa45fd2647b4a30aa295/roblox_header.png\",\"A Roblox-style chicken in an emerging UGC experience \",\"Parents can now moderate their child's friend list and block specific experiences in Roblox\",\"/business/parents-can-now-moderate-their-child-s-friend-list-and-block-experiences-in-roblox\",{},\"2025-04-03T15:22:21.000Z\",[839],{\"_174\":294,\"_295\":296,\"_297\":298,\"_782\":783},{\"_786\":140,\"_787\":841},[],{\"_301\":775,\"_289\":290,\"_269\":843,\"_274\":846,\"_279\":847,\"_281\":847,\"_777\":848,\"_276\":846,\"_282\":849,\"_285\":286,\"_287\":288,\"_291\":850,\"_299\":300,\"_784\":853},{\"_153\":844,\"_272\":845},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltb15ff1b9355e1c77/67ee6bfa2c4eae860b078c93/DUMB.webp\",\"Promotional artwork for PlaySide franchise Dumb Ways to Die\",\"Australian studio PlaySide is making layoffs after delivering record revenue\",\"/business/australian-company-playside-studios-has-laid-off-workers-in-restructuring-\",{},\"2025-04-03T11:19:27.000Z\",[851,852],{\"_174\":808,\"_295\":809,\"_297\":810,\"_782\":811},{\"_174\":294,\"_295\":296,\"_297\":298,\"_782\":783},{\"_786\":140,\"_787\":854},[],{\"_301\":775,\"_289\":290,\"_269\":856,\"_274\":859,\"_279\":860,\"_281\":860,\"_777\":861,\"_276\":859,\"_282\":862,\"_285\":421,\"_287\":422,\"_291\":863,\"_299\":812,\"_784\":865},{\"_153\":857,\"_272\":858},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3725719e60ecbc6a/67ee59579e881c7eba7bf75a/Loci_Header.png\",\"A screenshot of asset tags created by Loci\",\"Epic acquires AI-powered 3D asset tagging technology Loci\",\"/production/epic-buys-ai-powered-3d-asset-tagging-technology-loci\",{},\"2025-04-03T09:26:09.000Z\",[864],{\"_174\":294,\"_295\":296,\"_297\":298,\"_782\":783},{\"_786\":140,\"_787\":866},[],\"recent\",\"recentLabel\",\"Latest News\",\"ctaButton\",\"ctaButtonLink\",\"/\",\"dateDisplay\",\"show\",\"adPosition\",\"right\",\"rectangleAdPos\",\"trackGtmUid\",{\"_205\":880,\"_766\":881,\"_768\":882},\"module_newsletter_promo\",\"blt5927fa665b4acf51\",{\"_229\":883,\"_718\":884,\"_885\":881,\"_886\":887,\"_301\":888,\"_889\":890,\"_891\":159},\"Get daily news, dev blogs, and stories from Game Developer straight to your inbox\",\"Subscribe to Game Developer Newsletters to stay caught up with the latest news, design insights, marketing tips, and more\",\"newsletterId\",\"buttonText\",\"Stay Updated\",\"horizontal\",\"mode\",\"dark\",\"isOnHomepage\",{\"_205\":893,\"_766\":894,\"_768\":895,\"_1104\":1105},\"module_latest_content\",\"blt786db145f8677f63\",{\"_770\":159,\"_229\":896,\"_897\":898,\"_1007\":1008,\"_1095\":1096,\"_1098\":1099,\"_1100\":1101,\"_1102\":1103},\"Latest Content\",\"leftColumnData\",{\"_229\":899,\"_900\":901,\"_1003\":1004},\"LATEST UPDATES\",\"contents\",[902,912,920,924,932,940,948,960,969,971,979,992],{\"_205\":903,\"_768\":904},\"contentPreview\",{\"_269\":905,\"_274\":275,\"_276\":275,\"_279\":280,\"_281\":280,\"_777\":906,\"_289\":290,\"_282\":283,\"_284\":154,\"_285\":286,\"_287\":288,\"_301\":907,\"_291\":908,\"_299\":300,\"_784\":910},{\"_272\":273,\"_153\":271},{},\"small\",[909],{\"_174\":294,\"_295\":296,\"_297\":298,\"_229\":783,\"_782\":783},{\"_786\":140,\"_787\":911},[],{\"_205\":903,\"_768\":913},{\"_269\":914,\"_274\":822,\"_276\":822,\"_279\":823,\"_281\":823,\"_777\":915,\"_289\":290,\"_282\":283,\"_284\":154,\"_285\":286,\"_287\":288,\"_301\":907,\"_291\":916,\"_299\":300,\"_784\":918},{\"_272\":821,\"_153\":820},{},[917],{\"_174\":294,\"_295\":296,\"_297\":298,\"_229\":783,\"_782\":783},{\"_786\":140,\"_787\":919},[],{\"_205\":921,\"_768\":922},\"ad\",{\"_923\":59},\"pos\",{\"_205\":903,\"_768\":925},{\"_269\":926,\"_274\":834,\"_276\":834,\"_279\":835,\"_281\":835,\"_777\":927,\"_289\":290,\"_282\":312,\"_284\":154,\"_285\":286,\"_287\":288,\"_301\":907,\"_291\":928,\"_299\":300,\"_784\":930},{\"_272\":833,\"_153\":832},{},[929],{\"_174\":294,\"_295\":296,\"_297\":298,\"_229\":783,\"_782\":783},{\"_786\":140,\"_787\":931},[],{\"_205\":903,\"_768\":933},{\"_269\":934,\"_274\":802,\"_276\":802,\"_279\":803,\"_281\":803,\"_777\":935,\"_289\":290,\"_282\":312,\"_284\":154,\"_285\":286,\"_287\":288,\"_301\":907,\"_291\":936,\"_299\":812,\"_784\":938},{\"_272\":801,\"_153\":800},{},[937],{\"_174\":808,\"_295\":809,\"_297\":810,\"_229\":811,\"_782\":811},{\"_786\":140,\"_787\":939},[],{\"_205\":903,\"_768\":941},{\"_269\":942,\"_274\":309,\"_276\":309,\"_279\":311,\"_281\":311,\"_777\":943,\"_289\":290,\"_282\":312,\"_284\":154,\"_285\":313,\"_287\":314,\"_301\":907,\"_291\":944,\"_299\":320,\"_784\":946},{\"_272\":308,\"_153\":307},{},[945],{\"_174\":317,\"_295\":318,\"_297\":319,\"_229\":795,\"_782\":795},{\"_786\":140,\"_787\":947},[],{\"_205\":903,\"_768\":949},{\"_269\":950,\"_274\":953,\"_276\":953,\"_279\":260,\"_281\":260,\"_777\":954,\"_289\":290,\"_282\":312,\"_284\":154,\"_285\":434,\"_287\":435,\"_301\":907,\"_291\":955,\"_299\":957,\"_784\":958},{\"_272\":951,\"_153\":952},\"A Nintendo Switch 2 with the Nintendo Switch 2 Camera.\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt96842368ef633cc8/67edc0a58764f99e4f3612f4/switctch2camera.png\",\"Nintendo Switch 2 shows Nintendo's strategy for an online social future\",{},[956],{\"_174\":317,\"_295\":318,\"_297\":319,\"_229\":795,\"_782\":795},6,{\"_786\":140,\"_787\":959},[],{\"_205\":903,\"_768\":961},{\"_269\":962,\"_274\":846,\"_276\":846,\"_279\":847,\"_281\":847,\"_777\":963,\"_289\":290,\"_282\":312,\"_284\":154,\"_285\":286,\"_287\":288,\"_301\":907,\"_291\":964,\"_299\":300,\"_784\":967},{\"_272\":845,\"_153\":844},{},[965,966],{\"_174\":808,\"_295\":809,\"_297\":810,\"_229\":811,\"_782\":811},{\"_174\":294,\"_295\":296,\"_297\":298,\"_229\":783,\"_782\":783},{\"_786\":140,\"_787\":968},[],{\"_205\":921,\"_768\":970},{\"_923\":60},{\"_205\":903,\"_768\":972},{\"_269\":973,\"_274\":859,\"_276\":859,\"_279\":860,\"_281\":860,\"_777\":974,\"_289\":290,\"_282\":312,\"_284\":154,\"_285\":421,\"_287\":422,\"_301\":907,\"_291\":975,\"_299\":812,\"_784\":977},{\"_272\":858,\"_153\":857},{},[976],{\"_174\":294,\"_295\":296,\"_297\":298,\"_229\":783,\"_782\":783},{\"_786\":140,\"_787\":978},[],{\"_205\":903,\"_768\":980},{\"_269\":981,\"_274\":984,\"_276\":984,\"_279\":985,\"_281\":985,\"_777\":986,\"_289\":290,\"_282\":987,\"_284\":154,\"_285\":421,\"_287\":422,\"_301\":907,\"_291\":988,\"_299\":812,\"_784\":990},{\"_272\":982,\"_153\":983},\"The Switch 2 Joy-Con 2 being used in mouse mode\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltb6e7545617457826/67ed5c7a4c457d0ff2e2130f/Switch_Mouse.png\",\"Unity promises to deliver 'battle-tested' Switch 2 support\",\"/production/unity-promises-to-deliver-battle-tested-switch-2-support\",{},\"Apr 2, 2025\",[989],{\"_174\":294,\"_295\":296,\"_297\":298,\"_229\":783,\"_782\":783},{\"_786\":140,\"_787\":991},[],{\"_205\":903,\"_768\":993},{\"_269\":994,\"_274\":997,\"_276\":997,\"_279\":257,\"_281\":257,\"_777\":998,\"_289\":290,\"_282\":987,\"_284\":154,\"_285\":434,\"_287\":435,\"_301\":907,\"_291\":999,\"_299\":378,\"_784\":1001},{\"_272\":995,\"_153\":996},\"The Switch 2 on a stylised background\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt15f3f053b4163abf/67ed45bc190cb7210c698120/Switch_2_Header.png\",\"'Redesigned from the ground up:' The Nintendo Switch 2 will launch on June 5 for $449\",{},[1000],{\"_174\":294,\"_295\":296,\"_297\":298,\"_229\":783,\"_782\":783},{\"_786\":140,\"_787\":1002},[],\"moreContent\",{\"_229\":1005,\"_176\":1006},\"More Features\",\"/keyword/features\",\"rightColumnData\",{\"_229\":1009,\"_900\":1010,\"_1003\":1093},\"FEATURED BLOGS\",[1011,1020,1028,1030,1048,1050,1064,1080],{\"_205\":903,\"_768\":1012},{\"_269\":1013,\"_274\":370,\"_276\":370,\"_279\":372,\"_281\":372,\"_777\":1014,\"_289\":290,\"_282\":373,\"_284\":154,\"_285\":374,\"_287\":375,\"_301\":1015,\"_291\":1016,\"_299\":378,\"_784\":1018},{\"_272\":369,\"_153\":368},{},\"contributor-focused\",[1017],{\"_174\":317,\"_295\":318,\"_297\":319,\"_229\":795,\"_782\":795},{\"_786\":140,\"_787\":1019},[],{\"_205\":903,\"_768\":1021},{\"_269\":1022,\"_274\":383,\"_276\":383,\"_279\":385,\"_281\":385,\"_777\":1023,\"_289\":290,\"_282\":386,\"_284\":154,\"_285\":313,\"_287\":314,\"_301\":1015,\"_291\":1024,\"_299\":391,\"_784\":1026},{\"_272\":382,\"_153\":381},{},[1025],{\"_174\":389,\"_295\":390,\"_297\":154,\"_229\":154,\"_782\":154},{\"_786\":140,\"_787\":1027},[],{\"_205\":921,\"_768\":1029},{\"_923\":69},{\"_205\":903,\"_768\":1031},{\"_269\":1032,\"_274\":1035,\"_276\":1035,\"_279\":1036,\"_281\":1036,\"_777\":1037,\"_289\":290,\"_282\":1038,\"_284\":154,\"_285\":313,\"_287\":314,\"_301\":1015,\"_291\":1039,\"_299\":1045,\"_784\":1046},{\"_272\":1033,\"_153\":1034},\"headshots of Sam Lake and Lucas Pope\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3c36f15d8a0391b5/67b8b458149b7e5b340e085c/sam_lake_lucas_pope.png\",\"Writer-director Sam Lake and game designer Lucas Pope honored at GDCA 2025\",\"/design/writer-director-sam-lake-and-game-designer-lucas-pope-honored-at-gdca-2025\",{},\"Feb 21, 2025\",[1040],{\"_174\":1041,\"_295\":1042,\"_297\":1043,\"_229\":1044,\"_782\":1044},\"Beth Elderkin\",\"/author/beth-elderkin\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta4a6afc5bf4300eb/650f170cde47dca7a8f21ba2/source_small.jpeg\",\"Content Marketing Manager (GDC)\",3,{\"_786\":140,\"_787\":1047},[],{\"_205\":921,\"_768\":1049},{\"_923\":70},{\"_205\":903,\"_768\":1051},{\"_269\":1052,\"_274\":1055,\"_276\":1056,\"_279\":1057,\"_281\":1057,\"_777\":1058,\"_289\":290,\"_282\":1059,\"_284\":154,\"_285\":421,\"_287\":422,\"_301\":1015,\"_291\":1060,\"_299\":300,\"_784\":1062},{\"_272\":1053,\"_153\":1054},\"ESA logo and company logos\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta66f63c40c6e0180/67a53d380bf90576ec058a17/esa_accessibility_blog_image.png\",\"ESA Brings top studios together at GDC to unveil new accessibility initiative\",\"ESA Brings top studios together at GDC to unveil new accessibility initiative \",\"/production/esa-brings-top-studios-together-at-gdc-to-unveil-new-accessibility-initiative\",{},\"Feb 6, 2025\",[1061],{\"_174\":1041,\"_295\":1042,\"_297\":1043,\"_229\":1044,\"_782\":1044},{\"_786\":140,\"_787\":1063},[],{\"_205\":903,\"_768\":1065},{\"_269\":1066,\"_274\":1069,\"_276\":1069,\"_279\":1070,\"_281\":1070,\"_777\":1071,\"_289\":290,\"_282\":1072,\"_284\":154,\"_285\":421,\"_287\":422,\"_301\":1015,\"_291\":1073,\"_299\":378,\"_784\":1078},{\"_272\":1067,\"_153\":1068},\"Characters from Space Marine 2\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt7e60d18f3d2d0abe/67acfab264f859a2e505f3a8/ss_66a8bc13bf868d0e2a76e4d797e6408c271065d7.1920x1080.jpg\",\"Creating seamless multiplayer experiences for games like Space Marine 2\",\"/production/creating-seamless-multiplayer-experiences-for-games-like-space-marine-2\",{},\"Feb 5, 2025\",[1074],{\"_174\":1075,\"_295\":1076,\"_297\":1077,\"_229\":154,\"_782\":154},\"Dmitri Brevdo\",\"/author/dmitri-brevdo\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt67b877227d9e0551/67acfa5567589e7bad2c60a4/Dmitri_Brevdo.jpg\",{\"_786\":140,\"_787\":1079},[],{\"_205\":903,\"_768\":1081},{\"_269\":1082,\"_274\":1085,\"_276\":1085,\"_279\":1086,\"_281\":1086,\"_777\":1087,\"_289\":290,\"_282\":1088,\"_284\":154,\"_285\":286,\"_287\":288,\"_301\":1015,\"_291\":1089,\"_299\":378,\"_784\":1091},{\"_272\":1083,\"_153\":1084},\"A robotic middle finger emerges from a laptop screen.\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt66ddf6e4600e86be/67913454295de017bbbff139/aimiddlefingerfeatured.jpg\",\"Developers still aren't warming up to generative AI\",\"/business/developers-still-aren-t-warming-up-to-generative-ai\",{},\"Jan 22, 2025\",[1090],{\"_174\":317,\"_295\":318,\"_297\":319,\"_229\":795,\"_782\":795},{\"_786\":140,\"_787\":1092},[],{\"_229\":1094,\"_176\":350},\"More Featured Blogs\",\"displayAds\",{\"_1097\":876,\"_923\":36},\"position\",\"rightSectionDisplayType\",\"contributorFocused\",\"moduleHeight\",\"tall\",\"moduleLocation\",\"homepage\",\"adConfig\",{\"_1106\":876,\"_1107\":159},\"displayAdOption\",\"nativeAdOption\",{\"_205\":1109,\"_766\":1110,\"_768\":1111},\"module_section_promo_v2\",\"blt4873f8e973c207c1\",{\"_770\":159,\"_229\":1112,\"_1113\":154,\"_1114\":1115,\"_1130\":1131,\"_1163\":1164,\"_873\":1167},\"Latest Featured Blogs on Game Developer\",\"backgroundColor\",\"contentFeatured\",{\"_289\":290,\"_564\":1116,\"_1118\":1119,\"_229\":1120,\"_281\":154,\"_1121\":1122,\"_1123\":154,\"_284\":154,\"_1124\":378,\"_1125\":1126,\"_176\":1127,\"_784\":1128},{\"_272\":154,\"_153\":1117},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt88d4318d528a1cfb/677ed50dbf2d061c2a702fc6/Lenovo_Legion.png\",\"summary\",\"Valve鈥檚 collaboration with hardware manufacturers and chipset makers strengthens SteamOS鈥檚 position in the PC gaming handheld space.\",\"Valve stakes its claim to PC gaming handhelds with SteamOS鈥檚 arrival on Lenovo Legion Go S\",\"publishDate\",\"2025-01-09T17:00:00.000Z\",\"webinarStartDate\",\"count\",\"keyword\",{\"_229\":286,\"_176\":288},\"/business/valve-stakes-its-claim-to-pc-gaming-handhelds-with-steamos-s-arrival-on-lenovo-legion-go-s\",{\"_786\":140,\"_787\":1129},[],\"contentGroup\",[1132,1140,1148,1155],{\"_1125\":1133,\"_229\":1134,\"_281\":154,\"_1121\":1135,\"_1123\":154,\"_284\":154,\"_1124\":1136,\"_176\":1137,\"_289\":290,\"_784\":1138},{\"_229\":286,\"_176\":288},\"The Last Humble Bee postmortem: Staying sane in solo development\",\"2024-12-05T17:00:00.000Z\",10,\"/business/the-last-humble-bee-postmortem-staying-sane-in-solo-development\",{\"_786\":140,\"_787\":1139},[],{\"_1125\":1141,\"_229\":1142,\"_281\":154,\"_1121\":1143,\"_1123\":154,\"_284\":154,\"_1124\":1144,\"_176\":1145,\"_289\":290,\"_784\":1146},{\"_229\":286,\"_176\":288},\"Gnarly content: 9 risks for horror game development\",\"2024-12-04T14:53:46.000Z\",8,\"/business/gnarly-content-9-risks-for-horror-game-development\",{\"_786\":140,\"_787\":1147},[],{\"_1125\":1149,\"_229\":1150,\"_281\":154,\"_1121\":1151,\"_1123\":154,\"_284\":154,\"_1124\":1144,\"_176\":1152,\"_289\":290,\"_784\":1153},{\"_229\":425,\"_176\":426},\"How to record a giant mech: Recording sound design with War Robots\",\"2024-11-20T17:00:00.000Z\",\"/audio/how-to-record-a-giant-mech-recording-sound-design-with-war-robots\",{\"_786\":140,\"_787\":1154},[],{\"_1125\":1156,\"_229\":1157,\"_281\":154,\"_1121\":1158,\"_1123\":154,\"_284\":154,\"_1124\":1159,\"_176\":1160,\"_289\":290,\"_784\":1161},{\"_229\":313,\"_176\":314},\"The art of game balance: evolution\",\"2024-11-18T16:00:00.000Z\",7,\"/design/the-art-of-game-balance-evolution\",{\"_786\":140,\"_787\":1162},[],\"button\",{\"_1165\":1094,\"_176\":1166},\"text\",\"/program/featured-blogs/\",\"hide\",{\"_205\":1169,\"_766\":1170,\"_768\":1171,\"_1104\":1246},\"module_content_cards\",\"blt9a740ec0851d5b9f\",{\"_770\":159,\"_229\":1172,\"_1173\":154,\"_295\":1174,\"_301\":888,\"_900\":1178,\"_1242\":1243,\"_873\":1167,\"_1245\":874,\"_1102\":1103},\"Game Developer Essentials\",\"moduleLabel\",{\"_5\":1175,\"_1176\":1177},\"/keyword/game-developer-essentials\",\"label\",\"More resources for devs\",[1179,1195,1208,1222],{\"_205\":903,\"_768\":1180},{\"_289\":290,\"_301\":1181,\"_303\":888,\"_269\":1182,\"_274\":1184,\"_276\":1184,\"_279\":1185,\"_281\":1185,\"_777\":1186,\"_282\":1187,\"_284\":154,\"_285\":313,\"_287\":314,\"_291\":1188,\"_299\":1136,\"_784\":1193},\"card-horizontal\",{\"_153\":1183,\"_272\":154},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta1d4ac75d1205177/676d82673bae9a2233b704a5/Game_Developer_Holly_Green_Best_of_2024.jpg\",\"Game Developer's 2024 Wrap-Up: Holly Green's top 10 games of the year\",\"/design/game-developer-s-2024-wrap-up-holly-green-s-top-10-games-of-the-year\",{},\"Dec 25, 2024\",[1189],{\"_174\":1190,\"_295\":1191,\"_297\":1192},\"Holly Green\",\"/author/holly-green\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltdec6f50070a70555/650f059f457d12263163b2ca/75258562_10220983058707614_8585122828469141504_n.jpg\",{\"_786\":140,\"_787\":1194},[],{\"_205\":903,\"_768\":1196},{\"_289\":290,\"_301\":1181,\"_303\":888,\"_269\":1197,\"_274\":1200,\"_276\":1200,\"_279\":1201,\"_281\":1201,\"_777\":1202,\"_282\":1203,\"_284\":154,\"_285\":421,\"_287\":422,\"_291\":1204,\"_299\":378,\"_784\":1206},{\"_153\":1198,\"_272\":1199},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltb30b7e9ac00c9f1d/6765a134087922441ddb1740/Chris_Kerr_Best_Games_2024.png\",\"screenshots showing a selection of games\",\"Game Developer's 2024 Wrap-Up: Chris Kerr's top 5 games of the year\",\"/production/game-developer-s-2024-wrap-up-chris-kerr-s-top-games-of-the-year\",{},\"Dec 24, 2024\",[1205],{\"_174\":294,\"_295\":296,\"_297\":298},{\"_786\":140,\"_787\":1207},[],{\"_205\":903,\"_768\":1209},{\"_289\":290,\"_301\":1181,\"_303\":888,\"_269\":1210,\"_274\":1213,\"_276\":1213,\"_279\":1214,\"_281\":1214,\"_777\":1215,\"_282\":1216,\"_284\":154,\"_285\":313,\"_287\":314,\"_291\":1217,\"_299\":1219,\"_784\":1220},{\"_153\":1211,\"_272\":1212},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt0cf104abf5409937/67645190c5e375038d55ebb5/Game_Developer_Bryant_Francis_Best_Games_2024.png\",\"A promo image for Bryant's top 10 game of the year list featuring four games.\",\"Game Developer 2024 Wrap-Up: Bryant Francis' top 10 games of the year\",\"/design/game-developer-2024-wrap-up-bryant-francis-top-10-games-of-the-year\",{},\"Dec 23, 2024\",[1218],{\"_174\":317,\"_295\":318,\"_297\":319},14,{\"_786\":140,\"_787\":1221},[],{\"_205\":903,\"_768\":1223},{\"_289\":290,\"_301\":1181,\"_303\":888,\"_269\":1224,\"_274\":1227,\"_276\":1227,\"_279\":1228,\"_281\":1228,\"_777\":1229,\"_282\":1230,\"_284\":154,\"_285\":1231,\"_287\":1232,\"_291\":1233,\"_299\":391,\"_784\":1240},{\"_153\":1225,\"_272\":1226},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltca82c7a09dc4ad7e/6764ef84caf4302fe8f9443e/game_developer_devs_that_made_an_impact.png\",\"an assortment of images honoring developers from Godot, GSC Gameworld, and more\",\"Game Developer's 2024 Wrap-Up: 5 devs that made an impact\",\"/game-platforms/game-developer-s-2024-wrap-up-5-devs-that-made-an-impact-\",{},\"Dec 20, 2024\",\"Game Platforms\",\"/game-platforms\",[1234,1238,1239],{\"_174\":1235,\"_295\":1236,\"_297\":1237},\"Danielle Riendeau\",\"/author/danielle-riendeau\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt722812705eb8ab24/650f013b8f61917d4dd58a8c/DRPFP.jpg\",{\"_174\":294,\"_295\":296,\"_297\":298},{\"_174\":317,\"_295\":318,\"_297\":319},{\"_786\":140,\"_787\":1241},[],\"displayAd\",{\"_1097\":1244,\"_923\":-7},\"none\",\"contributorDisplay\",{\"_1106\":1244,\"_1107\":140},{\"_205\":1169,\"_766\":1248,\"_768\":1249,\"_1104\":1326},\"bltedbc70149ae501f7\",{\"_770\":159,\"_229\":1250,\"_1173\":154,\"_295\":1251,\"_301\":888,\"_900\":1253,\"_1242\":1325,\"_873\":874,\"_1245\":874,\"_1102\":1103},\"From Our Sponsors\",{\"_5\":515,\"_1176\":1252},\"LEARN MORE\",[1254,1271,1283,1292,1302,1311],{\"_205\":903,\"_768\":1255},{\"_289\":290,\"_301\":1181,\"_303\":888,\"_269\":1256,\"_274\":1258,\"_276\":1258,\"_279\":1259,\"_281\":1259,\"_777\":1260,\"_282\":1261,\"_284\":154,\"_285\":1262,\"_287\":1263,\"_291\":1264,\"_299\":1144,\"_784\":1269},{\"_153\":1257,\"_272\":154},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt86260ffe6bba532d/67af93c864f859136a05fb12/Cover_without_title-_2x.png\",\"Collaboration Without Boundaries: Virtuos Redraws the Game Development Map\",\"/production/collaboration-without-boundaries-virtuos-redraws-the-game-development-map\",{},\"Feb 14, 2025\",\"Sponsored Content\",\"#\",[1265],{\"_174\":1266,\"_295\":1267,\"_297\":1268},\"Anna Richards\",\"/author/anna-richards\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt59b08ee50b186169/67afa87911039a0fc0f746fb/Anna_Richards_300x300_px_highres.png\",{\"_786\":140,\"_787\":1270},[],{\"_205\":903,\"_768\":1272},{\"_289\":290,\"_301\":1181,\"_303\":888,\"_269\":1273,\"_274\":1276,\"_276\":1276,\"_279\":1277,\"_281\":1277,\"_777\":1278,\"_282\":1279,\"_284\":154,\"_285\":1262,\"_287\":1263,\"_291\":1280,\"_299\":378,\"_784\":1281},{\"_153\":1274,\"_272\":1275},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blte27c26f10d0cce44/66bccec455cb94f58ddf41f1/Lemon_Sky_HQ_Office_-_Lobby_3.jpg\",\"Lemon Sky Studios HQ Lobby\",\"Lemon Sky Studios: Bridging Tech and Art in Game Dev\",\"/art/lemon-sky-studios-bridging-tech-and-art-in-game-dev\",{},\"Aug 26, 2024\",[],{\"_786\":140,\"_787\":1282},[],{\"_205\":903,\"_768\":1284},{\"_289\":290,\"_301\":1181,\"_303\":888,\"_269\":1285,\"_274\":1287,\"_276\":1287,\"_279\":1288,\"_281\":1288,\"_777\":1289,\"_282\":1290,\"_284\":154,\"_285\":1262,\"_287\":1263,\"_291\":1291,\"_299\":1159,\"_784\":-5},{\"_153\":1286,\"_272\":154},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt9580c2bfd5ca2040/66194b5cbf90240fa8f26e3c/Blog_Header_-_Omdia_x_AccelByte_Live_Service_Developers_-_830x467px_-_Mar24.png\",\"Live service developers are increasingly looking to buy rather than build\",\"/business/live-service-developers-are-increasingly-looking-to-buy-rather-than-build\",{},\"Apr 22, 2024\",[],{\"_205\":903,\"_768\":1293},{\"_289\":290,\"_301\":1181,\"_303\":888,\"_269\":1294,\"_274\":1297,\"_276\":1297,\"_279\":1298,\"_281\":1298,\"_777\":1299,\"_282\":1300,\"_284\":154,\"_285\":1262,\"_287\":1263,\"_291\":1301,\"_299\":1045,\"_784\":-5},{\"_153\":1295,\"_272\":1296},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt098bdb12a3de843f/6616e27e1dfadc2983426235/2featuredimage.jpg\",\"LIGHTSPEED STUDIOS Vice President and head of Lightspeed LA, Steve C. Martin presents at GDC 2024\",\"LIGHTSPEED STUDIOS Outlines Vision for Future of Game Development\",\"/game-platforms/lightspeed-studios-outlines-vision-for-future-of-game-development\",{},\"Apr 15, 2024\",[],{\"_205\":903,\"_768\":1303},{\"_289\":290,\"_301\":1181,\"_303\":888,\"_269\":1304,\"_274\":1306,\"_276\":1306,\"_279\":1307,\"_281\":1307,\"_777\":1308,\"_282\":1309,\"_284\":154,\"_285\":1262,\"_287\":1263,\"_291\":1310,\"_299\":300,\"_784\":-5},{\"_153\":1305,\"_272\":154},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt69ca537c9b5bc149/65ef292f32eb75040a886910/xsollalogo.png\",\"Equal access for all: Learn how Xsolla helps games reach more players\",\"/production/equal-access-for-all-learn-how-xsolla-helps-games-reach-more-players\",{},\"Mar 11, 2024\",[],{\"_205\":903,\"_768\":1312},{\"_289\":290,\"_301\":1181,\"_303\":888,\"_269\":1313,\"_274\":1315,\"_276\":1316,\"_279\":1317,\"_281\":1317,\"_777\":1318,\"_282\":1319,\"_284\":154,\"_285\":1262,\"_287\":1263,\"_291\":1320,\"_299\":957,\"_784\":-5},{\"_153\":1314,\"_272\":154},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltacbeb2b8321b6164/65e9ef28f0712c040a6dcf8f/Header_GD.png\",\"Why Game Preservation Is Vital--And How Technology Helps\",\"Why Game Preservation Is Vital鈥擜nd How Technology Helps\",\"/production/why-game-preservation-is-vital-and-how-technology-helps\",{},\"Mar 8, 2024\",[1321],{\"_174\":1322,\"_295\":1323,\"_297\":1324},\"Alex Vasiliev\",\"/author/alex-vasiliev\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt5949df6f43ec4bcd/65e6387b63a33f040a6cda5e/avatar.jpg\",{\"_1097\":1244,\"_923\":-7},{\"_1106\":1244,\"_1107\":140},\"seo\",{\"_1329\":10,\"_1330\":1331,\"_1332\":1333,\"_1334\":140,\"_1335\":1336,\"_13\":-7},\"canonicalUrl\",\"metaDescription\",\"The game industry resource for breaking news and in-depth analysis of the latest game industry tech and trends.\",\"metaTitle\",\"Game Developer | Game Industry News, Deep Dives, and Developer Blogs\",\"noIndex\",\"imageUrl\",\"https://www.gamedeveloper.com/assets/gamedeveloper-CAvl2PCb.ico\",\"schema\",[1339],{\"_1340\":1341,\"_1342\":1343,\"_174\":1344,\"_224\":1331,\"_176\":10,\"_550\":552,\"_1345\":1346},\"@context\",\"https://schema.org\",\"@type\",\"NewsMediaOrganization\",\"Prod Homepage\",\"publisher\",{\"_1342\":1347,\"_1350\":10,\"_174\":14,\"_176\":10,\"_1351\":1352,\"_1357\":1358,\"_224\":1359,\"_550\":1360},[1343,1348,1349],\"Organization\",\"OnlineBusiness\",\"identifier\",\"sameAs\",[210,1353,1354,1355,1356],\"https://www.linkedin.com/company/gamedeveloperofficial/\",\"https://www.facebook.com/gamedeveloper\",\"https://news.google.com/publications/CAAqBwgKML7GrQswy9HFAw\",\"https://cohost.org/gamedeveloper?page=0\",\"foundingDate\",\"1997\",\"To inform, empower, and inspire its game developer readership\",{\"_1342\":1361,\"_176\":1362,\"_1363\":1364,\"_1368\":1369},\"ImageObject\",\"https://www.gamedeveloper.com/assets/GameDeveloper-CJqTITZx.svg\",\"width\",{\"_1342\":1365,\"_1366\":1367},\"QuantitativeValue\",\"value\",626,\"height\",{\"_1342\":1365,\"_1366\":1370},112,\"socialShare\",[1373,1375,1377,1379,1382,1385],{\"_205\":212,\"_176\":1374},\"https://www.linkedin.com/sharing/share-offsite/?url=https://www.gamedeveloper.com/\",{\"_205\":215,\"_176\":1376},\"http://www.facebook.com/sharer/sharer.php?u=https://www.gamedeveloper.com/\",{\"_205\":209,\"_176\":1378},\"http://www.twitter.com/intent/tweet?url=https://www.gamedeveloper.com/\",{\"_205\":1380,\"_176\":1381},\"Reddit\",\"https://www.reddit.com/submit?url=https://www.gamedeveloper.com/\u0026title=\",{\"_205\":1383,\"_176\":1384},\"Email\",\"mailto:?subject=I wanted you to see this site\u0026body=I%20thought%20the%20following%20from%20Game%20Developer%20might%20interest%20you.%0D%0A%0D%0A%20%0D%0Ahttps%3A%2F%2Fwww.gamedeveloper.com%2F\",{\"_205\":1386,\"_176\":872},\"Print\",\"actionData\",\"errors\"]\n");</script><!--$--><script>window.__reactRouterContext.streamController.close();</script><!--/$--><!--/$--></body></html>