CINXE.COM
Bryant Francis | Game Developer
<!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>Bryant Francis | Game Developer</title><meta name="description" content="Explore the latest news and expert commentary by Bryant Francis, brought to you by the Contributor of Game Developer"/><meta property="og:title" content="Bryant Francis | Game Developer"/><meta property="og:description" content="Explore the latest news and expert commentary by Bryant Francis, brought to you by the Contributor of Game Developer"/><meta property="og:url" content="https://www.gamedeveloper.com/author/bryant-francis"/><meta property="og:type" content="website"/><meta property="og:image" content="https://www.gamedeveloper.com/assets/gamedeveloper-CAvl2PCb.ico"/><meta property="og:site_name" content="Game Developer"/><link rel="canonical" href="https://www.gamedeveloper.com/author/bryant-francis"/><link rel="preload" href="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltb09928df8e25f18c/67b7569a5d74c4ff90ef57ee/mlbtheshow24featured.jpg?width=700&auto=webp&quality=10&disable=upscale&blur=40" as="image"/><link rel="preload" href="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltebbcdfa2158b6c61/67b7aae3c3286e75fa9703ce/hades2wartimefeatured.jpg?width=700&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-fWB18xdV.js"/><link rel="modulepreload" href="/assets/chunk-K6AXKMTT-D00r_oVc.js"/><link rel="modulepreload" href="/assets/index-BlRIwUgC.js"/><link rel="modulepreload" href="/assets/with-props-C4rFUyxV.js"/><link rel="modulepreload" href="/assets/gtm-DGm0KW_T.js"/><link rel="modulepreload" href="/assets/contentPreview-raReixWB.js"/><link rel="modulepreload" href="/assets/_-BJdr63HM.js"/><link rel="modulepreload" href="/assets/useArticleProps-B5v1naMg.js"/><link rel="modulepreload" href="/assets/provider-vRHVWpv0.js"/><link rel="modulepreload" href="/assets/newsletterSignupPromo-C5ZmaayE.js"/><link rel="modulepreload" href="/assets/socialShare-BbqkDzDu.js"/><link rel="modulepreload" href="/assets/link-C1MkzDH5.js"/><link rel="modulepreload" href="/assets/button-DlgCHeeG.js"/><link rel="modulepreload" href="/assets/util-BlbSWXsE.js"/><link rel="modulepreload" href="/assets/searchBar-CEbzLjII.js"/><link rel="modulepreload" href="/assets/useSearchBar-B0qpfoK9.js"/><link rel="modulepreload" href="/assets/navigation-BPrJWSO7.js"/><link rel="modulepreload" href="/assets/redirection-DiAII56c.js"/><link rel="modulepreload" href="/assets/meta-DL0KpjEK.js"/><link rel="modulepreload" href="/assets/form-5uUV5058.js"/><link rel="modulepreload" href="/assets/root-BIuf-57F.js"/><link rel="modulepreload" href="/assets/breadcrumb-D99WjBeI.js"/><link rel="modulepreload" href="/assets/contributorSummary-CYbbZoZR.js"/><link rel="modulepreload" href="/assets/listContent-DPrFxO8G.js"/><link rel="modulepreload" href="/assets/useWeatherWidget-CqdUxz0N.js"/><link rel="modulepreload" href="/assets/utils-Bn24zYNJ.js"/><link rel="modulepreload" href="/assets/gridLayout-wIbp2Hs_.js"/><link rel="modulepreload" href="/assets/pagination-CotFOi0g.js"/><link rel="modulepreload" href="/assets/commodityPrices-CuYN6Jxx.js"/><link rel="modulepreload" href="/assets/sidebar-C38SyLXI.js"/><link rel="modulepreload" href="/assets/weatherWidget-BYzhjHC9.js"/><link rel="modulepreload" href="/assets/changeLocationBar-BNl0rC1C.js"/><link rel="modulepreload" href="/assets/contentCards-aFwo1o7S.js"/><link rel="modulepreload" href="/assets/videoPlaylist-BaLxtSEs.js"/><link rel="modulepreload" href="/assets/contentDomain.generated-DIEwSG95.js"/><link rel="modulepreload" href="/assets/toNumber-DCajaT_r.js"/><link rel="modulepreload" href="/assets/_getPrototype-3cCw-LUg.js"/><link rel="modulepreload" href="/assets/useStorage-gorQNo4e.js"/><link rel="modulepreload" href="/assets/author._slug-Dti0AzMH.js"/><script type="application/ld+json">{"@context":"https://schema.org","@type":"ProfilePage","mainEntity":{"@type":"Person","name":"Bryant Francis","description":"Bryant Francis is a writer, journalist, and narrative designer based in Boston, MA. He currently writes for Game Developer, a leading B2B publication for the video game industry. His credits include Proxy Studios' upcoming 4X strategy game Zephon and Amplitude Studio's 2017 game Endless Space 2.","image":"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt862ca995183d2fdf/650efe5138b21120135ae4ac/bryantcropped.jpg","disambiguatingDescription":"Bryant Francis Headshot, Photo by Kate Marley","sameAs":["https://twitter.com","https://twitter.com"]}}</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.283.2.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.283.2",i="PROD",o="CDN",a="^2.0.0-alpha.17"},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}},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})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},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});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)}}},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:()=>O});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(8154),h=r(384),p=r(6344);const g=["setErrorHandler","finished","addToTrace","addRelease","recordCustomEvent","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],m=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(1863),b=r(2614),y=r(993),w=r(3785),R=r(9414);function x(){const e=(0,h.pV)();g.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const E={};var A=r(9417),T=r(5603),N=r(5284);const S=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let _=!1;function O(e,t={},g,O){let{init:I,info:P,loader_config:j,runtime:C={},exposed:k=!0}=t;C.loaderType=g;const L=(0,h.pV)();P||(I=L.init,P=L.info,j=L.loader_config),(0,A.xN)(e.agentIdentifier,I||{}),(0,T.a)(e.agentIdentifier,j||{}),P.jsAttributes??={},d.bv&&(P.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,P);const H=(0,A.D0)(e.agentIdentifier),M=[P.beacon,P.errorBeacon];_||(H.proxy.assets&&(S(H.proxy.assets),M.push(H.proxy.assets)),H.proxy.beacon&&M.push(H.proxy.beacon),x(),(0,h.US)("activatedFeatures",N.B),e.runSoftNavOverSpa&&=!0===H.soft_navigations.enabled&&H.feature_flags.includes("soft_nav")),C.denyList=[...H.ajax.deny_list||[],...H.ajax.block_internal?M:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,"api");const g={};var x=s.ee.get(e),A=x.get("tracer");E[e]=b.g.OFF,x.on(p.G4.REPLAY_RUNNING,(t=>{E[e]=t}));var T="api-",N=T+"ixn-";function S(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),I(T,n,!0,o||null===r?"session":void 0)(t,r)}function _(){}g.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,x),(0,w.R)(x,e,t,r)},g.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,x),(0,R.J)(x,e,t,{customAttributes:r,level:i})},m.forEach((e=>{g[e]=I(T,e,!0,"api")})),g.addPageAction=I(T,"addPageAction",!0,n.K7.genericEvents),g.recordCustomEvent=I(T,"recordCustomEvent",!0,n.K7.genericEvents),g.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,I(T,"setPageViewName",!0)()},g.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return S(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},g.setUserId=function(e){if("string"==typeof e||null===e)return S("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},g.setApplicationVersion=function(e){if("string"==typeof e||null===e)return S("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},g.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,x),x.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},g[p.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,x),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,x)},g[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,x),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,x)},g.interaction=function(e){return(new _).get("object"==typeof e?e:{})};const O=_.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,x),h||(0,a.p)(N+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,x),function(){if(A.emit((o?"":"no-")+"fn-start",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw A.emit("fn-err",[arguments,this,t],r),t}finally{A.emit("fn-end",[(0,v.t)()],r)}}}};function I(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,x),i&&(0,a.p)(e+t,[r?(0,v.t)():performance.now(),...arguments],r?null:this,i,x),r?void 0:this}}function P(){r.e(478).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),x.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{O[e]=I(N,e,void 0,h?n.K7.softNav:n.K7.spa)})),g.setCurrentRouteName=h?I(N,"routeName",void 0,n.K7.softNav):I(T,"routeName",!0,n.K7.spa),g.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,x),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!E[e]],void 0,n.K7.jserrors,x)},d.RI?(0,u.GG)((()=>P()),!0):P(),g}(e.agentIdentifier,O,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=k),_=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>u,K7:()=>s,P3:()=>c,XX:()=>i,qY:()=>n,v4:()=>a});const n="events",i="jserrors",o="browser/blobs",a="rum",s={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"},c={[s.pageViewEvent]:1,[s.pageViewTiming]:2,[s.metrics]:3,[s.jserrors]:4,[s.spa]:5,[s.ajax]:6,[s.sessionTrace]:7,[s.softNav]:8,[s.sessionReplay]:9,[s.logging]:10,[s.genericEvents]:11},u={[s.pageViewEvent]:a,[s.pageViewTiming]:n,[s.ajax]:n,[s.spa]:n,[s.softNav]:n,[s.metrics]:i,[s.jserrors]:i,[s.sessionTrace]:o,[s.sessionReplay]:o,[s.logging]:"browser/logs",[s.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.283.2.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.283.2.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-2oN05BjxuObKuOX8E0vq/zS51M+2HokmNPBRUrIC1fw3hpJqoI18/nckSFiqV11KxT7ag3C+FunKrR8n0PD9Ig==",249:"sha512-Zs5nIHr/khH6G8IhAEdnngg+P7y/IfmjU0PQmXABpCEtSTeKV22OYdaa9lENrW9uxI0lZ6O5e5dCnEMsTS0onA==",212:"sha512-LPKde7A1ZxIHzoSqWKxn5uWVhM9u76Vtmp9DMBf+Ry3mnn2jpsfyfigMYD5Yka2RG3NeIBqOwNYuPrWL39qn6w=="};(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.283.2.PROD"]=self["webpackChunk:NRBA-1.283.2.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("function"==typeof this.api?.[t])return this.api[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("function"==typeof this.api?.[t])return this.api[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),N=i(1863);class S 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,N.t)()],void 0,T.T,this.ee)),!0),(0,A.sp)("pagehide",(()=>(0,x.p)("winPagehide",[(0,N.t)()],void 0,T.T,this.ee))),this.importAggregator(e))}}var _=i(8154);class O extends b{static featureName=_.TZ;constructor(e,t=!0){super(e,_.TZ,t),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{return e.reason.message=t+": "+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return 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,N.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,N.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,N.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;class he 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};pe(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]},pe(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,N.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,N.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,N.t)()))}function v(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,N.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,N.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),pe(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,N.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,N.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,N.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){var i=r.getResponseHeader("X-NewRelic-App-Data");i&&((0,x.p)(_.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 pe(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 ge={},me=["pushState","replaceState"];function ve(e){const t=function(e){return(e||B.ee).get("history")}(e);return!p.RI||ge[t.debugId]++||(ge[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,"-")),t}var be=i(3738);const{He:ye,bD:we,d3:Re,Kp:xe,TZ:Ee,Lc:Ae,uP:Te,Rz:Ne}=be;class Se extends b{static featureName=Ee;constructor(e,t=!0){super(e,Ee,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Te,(function(e,t){this.bstStart=(0,N.t)()})),this.eventsEE.on(Ae,(function(e,t){(0,x.p)("bst",[e[0],t,this.bstStart,(0,N.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Ne+Re,(function(e){this.time=(0,N.t)(),this.startPath=location.pathname+location.hash})),r.on(Ne+xe,(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)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:we,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var _e=i(2614);class Oe 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 Ie=i(3962);class Pe extends b{static featureName=Ie.TZ;constructor(e,t=!0){if(super(e,Ie.TZ,t),!p.RI||!(0,R.dV)().o.MO)return;const r=ve(this.ee);Ie.tC.forEach((e=>{(0,A.sp)(e,(e=>{a(e)}),!0)}));const n=()=>(0,x.p)("newURL",[(0,N.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,N.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 je=i(7378);const Ce={},ke=["appendChild","insertBefore","replaceChild"];function Le(e){const t=function(e){return(e||B.ee).get("jsonp")}(e);if(!p.RI||Ce[t.debugId])return t;Ce[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,ke,"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 He={};function Me(e){const t=function(e){return(e||B.ee).get("promise")}(e);if(He[t.debugId])return t;He[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 De={},Ke="setTimeout",Ue="setInterval",Ve="clearTimeout",Ge="-start",Fe=[Ke,"setImmediate",Ue,Ve,"clearImmediate"];function Be(e){const t=function(e){return(e||B.ee).get("timer")}(e);if(De[t.debugId]++)return t;De[t.debugId]=1;var r=(0,W.YM)(t);return r.inPlace(p.gm,Fe.slice(0,2),Ke+"-"),r.inPlace(p.gm,Fe.slice(2,3),Ue+"-"),r.inPlace(p.gm,Fe.slice(3),Ve+"-"),t.on(Ue+Ge,(function(e,t,n){e[0]=r(e[0],"fn-",null,n)})),t.on(Ke+Ge,(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 We={};function ze(e){const t=function(e){return(e||B.ee).get("mutation")}(e);if(!p.RI||We[t.debugId])return t;We[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:qe,d3:Ze,Kp:Ye,$p:Je,wW:Xe,e5:$e,tH:Qe,uP:et,rw:tt,Lc:rt}=je;class nt extends b{static featureName=qe;constructor(e,t=!0){if(super(e,qe,t),!p.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,n=0;const i=this.ee.get("tracer"),o=Le(this.ee),a=Me(this.ee),s=Be(this.ee),c=Z(this.ee),u=this.ee.get("events"),d=ne(this.ee),l=ve(this.ee),f=ze(this.ee);function h(e,t){l.emit("newURL",[""+window.location,t])}function g(){n++,r=window.location.hash,this[et]=(0,N.t)()}function m(){n--,window.location.hash!==r&&h(0,!0);var e=(0,N.t)();this[$e]=~~this[$e]+e-this[et],this[rt]=e}function v(e,t){e.on(t,(function(){this[t]=(0,N.t)()}))}this.ee.on(et,g),a.on(tt,g),o.on(tt,g),this.ee.on(rt,m),a.on(Xe,m),o.on(Xe,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([et,rt,"xhr-resolved"],this.featureName),u.buffer([et],this.featureName),s.buffer(["setTimeout"+Ye,"clearTimeout"+Ze,et],this.featureName),c.buffer([et,"new-xhr","send-xhr"+Ze],this.featureName),d.buffer([Qe+Ze,Qe+"-done",Qe+Je+Ze,Qe+Je+Ye],this.featureName),l.buffer(["newURL"],this.featureName),f.buffer([et],this.featureName),a.buffer(["propagate",tt,Xe,"executor-err","resolve"+Ze],this.featureName),i.buffer([et,"no-"+et],this.featureName),o.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),v(d,Qe+Ze),v(d,Qe+"-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 it=i(3333);class ot extends b{static featureName=it.TZ;constructor(e,t=!0){super(e,it.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&&(it.Zp.forEach((e=>(0,A.sp)(e,(e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),it.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 at=i(993),st=i(3785),ct=i(9414);class ut extends b{static featureName=at.TZ;constructor(e,t=!0){super(e,at.TZ,t);const r=this.ee;(0,ct.J)(r,p.gm.console,"log",{level:"info"}),(0,ct.J)(r,p.gm.console,"error",{level:"error"}),(0,ct.J)(r,p.gm.console,"warn",{level:"warn"}),(0,ct.J)(r,p.gm.console,"info",{level:"info"}),(0,ct.J)(r,p.gm.console,"debug",{level:"debug"}),(0,ct.J)(r,p.gm.console,"trace",{level:"trace"}),this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,st.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}}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]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[he,w,S,Se,Oe,O,M,ot,ut,Pe,nt],loaderType:"spa"})})()})(); </script><link rel="stylesheet" href="/assets/styles.generated-CmzcVq8e.css"/><link rel="stylesheet" href="/assets/brand.generated-CwgRAwgi.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><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></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’s 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’s 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://gd-resources.gamedeveloper.com/free/w_gamf01/prgm.cgi" 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://gd-resources.gamedeveloper.com/free/w_gamf01/prgm.cgi" 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 Trending"><span class="MainMenu-MainTitle">Trending<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="/keyword/generative-ai" data-discover="true">Generative AI</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/horror-games" data-discover="true">Horror Game Design</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/layoffs" data-discover="true">Game Industry Layoffs</a></li></ul><ul class="SubMenu-CasualLinkList"><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/-trend-m-a" data-discover="true">Investments & Acquisitions</a></li><li class="SubMenu-CasualLinkItem"><a class="SubMenu-ItemLink" data-testid="sub-menu-item-link" href="/keyword/-trend-unionization" data-discover="true">Unionization</a></li></ul></div></div><div class="SubMenu-RecentContentWrapper" data-testid="recent"><div data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent SubMenu-MoreContent_noRecent" href="/keyword/top-stories" data-discover="true"><span class="SubMenu-SeeMoreText">Top Stories</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></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 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="/audio/supergiant-denies-recasting-hades-ii-actor-over-interim-sag-aftra-contract-request" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">Two characters from Hades II pose with a bloody axe.</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltebbcdfa2158b6c61/67b7aae3c3286e75fa9703ce/hades2wartimefeatured.jpg?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltebbcdfa2158b6c61/67b7aae3c3286e75fa9703ce/hades2wartimefeatured.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_audio ContentPreview-Category" href="/audio" data-discover="true">Audio</a><div class="VerticalCard"><div class="VerticalCard-Body"><a class="VerticalCard-Title VerticalCard-Title_displayOption_default" data-testid="preview-default-title" href="/audio/supergiant-denies-recasting-hades-ii-actor-over-interim-sag-aftra-contract-request" data-discover="true">Supergiant denies recasting Hades II actor over interim SAG-AFTRA contract request</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/audio/supergiant-denies-recasting-hades-ii-actor-over-interim-sag-aftra-contract-request" data-discover="true">Supergiant denies recasting Hades II actor over interim SAG-AFTRA contract request</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">Feb 20, 2025</span><div data-module="card-time" class="CardTime"><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" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/business/nintendo-opens-taiwan-subsidiary-to-further-strengthen-taiwanese-business" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">Screenshot of the Nintendo Switch console.</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt09d96946b1fd5cd9/672a0a71e5c9b485b0ac3fd0/Switch_Header.png?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt09d96946b1fd5cd9/672a0a71e5c9b485b0ac3fd0/Switch_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-opens-taiwan-subsidiary-to-further-strengthen-taiwanese-business" data-discover="true">Nintendo opens Taiwan subsidiary to 'further strengthen' Taiwanese business</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/business/nintendo-opens-taiwan-subsidiary-to-further-strengthen-taiwanese-business" data-discover="true">Nintendo opens Taiwan subsidiary to 'further strengthen' Taiwanese business</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/justin-carter" data-discover="true">Justin Carter</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 20, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>1 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 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 data-testid="see-more" class="SubMenu-SeeMore"><a class="SubMenu-MoreContent SubMenu-MoreContent_noRecent" 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></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 class="ContributorList" data-template="contributor-list"><div data-template="list-content" class="ListContent"><div class="TwoColumnLayout"><div id="portal-root"></div><div class="TwoColumnLayout-Head"><div class="ContributorList-Head" data-testid="contributor-list-head"><ul data-component="breadcrumb" class="Breadcrumb"><li class="Breadcrumb-ListItem"><span data-component="icon" data-name="ChevronRight" class="Breadcrumb-DividerIcon Breadcrumb-PrevIcon" 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 class="Breadcrumb-GetText Breadcrumb-GetText_isNearLastItem" data-testid="breadcrumb-link" href="/" data-discover="true">Home</a><span data-component="icon" data-name="ChevronRight" class="Breadcrumb-DividerIcon Breadcrumb-NextIcon" 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></li><li class="Breadcrumb-ListItem"><a class="Breadcrumb-GetText Breadcrumb-GetText_isLastItem" data-testid="breadcrumb-link" href="/author/bryant-francis" data-discover="true">Bryant Francis</a></li></ul><div data-component="contributor-summary" class="ContributorSummary ContributorSummary_variant_normal"><div class="ContributorSummary-ImageWrapper ContributorSummary-ImageWrapper_variant_normal"><img data-component="image" class="ContributorSummary-Image ContributorSummary-Image_variant_normal" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt862ca995183d2fdf/650efe5138b21120135ae4ac/bryantcropped.jpg?width=400&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt862ca995183d2fdf/650efe5138b21120135ae4ac/bryantcropped.jpg?width=400&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Bryant Francis Headshot, Photo by Kate Marley" title="Bryant Francis Headshot, Photo by Kate Marley"/></div><div class="ContributorSummary-InfoWrapper ContributorSummary-InfoWrapper_variant_normal"><div class="ContributorSummary-TitleWrapper"><p class="ContributorSummary-Title ContributorSummary-Title_variant_normal" data-testid="contributor-summary-title">Bryant Francis</p></div><div class="ContributorSummary-SubTitleWrapper ContributorSummary-SubTitleWrapper_variant_normal"><p class="ContributorSummary-SubTitle ContributorSummary-SubTitle_variant_normal" data-testid="contributor-summary-subtitle">Senior Editor, GameDeveloper.com</p></div><div class="ContributorSummary-ContentWrapper ContributorSummary-ContentWrapper_variant_normal"><div class="ContributorSummary-Content ContributorSummary-Content_variant_normal ContributorSummary-Content_showFullContent" data-testid="contributor-summary-content"><p class="ContentParagraph ContentParagraph_align_left" data-testid="content-paragraph"><span class="ContentText ContentText_variant_bodyNoneStyle" data-testid="content-text">Bryant Francis is a writer, journalist, and narrative designer based in Boston, MA. He currently writes for Game Developer, a leading B2B publication for the video game industry. His credits include Proxy Studios' upcoming 4X strategy game Zephon and Amplitude Studio's 2017 game Endless Space 2.</span></p></div></div><div data-component="social-share" class="SocialShare SocialShare_variant_normal"><a target="_blank" rel="noreferrer" aria-label="Linkedin" href="https://twitter.com"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_normal"><span data-component="icon" data-name="Linkedin" class="SocialShare-Icon SocialShare-Icon_variant_normal 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="Twitter" href="https://twitter.com"><span class="SocialShare-IconWrapper SocialShare-IconWrapper_variant_normal"><span data-component="icon" data-name="Twitter" class="SocialShare-Icon SocialShare-Icon_variant_normal 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></div></div></div><hr class="ContributorList-Divider"/></div></div><div class="TwoColumnLayout-Content"><div class="TwoColumnLayout-Body"><div class="ListContent-Body" data-testid="list-content-body"><h2 class="ListContent-Title ListContent-Title_latest" data-testid="latest-content-title">Latest from Bryant Francis</h2><div class="ListContent-Content ListContent-Content_latest"><div class="ListContent-ContentWrapper"><div class="ListContent-ContentContainer"><div class="ContentPreview ListContent-LatestItem" data-module="content-preview" data-variant="normal"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_normal ContentPreview-Wrapper_articleSize_big"><a data-testid="thumbnail" href="/business/why-games-like-mlb-the-show-24-are-vital-for-a-creative-game-industry" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">A baseball player from MLB The Show 24 winds up a pitch.</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltb09928df8e25f18c/67b7569a5d74c4ff90ef57ee/mlbtheshow24featured.jpg?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltb09928df8e25f18c/67b7569a5d74c4ff90ef57ee/mlbtheshow24featured.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_business ContentPreview-Category" href="/business" data-discover="true">Business</a><div class="ContentCard"><div class="ContentCard-Body"><a class="ContentCard-Title ContentCard-Title_displayOption_default" data-testid="preview-default-title" href="/business/why-games-like-mlb-the-show-24-are-vital-for-a-creative-game-industry" data-discover="true">Why games like MLB The Show 24 are vital for a creative game industry</a><a class="ContentCard-Title ContentCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/business/why-games-like-mlb-the-show-24-are-vital-for-a-creative-game-industry" data-discover="true">Why games like MLB The Show 24 are vital for a creative game industry</a><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_normal" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/bryant-francis" data-discover="true">Bryant Francis</a></div></div></div><div class="ContentCard-Footer"><span class="ContentCard-Date" data-testid="content-card-date">Feb 21, 2025</span><div data-module="card-time" class="CardTime"><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 ListContent-LatestItem" data-module="content-preview" data-variant="normal"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_normal ContentPreview-Wrapper_articleSize_big"><a data-testid="thumbnail" href="/audio/supergiant-denies-recasting-hades-ii-actor-over-interim-sag-aftra-contract-request" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">Two characters from Hades II pose with a bloody axe.</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltebbcdfa2158b6c61/67b7aae3c3286e75fa9703ce/hades2wartimefeatured.jpg?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltebbcdfa2158b6c61/67b7aae3c3286e75fa9703ce/hades2wartimefeatured.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_audio ContentPreview-Category" href="/audio" data-discover="true">Audio</a><div class="ContentCard"><div class="ContentCard-Body"><a class="ContentCard-Title ContentCard-Title_displayOption_default" data-testid="preview-default-title" href="/audio/supergiant-denies-recasting-hades-ii-actor-over-interim-sag-aftra-contract-request" data-discover="true">Supergiant denies recasting Hades II actor over interim SAG-AFTRA contract request</a><a class="ContentCard-Title ContentCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/audio/supergiant-denies-recasting-hades-ii-actor-over-interim-sag-aftra-contract-request" data-discover="true">Supergiant denies recasting Hades II actor over interim SAG-AFTRA contract request</a><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_normal" data-component="contributors"><div class="Contributors-InfoWrapper"><span class="Contributors-ByText" data-testid="by-text">by</span><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/bryant-francis" data-discover="true">Bryant Francis</a></div></div></div><div class="ContentCard-Footer"><span class="ContentCard-Date" data-testid="content-card-date">Feb 20, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>6 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div></div></div></div><h2 class="ListContent-Title ListContent-Title_normal" data-testid="content-title">All from Bryant Francis</h2><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: A photograph of Naughty Dog president and creative director Neil Druckmann." href="/production/neil-druckmann-says-studio-leaders-need-to-ascend-the-ranks-to-make-space-for-next-generation" data-discover="true"><div title="A photograph of Naughty Dog president and creative director Neil Druckmann."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blte2bd92ebde31896e/67b634d0c3286e3b6296fa30/druckmanndicefeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blte2bd92ebde31896e/67b634d0c3286e3b6296fa30/druckmanndicefeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="A photograph of Naughty Dog president and creative director Neil Druckmann." title="A photograph of Naughty Dog president and creative director Neil Druckmann."/></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/neil-druckmann-says-studio-leaders-need-to-ascend-the-ranks-to-make-space-for-next-generation" data-discover="true">Neil Druckmann: studio leaders should ascend the ranks to make space for next generation</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/production/neil-druckmann-says-studio-leaders-need-to-ascend-the-ranks-to-make-space-for-next-generation" data-discover="true">Neil Druckmann: studio leaders should ascend the ranks to make space for next generation</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Feb 20, 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="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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Kai, a washbuckling blue-skinned companion from Avowed, wields a blunderbuss and saber." href="/art/what-obsidian-entertainment-learned-making-avowed-a-first-person-fantasy-game" data-discover="true"><div title="Kai, a washbuckling blue-skinned companion from Avowed, wields a blunderbuss and saber."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt9b4ba8ab1cef9157/67ae06cade4a676028b40494/avowedkaifeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt9b4ba8ab1cef9157/67ae06cade4a676028b40494/avowedkaifeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Kai, a washbuckling blue-skinned companion from Avowed, wields a blunderbuss and saber." title="Kai, a washbuckling blue-skinned companion from Avowed, wields a blunderbuss and saber."/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_art ListPreview-Keyword" href="/art" data-discover="true">Art</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/art/what-obsidian-entertainment-learned-making-avowed-a-first-person-fantasy-game" data-discover="true">What Obsidian Entertainment learned making Avowed a first-person fantasy RPG</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/art/what-obsidian-entertainment-learned-making-avowed-a-first-person-fantasy-game" data-discover="true">What Obsidian Entertainment learned making Avowed a first-person fantasy RPG</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Feb 13, 2025</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>9 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: A soldier from the ARMA series stands at the ready with an M-16." href="/business/did-you-know-the-ceo-and-of-bohemia-interactive-purchased-a-disinformation-outlet-in-2023-" data-discover="true"><div title="A soldier from the ARMA series stands at the ready with an M-16."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8b017b4f41c4a024/67a4dd4c82ee4e0c4f122ada/armabohemiafeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8b017b4f41c4a024/67a4dd4c82ee4e0c4f122ada/armabohemiafeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="A soldier from the ARMA series stands at the ready with an M-16." title="A soldier from the ARMA series stands at the ready with an M-16."/></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/did-you-know-the-ceo-and-of-bohemia-interactive-purchased-a-disinformation-outlet-in-2023-" data-discover="true">Did you know the top brass at ARMA and DayZ studio Bohemia Interactive bought a 'disinformation outlet' in 2023?</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/did-you-know-the-ceo-and-of-bohemia-interactive-purchased-a-disinformation-outlet-in-2023-" data-discover="true">Did you know the top brass at ARMA and DayZ studio Bohemia Interactive bought a 'disinformation outlet' in 2023?</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Feb 11, 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>8 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: A person holds an LGBTQIA Pride flag over their head, facing away from the camera." href="/production/boston-game-dev-among-those-suing-trump-administration-over-anti-trans-passport-policy" data-discover="true"><div title="A person holds an LGBTQIA Pride flag over their head, facing away from the camera."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt84038f7246908c48/67aa731f714e9374e477692a/lgbtqiflagfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt84038f7246908c48/67aa731f714e9374e477692a/lgbtqiflagfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="A person holds an LGBTQIA Pride flag over their head, facing away from the camera." title="A person holds an LGBTQIA Pride flag over their head, facing away from the camera."/></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/boston-game-dev-among-those-suing-trump-administration-over-anti-trans-passport-policy" data-discover="true">Massachusetts game dev among those suing Trump administration over anti-trans passport policy</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/production/boston-game-dev-among-those-suing-trump-administration-over-anti-trans-passport-policy" data-discover="true">Massachusetts game dev among those suing Trump administration over anti-trans passport policy</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Feb 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>3 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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: A magical pink flower on a balcony." href="/design/greenheart-necromancer-reinvents-the-idle-game-shows-how-to-rethink-predatory-mechanics" data-discover="true"><div title="A magical pink flower on a balcony."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd64ef28c690af992/67a3b01d761665b513369b19/greenheartflowerfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd64ef28c690af992/67a3b01d761665b513369b19/greenheartflowerfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="A magical pink flower on a balcony." title="A magical pink flower on a balcony."/></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/greenheart-necromancer-reinvents-the-idle-game-shows-how-to-rethink-predatory-mechanics" data-discover="true">Greenheart Necromancer reinvents the idle game, shows how to rethink 'predatory' mechanics</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/design/greenheart-necromancer-reinvents-the-idle-game-shows-how-to-rethink-predatory-mechanics" data-discover="true">Greenheart Necromancer reinvents the idle game, shows how to rethink 'predatory' mechanics</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-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>8 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Matthew Handrahan's head and the Kepler Interactive logo against a pixelated blue background." href="/business/publishers-can-still-bet-on-bold-interesting-games-says-kepler-interactive" data-discover="true"><div title="Matthew Handrahan's head and the Kepler Interactive logo against a pixelated blue background."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8ba54196c8cd70fd/679d05a517cb4100244ff48a/grainlookokay.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8ba54196c8cd70fd/679d05a517cb4100244ff48a/grainlookokay.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Matthew Handrahan's head and the Kepler Interactive logo against a pixelated blue background." title="Matthew Handrahan's head and the Kepler Interactive logo against a pixelated blue background."/></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/publishers-can-still-bet-on-bold-interesting-games-says-kepler-interactive" data-discover="true">Kepler Interactive says it's still worth betting on bold, interesting games</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/publishers-can-still-bet-on-bold-interesting-games-says-kepler-interactive" data-discover="true">Kepler Interactive says it's still worth betting on bold, interesting games</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Feb 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>7 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Weaver from Call of Duty Black Ops 6 Zombies rides a motorcycle and fires a gun." href="/business/it-looks-like-someone-at-activision-is-leaking-slack-screenshots-to-right-wing-x-users" data-discover="true"><div title="Weaver from Call of Duty Black Ops 6 Zombies rides a motorcycle and fires a gun."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltfb18fdbd1c951d44/67990971137f132bbf5f802b/callofdutyblackops6weaverfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltfb18fdbd1c951d44/67990971137f132bbf5f802b/callofdutyblackops6weaverfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Weaver from Call of Duty Black Ops 6 Zombies rides a motorcycle and fires a gun." title="Weaver from Call of Duty Black Ops 6 Zombies rides a motorcycle and fires a gun."/></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/it-looks-like-someone-at-activision-is-leaking-slack-screenshots-to-right-wing-x-users" data-discover="true">It looks like someone at Activision is leaking Slack screenshots to right-wing X users</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/it-looks-like-someone-at-activision-is-leaking-slack-screenshots-to-right-wing-x-users" data-discover="true">It looks like someone at Activision is leaking Slack screenshots to right-wing X users</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jan 28, 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="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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: A purple-and-green dragon glowers at the camera." href="/business/phoenix-labs-lays-off-majority-of-the-studio-two-years-after-forte-labs-acquisition" data-discover="true"><div title="A purple-and-green dragon glowers at the camera."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blte142b92f2d79b403/6797e0f3ae491348c6f87f30/dauntlessmajoritylayofffeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blte142b92f2d79b403/6797e0f3ae491348c6f87f30/dauntlessmajoritylayofffeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="A purple-and-green dragon glowers at the camera." title="A purple-and-green dragon glowers at the camera."/></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/phoenix-labs-lays-off-majority-of-the-studio-two-years-after-forte-labs-acquisition" data-discover="true">Phoenix Labs lays off 'majority of studio' two years after Forte Labs acquisition</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/phoenix-labs-lays-off-majority-of-the-studio-two-years-after-forte-labs-acquisition" data-discover="true">Phoenix Labs lays off 'majority of studio' two years after Forte Labs acquisition</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jan 27, 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 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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Brynn stares down a giant magical automaton with a crown of fire." href="/design/how-eternal-strands-creators-cooked-up-an-ambitious-physics-system-with-a-small-team" data-discover="true"><div title="Brynn stares down a giant magical automaton with a crown of fire."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt759dd1c31c59e776/6793a13fde5ca406d9580a5f/ss_ada710a6f134ae34cdb41bba91c1e5049b5751fb.1920x1080.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt759dd1c31c59e776/6793a13fde5ca406d9580a5f/ss_ada710a6f134ae34cdb41bba91c1e5049b5751fb.1920x1080.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Brynn stares down a giant magical automaton with a crown of fire." title="Brynn stares down a giant magical automaton with a crown of fire."/></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/how-eternal-strands-creators-cooked-up-an-ambitious-physics-system-with-a-small-team" data-discover="true">How Eternal Strands' creators cooked up an ambitious physics system with a small team</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/design/how-eternal-strands-creators-cooked-up-an-ambitious-physics-system-with-a-small-team" data-discover="true">How Eternal Strands' creators cooked up an ambitious physics system with a small team</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jan 27, 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 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 ListContent-ContentItem ListContent-ContentItem_borderless" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: The Doom Slayer bashes a shield into a demon's head as other demons charge him." href="/design/doom-the-dark-ages-development-details-shine-light-on-the-state-of-modern-triple-a-production" data-discover="true"><div title="The Doom Slayer bashes a shield into a demon's head as other demons charge him."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc5373539eeb85346/67929279b600e6354910394b/doomdarkagesdoomguyfeaturedfinal.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc5373539eeb85346/67929279b600e6354910394b/doomdarkagesdoomguyfeaturedfinal.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="The Doom Slayer bashes a shield into a demon's head as other demons charge him." title="The Doom Slayer bashes a shield into a demon's head as other demons charge him."/></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/doom-the-dark-ages-development-details-shine-light-on-the-state-of-modern-triple-a-production" data-discover="true">Doom: The Dark Ages' development details shine light on the state of modern triple-A production</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/design/doom-the-dark-ages-development-details-shine-light-on-the-state-of-modern-triple-a-production" data-discover="true">Doom: The Dark Ages' development details shine light on the state of modern triple-A production</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-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>7 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: A robotic middle finger emerges from a laptop screen." href="/business/developers-still-aren-t-warming-up-to-generative-ai" data-discover="true"><div title="A robotic middle finger emerges from a laptop screen."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt66ddf6e4600e86be/67913454295de017bbbff139/aimiddlefingerfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt66ddf6e4600e86be/67913454295de017bbbff139/aimiddlefingerfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="A robotic middle finger emerges from a laptop screen." title="A robotic middle finger emerges from a laptop screen."/></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/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="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-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="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-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 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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: A mock speedometer showing an acceleration from 2024 to 2025." href="/business/five-takeaways-for-game-developers-from-matthew-ball-s-state-of-gaming-data" data-discover="true"><div title="A mock speedometer showing an acceleration from 2024 to 2025."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf9bffc4ce90925e5/67891ff50d22515ee273ff36/gamingperminutefeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf9bffc4ce90925e5/67891ff50d22515ee273ff36/gamingperminutefeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="A mock speedometer showing an acceleration from 2024 to 2025." title="A mock speedometer showing an acceleration from 2024 to 2025."/></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/five-takeaways-for-game-developers-from-matthew-ball-s-state-of-gaming-data" data-discover="true">Five takeaways from Matthew Ball's 2025 State of Gaming data</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/five-takeaways-for-game-developers-from-matthew-ball-s-state-of-gaming-data" data-discover="true">Five takeaways from Matthew Ball's 2025 State of Gaming data</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jan 16, 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>11 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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: The Switch 2" href="/console/-shell-nintendo-finally-unveils-the-tktk-its-successor-to-the-nintendo-switch" data-discover="true"><div title="The Switch 2"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt883b8f59ac2b57fe/6789085a22bd6a784704b3fb/Switch_2.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt883b8f59ac2b57fe/6789085a22bd6a784704b3fb/Switch_2.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="The Switch 2" title="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_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/-shell-nintendo-finally-unveils-the-tktk-its-successor-to-the-nintendo-switch" data-discover="true">Nintendo finally unveils the Switch 2, its successor to the Nintendo Switch</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/console/-shell-nintendo-finally-unveils-the-tktk-its-successor-to-the-nintendo-switch" data-discover="true">Nintendo finally unveils the Switch 2, its successor to the Nintendo Switch</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Jan 16, 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 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="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><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/bryant-francis" data-discover="true">Bryant Francis<!-- -->, </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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: A promo image for Bryant's top 10 game of the year list featuring four games." href="/design/game-developer-2024-wrap-up-bryant-francis-top-10-games-of-the-year" data-discover="true"><div title="A promo image for Bryant's top 10 game of the year list featuring four games."><img data-component="image" class="ListPreview-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="A promo image for Bryant's top 10 game of the year list featuring four games." title="A promo image for Bryant's top 10 game of the year list featuring four games."/></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/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="ListPreview-MobileTitleWrapper"><a class="ListPreview-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 class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Dec 23, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>14 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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: an assortment of images honoring developers from Godot, GSC Gameworld, and more" href="/game-platforms/game-developer-s-2024-wrap-up-5-devs-that-made-an-impact-" data-discover="true"><div title="an assortment of images honoring developers from Godot, GSC Gameworld, and more"><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltca82c7a09dc4ad7e/6764ef84caf4302fe8f9443e/game_developer_devs_that_made_an_impact.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltca82c7a09dc4ad7e/6764ef84caf4302fe8f9443e/game_developer_devs_that_made_an_impact.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="an assortment of images honoring developers from Godot, GSC Gameworld, and more" title="an assortment of images honoring developers from Godot, GSC Gameworld, and more"/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_gamePlatforms ListPreview-Keyword" href="/game-platforms" data-discover="true">Game Platforms</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/game-platforms/game-developer-s-2024-wrap-up-5-devs-that-made-an-impact-" data-discover="true">Game Developer's 2024 Wrap-Up: 5 devs that made an impact</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/game-platforms/game-developer-s-2024-wrap-up-5-devs-that-made-an-impact-" data-discover="true">Game Developer's 2024 Wrap-Up: 5 devs that made an impact</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Dec 20, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>9 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink Contributors-AvatarLink_isMultiple" aria-label="Danielle Riendeau" href="/author/danielle-riendeau" 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/blt722812705eb8ab24/650f013b8f61917d4dd58a8c/DRPFP.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt722812705eb8ab24/650f013b8f61917d4dd58a8c/DRPFP.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Danielle Riendeau" title="Picture of Danielle Riendeau"/></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><span class="Contributors-ContributorsCount" data-testid="contributors-count"><span> +<!-- -->1</span></span></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/danielle-riendeau" data-discover="true">Danielle Riendeau<!-- -->, </a><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/chris-kerr" data-discover="true">Chris Kerr</a><span class="Contributors-MoreText" data-testid="more-text">and <!-- -->1<!-- --> more</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " href="/game-platforms/game-developer-s-2024-wrap-up-the-top-trends-that-defined-2024" data-discover="true"><div title=""><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3dec8321538cfbcf/6764846f9327c6607b4ee912/Game_Developer_Biggest_Trends_2024.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3dec8321538cfbcf/6764846f9327c6607b4ee912/Game_Developer_Biggest_Trends_2024.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_gamePlatforms ListPreview-Keyword" href="/game-platforms" data-discover="true">Game Platforms</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/game-platforms/game-developer-s-2024-wrap-up-the-top-trends-that-defined-2024" data-discover="true">Game Developer's 2024 Wrap-Up: The top 5 trends that defined 2024</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/game-platforms/game-developer-s-2024-wrap-up-the-top-trends-that-defined-2024" data-discover="true">Game Developer's 2024 Wrap-Up: The top 5 trends that defined 2024</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Dec 20, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>11 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="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><a class="Contributors-AvatarLink Contributors-AvatarLink_isMultiple" 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><span class="Contributors-ContributorsCount" data-testid="contributors-count"><span> +<!-- -->1</span></span></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/chris-kerr" data-discover="true">Chris Kerr<!-- -->, </a><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/bryant-francis" data-discover="true">Bryant Francis</a><span class="Contributors-MoreText" data-testid="more-text">and <!-- -->1<!-- --> more</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Four images from the best games of 2024." href="/game-platforms/game-developer-2024-wrap-up-the-top-10-must-play-games-of-the-year" data-discover="true"><div title="Four images from the best games of 2024."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1eecfa0f60c9a77a/67630fcd19771eba2ba87b08/Game_Developer_Best_of_Games_2024_V3.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1eecfa0f60c9a77a/67630fcd19771eba2ba87b08/Game_Developer_Best_of_Games_2024_V3.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Four images from the best games of 2024." title="Four images from the best games of 2024."/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_gamePlatforms ListPreview-Keyword" href="/game-platforms" data-discover="true">Game Platforms</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/game-platforms/game-developer-2024-wrap-up-the-top-10-must-play-games-of-the-year" data-discover="true">Game Developer's 2024 Wrap-Up: The top 10 must-play Games of the Year</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/game-platforms/game-developer-2024-wrap-up-the-top-10-must-play-games-of-the-year" data-discover="true">Game Developer's 2024 Wrap-Up: The top 10 must-play Games of the Year</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Dec 19, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>15 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink 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><a class="Contributors-AvatarLink Contributors-AvatarLink_isMultiple" 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><span class="Contributors-ContributorsCount" data-testid="contributors-count"><span> +<!-- -->3</span></span></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/chris-kerr" data-discover="true">Chris Kerr<!-- -->, </a><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/bryant-francis" data-discover="true">Bryant Francis</a><span class="Contributors-MoreText" data-testid="more-text">and <!-- -->3<!-- --> more</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Three Call of Duty: Black Ops 6: Zombies playable characters strike a pose." href="/audio/black-ops-6-zombies-characters-recast-after-original-actors-withdrew-during-strike" data-discover="true"><div title="Three Call of Duty: Black Ops 6: Zombies playable characters strike a pose."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt9cf9b79911613593/6761d87fabb68b4a74c2879f/ss_5a7c5b26417d19a88cbe7bca9bcab64abd149eba.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt9cf9b79911613593/6761d87fabb68b4a74c2879f/ss_5a7c5b26417d19a88cbe7bca9bcab64abd149eba.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Three Call of Duty: Black Ops 6: Zombies playable characters strike a pose." title="Three Call of Duty: Black Ops 6: Zombies playable characters strike a pose."/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_audio ListPreview-Keyword" href="/audio" data-discover="true">Audio</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/audio/black-ops-6-zombies-characters-recast-after-original-actors-withdrew-during-strike" data-discover="true">Activision quietly recast Black Ops 6 Zombies actors during SAG-AFTRA strike</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/audio/black-ops-6-zombies-characters-recast-after-original-actors-withdrew-during-strike" data-discover="true">Activision quietly recast Black Ops 6 Zombies actors during SAG-AFTRA strike</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Dec 18, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>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="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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: " href="/game-platforms/game-developer-s-2024-wrap-up-the-top-5-events-that-defined-2024" data-discover="true"><div title=""><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltbbca559b319a92f9/6762fb040b15ee72e2a1d325/Game_Developer_Top_Events_2024.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltbbca559b319a92f9/6762fb040b15ee72e2a1d325/Game_Developer_Top_Events_2024.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="" title=""/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_gamePlatforms ListPreview-Keyword" href="/game-platforms" data-discover="true">Game Platforms</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/game-platforms/game-developer-s-2024-wrap-up-the-top-5-events-that-defined-2024" data-discover="true">Game Developer's 2024 Wrap-Up: The top 5 events that defined 2024</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/game-platforms/game-developer-s-2024-wrap-up-the-top-5-events-that-defined-2024" data-discover="true">Game Developer's 2024 Wrap-Up: The top 5 events that defined 2024</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Dec 18, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>8 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink 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><a class="Contributors-AvatarLink Contributors-AvatarLink_isMultiple" aria-label="Holly Green" href="/author/holly-green" data-discover="true"><img aria-hidden="true" data-testid="contributor-avatar" data-component="image" class="Contributors-Avatar" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltdec6f50070a70555/650f059f457d12263163b2ca/75258562_10220983058707614_8585122828469141504_n.jpg?width=100&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltdec6f50070a70555/650f059f457d12263163b2ca/75258562_10220983058707614_8585122828469141504_n.jpg?width=100&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Picture of Holly Green" title="Picture of Holly Green"/></a><span class="Contributors-ContributorsCount" data-testid="contributors-count"><span> +<!-- -->3</span></span></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/chris-kerr" data-discover="true">Chris Kerr<!-- -->, </a><a class="Contributors-ContributorName" data-testid="contributor-name" href="/author/holly-green" data-discover="true">Holly Green</a><span class="Contributors-MoreText" data-testid="more-text">and <!-- -->3<!-- --> more</span></div></div></div></div></div><div class="ContentPreview ListContent-ContentItem ListContent-ContentItem_borderless" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Two thieves brawl against each other and a guard in a library in Thick as Thieves." href="/design/how-thick-as-thieves-adapts-immersive-sim-tricks-for-online-multiplayer" data-discover="true"><div title="Two thieves brawl against each other and a guard in a library in Thick as Thieves."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt2f57a0dccc8072ea/67618ca500ac4d734bd87c87/thickasthieveslibraryfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt2f57a0dccc8072ea/67618ca500ac4d734bd87c87/thickasthieveslibraryfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Two thieves brawl against each other and a guard in a library in Thick as Thieves." title="Two thieves brawl against each other and a guard in a library in Thick as Thieves."/></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/how-thick-as-thieves-adapts-immersive-sim-tricks-for-online-multiplayer" data-discover="true">How Thick as Thieves adapts immersive sim tricks for multiplayer shenanigans</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/design/how-thick-as-thieves-adapts-immersive-sim-tricks-for-online-multiplayer" data-discover="true">How Thick as Thieves adapts immersive sim tricks for multiplayer shenanigans</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Dec 18, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>5 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: A close-up profile of a furry cat with purple-and-teal eyes." href="/art/catly-developer-denies-it-s-using-generative-ai-or-blockchain-technology-in-its-cute-cat-game" data-discover="true"><div title="A close-up profile of a furry cat with purple-and-teal eyes."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt64350237fea0f866/6760a0fb402a80b77eaa7e52/catlyfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt64350237fea0f866/6760a0fb402a80b77eaa7e52/catlyfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="A close-up profile of a furry cat with purple-and-teal eyes." title="A close-up profile of a furry cat with purple-and-teal eyes."/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_art ListPreview-Keyword" href="/art" data-discover="true">Art</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/art/catly-developer-denies-it-s-using-generative-ai-or-blockchain-technology-in-its-cute-cat-game" data-discover="true">Catly developer denies it's using generative AI or blockchain technology in its cute cat game</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/art/catly-developer-denies-it-s-using-generative-ai-or-blockchain-technology-in-its-cute-cat-game" data-discover="true">Catly developer denies it's using generative AI or blockchain technology in its cute cat game</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Dec 16, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>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="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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Characters from the Warcraft franchise strike a pose." href="/design/what-blizzard-is-doing-to-make-sure-world-of-warcraft-never-gets-old" data-discover="true"><div title="Characters from the Warcraft franchise strike a pose."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3ae76f52aa153b3a/66f4704c3097eb9dbaddcf6a/WoW_20th_Anniversary_Wallpaper_1920x1080.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3ae76f52aa153b3a/66f4704c3097eb9dbaddcf6a/WoW_20th_Anniversary_Wallpaper_1920x1080.png?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Characters from the Warcraft franchise strike a pose." title="Characters from the Warcraft franchise strike a pose."/></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/what-blizzard-is-doing-to-make-sure-world-of-warcraft-never-gets-old" data-discover="true">What Blizzard is doing to make sure World of Warcraft never gets old</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/design/what-blizzard-is-doing-to-make-sure-world-of-warcraft-never-gets-old" data-discover="true">What Blizzard is doing to make sure World of Warcraft never gets old</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Nov 22, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>5 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: YoYo Games CEO Russell Kay holds a microphone against Game Developer's red background." href="/programming/what-gamemaker-s-25-year-run-tells-us-about-the-game-engine-market" data-discover="true"><div title="YoYo Games CEO Russell Kay holds a microphone against Game Developer's red background."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blte9cdb5ffe27303b2/673f421444780fb7e63082a3/russellkayfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blte9cdb5ffe27303b2/673f421444780fb7e63082a3/russellkayfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="YoYo Games CEO Russell Kay holds a microphone against Game Developer's red background." title="YoYo Games CEO Russell Kay holds a microphone against Game Developer's red background."/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_programming ListPreview-Keyword" href="/programming" data-discover="true">Programming</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/programming/what-gamemaker-s-25-year-run-tells-us-about-the-game-engine-market" data-discover="true">What GameMaker's 25-year run tells us about the game engine market</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/programming/what-gamemaker-s-25-year-run-tells-us-about-the-game-engine-market" data-discover="true">What GameMaker's 25-year run tells us about the game engine market</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Nov 20, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>9 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: The Bluesky logo on Game Developer's key art." href="/business/what-are-game-developers-getting-out-of-bluesky-" data-discover="true"><div title="The Bluesky logo on Game Developer's key art."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt185f94ca82b4d5c1/673b5c43fdb511b229f6df09/blueskygamedeveloper.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt185f94ca82b4d5c1/673b5c43fdb511b229f6df09/blueskygamedeveloper.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="The Bluesky logo on Game Developer's key art." title="The Bluesky logo on Game Developer's key art."/></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/what-are-game-developers-getting-out-of-bluesky-" data-discover="true">What are game developers getting out of Bluesky?</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/what-are-game-developers-getting-out-of-bluesky-" data-discover="true">What are game developers getting out of Bluesky?</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Nov 18, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>11 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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: The logo for the 2024 Game Awards." href="/business/why-hasn-t-the-game-awards-announced-a-future-class-for-2024-" data-discover="true"><div title="The logo for the 2024 Game Awards."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt5c3675774e125304/67352c06c431f8190a1d2b29/gameawards2024featured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt5c3675774e125304/67352c06c431f8190a1d2b29/gameawards2024featured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="The logo for the 2024 Game Awards." title="The logo for the 2024 Game Awards."/></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/why-hasn-t-the-game-awards-announced-a-future-class-for-2024-" data-discover="true">Why hasn't The Game Awards announced a Future Class for 2024?</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/why-hasn-t-the-game-awards-announced-a-future-class-for-2024-" data-discover="true">Why hasn't The Game Awards announced a Future Class for 2024?</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Nov 14, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>7 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Davrin, a Black elf from Dragon Age: The Veilguard." href="/art/bioware-pulls-back-the-veil-on-dragon-age-the-veilguard-s-magical-hair-tech" data-discover="true"><div title="Davrin, a Black elf from Dragon Age: The Veilguard."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd3a4285d36f7d414/6733bbbe50f3cb55e68bc8a1/davrinfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd3a4285d36f7d414/6733bbbe50f3cb55e68bc8a1/davrinfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Davrin, a Black elf from Dragon Age: The Veilguard." title="Davrin, a Black elf from Dragon Age: The Veilguard."/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_art ListPreview-Keyword" href="/art" data-discover="true">Art</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/art/bioware-pulls-back-the-veil-on-dragon-age-the-veilguard-s-magical-hair-tech" data-discover="true">BioWare pulls back the veil on Dragon Age: The Veilguard's magical hair tech</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/art/bioware-pulls-back-the-veil-on-dragon-age-the-veilguard-s-magical-hair-tech" data-discover="true">BioWare pulls back the veil on Dragon Age: The Veilguard's magical hair tech</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Nov 12, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>5 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: A woman looks at a computer through a magnifying glass." href="/art/how-devs-can-spot-ai-generated-3d-models" data-discover="true"><div title="A woman looks at a computer through a magnifying glass."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc749959e57715574/672a39ad570b834999b5c82b/womanmagnifyingglassfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc749959e57715574/672a39ad570b834999b5c82b/womanmagnifyingglassfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="A woman looks at a computer through a magnifying glass." title="A woman looks at a computer through a magnifying glass."/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_art ListPreview-Keyword" href="/art" data-discover="true">Art</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/art/how-devs-can-spot-ai-generated-3d-models" data-discover="true">How devs can spot AI-generated 3D models</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/art/how-devs-can-spot-ai-generated-3d-models" data-discover="true">How devs can spot AI-generated 3D models</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Nov 5, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>5 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Key art for Nintendo Music. It shows portraits of different characters like Mario, Link, Isabella, and more." href="/audio/why-doesn-t-nintendo-music-credit-composers-" data-discover="true"><div title="Key art for Nintendo Music. It shows portraits of different characters like Mario, Link, Isabella, and more."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt38d671590c3b2249/6723c7f22ab52dee6dad78d0/nintendomusicfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt38d671590c3b2249/6723c7f22ab52dee6dad78d0/nintendomusicfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Key art for Nintendo Music. It shows portraits of different characters like Mario, Link, Isabella, and more." title="Key art for Nintendo Music. It shows portraits of different characters like Mario, Link, Isabella, and more."/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_audio ListPreview-Keyword" href="/audio" data-discover="true">Audio</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/audio/why-doesn-t-nintendo-music-credit-composers-" data-discover="true">Nintendo doesn't credit composers on new Nintendo Music app</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/audio/why-doesn-t-nintendo-music-credit-composers-" data-discover="true">Nintendo doesn't credit composers on new Nintendo Music app</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Oct 31, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>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="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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: A man with his face obscured by a hoodie at a laptop." href="/pc/heads-up-devs-on-steam-now-need-to-disclose-kernel-mode-anti-cheat-software" data-discover="true"><div title="A man with his face obscured by a hoodie at a laptop."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt380506969c012133/6723a9c8f3d12e1c520f7e3f/hackerfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt380506969c012133/6723a9c8f3d12e1c520f7e3f/hackerfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="A man with his face obscured by a hoodie at a laptop." title="A man with his face obscured by a hoodie at a laptop."/></div></a></div><div class="ListPreview-ContentWrapper"><div class="ListPreview-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_alternate Keyword_title_pc ListPreview-Keyword" href="/game-platforms/pc" data-discover="true">PC</a></div><div class="ListPreview-TitleWrapper"><a class="ListPreview-Title" data-testid="preview-default-title" href="/pc/heads-up-devs-on-steam-now-need-to-disclose-kernel-mode-anti-cheat-software" data-discover="true">Heads up: devs on Steam now need to disclose kernel mode anti-cheat software</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/pc/heads-up-devs-on-steam-now-need-to-disclose-kernel-mode-anti-cheat-software" data-discover="true">Heads up: devs on Steam now need to disclose kernel mode anti-cheat software</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Oct 31, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>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="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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: A woman addresses a table of businesspeople." href="/business/what-finji-ceo-bekah-saltsman-would-update-about-her-gdc-talk-on-indie-pitching" data-discover="true"><div title="A woman addresses a table of businesspeople."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt9494ce3a84749271/67239d7446c5da564695c02b/indiepitchingfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt9494ce3a84749271/67239d7446c5da564695c02b/indiepitchingfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="A woman addresses a table of businesspeople." title="A woman addresses a table of businesspeople."/></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/what-finji-ceo-bekah-saltsman-would-update-about-her-gdc-talk-on-indie-pitching" data-discover="true">Up-to-date indie pitching tips from Finji CEO Bekah Saltsman</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/what-finji-ceo-bekah-saltsman-would-update-about-her-gdc-talk-on-indie-pitching" data-discover="true">Up-to-date indie pitching tips from Finji CEO Bekah Saltsman</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Oct 31, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>8 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: Star Wars Outlaws protagonist slides across the dirt." href="/business/three-reasons-star-wars-outlaws-might-have-undersold" data-discover="true"><div title="Star Wars Outlaws protagonist slides across the dirt."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3caec7f78faedc98/67227e557ee0267290f0e839/starwarsoutlawspoorsalesfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3caec7f78faedc98/67227e557ee0267290f0e839/starwarsoutlawspoorsalesfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="Star Wars Outlaws protagonist slides across the dirt." title="Star Wars Outlaws protagonist slides across the dirt."/></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/three-reasons-star-wars-outlaws-might-have-undersold" data-discover="true">Three reasons Star Wars Outlaws might have undersold</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/three-reasons-star-wars-outlaws-might-have-undersold" data-discover="true">Three reasons Star Wars Outlaws might have undersold</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Oct 30, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>10 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="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 ListContent-ContentItem" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: A woman casts purple magic with a staff. A blue-faced fantasy character stands behind her." href="/design/avowed-director-carrie-patel-explains-how-obsidian-pushes-boundaries-in-the-fantasy-genre" data-discover="true"><div title="A woman casts purple magic with a staff. A blue-faced fantasy character stands behind her."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt14700b671612c553/671a758634ed7082afae71e3/avowedfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt14700b671612c553/671a758634ed7082afae71e3/avowedfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="A woman casts purple magic with a staff. A blue-faced fantasy character stands behind her." title="A woman casts purple magic with a staff. A blue-faced fantasy character stands behind her."/></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/avowed-director-carrie-patel-explains-how-obsidian-pushes-boundaries-in-the-fantasy-genre" data-discover="true">Avowed director Carrie Patel explains how Obsidian pushes boundaries in the fantasy genre</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/design/avowed-director-carrie-patel-explains-how-obsidian-pushes-boundaries-in-the-fantasy-genre" data-discover="true">Avowed director Carrie Patel explains how Obsidian pushes boundaries in the fantasy genre</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Oct 24, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>5 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="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 ListContent-ContentItem ListContent-ContentItem_borderless" data-module="content-preview" data-variant="small"><div class="ListPreview"><div class="ListPreview-Container"><div class="ListPreview-ImageWrapper"><a aria-label="Read more about: The number 10 in green and blue lighting." href="/business/one-lesson-from-10-years-of-writing-for-game-developer" data-discover="true"><div title="The number 10 in green and blue lighting."><img data-component="image" class="ListPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt6140b7aec7dd3a8b/671950bdc3b38d2f0dd53aec/10yearsfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt6140b7aec7dd3a8b/671950bdc3b38d2f0dd53aec/10yearsfeatured.jpg?width=300&auto=webp&quality=80&disable=upscale" loading="lazy" alt="The number 10 in green and blue lighting." title="The number 10 in green and blue lighting."/></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/one-lesson-from-10-years-of-writing-for-game-developer" data-discover="true">One lesson from 10 years of writing for Game Developer</a></div><div class="ListPreview-MobileTitleWrapper"><a class="ListPreview-Title" data-testid="preview-mobile-title" href="/business/one-lesson-from-10-years-of-writing-for-game-developer" data-discover="true">One lesson from 10 years of writing for Game Developer</a></div><div class="ListPreview-Footer"><span class="ListPreview-Date" data-testid="list-preview-date">Oct 24, 2024</span><div data-module="card-time" class="CardTime"><span class="CardTime-SeparatorLine">|</span><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>8 Min<!-- --> <!-- -->Read</span></div></div></div></div></div><div class="ListPreview-ContributorsWrapper"><div class="Contributors Contributors_variant_slimline Contributors_cardVariant_small Contributors_hasAvatar" data-component="contributors"><div class="Contributors-AvatarWrapper"><a class="Contributors-AvatarLink" aria-label="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><nav role="navigation" aria-label="Pagination Navigation" data-component="pagination" class="ListContent-Pagination"><ul class="Pagination-Wrapper"><li><a tabindex="-1" aria-label="Cannot go to Previous page" class="Pagination-Link Pagination-Link_disabled" href="/author/bryant-francis" data-discover="true"><span class="Pagination-PageWrapper"><span class="Pagination-ArrowIconWrapper Pagination-ArrowIconWrapper_disabled"><span data-component="icon" data-name="ArrowLeft" class="Pagination-ArrowIcon Pagination-ArrowIcon_disabled" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='11.959'%20height='12'%20viewBox='0%200%2011.959%2012'%3e%3cg%20id='arrow_icon'%20data-name='arrow%20icon'%20transform='translate(11.959%2012)%20rotate(180)'%3e%3cpath%20id='arrow_icon-2'%20data-name='arrow%20icon'%20d='M13431.958,1289l-6.358,6-1.531-1.512,4.017-3.472H13420v-2.033h7.979l-3.91-3.475,1.63-1.507Z'%20transform='translate(-13419.999%20-1283)'/%3e%3c/g%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='11.959'%20height='12'%20viewBox='0%200%2011.959%2012'%3e%3cg%20id='arrow_icon'%20data-name='arrow%20icon'%20transform='translate(11.959%2012)%20rotate(180)'%3e%3cpath%20id='arrow_icon-2'%20data-name='arrow%20icon'%20d='M13431.958,1289l-6.358,6-1.531-1.512,4.017-3.472H13420v-2.033h7.979l-3.91-3.475,1.63-1.507Z'%20transform='translate(-13419.999%20-1283)'/%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><span data-testid="labelText" class="Pagination-Move">Previous</span></span></a></li><li><a tabindex="-1" aria-label="Current page, page 1" class="Pagination-PageNumber Pagination-PageNumber_current" href="/author/bryant-francis" data-discover="true">1</a></li><li><a tabindex="0" aria-label="Go to page 2" class="Pagination-PageNumber" href="/author/bryant-francis?page=2" data-discover="true">2</a></li><li><a tabindex="0" aria-label="Go to page 3" class="Pagination-PageNumber" href="/author/bryant-francis?page=3" data-discover="true">3</a></li><li><a tabindex="0" aria-label="Go to page 4" class="Pagination-PageNumber" href="/author/bryant-francis?page=4" data-discover="true">4</a></li><li><a tabindex="0" aria-label="Go to page 5" class="Pagination-PageNumber" href="/author/bryant-francis?page=5" data-discover="true">5</a></li><li class="Pagination-Dots">…</li><li><a tabindex="0" aria-label="Go to page 45" class="Pagination-PageNumber Pagination-PageNumber_desktop" href="/author/bryant-francis?page=45" data-discover="true">45</a></li><li><a tabindex="0" aria-label="Go to Next page 2" class="Pagination-Link" href="/author/bryant-francis?page=2" data-discover="true"><span class="Pagination-PageWrapper"><span data-testid="labelText" class="Pagination-Move">Next</span><span class="Pagination-ArrowIconWrapper"><span data-component="icon" data-name="ArrowRight" class="Pagination-ArrowIcon" style="mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='11.959'%20height='12'%20viewBox='0%200%2011.959%2012'%3e%3cg%20id='arrow_icon'%20data-name='arrow%20icon'%20transform='translate(0%200)'%3e%3cpath%20id='arrow_icon-2'%20data-name='arrow%20icon'%20d='M13431.958,1289l-6.358,6-1.531-1.512,4.017-3.472H13420v-2.033h7.979l-3.91-3.475,1.63-1.507Z'%20transform='translate(-13419.999%20-1283)'/%3e%3c/g%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%20width='11.959'%20height='12'%20viewBox='0%200%2011.959%2012'%3e%3cg%20id='arrow_icon'%20data-name='arrow%20icon'%20transform='translate(0%200)'%3e%3cpath%20id='arrow_icon-2'%20data-name='arrow%20icon'%20d='M13431.958,1289l-6.358,6-1.531-1.512,4.017-3.472H13420v-2.033h7.979l-3.91-3.475,1.63-1.507Z'%20transform='translate(-13419.999%20-1283)'/%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></span></a></li></ul></nav></div></div><div class="TwoColumnLayout-Sidebar"><div class="Sidebar" data-module="sidebar"><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-module="content-cards" class="ContentCards ContentCards_sidebar"><div class="ContentCards-CardsWrapper ContentCards-CardsWrapper_column"><div class="ContentCards-Header ContentCards-Header_column" data-testid="content-cards-header"><h3 class="ContentCards-Title" data-testid="contentCardsTitle">Latest News</h3></div><div class="ContentCards-Content ContentCards-Content_column"><div class="ContentCards-ContentPreview ContentCards-ContentPreview_column" data-testid="content-preview-column"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/business/sony-dismisses-ex-bungie-director-s-lawsuit-claims-alleged-consistent-misconduct-took-place" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">A Runner in Bungie's Marathon.</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta02ff0a8264a742c/66cf5e436f47ee032319bf78/marathon_reboot.jpg?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta02ff0a8264a742c/66cf5e436f47ee032319bf78/marathon_reboot.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_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/sony-dismisses-ex-bungie-director-s-lawsuit-claims-alleged-consistent-misconduct-took-place" data-discover="true">Report: Sony dismisses ex-Bungie director's lawsuit claims, alleged 'consistent misconduct' took place</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/business/sony-dismisses-ex-bungie-director-s-lawsuit-claims-alleged-consistent-misconduct-took-place" data-discover="true">Report: Sony dismisses ex-Bungie director's lawsuit claims, alleged 'consistent misconduct' took place</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/justin-carter" data-discover="true">Justin Carter</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 21, 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><div class="ContentCards-ContentPreview ContentCards-ContentPreview_column" data-testid="content-preview-column"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/business/obituary-carter-lipscomb-iron-galaxy-s-business-specialist-passed-away" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">Selfie of game developer Carter Lipscomb.</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8258ffbe0f635379/67b8c318a2df9a0963c0ff88/carter_lipscomb.jpg?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8258ffbe0f635379/67b8c318a2df9a0963c0ff88/carter_lipscomb.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_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/obituary-carter-lipscomb-iron-galaxy-s-business-specialist-passed-away" data-discover="true">Obituary: Carter Lipscomb, Iron Galaxy's business specialist, has passed away</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/business/obituary-carter-lipscomb-iron-galaxy-s-business-specialist-passed-away" data-discover="true">Obituary: Carter Lipscomb, Iron Galaxy's business specialist, has passed away</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/justin-carter" data-discover="true">Justin Carter</a></div></div></div><div class="VerticalCard-Footer"><span class="VerticalCard-Date" data-testid="vertical-card-date">Feb 21, 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></div></div></div></div><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-module="newsletter-signup-promo"><div class="SubscribeBanner SubscribeBanner_mode_dark SubscribeBanner_variant_horizontal_sidebar"><div class="SubscribeBanner-Wrapper"><div class="SubscribeBanner-Title" data-testid="subscribeBanner_title">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://gd-resources.gamedeveloper.com/free/w_gamf01/prgm.cgi" target="_blank"><span class="Button-ContentWrapper">Stay Updated</span></a></div></div></div></div></div><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-module="content-spotlight" class="ContentSpotlight ContentSpotlight_mode_light"><article class="ContentSpotlight-Article ContentSpotlight-Article_isReversed ContentSpotlight-Article_isSidebar" text-alignment="center" data-testid="content-spotlight-article"><div class="ContentSpotlight-ImageContainer" data-testid="content-spotlight-image-container"><div class="ContentSpotlight-KeywordList"><div class="ContentSpotlight-KeywordWrapper"><a data-component="keyword" class="Keyword Keyword_variant_standard Keyword_title_business ContentSpotlight-Keyword" href="/business" data-discover="true">Business</a></div></div><a href="/business/how-will-project-2025-impact-game-developers-" data-discover="true"><img data-component="image" class="ContentSpotlight-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf853554cde13e80e/66993eab894f28de8a04de6f/whitehousebwfeatured.jpg?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf853554cde13e80e/66993eab894f28de8a04de6f/whitehousebwfeatured.jpg?width=700&auto=webp&quality=80&disable=upscale" loading="lazy" alt="A photo of the White House in black and white." title="A photo of the White House in black and white."/></a></div><div class="ContentSpotlight-ContentContainer ContentSpotlight-ContentContainer_textAlignment_center ContentSpotlight-ContentContainer_isSidebar" data-testid="content-spotlight-content-container"><p class="ContentSpotlight-ContentSummary" data-testid="content-spotlight-summary">Trending</p><a href="/business/how-will-project-2025-impact-game-developers-" data-discover="true"><h2 class="ContentSpotlight-ContentHeading" data-testid="content-spotlight-heading">Opinion: How will Project 2025 impact game developers?</h2></a><div class="ContentSpotlight-ContentBodyWrapper ContentSpotlight-ContentBodyWrapper_isSidebar"><p class="ContentSpotlight-ContentBody" data-testid="content-spotlight-body">The Heritage Foundation's manifesto for the possible next administration could do great harm to many, including large portions of the game development community.</p></div><div class="ContentSpotlight-ButtonContainer"><a data-component="button" data-testid="content-spotlight-button-link" class="Button Button_size_medium Button_variant_darkOutlined" href="/business/how-will-project-2025-impact-game-developers-" data-discover="true"><span class="Button-ContentWrapper">Read More</span></a></div></div></article></div></div><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-module="content-cards" class="ContentCards ContentCards_sidebar"><div class="ContentCards-CardsWrapper ContentCards-CardsWrapper_column"><div class="ContentCards-Header ContentCards-Header_column" data-testid="content-cards-header"><h3 class="ContentCards-Title" data-testid="contentCardsTitle">More from GD</h3></div><div class="ContentCards-Content ContentCards-Content_column"><div class="ContentCards-ContentPreview ContentCards-ContentPreview_column" data-testid="content-preview-column"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/business/why-games-like-mlb-the-show-24-are-vital-for-a-creative-game-industry" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">A baseball player from MLB The Show 24 winds up a pitch.</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltb09928df8e25f18c/67b7569a5d74c4ff90ef57ee/mlbtheshow24featured.jpg?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltb09928df8e25f18c/67b7569a5d74c4ff90ef57ee/mlbtheshow24featured.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_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/why-games-like-mlb-the-show-24-are-vital-for-a-creative-game-industry" data-discover="true">Why games like MLB The Show 24 are vital for a creative game industry</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/business/why-games-like-mlb-the-show-24-are-vital-for-a-creative-game-industry" data-discover="true">Why games like MLB The Show 24 are vital for a creative game industry</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">Feb 21, 2025</span><div data-module="card-time" class="CardTime"><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><div class="ContentCards-ContentPreview ContentCards-ContentPreview_column" data-testid="content-preview-column"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/art/what-obsidian-entertainment-learned-making-avowed-a-first-person-fantasy-game" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">Kai, a washbuckling blue-skinned companion from Avowed, wields a blunderbuss and saber.</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt9b4ba8ab1cef9157/67ae06cade4a676028b40494/avowedkaifeatured.jpg?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt9b4ba8ab1cef9157/67ae06cade4a676028b40494/avowedkaifeatured.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/what-obsidian-entertainment-learned-making-avowed-a-first-person-fantasy-game" data-discover="true">What Obsidian Entertainment learned making Avowed a first-person fantasy RPG</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/art/what-obsidian-entertainment-learned-making-avowed-a-first-person-fantasy-game" data-discover="true">What Obsidian Entertainment learned making Avowed a first-person fantasy RPG</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">Feb 13, 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 class="ContentCards-ContentPreview ContentCards-ContentPreview_column" data-testid="content-preview-column"><div class="ContentPreview" data-module="content-preview" data-variant="card-vertical"><div class="ContentPreview-Wrapper ContentPreview-Wrapper_variant_cardVertical"><a data-testid="thumbnail" href="/business/did-you-know-the-ceo-and-of-bohemia-interactive-purchased-a-disinformation-outlet-in-2023-" data-discover="true"><div class="ContentPreview-ImageContainer"><span data-testid="content-preview-screen-reader-text" class="ContentPreview-ImageScreenReaderText">A soldier from the ARMA series stands at the ready with an M-16.</span><img data-testid="content-preview-image" data-component="image" class="ContentPreview-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8b017b4f41c4a024/67a4dd4c82ee4e0c4f122ada/armabohemiafeatured.jpg?width=700&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8b017b4f41c4a024/67a4dd4c82ee4e0c4f122ada/armabohemiafeatured.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_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/did-you-know-the-ceo-and-of-bohemia-interactive-purchased-a-disinformation-outlet-in-2023-" data-discover="true">Did you know the top brass at ARMA and DayZ studio Bohemia Interactive bought a 'disinformation outlet' in 2023?</a><a class="VerticalCard-Title VerticalCard-Title_displayOption_mobile" data-testid="preview-mobile-title" href="/business/did-you-know-the-ceo-and-of-bohemia-interactive-purchased-a-disinformation-outlet-in-2023-" data-discover="true">Did you know the top brass at ARMA and DayZ studio Bohemia Interactive bought a 'disinformation outlet' in 2023?</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">Feb 11, 2025</span><div data-module="card-time" class="CardTime"><div data-component="article-read-time" class="ArticleReadTime ArticleReadTime_size_small CardTime-ReadTime"><span>8 Min<!-- --> <!-- -->Read</span></div></div></div></div></div></div></div></div></div></div></div><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-component="content-list" class="ContentList"><div class="ContentList-Header"><span data-component="icon" data-name="Microphone" class="ContentList-Icon" style="mask-image:url("data:image/svg+xml,%3csvg%20id='Layer_1'%20fill='currentColor'%20height='512'%20viewBox='0%200%20100%20100'%20width='512'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='m63.333%2023.333c0-7.363-5.97-13.333-13.333-13.333s-13.333%205.97-13.333%2013.333v20c0%207.364%205.97%2013.333%2013.333%2013.333s13.333-5.97%2013.333-13.333z'/%3e%3cpath%20d='m70%2030v13.333c0%2011.045-8.955%2020-20%2020s-20-8.954-20-20v-13.333c-3.682%200-6.667%202.985-6.667%206.667v6.667c0%2014.726%2011.94%2026.666%2026.667%2026.666s26.667-11.94%2026.667-26.667v-6.667c0-3.681-2.985-6.666-6.667-6.666z'/%3e%3cpath%20d='m60%2083.33v.003h-6.667v-6.666h-6.666v6.666h-6.667c-3.682%200-6.667%202.985-6.667%206.667l33.334-.003c0-3.682-2.985-6.667-6.667-6.667z'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20id='Layer_1'%20fill='currentColor'%20height='512'%20viewBox='0%200%20100%20100'%20width='512'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='m63.333%2023.333c0-7.363-5.97-13.333-13.333-13.333s-13.333%205.97-13.333%2013.333v20c0%207.364%205.97%2013.333%2013.333%2013.333s13.333-5.97%2013.333-13.333z'/%3e%3cpath%20d='m70%2030v13.333c0%2011.045-8.955%2020-20%2020s-20-8.954-20-20v-13.333c-3.682%200-6.667%202.985-6.667%206.667v6.667c0%2014.726%2011.94%2026.666%2026.667%2026.666s26.667-11.94%2026.667-26.667v-6.667c0-3.681-2.985-6.666-6.667-6.666z'/%3e%3cpath%20d='m60%2083.33v.003h-6.667v-6.666h-6.666v6.666h-6.667c-3.682%200-6.667%202.985-6.667%206.667l33.334-.003c0-3.682-2.985-6.667-6.667-6.667z'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain"></span><span class="ContentList-Title" data-testid="content-list-title">Latest Podcasts</span></div><ul class="ContentList-List"><li class="ContentList-ListItem"><a data-testid="content-list-item-title" href="/design/snapping-your-career-into-place-with-ben-brode-game-developer-podcast-ep-48" target="" data-discover="true"><p class="ContentList-ListItemTitle">Snapping Your Career into Place with Ben Brode: Game Developer Podcast Ep. 48</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Nov 27, 2024</span></li><li class="ContentList-ListItem"><a data-testid="content-list-item-title" href="/design/preserving-the-past-with-charles-cecil-game-developer-podcast-ep-46" target="" data-discover="true"><p class="ContentList-ListItemTitle">Preserving the Past With Charles Cecil: Game Developer Podcast Ep. 46</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Aug 29, 2024</span></li><li class="ContentList-ListItem"><a data-testid="content-list-item-title" href="/production/on-the-unionization-frontlines-with-autumn-mitchell-emma-kinema-and-chris-lusco-game-developer-podcast-ep-45" target="" data-discover="true"><p class="ContentList-ListItemTitle">On the unionization frontlines with Autumn Mitchell, Emma Kinema and Chris Lusco: Game Developer Podcast Ep. 45</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">Jul 26, 2024</span></li><li class="ContentList-ListItem"><a data-testid="content-list-item-title" href="/business/behind-the-gdc-scenes-with-beth-elderkin-and-sam-warnke-game-developer-podcast-ep-43" target="" data-discover="true"><p class="ContentList-ListItemTitle">Behind the GDC scenes with Beth Elderkin and Sam Warnke: Game Developer Podcast ep. 43</p></a><span class="ContentList-ListItemDate" data-testid="content-list-item-date">May 15, 2024</span></li></ul><div class="ContentList-CTAButton"><span data-component="button" role="presentation" class="Button Button_size_medium Button_variant_textLink"><span class="Button-ContentWrapper"><a class="ContentList-CTAText" rel="noreferrer" href="/keyword/game-developer-podcast" target="_blank" data-discover="true">See all</a></span><span data-component="icon" data-name="ChevronRight" class="Button-Icon Button-Icon_position_right" 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></span></div></div></div><div class="Sidebar-SidebarItem"><div class="Sidebar-SidebarItem" data-testid="sidebar-item"><div data-module="content-cards" class="ContentCards ContentCards_sidebar"><div class="ContentCards-CardsWrapper ContentCards-CardsWrapper_default"><div class="ContentCards-Header ContentCards-Header_default" data-testid="content-cards-header"><h3 class="ContentCards-Title" data-testid="contentCardsTitle">Featured Blogs</h3></div><div class="ContentCards-Content ContentCards-Content_default"><div class="ContentCards-ContentPreview ContentCards-ContentPreview_default" data-testid="content-preview-default"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a href="/design/writer-director-sam-lake-and-game-designer-lucas-pope-honored-at-gdca-2025" data-discover="true"><span class="HorizontalCard-ImageScreenReaderText">headshots of Sam Lake and Lucas Pope</span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3c36f15d8a0391b5/67b8b458149b7e5b340e085c/sam_lake_lucas_pope.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3c36f15d8a0391b5/67b8b458149b7e5b340e085c/sam_lake_lucas_pope.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/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="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-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><p class="HorizontalCard-Date" data-testid="horizontalCardDate">Feb 21, 2025</p></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_default" data-testid="content-preview-default"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a href="/production/esa-brings-top-studios-together-at-gdc-to-unveil-new-accessibility-initiative" data-discover="true"><span class="HorizontalCard-ImageScreenReaderText">ESA logo and company logos</span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta66f63c40c6e0180/67a53d380bf90576ec058a17/esa_accessibility_blog_image.png?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta66f63c40c6e0180/67a53d380bf90576ec058a17/esa_accessibility_blog_image.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/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="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-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><p class="HorizontalCard-Date" data-testid="horizontalCardDate">Feb 6, 2025</p></div></div></div></div><div class="ContentCards-ContentPreview ContentCards-ContentPreview_default" data-testid="content-preview-default"><div class="ContentPreview" data-module="content-preview" data-variant="card-horizontal"><div class="HorizontalCard"><div class="HorizontalCard-ImageWrapper"><a href="/production/creating-seamless-multiplayer-experiences-for-games-like-space-marine-2" data-discover="true"><span class="HorizontalCard-ImageScreenReaderText">Characters from Space Marine 2</span><img data-component="image" class="HorizontalCard-Image" data-src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt7e60d18f3d2d0abe/67acfab264f859a2e505f3a8/ss_66a8bc13bf868d0e2a76e4d797e6408c271065d7.1920x1080.jpg?width=300&auto=webp&quality=80&disable=upscale" src="https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt7e60d18f3d2d0abe/67acfab264f859a2e505f3a8/ss_66a8bc13bf868d0e2a76e4d797e6408c271065d7.1920x1080.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_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/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="HorizontalCard-MobileTitleWrapper"><a class="HorizontalCard-Title" data-testid="preview-mobile-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><p class="HorizontalCard-Date" data-testid="horizontalCardDate">Feb 5, 2025</p></div></div></div></div></div></div></div></div></div></div></div></div></div><div class="ListContent-NewsletterSignupPromo"><div data-module="newsletter-signup-promo"><div class="SubscribeBanner SubscribeBanner_mode_dark SubscribeBanner_variant_vertical"><div class="SubscribeBanner-Wrapper"><div class="SubscribeBanner-Title" data-testid="subscribeBanner_title">Daily news, dev blogs, and stories from Game Developer straight to your inbox</div><div class="SubscribeBanner-Message" data-testid="subscribeBanner_message"></div><div class="SubscribeBanner-Button"><a data-component="button" data-testid="bannerNewsletterbutton" class="Button Button_size_medium Button_variant_secondaryFilled" rel="nofollow" data-action-type="sign-up" data-name="subscribe-banner" href="https://gd-resources.gamedeveloper.com/free/w_gamf01/prgm.cgi" target="_blank"><span class="Button-ContentWrapper">Stay Updated</span></a></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#87e9e2f0f4c7e0e6eae2e3e2f1e2ebe8f7e2f5a9e4e8ea">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://gd-resources.gamedeveloper.com/free/w_gamf01/prgm.cgi" 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’s technology buyers and sellers. All copyright resides with them. Informa PLC’s registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. TechTarget, Inc.’s 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-BIuf-57F.js"; import * as route1 from "/assets/author._slug-Dti0AzMH.js"; window.__reactRouterManifest = { "entry": { "module": "/assets/entry.client-fWB18xdV.js", "imports": [ "/assets/chunk-K6AXKMTT-D00r_oVc.js", "/assets/index-BlRIwUgC.js" ], "css": [] }, "routes": { "root": { "id": "root", "path": "", "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/root-BIuf-57F.js", "imports": [ "/assets/chunk-K6AXKMTT-D00r_oVc.js", "/assets/index-BlRIwUgC.js", "/assets/with-props-C4rFUyxV.js", "/assets/gtm-DGm0KW_T.js", "/assets/contentPreview-raReixWB.js", "/assets/_-BJdr63HM.js", "/assets/useArticleProps-B5v1naMg.js", "/assets/provider-vRHVWpv0.js", "/assets/newsletterSignupPromo-C5ZmaayE.js", "/assets/socialShare-BbqkDzDu.js", "/assets/link-C1MkzDH5.js", "/assets/button-DlgCHeeG.js", "/assets/util-BlbSWXsE.js", "/assets/searchBar-CEbzLjII.js", "/assets/useSearchBar-B0qpfoK9.js", "/assets/navigation-BPrJWSO7.js", "/assets/redirection-DiAII56c.js", "/assets/meta-DL0KpjEK.js", "/assets/form-5uUV5058.js" ], "css": [] }, "routes/author.$slug": { "id": "routes/author.$slug", "parentId": "root", "path": "author/:slug", "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/author._slug-Dti0AzMH.js", "imports": [ "/assets/with-props-C4rFUyxV.js", "/assets/chunk-K6AXKMTT-D00r_oVc.js", "/assets/_-BJdr63HM.js", "/assets/gtm-DGm0KW_T.js", "/assets/breadcrumb-D99WjBeI.js", "/assets/contributorSummary-CYbbZoZR.js", "/assets/socialShare-BbqkDzDu.js", "/assets/useArticleProps-B5v1naMg.js", "/assets/listContent-DPrFxO8G.js", "/assets/useWeatherWidget-CqdUxz0N.js", "/assets/meta-DL0KpjEK.js", "/assets/link-C1MkzDH5.js", "/assets/button-DlgCHeeG.js", "/assets/contentPreview-raReixWB.js", "/assets/utils-Bn24zYNJ.js", "/assets/gridLayout-wIbp2Hs_.js", "/assets/pagination-CotFOi0g.js", "/assets/commodityPrices-CuYN6Jxx.js", "/assets/newsletterSignupPromo-C5ZmaayE.js", "/assets/sidebar-C38SyLXI.js", "/assets/weatherWidget-BYzhjHC9.js", "/assets/changeLocationBar-BNl0rC1C.js", "/assets/form-5uUV5058.js", "/assets/contentCards-aFwo1o7S.js", "/assets/videoPlaylist-BaLxtSEs.js", "/assets/contentDomain.generated-DIEwSG95.js", "/assets/toNumber-DCajaT_r.js", "/assets/index-BlRIwUgC.js", "/assets/_getPrototype-3cCw-LUg.js", "/assets/useStorage-gorQNo4e.js" ], "css": [] }, "routes/_index": { "id": "routes/_index", "parentId": "root", "index": true, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_index-fCp8yBJU.js", "imports": [ "/assets/with-props-C4rFUyxV.js", "/assets/chunk-K6AXKMTT-D00r_oVc.js", "/assets/_-BJdr63HM.js", "/assets/gtm-DGm0KW_T.js", "/assets/useArticleProps-B5v1naMg.js", "/assets/moduleSection-BD4rkMdo.js", "/assets/contentDomain.generated-DIEwSG95.js", "/assets/useStorage-gorQNo4e.js", "/assets/meta-DL0KpjEK.js", "/assets/link-C1MkzDH5.js", "/assets/contentCards-aFwo1o7S.js", "/assets/contentPreview-raReixWB.js", "/assets/weatherHomepage-CnI474xN.js", "/assets/button-DlgCHeeG.js", "/assets/socialShare-BbqkDzDu.js", "/assets/index-BObwWQ7a.js", "/assets/weatherWidget-BYzhjHC9.js", "/assets/changeLocationBar-BNl0rC1C.js", "/assets/form-5uUV5058.js", "/assets/commodityPrices-CuYN6Jxx.js", "/assets/videoPlaylist-BaLxtSEs.js", "/assets/toNumber-DCajaT_r.js", "/assets/newsletterSignupPromo-C5ZmaayE.js", "/assets/resources-DIZqnfs4.js" ], "css": [] }, "routes/$topic._index": { "id": "routes/$topic._index", "parentId": "root", "path": ":topic", "index": true, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_topic._index-DgKjDyGQ.js", "imports": [ "/assets/with-props-C4rFUyxV.js", "/assets/chunk-K6AXKMTT-D00r_oVc.js", "/assets/_-BJdr63HM.js", "/assets/gtm-DGm0KW_T.js", "/assets/useArticleProps-B5v1naMg.js", "/assets/breadcrumb-D99WjBeI.js", "/assets/categoryHeader-BNorRpUl.js", "/assets/listContent-DPrFxO8G.js", "/assets/searchBar-CEbzLjII.js", "/assets/useSearchBar-B0qpfoK9.js", "/assets/newsletterSignupPromo-C5ZmaayE.js", "/assets/contentPreview-raReixWB.js", "/assets/utils-Bn24zYNJ.js", "/assets/pagination-CotFOi0g.js", "/assets/button-DlgCHeeG.js", "/assets/filterSection-B0_8V9sY.js", "/assets/topicList-DLI_z99T.js", "/assets/gridLayout-wIbp2Hs_.js", "/assets/featureImageHeader-B2n6UlsK.js", "/assets/moduleSection-BD4rkMdo.js", "/assets/articleMultiSection-B_lQ5uys.js", "/assets/provider-vRHVWpv0.js", "/assets/string-BS_NwYxO.js", "/assets/meta-DL0KpjEK.js", "/assets/useWeatherWidget-CqdUxz0N.js", "/assets/link-C1MkzDH5.js", "/assets/commodityPrices-CuYN6Jxx.js", "/assets/sidebar-C38SyLXI.js", "/assets/weatherWidget-BYzhjHC9.js", "/assets/changeLocationBar-BNl0rC1C.js", "/assets/form-5uUV5058.js", "/assets/contentCards-aFwo1o7S.js", "/assets/videoPlaylist-BaLxtSEs.js", "/assets/contentDomain.generated-DIEwSG95.js", "/assets/toNumber-DCajaT_r.js", "/assets/index-BlRIwUgC.js", "/assets/_getPrototype-3cCw-LUg.js", "/assets/util-BlbSWXsE.js", "/assets/input-zB_nkUn5.js", "/assets/_baseForOwn-ClWWO-WO.js", "/assets/index-BObwWQ7a.js", "/assets/socialShare-BbqkDzDu.js", "/assets/weatherHomepage-CnI474xN.js", "/assets/resources-DIZqnfs4.js", "/assets/contributorSummary-CYbbZoZR.js", "/assets/programHeader-UEd8-rbR.js", "/assets/redirection-DiAII56c.js", "/assets/useStorage-gorQNo4e.js" ], "css": [] } }, "url": "/assets/manifest-c120b55d.js", "version": "c120b55d" }; window.__reactRouterRouteModules = {"root":route0,"routes/author.$slug":route1}; import("/assets/entry.client-fWB18xdV.js");</script><!--$?--><template id="B:0"></template><!--/$--><div hidden id="S:0"><script>window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_1955\":-5,\"_1956\":-5},\"loaderData\",{\"_3\":4,\"_729\":730},\"root\",{\"_5\":6,\"_7\":8,\"_9\":10,\"_11\":12,\"_13\":14,\"_15\":16,\"_141\":142,\"_147\":-7,\"_148\":140,\"_149\":150,\"_153\":-7,\"_154\":155,\"_160\":-7,\"_161\":162,\"_173\":174,\"_175\":176,\"_196\":197,\"_613\":614,\"_615\":-7,\"_616\":617,\"_630\":631,\"_651\":652},\"href\",\"http://www.gamedeveloper.com/author/bryant-francis\",\"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\",\"oneTrust\",{\"_151\":152},\"siteId\",\"8aaa0413-1bf0-4c5f-b2b7-20f59225831b\",\"cookieBanner\",\"gtmIds\",{\"_156\":157,\"_158\":159},\"primary\",\"GTM-5523ZCM\",\"secondary\",\"GTM-KSPX23J\",\"pageContent\",\"ui\",{\"_7\":8,\"_163\":164,\"_165\":166},\"theme\",\"theme2\",\"font\",{\"_156\":167,\"_158\":172},{\"_168\":169,\"_170\":171},\"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\",{\"_168\":169,\"_170\":171},\"environment\",\"prod\",\"featureToggles\",{\"_177\":140,\"_178\":140,\"_179\":180,\"_181\":140,\"_182\":140,\"_183\":140,\"_184\":140,\"_185\":180,\"_186\":140,\"_187\":140,\"_188\":189,\"_190\":140,\"_191\":140,\"_192\":180,\"_193\":180,\"_194\":180,\"_195\":140},\"elnNewsletter\",\"elnWithoutNewsletter\",\"iirisAuthentication\",true,\"subBrand\",\"useSettingsRedirectAPIVersion1\",\"gatingEnabled\",\"iirisRecommendationDisabled\",\"iasPetEnabled\",\"bridgedMediaEnabled\",\"ecommerceEnabled\",\"iirisRecommendationVer\",\"version4\",\"weather3MonthForecastEnabled\",\"legacyHomepage\",\"oneTrustEnabled\",\"transcendEnabled\",\"useTechInformaBar\",\"cloudflareCachingEnabled\",\"layout\",{\"_198\":199,\"_216\":217,\"_240\":241,\"_432\":433,\"_518\":519,\"_525\":526,\"_611\":180,\"_612\":140},\"socialLinks\",[200,204,207,210,213],{\"_201\":202,\"_170\":203},\"type\",\"RSS\",\"/rss.xml\",{\"_201\":205,\"_170\":206},\"Twitter\",\"https://twitter.com/gamedevdotcom/\",{\"_201\":208,\"_170\":209},\"Linkedin\",\"https://www.linkedin.com/company/gamedeveloperofficial\",{\"_201\":211,\"_170\":212},\"Facebook\",\"https://www.facebook.com/GameDeveloperOfficial\",{\"_201\":214,\"_170\":215},\"GoogleNews\",\"https://news.google.com/publications/CAAqBwgKML7GrQswy9HFAw?ceid=US:en\u0026oc=3\u0026hl=en-US\u0026gl=US\",\"informaBar\",{\"_143\":180,\"_218\":219,\"_237\":238},\"leftSection\",{\"_220\":221,\"_222\":223},\"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\",[224,228,231,234],{\"_225\":226,\"_170\":227},\"title\",\"Informa PLC\",\"https://www.informa.com/\",{\"_225\":229,\"_170\":230},\"ABOUT US\",\"https://www.informa.com/about-us/\",{\"_225\":232,\"_170\":233},\"INVESTOR RELATIONS\",\"https://www.informa.com/investors/\",{\"_225\":235,\"_170\":236},\"TALENT\",\"https://www.informa.com/talent/\",\"rightSection\",{\"_220\":239},\"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\",{\"_242\":243,\"_418\":419},\"mainMenuItems\",[244,269,275,281,287,293,298,400],{\"_225\":245,\"_170\":246,\"_247\":248,\"_249\":246,\"_250\":180,\"_222\":251,\"_267\":268},\"Trending\",\"/keyword/top-stories\",\"seeAllLink\",\"Top Stories\",\"seeAllLinkUrl\",\"hasSubMenu\",[252,255,258,261,264],{\"_225\":253,\"_170\":254},\"Generative AI\",\"/keyword/generative-ai\",{\"_225\":256,\"_170\":257},\"Horror Game Design\",\"/keyword/horror-games\",{\"_225\":259,\"_170\":260},\"Game Industry Layoffs\",\"/keyword/layoffs\",{\"_225\":262,\"_170\":263},\"Investments \u0026 Acquisitions\",\"/keyword/-trend-m-a\",{\"_225\":265,\"_170\":266},\"Unionization\",\"keyword/-trend-unionization\",\"recentContents\",[],{\"_225\":270,\"_170\":271,\"_247\":272,\"_249\":271,\"_250\":140,\"_222\":273,\"_267\":274},\"News\",\"/latest-news\",\"\",[],[],{\"_225\":276,\"_170\":277,\"_247\":278,\"_249\":277,\"_250\":140,\"_222\":279,\"_267\":280},\"Deep Dives\",\"/latest-case-studies\",\"Read More\",[],[],{\"_225\":282,\"_170\":283,\"_247\":284,\"_249\":283,\"_250\":140,\"_222\":285,\"_267\":286},\"Mobile\",\"/game-platforms/mobile\",\"Mobile Game Development\",[],[],{\"_225\":288,\"_170\":289,\"_247\":290,\"_249\":289,\"_250\":140,\"_222\":291,\"_267\":292},\"Game Design\",\"/design\",\"See All\",[],[],{\"_225\":294,\"_170\":295,\"_247\":278,\"_249\":295,\"_250\":140,\"_222\":296,\"_267\":297},\"Programming\",\"/programming\",[],[],{\"_225\":299,\"_170\":300,\"_247\":301,\"_249\":300,\"_250\":180,\"_222\":302,\"_267\":350},\"More\",\"/latest-commentary\",\"Read More: Business\",[303,306,309,311,314,317,319,322,325,327,328,331,334,337,340,343,346,347],{\"_225\":304,\"_170\":305},\"Interviews\",\"/latest-interviews\",{\"_225\":307,\"_170\":308},\"Q\u0026As\",\"/keyword/q-a-s\",{\"_225\":276,\"_170\":310},\"/keyword/deep-dives\",{\"_225\":312,\"_170\":313},\"Postmortems\",\"/keyword/postmortems\",{\"_225\":315,\"_170\":316},\"Culture\",\"/keyword/culture\",{\"_225\":265,\"_170\":318},\"/keyword/unionization\",{\"_225\":320,\"_170\":321},\"Business\",\"/business\",{\"_225\":323,\"_170\":324},\"Marketing\",\"/marketing\",{\"_225\":326,\"_170\":289},\"Design\",{\"_225\":294,\"_170\":295},{\"_225\":329,\"_170\":330},\"Production\",\"/production\",{\"_225\":332,\"_170\":333},\"Art\",\"/art\",{\"_225\":335,\"_170\":336},\"Audio\",\"/audio\",{\"_225\":338,\"_170\":339},\"PC\",\"/game-platforms/pc\",{\"_225\":341,\"_170\":342},\"Steam Deck\",\"/keyword/steam-deck\",{\"_225\":344,\"_170\":345},\"Console\",\"/game-platforms/console\",{\"_225\":282,\"_170\":283},{\"_225\":348,\"_170\":349},\"Extended Reality\",\"/game-platforms/extended-reality\",[351,387],{\"_352\":353,\"_358\":359,\"_360\":359,\"_361\":362,\"_363\":364,\"_365\":272,\"_366\":367,\"_368\":272,\"_369\":335,\"_370\":336,\"_371\":372,\"_373\":374,\"_381\":382,\"_383\":384,\"_385\":386},\"thumbnail\",{\"_354\":355,\"_356\":357},\"src\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltebbcdfa2158b6c61/67b7aae3c3286e75fa9703ce/hades2wartimefeatured.jpg\",\"alt\",\"Two characters from Hades II pose with a bloody axe.\",\"articleName\",\"Supergiant denies recasting Hades II actor over interim SAG-AFTRA contract request\",\"mobileHeadline\",\"articleSummary\",\"An unexpected game studio is in the spotlight for allegedly refusing to sign the interim SAG-AFTRA agreement.\",\"articleUrl\",\"/audio/supergiant-denies-recasting-hades-ii-actor-over-interim-sag-aftra-contract-request\",\"listPageUrl\",\"date\",\"Feb 20, 2025\",\"webinarStartTime\",\"categoryName\",\"categoryUrl\",\"contentType\",\"Article\",\"contributors\",[375],{\"_168\":376,\"_377\":378,\"_379\":380},\"Bryant Francis\",\"link\",\"/author/bryant-francis\",\"avatar\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt862ca995183d2fdf/650efe5138b21120135ae4ac/bryantcropped.jpg\",\"timeRead\",3,\"variant\",\"card-vertical\",\"layoutVariant\",\"vertical\",{\"_352\":388,\"_358\":391,\"_360\":391,\"_361\":392,\"_363\":393,\"_365\":272,\"_366\":367,\"_368\":272,\"_369\":320,\"_370\":321,\"_371\":372,\"_373\":394,\"_381\":399,\"_383\":384,\"_385\":386},{\"_354\":389,\"_356\":390},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt09d96946b1fd5cd9/672a0a71e5c9b485b0ac3fd0/Switch_Header.png\",\"Screenshot of the Nintendo Switch console.\",\"Nintendo opens Taiwan subsidiary to 'further strengthen' Taiwanese business\",\"Nintendo's new Taiwan offshoot will mark its first presence in the region since 2014, and comes shortly before its Nintendo Switch 2 showcase.\",\"/business/nintendo-opens-taiwan-subsidiary-to-further-strengthen-taiwanese-business\",[395],{\"_168\":396,\"_377\":397,\"_379\":398},\"Justin Carter\",\"/author/justin-carter\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt33d97cf9dc327673/650f03deb8329c920e5af96f/Image_from_iOS.jpg\",1,{\"_225\":401,\"_170\":402,\"_247\":403,\"_249\":402,\"_250\":180,\"_222\":404,\"_267\":417},\"Developer Blogs\",\"/keyword/featured-blogs\",\"Read Featured Blogs\",[405,408,411,414],{\"_225\":406,\"_170\":407},\"Browse Latest Blogs\",\"/program/blogs\",{\"_225\":409,\"_170\":410},\"Submit Your Blog Post\",\"https://reg.gdconf.com/blog-submission\",{\"_225\":412,\"_170\":413},\"Frequently Asked Questions\",\"/blogging-frequently-asked-questions\",{\"_225\":415,\"_170\":416},\"Blogging Rules and Guidelines\",\"/blogging-guidelines\",[],\"secondaryMenu\",[420,423,426,429],{\"_225\":421,\"_170\":422},\"Game Market Research\",\"https://omdia.tech.informa.com/advance-your-business/media-and-entertainment/games-spotlight-service\",{\"_225\":424,\"_170\":425},\"GDC Vault\",\"https://www.gdcvault.com/\",{\"_225\":427,\"_170\":428},\"GDC\",\"https://gdconf.com/\",{\"_225\":430,\"_170\":431},\"Advertise With Game Developer\",\"https://reg.gdconf.com/gamedeveloper-media-kit\",\"megaMenu\",{\"_434\":435,\"_479\":480,\"_510\":511},\"largeMenu\",[436,443,445,447,449,451,453,473],{\"_225\":245,\"_170\":246,\"_222\":437,\"_247\":248,\"_249\":246},[438,439,440,441,442],{\"_225\":253,\"_170\":254},{\"_225\":256,\"_170\":257},{\"_225\":259,\"_170\":260},{\"_225\":262,\"_170\":263},{\"_225\":265,\"_170\":266},{\"_225\":270,\"_170\":271,\"_222\":444,\"_247\":272,\"_249\":271},[],{\"_225\":276,\"_170\":277,\"_222\":446,\"_247\":278,\"_249\":277},[],{\"_225\":282,\"_170\":283,\"_222\":448,\"_247\":284,\"_249\":283},[],{\"_225\":288,\"_170\":289,\"_222\":450,\"_247\":290,\"_249\":289},[],{\"_225\":294,\"_170\":295,\"_222\":452,\"_247\":278,\"_249\":295},[],{\"_225\":299,\"_170\":300,\"_222\":454,\"_247\":301,\"_249\":300},[455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472],{\"_225\":304,\"_170\":305},{\"_225\":307,\"_170\":308},{\"_225\":276,\"_170\":310},{\"_225\":312,\"_170\":313},{\"_225\":315,\"_170\":316},{\"_225\":265,\"_170\":318},{\"_225\":320,\"_170\":321},{\"_225\":323,\"_170\":324},{\"_225\":326,\"_170\":289},{\"_225\":294,\"_170\":295},{\"_225\":329,\"_170\":330},{\"_225\":332,\"_170\":333},{\"_225\":335,\"_170\":336},{\"_225\":338,\"_170\":339},{\"_225\":341,\"_170\":342},{\"_225\":344,\"_170\":345},{\"_225\":282,\"_170\":283},{\"_225\":348,\"_170\":349},{\"_225\":401,\"_170\":402,\"_222\":474,\"_247\":403,\"_249\":402},[475,476,477,478],{\"_225\":406,\"_170\":407},{\"_225\":409,\"_170\":410},{\"_225\":412,\"_170\":413},{\"_225\":415,\"_170\":416},\"smallMenu\",[481,501,505],{\"_225\":299,\"_170\":272,\"_222\":482},[483,486,489,492,495,498],{\"_225\":484,\"_170\":485},\"Sponsored Articles\",\"/keyword/sponsor-resource-center\",{\"_225\":487,\"_170\":488},\"Podcasts\",\"/podcasts\",{\"_225\":490,\"_170\":491},\"Webinars \u0026 Virtual Events\",\"/webinars\",{\"_225\":493,\"_170\":494},\"Press Releases\",\"/press-release\",{\"_225\":496,\"_170\":497},\"Resource Library\",\"/resources\",{\"_225\":499,\"_170\":500},\"GCG Status Update\",\"/gcg-status-update\",{\"_225\":502,\"_170\":272,\"_222\":503},\"Events\",[504],{\"_225\":427,\"_170\":428},{\"_225\":506,\"_170\":272,\"_222\":507},\"Advertise\",[508],{\"_225\":509,\"_170\":431},\"Advertise With Us\",\"sideNavSections\",[512],{\"_225\":513,\"_170\":272,\"_222\":514,\"_247\":272,\"_249\":272},\"Communicate\",[515],{\"_225\":516,\"_170\":517},\"Contact Us\",\"/contact-game-developer\",\"navBase\",{\"_520\":521},\"logo\",{\"_170\":522,\"_523\":524},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8d5417b628e6b04b/656f5ed8485fda040aba11a1/Game_Developer_Logo_RGB_1.png\",\"altText\",\"Game Developer Logo\",\"footer\",{\"_520\":527,\"_528\":529,\"_565\":566,\"_585\":586},{\"_170\":522,\"_523\":524},\"linkSections\",[530,553],{\"_531\":532,\"_225\":551,\"_201\":552},\"links\",[533,540,544,547],{\"_534\":535,\"_538\":180,\"_225\":539,\"_170\":410},\"image\",{\"_523\":536,\"_170\":537},\"Placeholder image\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd1cdb5ad637f7f4e/651d415bd9bb870df1310c25/placeholder.png\",\"openInNewTab\",\"Blog with Game Developer\",{\"_534\":541,\"_538\":180,\"_225\":543,\"_170\":416},{\"_523\":542,\"_170\":537},\"placeholder image\",\"Blogging Guidelines\",{\"_534\":545,\"_538\":180,\"_225\":546,\"_170\":488},{\"_523\":542,\"_170\":537},\"Game Developer Podcast\",{\"_534\":548,\"_538\":180,\"_225\":549,\"_170\":550},{\"_523\":542,\"_170\":537},\"Submit a Tip\",\"mailto:news@gamedeveloper.com\",\"More from GD\",\"1\",{\"_531\":554,\"_225\":564,\"_201\":552},[555,560,562],{\"_534\":556,\"_538\":180,\"_225\":558,\"_170\":559},{\"_523\":557,\"_170\":537},\"placeholder\",\"About Us\",\"/about-game-developer\",{\"_534\":561,\"_538\":180,\"_225\":430,\"_170\":431},{\"_523\":557,\"_170\":537},{\"_534\":563,\"_538\":180,\"_225\":516,\"_170\":517},{\"_523\":557,\"_170\":537},\"Connect\",\"brandLinks\",[567,571,576,580],{\"_534\":568,\"_538\":180,\"_225\":424,\"_170\":425},{\"_523\":569,\"_170\":570},\"GDC Vault Logo\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1363a10229efc062/656db9e79761ff040a595688/MicrosoftTeams-image_(3).png\",{\"_534\":572,\"_538\":180,\"_225\":573,\"_170\":575},{\"_523\":573,\"_170\":574},\"Game Developer Job Board\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1bbfb7520e56ef03/65250cc0c5c21b80cfb55335/Game_Developer_Jobs_Logo_white.png\",\"https://jobs.gamasutra.com\",{\"_534\":577,\"_538\":180,\"_225\":427,\"_170\":579},{\"_523\":427,\"_170\":578},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt431090e6027a0c17/65250c42e4f4b80857d3c9cb/gdc_logo_(1).png\",\"https://www.gdconf.com\",{\"_534\":581,\"_538\":180,\"_225\":582,\"_170\":584},{\"_523\":582,\"_170\":583},\"Omdia\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt789019463bae70bf/6523eb443c9b45aa9da4f4b2/logo_omdia_white.png\",\"https://www.omdia.com\",\"copyright\",{\"_587\":588,\"_531\":593,\"_225\":610},\"businessUnit\",{\"_170\":589,\"_168\":590,\"_591\":592},\"https://www.informa.com\",\"Informa\",\"logoUrl\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt6a17e2ccd9083672/674edfd84301993a15a0e9e1/Informa_Logo_OneLine_Graduated_White_RGB.png\",[594,598,602,606],{\"_534\":595,\"_538\":180,\"_225\":596,\"_170\":597},{\"_523\":596,\"_170\":597},\"Home\",\"https://www.informatech.com/\",{\"_534\":599,\"_538\":180,\"_225\":600,\"_170\":601},{\"_523\":600,\"_170\":601},\"Cookie Policy\",\"/cookie-policy\",{\"_534\":603,\"_538\":180,\"_225\":604,\"_170\":605},{\"_523\":604,\"_170\":605},\"Privacy\",\"https://www.techtarget.com/privacy-policy/\",{\"_534\":607,\"_538\":180,\"_225\":608,\"_170\":609},{\"_523\":608,\"_170\":609},\"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’s technology buyers and sellers. All copyright resides with them. Informa PLC’s registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. TechTarget, Inc.’s registered office is 275 Grove St. Newton, MA 02466.\",\"isSponsorBarEnabled\",\"isPaidContent\",\"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.283.2.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.283.2\\\",i=\\\"PROD\\\",o=\\\"CDN\\\",a=\\\"^2.0.0-alpha.17\\\"},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}},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})},5284:(e,t,r)=\u003e{\\\"use strict\\\";r.d(t,{t:()=\u003ec,B:()=\u003es});var n=r(7836),i=r(6154);const o=\\\"newrelic\\\";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e\u0026\u0026\\\"object\\\"==typeof e\u0026\u0026(a.has(t)||(r.emit(\\\"rumresp\\\",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},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});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)}}},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:()=\u003eO});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(8154),h=r(384),p=r(6344);const g=[\\\"setErrorHandler\\\",\\\"finished\\\",\\\"addToTrace\\\",\\\"addRelease\\\",\\\"recordCustomEvent\\\",\\\"addPageAction\\\",\\\"setCurrentRouteName\\\",\\\"setPageViewName\\\",\\\"setCustomAttribute\\\",\\\"interaction\\\",\\\"noticeError\\\",\\\"setUserId\\\",\\\"setApplicationVersion\\\",\\\"start\\\",p.G4.RECORD,p.G4.PAUSE,\\\"log\\\",\\\"wrapLogger\\\"],m=[\\\"setErrorHandler\\\",\\\"finished\\\",\\\"addToTrace\\\",\\\"addRelease\\\"];var v=r(1863),b=r(2614),y=r(993),w=r(3785),R=r(9414);function x(){const e=(0,h.pV)();g.forEach((t=\u003e{e[t]=(...r)=\u003efunction(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=\u003e{e\u0026\u0026e.api?e.exposed\u0026\u0026e.api[t]\u0026\u0026n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length\u003e1?n:n[0]}(t,...r)}))}const E={};var A=r(9417),T=r(5603),N=r(5284);const S=e=\u003e{const t=e.startsWith(\\\"http\\\");e+=\\\"/\\\",r.p=t?e:\\\"https://\\\"+e};let _=!1;function O(e,t={},g,O){let{init:I,info:P,loader_config:j,runtime:C={},exposed:k=!0}=t;C.loaderType=g;const L=(0,h.pV)();P||(I=L.init,P=L.info,j=L.loader_config),(0,A.xN)(e.agentIdentifier,I||{}),(0,T.a)(e.agentIdentifier,j||{}),P.jsAttributes??={},d.bv\u0026\u0026(P.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,P);const H=(0,A.D0)(e.agentIdentifier),M=[P.beacon,P.errorBeacon];_||(H.proxy.assets\u0026\u0026(S(H.proxy.assets),M.push(H.proxy.assets)),H.proxy.beacon\u0026\u0026M.push(H.proxy.beacon),x(),(0,h.US)(\\\"activatedFeatures\\\",N.B),e.runSoftNavOverSpa\u0026\u0026=!0===H.soft_navigations.enabled\u0026\u0026H.feature_flags.includes(\\\"soft_nav\\\")),C.denyList=[...H.ajax.deny_list||[],...H.ajax.block_internal?M:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api\u0026\u0026(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,\\\"api\\\");const g={};var x=s.ee.get(e),A=x.get(\\\"tracer\\\");E[e]=b.g.OFF,x.on(p.G4.REPLAY_RUNNING,(t=\u003e{E[e]=t}));var T=\\\"api-\\\",N=T+\\\"ixn-\\\";function S(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),I(T,n,!0,o||null===r?\\\"session\\\":void 0)(t,r)}function _(){}g.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,[\\\"API/log/called\\\"],void 0,n.K7.metrics,x),(0,w.R)(x,e,t,r)},g.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=\u003e{(0,a.p)(f.xV,[\\\"API/wrapLogger/called\\\"],void 0,n.K7.metrics,x),(0,R.J)(x,e,t,{customAttributes:r,level:i})},m.forEach((e=\u003e{g[e]=I(T,e,!0,\\\"api\\\")})),g.addPageAction=I(T,\\\"addPageAction\\\",!0,n.K7.genericEvents),g.recordCustomEvent=I(T,\\\"recordCustomEvent\\\",!0,n.K7.genericEvents),g.setPageViewName=function(t,r){if(\\\"string\\\"==typeof t)return\\\"/\\\"!==t.charAt(0)\u0026\u0026(t=\\\"/\\\"+t),(0,o.f)(e).customTransaction=(r||\\\"http://custom.transaction\\\")+t,I(T,\\\"setPageViewName\\\",!0)()},g.setCustomAttribute=function(e,t,r=!1){if(\\\"string\\\"==typeof e){if([\\\"string\\\",\\\"number\\\",\\\"boolean\\\"].includes(typeof t)||null===t)return S(e,t,\\\"setCustomAttribute\\\",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},g.setUserId=function(e){if(\\\"string\\\"==typeof e||null===e)return S(\\\"enduser.id\\\",e,\\\"setUserId\\\",!0);(0,l.R)(41,typeof e)},g.setApplicationVersion=function(e){if(\\\"string\\\"==typeof e||null===e)return S(\\\"application.version\\\",e,\\\"setApplicationVersion\\\",!1);(0,l.R)(42,typeof e)},g.start=()=\u003e{try{(0,a.p)(f.xV,[\\\"API/start/called\\\"],void 0,n.K7.metrics,x),x.emit(\\\"manual-start-all\\\")}catch(e){(0,l.R)(23,e)}},g[p.G4.RECORD]=function(){(0,a.p)(f.xV,[\\\"API/recordReplay/called\\\"],void 0,n.K7.metrics,x),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,x)},g[p.G4.PAUSE]=function(){(0,a.p)(f.xV,[\\\"API/pauseReplay/called\\\"],void 0,n.K7.metrics,x),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,x)},g.interaction=function(e){return(new _).get(\\\"object\\\"==typeof e?e:{})};const O=_.prototype={createTracer:function(e,t){var r={},i=this,o=\\\"function\\\"==typeof t;return(0,a.p)(f.xV,[\\\"API/createTracer/called\\\"],void 0,n.K7.metrics,x),h||(0,a.p)(N+\\\"tracer\\\",[(0,v.t)(),e,r],i,n.K7.spa,x),function(){if(A.emit((o?\\\"\\\":\\\"no-\\\")+\\\"fn-start\\\",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t=\\\"string\\\"==typeof e?new Error(e):e;throw A.emit(\\\"fn-err\\\",[arguments,this,t],r),t}finally{A.emit(\\\"fn-end\\\",[(0,v.t)()],r)}}}};function I(e,t,r,i){return function(){return(0,a.p)(f.xV,[\\\"API/\\\"+t+\\\"/called\\\"],void 0,n.K7.metrics,x),i\u0026\u0026(0,a.p)(e+t,[r?(0,v.t)():performance.now(),...arguments],r?null:this,i,x),r?void 0:this}}function P(){r.e(478).then(r.bind(r,8778)).then((({setAPI:t})=\u003e{t(e),(0,c.Ze)(e,\\\"api\\\")})).catch((e=\u003e{(0,l.R)(27,e),x.abort()}))}return[\\\"actionText\\\",\\\"setName\\\",\\\"setAttribute\\\",\\\"save\\\",\\\"ignore\\\",\\\"onEnd\\\",\\\"getContext\\\",\\\"end\\\",\\\"get\\\"].forEach((e=\u003e{O[e]=I(N,e,void 0,h?n.K7.softNav:n.K7.spa)})),g.setCurrentRouteName=h?I(N,\\\"routeName\\\",void 0,n.K7.softNav):I(T,\\\"routeName\\\",!0,n.K7.spa),g.noticeError=function(t,r){\\\"string\\\"==typeof t\u0026\u0026(t=new Error(t)),(0,a.p)(f.xV,[\\\"API/noticeError/called\\\"],void 0,n.K7.metrics,x),(0,a.p)(\\\"err\\\",[t,(0,v.t)(),!1,r,!!E[e]],void 0,n.K7.jserrors,x)},d.RI?(0,u.GG)((()=\u003eP()),!0):P(),g}(e.agentIdentifier,O,e.runSoftNavOverSpa)),void 0===e.exposed\u0026\u0026(e.exposed=k),_=!0}},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:()=\u003eu,K7:()=\u003es,P3:()=\u003ec,XX:()=\u003ei,qY:()=\u003en,v4:()=\u003ea});const n=\\\"events\\\",i=\\\"jserrors\\\",o=\\\"browser/blobs\\\",a=\\\"rum\\\",s={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\\\"},c={[s.pageViewEvent]:1,[s.pageViewTiming]:2,[s.metrics]:3,[s.jserrors]:4,[s.spa]:5,[s.ajax]:6,[s.sessionTrace]:7,[s.softNav]:8,[s.sessionReplay]:9,[s.logging]:10,[s.genericEvents]:11},u={[s.pageViewEvent]:a,[s.pageViewTiming]:n,[s.ajax]:n,[s.spa]:n,[s.softNav]:n,[s.metrics]:i,[s.jserrors]:i,[s.sessionTrace]:o,[s.sessionReplay]:o,[s.logging]:\\\"browser/logs\\\",[s.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.283.2.min.js\\\"),i.o=(e,t)=\u003eObject.prototype.hasOwnProperty.call(e,t),e={},t=\\\"NRBA-1.283.2.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-2oN05BjxuObKuOX8E0vq/zS51M+2HokmNPBRUrIC1fw3hpJqoI18/nckSFiqV11KxT7ag3C+FunKrR8n0PD9Ig==\\\",249:\\\"sha512-Zs5nIHr/khH6G8IhAEdnngg+P7y/IfmjU0PQmXABpCEtSTeKV22OYdaa9lENrW9uxI0lZ6O5e5dCnEMsTS0onA==\\\",212:\\\"sha512-LPKde7A1ZxIHzoSqWKxn5uWVhM9u76Vtmp9DMBf+Ry3mnn2jpsfyfigMYD5Yka2RG3NeIBqOwNYuPrWL39qn6w==\\\"};(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.283.2.PROD\\\"]=self[\\\"webpackChunk:NRBA-1.283.2.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(\\\"function\\\"==typeof this.api?.[t])return this.api[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(\\\"function\\\"==typeof this.api?.[t])return this.api[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),N=i(1863);class S 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,N.t)()],void 0,T.T,this.ee)),!0),(0,A.sp)(\\\"pagehide\\\",(()=\u003e(0,x.p)(\\\"winPagehide\\\",[(0,N.t)()],void 0,T.T,this.ee))),this.importAggregator(e))}}var _=i(8154);class O extends b{static featureName=_.TZ;constructor(e,t=!0){super(e,_.TZ,t),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{return e.reason.message=t+\\\": \\\"+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return 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,N.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,N.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,N.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;class he 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};pe(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]},pe(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,N.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,N.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,N.t)()))}function v(e,r){this.xhrCbStart\u0026\u0026t.emit(\\\"xhr-cb-time\\\",[(0,N.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,N.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),pe(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,N.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,N.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,N.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){var i=r.getResponseHeader(\\\"X-NewRelic-App-Data\\\");i\u0026\u0026((0,x.p)(_.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 pe(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 ge={},me=[\\\"pushState\\\",\\\"replaceState\\\"];function ve(e){const t=function(e){return(e||B.ee).get(\\\"history\\\")}(e);return!p.RI||ge[t.debugId]++||(ge[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,\\\"-\\\")),t}var be=i(3738);const{He:ye,bD:we,d3:Re,Kp:xe,TZ:Ee,Lc:Ae,uP:Te,Rz:Ne}=be;class Se extends b{static featureName=Ee;constructor(e,t=!0){super(e,Ee,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Te,(function(e,t){this.bstStart=(0,N.t)()})),this.eventsEE.on(Ae,(function(e,t){(0,x.p)(\\\"bst\\\",[e[0],t,this.bstStart,(0,N.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Ne+Re,(function(e){this.time=(0,N.t)(),this.startPath=location.pathname+location.hash})),r.on(Ne+xe,(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)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:we,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var _e=i(2614);class Oe 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 Ie=i(3962);class Pe extends b{static featureName=Ie.TZ;constructor(e,t=!0){if(super(e,Ie.TZ,t),!p.RI||!(0,R.dV)().o.MO)return;const r=ve(this.ee);Ie.tC.forEach((e=\u003e{(0,A.sp)(e,(e=\u003e{a(e)}),!0)}));const n=()=\u003e(0,x.p)(\\\"newURL\\\",[(0,N.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,N.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 je=i(7378);const Ce={},ke=[\\\"appendChild\\\",\\\"insertBefore\\\",\\\"replaceChild\\\"];function Le(e){const t=function(e){return(e||B.ee).get(\\\"jsonp\\\")}(e);if(!p.RI||Ce[t.debugId])return t;Ce[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,ke,\\\"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 He={};function Me(e){const t=function(e){return(e||B.ee).get(\\\"promise\\\")}(e);if(He[t.debugId])return t;He[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 De={},Ke=\\\"setTimeout\\\",Ue=\\\"setInterval\\\",Ve=\\\"clearTimeout\\\",Ge=\\\"-start\\\",Fe=[Ke,\\\"setImmediate\\\",Ue,Ve,\\\"clearImmediate\\\"];function Be(e){const t=function(e){return(e||B.ee).get(\\\"timer\\\")}(e);if(De[t.debugId]++)return t;De[t.debugId]=1;var r=(0,W.YM)(t);return r.inPlace(p.gm,Fe.slice(0,2),Ke+\\\"-\\\"),r.inPlace(p.gm,Fe.slice(2,3),Ue+\\\"-\\\"),r.inPlace(p.gm,Fe.slice(3),Ve+\\\"-\\\"),t.on(Ue+Ge,(function(e,t,n){e[0]=r(e[0],\\\"fn-\\\",null,n)})),t.on(Ke+Ge,(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 We={};function ze(e){const t=function(e){return(e||B.ee).get(\\\"mutation\\\")}(e);if(!p.RI||We[t.debugId])return t;We[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:qe,d3:Ze,Kp:Ye,$p:Je,wW:Xe,e5:$e,tH:Qe,uP:et,rw:tt,Lc:rt}=je;class nt extends b{static featureName=qe;constructor(e,t=!0){if(super(e,qe,t),!p.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,n=0;const i=this.ee.get(\\\"tracer\\\"),o=Le(this.ee),a=Me(this.ee),s=Be(this.ee),c=Z(this.ee),u=this.ee.get(\\\"events\\\"),d=ne(this.ee),l=ve(this.ee),f=ze(this.ee);function h(e,t){l.emit(\\\"newURL\\\",[\\\"\\\"+window.location,t])}function g(){n++,r=window.location.hash,this[et]=(0,N.t)()}function m(){n--,window.location.hash!==r\u0026\u0026h(0,!0);var e=(0,N.t)();this[$e]=~~this[$e]+e-this[et],this[rt]=e}function v(e,t){e.on(t,(function(){this[t]=(0,N.t)()}))}this.ee.on(et,g),a.on(tt,g),o.on(tt,g),this.ee.on(rt,m),a.on(Xe,m),o.on(Xe,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([et,rt,\\\"xhr-resolved\\\"],this.featureName),u.buffer([et],this.featureName),s.buffer([\\\"setTimeout\\\"+Ye,\\\"clearTimeout\\\"+Ze,et],this.featureName),c.buffer([et,\\\"new-xhr\\\",\\\"send-xhr\\\"+Ze],this.featureName),d.buffer([Qe+Ze,Qe+\\\"-done\\\",Qe+Je+Ze,Qe+Je+Ye],this.featureName),l.buffer([\\\"newURL\\\"],this.featureName),f.buffer([et],this.featureName),a.buffer([\\\"propagate\\\",tt,Xe,\\\"executor-err\\\",\\\"resolve\\\"+Ze],this.featureName),i.buffer([et,\\\"no-\\\"+et],this.featureName),o.buffer([\\\"new-jsonp\\\",\\\"cb-start\\\",\\\"jsonp-error\\\",\\\"jsonp-end\\\"],this.featureName),v(d,Qe+Ze),v(d,Qe+\\\"-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 it=i(3333);class ot extends b{static featureName=it.TZ;constructor(e,t=!0){super(e,it.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(it.Zp.forEach((e=\u003e(0,A.sp)(e,(e=\u003e(0,x.p)(\\\"ua\\\",[e],void 0,this.featureName,this.ee)),!0))),it.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 at=i(993),st=i(3785),ct=i(9414);class ut extends b{static featureName=at.TZ;constructor(e,t=!0){super(e,at.TZ,t);const r=this.ee;(0,ct.J)(r,p.gm.console,\\\"log\\\",{level:\\\"info\\\"}),(0,ct.J)(r,p.gm.console,\\\"error\\\",{level:\\\"error\\\"}),(0,ct.J)(r,p.gm.console,\\\"warn\\\",{level:\\\"warn\\\"}),(0,ct.J)(r,p.gm.console,\\\"info\\\",{level:\\\"info\\\"}),(0,ct.J)(r,p.gm.console,\\\"debug\\\",{level:\\\"debug\\\"}),(0,ct.J)(r,p.gm.console,\\\"trace\\\",{level:\\\"trace\\\"}),this.ee.on(\\\"wrap-logger-end\\\",(function([e]){const{level:t,customAttributes:n}=this;(0,st.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}}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]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[he,w,S,Se,Oe,O,M,ot,ut,Pe,nt],loaderType:\\\"spa\\\"})})()})();\\n\",\"google\",\"testAutomationFlags\",{\"_618\":140,\"_619\":140,\"_620\":140,\"_621\":140,\"_622\":140,\"_623\":140,\"_624\":140,\"_625\":140,\"_626\":140,\"_146\":140,\"_627\":140,\"_628\":272,\"_629\":272},\"disableAds\",\"disableIirisAuth\",\"disableWelcomeAd\",\"disableBigskyAd\",\"disableIirisRecommend\",\"disableDcts\",\"disableWeatherWidget\",\"disableCashGrainWidget\",\"disableCommoditiesWidget\",\"disableCookieBanner\",\"overrideBrandStyling\",\"overrideThemeStyling\",\"configState\",{\"_165\":166,\"_163\":164,\"_632\":8,\"_633\":-7,\"_634\":140,\"_534\":635,\"_639\":640,\"_642\":643,\"_647\":648},\"uiBrand\",\"colors\",\"isMarketsDivision\",{\"_7\":636,\"_637\":638},\"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\",{\"_641\":272},\"brightcoveAccountId\",\"newsletterSignupPromo\",{\"_644\":645,\"_646\":-7},\"unbounceURL\",\"https://gd-resources.gamedeveloper.com/free/w_gamf01/prgm.cgi\",\"elnConfig\",\"proxyConfigs\",{\"_649\":140,\"_650\":272},\"proxyEnabled\",\"proxyRootPath\",\"brandConfig\",{\"_13\":14,\"_653\":14,\"_654\":10,\"_15\":16,\"_655\":656,\"_657\":658,\"_641\":272,\"_149\":666,\"_154\":155,\"_161\":672,\"_673\":674,\"_679\":680,\"_684\":685,\"_585\":610,\"_689\":690,\"_725\":726},\"siteFullName\",\"siteUrl\",\"authentication\",{},\"unbounce\",{\"_659\":660,\"_661\":662,\"_663\":664,\"_174\":665},\"local\",{\"_170\":645},\"preview\",{\"_170\":645},\"staging\",{\"_170\":645},{\"_170\":645},{\"_659\":667,\"_661\":669,\"_663\":670,\"_174\":671},{\"_151\":668},\"8aaa0413-1bf0-4c5f-b2b7-20f59225831b-test\",{\"_151\":272},{\"_151\":152},{\"_151\":152},{\"_7\":8,\"_163\":164,\"_165\":166},\"socialUrls\",[675,676,678],{\"_201\":208,\"_170\":209},{\"_201\":211,\"_170\":677},\"https://www.facebook.com/GameDeveloperOfficial/\",{\"_201\":205,\"_170\":206},\"articleSocialShareToggle\",{\"_681\":180,\"_682\":180,\"_683\":180},\"print\",\"email\",\"reddit\",\"newsletterSignupPromoContent\",{\"_225\":686,\"_687\":688},\"Newsletter sign up title\",\"message\",\"Newsletter sign up message\",\"iirisRecommendation\",{\"_691\":692,\"_693\":694,\"_695\":696,\"_697\":698,\"_699\":700,\"_701\":702,\"_703\":272,\"_704\":705,\"_706\":707,\"_708\":709,\"_710\":711,\"_712\":713,\"_714\":386,\"_715\":272,\"_716\":717,\"_718\":713,\"_719\":698,\"_720\":702,\"_721\":722,\"_723\":724},\"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\",{\"_727\":728},\"guid\",\"MzkzNjM0OHxCUk9XU0VSfEFQUExJQ0FUSU9OfDUzODYwMDIwNQ\",\"routes/author.$slug\",{\"_731\":732,\"_1925\":1926,\"_1930\":1931,\"_1943\":1944,\"_1954\":-7},\"template\",{\"_733\":734,\"_759\":760,\"_764\":765,\"_769\":770,\"_1258\":1259,\"_1921\":1922},\"author\",{\"_354\":380,\"_356\":735,\"_170\":378,\"_225\":376,\"_736\":737,\"_738\":739,\"_750\":751},\"Bryant Francis Headshot, Photo by Kate Marley\",\"subTitle\",\"Senior Editor, GameDeveloper.com\",\"content\",[740],{\"_201\":741,\"_742\":743,\"_738\":746},\"paragraph\",\"attrs\",{\"_744\":745},\"textAlign\",\"left\",[747],{\"_201\":748,\"_748\":749},\"text\",\"Bryant Francis is a writer, journalist, and narrative designer based in Boston, MA. He currently writes for Game Developer, a leading B2B publication for the video game industry. His credits include Proxy Studios' upcoming 4X strategy game Zephon and Amplitude Studio's 2017 game Endless Space 2.\",\"socialInfo\",[752,754,756,758],{\"_170\":753,\"_201\":211},\"#\",{\"_170\":753,\"_201\":755},\"Instagram\",{\"_170\":757,\"_201\":208},\"https://twitter.com\",{\"_170\":757,\"_201\":205},\"breadcrumbs\",[761,763],{\"_225\":596,\"_170\":762},\"/\",{\"_225\":376,\"_170\":378},\"pagination\",{\"_766\":767,\"_768\":399},\"totalCount\",45,\"currentPage\",\"contents\",[771,794,803,816,830,844,857,870,884,897,910,922,935,947,961,978,992,1013,1030,1049,1062,1077,1090,1104,1117,1130,1143,1156,1169,1182,1195,1207,1219,1233,1246],{\"_371\":372,\"_352\":772,\"_373\":775,\"_358\":779,\"_360\":779,\"_363\":780,\"_781\":782,\"_365\":272,\"_366\":783,\"_368\":272,\"_361\":784,\"_785\":272,\"_383\":786,\"_369\":320,\"_370\":321,\"_381\":382,\"_787\":788,\"_792\":793},{\"_354\":773,\"_356\":774},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltb09928df8e25f18c/67b7569a5d74c4ff90ef57ee/mlbtheshow24featured.jpg\",\"A baseball player from MLB The Show 24 winds up a pitch.\",[776],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"role\",\"Senior Editor\",\"Why games like MLB The Show 24 are vital for a creative game industry\",\"/business/why-games-like-mlb-the-show-24-are-vital-for-a-creative-game-industry\",\"linkAttrs\",{},\"Feb 21, 2025\",\"'Sports games are the reasons why other games get greenlit.'\",\"articleBodyJsonSummary\",\"normal\",\"paidGating\",{\"_789\":140,\"_790\":791},\"paidContent\",\"paidProductTaxonomy\",[],\"articleSize\",\"big\",{\"_371\":372,\"_352\":795,\"_373\":796,\"_358\":359,\"_360\":359,\"_363\":364,\"_781\":798,\"_365\":272,\"_366\":367,\"_368\":272,\"_361\":799,\"_785\":272,\"_383\":786,\"_369\":335,\"_370\":336,\"_381\":800,\"_787\":801,\"_792\":793},{\"_354\":355,\"_356\":357},[797],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},{},\"Update: Marin has confirmed to Game Developer that they declined to continue working with Supergiant after the studio turned down a request to adopt an interim SAG-AFTRA agreement.\",6,{\"_789\":140,\"_790\":802},[],{\"_371\":372,\"_352\":804,\"_373\":807,\"_358\":809,\"_360\":809,\"_363\":810,\"_781\":811,\"_365\":272,\"_366\":367,\"_368\":272,\"_361\":812,\"_785\":272,\"_383\":786,\"_369\":329,\"_370\":330,\"_381\":813,\"_787\":814,\"_792\":793},{\"_354\":805,\"_356\":806},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blte2bd92ebde31896e/67b634d0c3286e3b6296fa30/druckmanndicefeatured.jpg\",\"A photograph of Naughty Dog president and creative director Neil Druckmann.\",[808],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"Neil Druckmann: studio leaders should ascend the ranks to make space for next generation\",\"/production/neil-druckmann-says-studio-leaders-need-to-ascend-the-ranks-to-make-space-for-next-generation\",{},\"'When I am done with this, it will create a bunch of opportunities for people.'\",4,{\"_789\":140,\"_790\":815},[],{\"_371\":372,\"_352\":817,\"_373\":820,\"_358\":822,\"_360\":822,\"_363\":823,\"_781\":824,\"_365\":272,\"_366\":825,\"_368\":272,\"_361\":826,\"_785\":272,\"_383\":786,\"_369\":332,\"_370\":333,\"_381\":827,\"_787\":828,\"_792\":793},{\"_354\":818,\"_356\":819},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt9b4ba8ab1cef9157/67ae06cade4a676028b40494/avowedkaifeatured.jpg\",\"Kai, a washbuckling blue-skinned companion from Avowed, wields a blunderbuss and saber.\",[821],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"What Obsidian Entertainment learned making Avowed a first-person fantasy RPG\",\"/art/what-obsidian-entertainment-learned-making-avowed-a-first-person-fantasy-game\",{},\"Feb 13, 2025\",\"The world of Pillars of Eternity looks very different up-close and personal.\",9,{\"_789\":140,\"_790\":829},[],{\"_371\":372,\"_352\":831,\"_373\":834,\"_358\":836,\"_360\":836,\"_363\":837,\"_781\":838,\"_365\":272,\"_366\":839,\"_368\":272,\"_361\":840,\"_785\":272,\"_383\":786,\"_369\":320,\"_370\":321,\"_381\":841,\"_787\":842,\"_792\":793},{\"_354\":832,\"_356\":833},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8b017b4f41c4a024/67a4dd4c82ee4e0c4f122ada/armabohemiafeatured.jpg\",\"A soldier from the ARMA series stands at the ready with an M-16.\",[835],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"Did you know the top brass at ARMA and DayZ studio Bohemia Interactive bought a 'disinformation outlet' in 2023?\",\"/business/did-you-know-the-ceo-and-of-bohemia-interactive-purchased-a-disinformation-outlet-in-2023-\",{},\"Feb 11, 2025\",\"The owners of the company behind the ARMA series and DayZ now own a Czech outlet accused of publishing disinformation and pro-Russia talking points.\",8,{\"_789\":140,\"_790\":843},[],{\"_371\":372,\"_352\":845,\"_373\":848,\"_358\":850,\"_360\":850,\"_363\":851,\"_781\":852,\"_365\":272,\"_366\":853,\"_368\":272,\"_361\":854,\"_785\":272,\"_383\":786,\"_369\":329,\"_370\":330,\"_381\":382,\"_787\":855,\"_792\":793},{\"_354\":846,\"_356\":847},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt84038f7246908c48/67aa731f714e9374e477692a/lgbtqiflagfeatured.jpg\",\"A person holds an LGBTQIA Pride flag over their head, facing away from the camera.\",[849],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"Massachusetts game dev among those suing Trump administration over anti-trans passport policy\",\"/production/boston-game-dev-among-those-suing-trump-administration-over-anti-trans-passport-policy\",{},\"Feb 10, 2025\",\"The lawsuit argues in part that policies denying Americans gender-affirming identity markers on their passports can harm the safety of game developers.\",{\"_789\":140,\"_790\":856},[],{\"_371\":372,\"_352\":858,\"_373\":861,\"_358\":863,\"_360\":863,\"_363\":864,\"_781\":865,\"_365\":272,\"_366\":866,\"_368\":272,\"_361\":867,\"_785\":272,\"_383\":786,\"_369\":326,\"_370\":289,\"_381\":841,\"_787\":868,\"_792\":793},{\"_354\":859,\"_356\":860},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd64ef28c690af992/67a3b01d761665b513369b19/greenheartflowerfeatured.jpg\",\"A magical pink flower on a balcony.\",[862],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"Greenheart Necromancer reinvents the idle game, shows how to rethink 'predatory' mechanics\",\"/design/greenheart-necromancer-reinvents-the-idle-game-shows-how-to-rethink-predatory-mechanics\",{},\"Feb 6, 2025\",\"Silverstring Media wants to reclaim the \\\"idle game\\\" genre to reward truly idle gameplay.\",{\"_789\":140,\"_790\":869},[],{\"_371\":372,\"_352\":871,\"_373\":874,\"_358\":876,\"_360\":876,\"_363\":877,\"_781\":878,\"_365\":272,\"_366\":879,\"_368\":272,\"_361\":880,\"_785\":272,\"_383\":786,\"_369\":320,\"_370\":321,\"_381\":881,\"_787\":882,\"_792\":793},{\"_354\":872,\"_356\":873},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8ba54196c8cd70fd/679d05a517cb4100244ff48a/grainlookokay.jpg\",\"Matthew Handrahan's head and the Kepler Interactive logo against a pixelated blue background.\",[875],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"Kepler Interactive says it's still worth betting on bold, interesting games\",\"/business/publishers-can-still-bet-on-bold-interesting-games-says-kepler-interactive\",{},\"Feb 3, 2025\",\"'There is a large group of players that are genuinely looking for new games multiple times a year.'\",7,{\"_789\":140,\"_790\":883},[],{\"_371\":372,\"_352\":885,\"_373\":888,\"_358\":890,\"_360\":890,\"_363\":891,\"_781\":892,\"_365\":272,\"_366\":893,\"_368\":272,\"_361\":894,\"_785\":272,\"_383\":786,\"_369\":320,\"_370\":321,\"_381\":813,\"_787\":895,\"_792\":793},{\"_354\":886,\"_356\":887},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltfb18fdbd1c951d44/67990971137f132bbf5f802b/callofdutyblackops6weaverfeatured.jpg\",\"Weaver from Call of Duty Black Ops 6 Zombies rides a motorcycle and fires a gun.\",[889],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"It looks like someone at Activision is leaking Slack screenshots to right-wing X users\",\"/business/it-looks-like-someone-at-activision-is-leaking-slack-screenshots-to-right-wing-x-users\",{},\"Jan 28, 2025\",\"Far-right users of X (formerly Twitter) are singling out individual Activision Blizzard employees for comments made in support of DEI and inclusion at the company.\",{\"_789\":140,\"_790\":896},[],{\"_371\":372,\"_352\":898,\"_373\":901,\"_358\":903,\"_360\":903,\"_363\":904,\"_781\":905,\"_365\":272,\"_366\":906,\"_368\":272,\"_361\":907,\"_785\":272,\"_383\":786,\"_369\":320,\"_370\":321,\"_381\":382,\"_787\":908,\"_792\":793},{\"_354\":899,\"_356\":900},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blte142b92f2d79b403/6797e0f3ae491348c6f87f30/dauntlessmajoritylayofffeatured.jpg\",\"A purple-and-green dragon glowers at the camera.\",[902],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"Phoenix Labs lays off 'majority of studio' two years after Forte Labs acquisition\",\"/business/phoenix-labs-lays-off-majority-of-the-studio-two-years-after-forte-labs-acquisition\",{},\"Jan 27, 2025\",\"The Dauntless and Fae Farm developer says the layoffs are \\\"unfortunate, but necessary.\\\"\",{\"_789\":140,\"_790\":909},[],{\"_371\":372,\"_352\":911,\"_373\":914,\"_358\":916,\"_360\":916,\"_363\":917,\"_781\":918,\"_365\":272,\"_366\":906,\"_368\":272,\"_361\":919,\"_785\":272,\"_383\":786,\"_369\":326,\"_370\":289,\"_381\":827,\"_787\":920,\"_792\":793},{\"_354\":912,\"_356\":913},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt759dd1c31c59e776/6793a13fde5ca406d9580a5f/ss_ada710a6f134ae34cdb41bba91c1e5049b5751fb.1920x1080.jpg\",\"Brynn stares down a giant magical automaton with a crown of fire.\",[915],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"How Eternal Strands' creators cooked up an ambitious physics system with a small team\",\"/design/how-eternal-strands-creators-cooked-up-an-ambitious-physics-system-with-a-small-team\",{},\"Constraints and constant cutting are good for creativity.\",{\"_789\":140,\"_790\":921},[],{\"_371\":372,\"_352\":923,\"_373\":926,\"_358\":928,\"_360\":928,\"_363\":929,\"_781\":930,\"_365\":272,\"_366\":931,\"_368\":272,\"_361\":932,\"_785\":272,\"_383\":786,\"_369\":326,\"_370\":289,\"_381\":881,\"_787\":933,\"_792\":793},{\"_354\":924,\"_356\":925},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc5373539eeb85346/67929279b600e6354910394b/doomdarkagesdoomguyfeaturedfinal.jpg\",\"The Doom Slayer bashes a shield into a demon's head as other demons charge him.\",[927],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"Doom: The Dark Ages' development details shine light on the state of modern triple-A production\",\"/design/doom-the-dark-ages-development-details-shine-light-on-the-state-of-modern-triple-a-production\",{},\"Jan 22, 2025\",\"Fine-tuned difficulty controls, slowed-down gameplay, and a jettisoned multiplayer mode tell us something about modern triple-A game design.\",{\"_789\":140,\"_790\":934},[],{\"_371\":372,\"_352\":936,\"_373\":939,\"_358\":941,\"_360\":941,\"_363\":942,\"_781\":943,\"_365\":272,\"_366\":931,\"_368\":272,\"_361\":944,\"_785\":272,\"_383\":786,\"_369\":320,\"_370\":321,\"_381\":813,\"_787\":945,\"_792\":793},{\"_354\":937,\"_356\":938},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt66ddf6e4600e86be/67913454295de017bbbff139/aimiddlefingerfeatured.jpg\",\"A robotic middle finger emerges from a laptop screen.\",[940],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"Developers still aren't warming up to generative AI\",\"/business/developers-still-aren-t-warming-up-to-generative-ai\",{},\"Developers do not in fact welcome our new AI overlords.\",{\"_789\":140,\"_790\":946},[],{\"_371\":372,\"_352\":948,\"_373\":951,\"_358\":953,\"_360\":953,\"_363\":954,\"_781\":955,\"_365\":272,\"_366\":956,\"_368\":272,\"_361\":957,\"_785\":272,\"_383\":786,\"_369\":320,\"_370\":321,\"_381\":958,\"_787\":959,\"_792\":793},{\"_354\":949,\"_356\":950},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf9bffc4ce90925e5/67891ff50d22515ee273ff36/gamingperminutefeatured.jpg\",\"A mock speedometer showing an acceleration from 2024 to 2025.\",[952],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"Five takeaways from Matthew Ball's 2025 State of Gaming data\",\"/business/five-takeaways-for-game-developers-from-matthew-ball-s-state-of-gaming-data\",{},\"Jan 16, 2025\",\"We read 219 slides so you don't have to.\",11,{\"_789\":140,\"_790\":960},[],{\"_371\":372,\"_352\":962,\"_373\":965,\"_358\":972,\"_360\":972,\"_363\":973,\"_781\":974,\"_365\":272,\"_366\":956,\"_368\":272,\"_361\":975,\"_785\":272,\"_383\":786,\"_369\":344,\"_370\":345,\"_381\":382,\"_787\":976,\"_792\":793},{\"_354\":963,\"_356\":964},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt883b8f59ac2b57fe/6789085a22bd6a784704b3fb/Switch_2.png\",\"The Switch 2\",[966,967],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},{\"_168\":968,\"_377\":969,\"_379\":970,\"_777\":971},\"Chris Kerr\",\"/author/chris-kerr\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1c7a117d71555292/650efbcad3423169a8871059/chris_kerr_headshot.jpg\",\"News Editor\",\"Nintendo finally unveils the Switch 2, its successor to the Nintendo Switch\",\"/console/-shell-nintendo-finally-unveils-the-tktk-its-successor-to-the-nintendo-switch\",{},\"A strikingly familiar device still shrouded in mystery. \",{\"_789\":140,\"_790\":977},[],{\"_371\":372,\"_352\":979,\"_373\":982,\"_358\":984,\"_360\":984,\"_363\":985,\"_781\":986,\"_365\":272,\"_366\":987,\"_368\":272,\"_361\":988,\"_785\":272,\"_383\":786,\"_369\":326,\"_370\":289,\"_381\":989,\"_787\":990,\"_792\":793},{\"_354\":980,\"_356\":981},\"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.\",[983],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"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\",\"In a year of great (and sometimes terrible) change, there were still incredible games.\",14,{\"_789\":140,\"_790\":991},[],{\"_371\":372,\"_352\":993,\"_373\":996,\"_358\":1004,\"_360\":1004,\"_363\":1005,\"_781\":1006,\"_365\":272,\"_366\":1007,\"_368\":272,\"_361\":1008,\"_785\":272,\"_383\":786,\"_369\":1009,\"_370\":1010,\"_381\":827,\"_787\":1011,\"_792\":793},{\"_354\":994,\"_356\":995},\"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\",[997,1002,1003],{\"_168\":998,\"_377\":999,\"_379\":1000,\"_777\":1001},\"Danielle Riendeau\",\"/author/danielle-riendeau\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt722812705eb8ab24/650f013b8f61917d4dd58a8c/DRPFP.jpg\",\"Editor-in-Chief\",{\"_168\":968,\"_377\":969,\"_379\":970,\"_777\":971},{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"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\",\"These are a few of the developers we'd like to send some kudos, for making the industry a better place in a very difficult year.\",\"Game Platforms\",\"/game-platforms\",{\"_789\":140,\"_790\":1012},[],{\"_371\":372,\"_352\":1014,\"_373\":1016,\"_358\":1024,\"_360\":1024,\"_363\":1025,\"_781\":1026,\"_365\":272,\"_366\":1007,\"_368\":272,\"_361\":1027,\"_785\":272,\"_383\":786,\"_369\":1009,\"_370\":1010,\"_381\":958,\"_787\":1028,\"_792\":793},{\"_354\":1015,\"_356\":272},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3dec8321538cfbcf/6764846f9327c6607b4ee912/Game_Developer_Biggest_Trends_2024.png\",[1017,1018,1019],{\"_168\":968,\"_377\":969,\"_379\":970,\"_777\":971},{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},{\"_168\":1020,\"_377\":1021,\"_379\":1022,\"_777\":1023},\"Holly Green\",\"/author/holly-green\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltdec6f50070a70555/650f059f457d12263163b2ca/75258562_10220983058707614_8585122828469141504_n.jpg\",\"Community Editorial Coordinator\",\"Game Developer's 2024 Wrap-Up: The top 5 trends that defined 2024\",\"/game-platforms/game-developer-s-2024-wrap-up-the-top-trends-that-defined-2024\",{},\"2024 was a brutal year where executives bemoaned the need to lay off workers, then swiftly boasted of the potential to replace them with AI.\",{\"_789\":140,\"_790\":1029},[],{\"_371\":372,\"_352\":1031,\"_373\":1034,\"_358\":1041,\"_360\":1041,\"_363\":1042,\"_781\":1043,\"_365\":272,\"_366\":1044,\"_368\":272,\"_361\":1045,\"_785\":272,\"_383\":786,\"_369\":1009,\"_370\":1010,\"_381\":1046,\"_787\":1047,\"_792\":793},{\"_354\":1032,\"_356\":1033},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt1eecfa0f60c9a77a/67630fcd19771eba2ba87b08/Game_Developer_Best_of_Games_2024_V3.png\",\"Four images from the best games of 2024.\",[1035,1036,1037,1038,1039],{\"_168\":968,\"_377\":969,\"_379\":970,\"_777\":971},{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},{\"_168\":998,\"_377\":999,\"_379\":1000,\"_777\":1001},{\"_168\":1020,\"_377\":1021,\"_379\":1022,\"_777\":1023},{\"_168\":396,\"_377\":397,\"_379\":398,\"_777\":1040},\"Contributing Editor\",\"Game Developer's 2024 Wrap-Up: The top 10 must-play Games of the Year\",\"/game-platforms/game-developer-2024-wrap-up-the-top-10-must-play-games-of-the-year\",{},\"Dec 19, 2024\",\"Devilish jesters, spooky settings, and a lust for Managed Democracy defined our top games of this chaotic year.\",15,{\"_789\":140,\"_790\":1048},[],{\"_371\":372,\"_352\":1050,\"_373\":1053,\"_358\":1055,\"_360\":1055,\"_363\":1056,\"_781\":1057,\"_365\":272,\"_366\":1058,\"_368\":272,\"_361\":1059,\"_785\":272,\"_383\":786,\"_369\":335,\"_370\":336,\"_381\":813,\"_787\":1060,\"_792\":793},{\"_354\":1051,\"_356\":1052},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt9cf9b79911613593/6761d87fabb68b4a74c2879f/ss_5a7c5b26417d19a88cbe7bca9bcab64abd149eba.jpg\",\"Three Call of Duty: Black Ops 6: Zombies playable characters strike a pose.\",[1054],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"Activision quietly recast Black Ops 6 Zombies actors during SAG-AFTRA strike\",\"/audio/black-ops-6-zombies-characters-recast-after-original-actors-withdrew-during-strike\",{},\"Dec 18, 2024\",\"Pre-release versions of Call of Duty: Black Ops 6 Zombies cutscenes contain different voiceover performances than those heard in the final game.\",{\"_789\":140,\"_790\":1061},[],{\"_371\":372,\"_352\":1063,\"_373\":1065,\"_358\":1071,\"_360\":1071,\"_363\":1072,\"_781\":1073,\"_365\":272,\"_366\":1058,\"_368\":272,\"_361\":1074,\"_785\":272,\"_383\":786,\"_369\":1009,\"_370\":1010,\"_381\":841,\"_787\":1075,\"_792\":793},{\"_354\":1064,\"_356\":272},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltbbca559b319a92f9/6762fb040b15ee72e2a1d325/Game_Developer_Top_Events_2024.png\",[1066,1067,1068,1069,1070],{\"_168\":968,\"_377\":969,\"_379\":970,\"_777\":971},{\"_168\":1020,\"_377\":1021,\"_379\":1022,\"_777\":1023},{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},{\"_168\":998,\"_377\":999,\"_379\":1000,\"_777\":1001},{\"_168\":396,\"_377\":397,\"_379\":398,\"_777\":1040},\"Game Developer's 2024 Wrap-Up: The top 5 events that defined 2024\",\"/game-platforms/game-developer-s-2024-wrap-up-the-top-5-events-that-defined-2024\",{},\"Find out what our staff had to say about this year’s biggest events.\",{\"_789\":140,\"_790\":1076},[],{\"_371\":372,\"_352\":1078,\"_373\":1081,\"_358\":1083,\"_360\":1083,\"_363\":1084,\"_781\":1085,\"_365\":272,\"_366\":1058,\"_368\":272,\"_361\":1086,\"_785\":272,\"_383\":786,\"_369\":326,\"_370\":289,\"_381\":1087,\"_787\":1088,\"_792\":793},{\"_354\":1079,\"_356\":1080},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt2f57a0dccc8072ea/67618ca500ac4d734bd87c87/thickasthieveslibraryfeatured.jpg\",\"Two thieves brawl against each other and a guard in a library in Thick as Thieves.\",[1082],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"How Thick as Thieves adapts immersive sim tricks for multiplayer shenanigans\",\"/design/how-thick-as-thieves-adapts-immersive-sim-tricks-for-online-multiplayer\",{},\"It's crime time.\",5,{\"_789\":140,\"_790\":1089},[],{\"_371\":372,\"_352\":1091,\"_373\":1094,\"_358\":1096,\"_360\":1096,\"_363\":1097,\"_781\":1098,\"_365\":272,\"_366\":1099,\"_368\":272,\"_361\":1100,\"_785\":272,\"_383\":786,\"_369\":332,\"_370\":333,\"_381\":1101,\"_787\":1102,\"_792\":793},{\"_354\":1092,\"_356\":1093},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt64350237fea0f866/6760a0fb402a80b77eaa7e52/catlyfeatured.jpg\",\"A close-up profile of a furry cat with purple-and-teal eyes.\",[1095],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"Catly developer denies it's using generative AI or blockchain technology in its cute cat game\",\"/art/catly-developer-denies-it-s-using-generative-ai-or-blockchain-technology-in-its-cute-cat-game\",{},\"Dec 16, 2024\",\"SuperAuthenti wants to 'paws' the rumors of generative AI and blockchain technology in Catly.\",2,{\"_789\":140,\"_790\":1103},[],{\"_371\":372,\"_352\":1105,\"_373\":1108,\"_358\":1110,\"_360\":1110,\"_363\":1111,\"_781\":1112,\"_365\":272,\"_366\":1113,\"_368\":272,\"_361\":1114,\"_785\":272,\"_383\":786,\"_369\":326,\"_370\":289,\"_381\":1087,\"_787\":1115,\"_792\":793},{\"_354\":1106,\"_356\":1107},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3ae76f52aa153b3a/66f4704c3097eb9dbaddcf6a/WoW_20th_Anniversary_Wallpaper_1920x1080.png\",\"Characters from the Warcraft franchise strike a pose.\",[1109],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"What Blizzard is doing to make sure World of Warcraft never gets old\",\"/design/what-blizzard-is-doing-to-make-sure-world-of-warcraft-never-gets-old\",{},\"Nov 22, 2024\",\"Blizzard's new plans for World of Warcraft show why MMORPGs may have plenty of life left as a genre.\",{\"_789\":140,\"_790\":1116},[],{\"_371\":372,\"_352\":1118,\"_373\":1121,\"_358\":1123,\"_360\":1123,\"_363\":1124,\"_781\":1125,\"_365\":272,\"_366\":1126,\"_368\":272,\"_361\":1127,\"_785\":272,\"_383\":786,\"_369\":294,\"_370\":295,\"_381\":827,\"_787\":1128,\"_792\":793},{\"_354\":1119,\"_356\":1120},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blte9cdb5ffe27303b2/673f421444780fb7e63082a3/russellkayfeatured.jpg\",\"YoYo Games CEO Russell Kay holds a microphone against Game Developer's red background.\",[1122],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"What GameMaker's 25-year run tells us about the game engine market\",\"/programming/what-gamemaker-s-25-year-run-tells-us-about-the-game-engine-market\",{},\"Nov 20, 2024\",\"Mister maker, make me a game.\",{\"_789\":140,\"_790\":1129},[],{\"_371\":372,\"_352\":1131,\"_373\":1134,\"_358\":1136,\"_360\":1136,\"_363\":1137,\"_781\":1138,\"_365\":272,\"_366\":1139,\"_368\":272,\"_361\":1140,\"_785\":272,\"_383\":786,\"_369\":320,\"_370\":321,\"_381\":958,\"_787\":1141,\"_792\":793},{\"_354\":1132,\"_356\":1133},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt185f94ca82b4d5c1/673b5c43fdb511b229f6df09/blueskygamedeveloper.jpg\",\"The Bluesky logo on Game Developer's key art.\",[1135],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"What are game developers getting out of Bluesky?\",\"/business/what-are-game-developers-getting-out-of-bluesky-\",{},\"Nov 18, 2024\",\"You can't take the sky from me.\",{\"_789\":140,\"_790\":1142},[],{\"_371\":372,\"_352\":1144,\"_373\":1147,\"_358\":1149,\"_360\":1149,\"_363\":1150,\"_781\":1151,\"_365\":272,\"_366\":1152,\"_368\":272,\"_361\":1153,\"_785\":272,\"_383\":786,\"_369\":320,\"_370\":321,\"_381\":881,\"_787\":1154,\"_792\":793},{\"_354\":1145,\"_356\":1146},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt5c3675774e125304/67352c06c431f8190a1d2b29/gameawards2024featured.jpg\",\"The logo for the 2024 Game Awards.\",[1148],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"Why hasn't The Game Awards announced a Future Class for 2024?\",\"/business/why-hasn-t-the-game-awards-announced-a-future-class-for-2024-\",{},\"Nov 14, 2024\",\"Class dismissed?\",{\"_789\":140,\"_790\":1155},[],{\"_371\":372,\"_352\":1157,\"_373\":1160,\"_358\":1162,\"_360\":1162,\"_363\":1163,\"_781\":1164,\"_365\":272,\"_366\":1165,\"_368\":272,\"_361\":1166,\"_785\":272,\"_383\":786,\"_369\":332,\"_370\":333,\"_381\":1087,\"_787\":1167,\"_792\":793},{\"_354\":1158,\"_356\":1159},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltd3a4285d36f7d414/6733bbbe50f3cb55e68bc8a1/davrinfeatured.jpg\",\"Davrin, a Black elf from Dragon Age: The Veilguard.\",[1161],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"BioWare pulls back the veil on Dragon Age: The Veilguard's magical hair tech\",\"/art/bioware-pulls-back-the-veil-on-dragon-age-the-veilguard-s-magical-hair-tech\",{},\"Nov 12, 2024\",\"Let those luscious locks fly. \",{\"_789\":140,\"_790\":1168},[],{\"_371\":372,\"_352\":1170,\"_373\":1173,\"_358\":1175,\"_360\":1175,\"_363\":1176,\"_781\":1177,\"_365\":272,\"_366\":1178,\"_368\":272,\"_361\":1179,\"_785\":272,\"_383\":786,\"_369\":332,\"_370\":333,\"_381\":1087,\"_787\":1180,\"_792\":793},{\"_354\":1171,\"_356\":1172},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltc749959e57715574/672a39ad570b834999b5c82b/womanmagnifyingglassfeatured.jpg\",\"A woman looks at a computer through a magnifying glass.\",[1174],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"How devs can spot AI-generated 3D models\",\"/art/how-devs-can-spot-ai-generated-3d-models\",{},\"Nov 5, 2024\",\"Baked-in lighting, mushy meshes, and high polygon counts are telltale signs of AI-generated work.\",{\"_789\":140,\"_790\":1181},[],{\"_371\":372,\"_352\":1183,\"_373\":1186,\"_358\":1188,\"_360\":1188,\"_363\":1189,\"_781\":1190,\"_365\":272,\"_366\":1191,\"_368\":272,\"_361\":1192,\"_785\":272,\"_383\":786,\"_369\":335,\"_370\":336,\"_381\":1101,\"_787\":1193,\"_792\":793},{\"_354\":1184,\"_356\":1185},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt38d671590c3b2249/6723c7f22ab52dee6dad78d0/nintendomusicfeatured.jpg\",\"Key art for Nintendo Music. It shows portraits of different characters like Mario, Link, Isabella, and more.\",[1187],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"Nintendo doesn't credit composers on new Nintendo Music app\",\"/audio/why-doesn-t-nintendo-music-credit-composers-\",{},\"Oct 31, 2024\",\"If you want to know who composed a given Nintendo track, your answer is in another castle.\",{\"_789\":140,\"_790\":1194},[],{\"_371\":372,\"_352\":1196,\"_373\":1199,\"_358\":1201,\"_360\":1201,\"_363\":1202,\"_781\":1203,\"_365\":272,\"_366\":1191,\"_368\":272,\"_361\":1204,\"_785\":272,\"_383\":786,\"_369\":338,\"_370\":339,\"_381\":1101,\"_787\":1205,\"_792\":793},{\"_354\":1197,\"_356\":1198},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt380506969c012133/6723a9c8f3d12e1c520f7e3f/hackerfeatured.jpg\",\"A man with his face obscured by a hoodie at a laptop.\",[1200],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"Heads up: devs on Steam now need to disclose kernel mode anti-cheat software\",\"/pc/heads-up-devs-on-steam-now-need-to-disclose-kernel-mode-anti-cheat-software\",{},\"Information on anti-cheat software in multiplayer games can now be featured on Steam store pages.\",{\"_789\":140,\"_790\":1206},[],{\"_371\":372,\"_352\":1208,\"_373\":1211,\"_358\":1213,\"_360\":1213,\"_363\":1214,\"_781\":1215,\"_365\":272,\"_366\":1191,\"_368\":272,\"_361\":1216,\"_785\":272,\"_383\":786,\"_369\":320,\"_370\":321,\"_381\":841,\"_787\":1217,\"_792\":793},{\"_354\":1209,\"_356\":1210},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt9494ce3a84749271/67239d7446c5da564695c02b/indiepitchingfeatured.jpg\",\"A woman addresses a table of businesspeople.\",[1212],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"Up-to-date indie pitching tips from Finji CEO Bekah Saltsman\",\"/business/what-finji-ceo-bekah-saltsman-would-update-about-her-gdc-talk-on-indie-pitching\",{},\"'If you are going to be talking to people, it is in your best interest to do your best to be less of a risk.'\",{\"_789\":140,\"_790\":1218},[],{\"_371\":372,\"_352\":1220,\"_373\":1223,\"_358\":1225,\"_360\":1225,\"_363\":1226,\"_781\":1227,\"_365\":272,\"_366\":1228,\"_368\":272,\"_361\":1229,\"_785\":272,\"_383\":786,\"_369\":320,\"_370\":321,\"_381\":1230,\"_787\":1231,\"_792\":793},{\"_354\":1221,\"_356\":1222},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3caec7f78faedc98/67227e557ee0267290f0e839/starwarsoutlawspoorsalesfeatured.jpg\",\"Star Wars Outlaws protagonist slides across the dirt.\",[1224],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"Three reasons Star Wars Outlaws might have undersold\",\"/business/three-reasons-star-wars-outlaws-might-have-undersold\",{},\"Oct 30, 2024\",\"\\\"The greatest teacher, failure is.\\\"\",10,{\"_789\":140,\"_790\":1232},[],{\"_371\":372,\"_352\":1234,\"_373\":1237,\"_358\":1239,\"_360\":1239,\"_363\":1240,\"_781\":1241,\"_365\":272,\"_366\":1242,\"_368\":272,\"_361\":1243,\"_785\":272,\"_383\":786,\"_369\":326,\"_370\":289,\"_381\":1087,\"_787\":1244,\"_792\":793},{\"_354\":1235,\"_356\":1236},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt14700b671612c553/671a758634ed7082afae71e3/avowedfeatured.jpg\",\"A woman casts purple magic with a staff. A blue-faced fantasy character stands behind her.\",[1238],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"Avowed director Carrie Patel explains how Obsidian pushes boundaries in the fantasy genre\",\"/design/avowed-director-carrie-patel-explains-how-obsidian-pushes-boundaries-in-the-fantasy-genre\",{},\"Oct 24, 2024\",\"'Forcing' players to define their role in a big new fantasy universe might be the best kind of worldbuilding you can do.\",{\"_789\":140,\"_790\":1245},[],{\"_371\":372,\"_352\":1247,\"_373\":1250,\"_358\":1252,\"_360\":1252,\"_363\":1253,\"_781\":1254,\"_365\":272,\"_366\":1242,\"_368\":272,\"_361\":1255,\"_785\":272,\"_383\":786,\"_369\":320,\"_370\":321,\"_381\":841,\"_787\":1256,\"_792\":793},{\"_354\":1248,\"_356\":1249},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt6140b7aec7dd3a8b/671950bdc3b38d2f0dd53aec/10yearsfeatured.jpg\",\"The number 10 in green and blue lighting.\",[1251],{\"_168\":376,\"_377\":378,\"_379\":380,\"_777\":778},\"One lesson from 10 years of writing for Game Developer\",\"/business/one-lesson-from-10-years-of-writing-for-game-developer\",{},\"Bryant's must-read lesson from the last decade: don't worship idols to find meaning in yourself.\",{\"_789\":140,\"_790\":1257},[],\"sidebarModules\",[1260,1304,1320,1802,1830,1870],{\"_201\":1261,\"_1262\":1263,\"_1301\":1302},\"module_content_cards\",\"data\",{\"_225\":1264,\"_1265\":272,\"_383\":1266,\"_769\":1267,\"_1297\":1298,\"_1299\":1298,\"_1300\":-7},\"Latest News\",\"moduleLabel\",\"column\",[1268,1281,1285],{\"_201\":1269,\"_1262\":1270},\"contentPreview\",{\"_371\":372,\"_383\":384,\"_352\":1271,\"_358\":1274,\"_360\":1274,\"_363\":1275,\"_365\":1275,\"_781\":1276,\"_366\":783,\"_368\":272,\"_369\":320,\"_370\":321,\"_373\":1277,\"_381\":1101,\"_787\":1279},{\"_354\":1272,\"_356\":1273},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta02ff0a8264a742c/66cf5e436f47ee032319bf78/marathon_reboot.jpg\",\"A Runner in Bungie's Marathon.\",\"Report: Sony dismisses ex-Bungie director's lawsuit claims, alleged 'consistent misconduct' took place\",\"/business/sony-dismisses-ex-bungie-director-s-lawsuit-claims-alleged-consistent-misconduct-took-place\",{},[1278],{\"_168\":396,\"_377\":397,\"_379\":398},{\"_789\":140,\"_790\":1280},[],{\"_201\":1282,\"_1262\":1283},\"ad\",{\"_1284\":101},\"pos\",{\"_201\":1269,\"_1262\":1286},{\"_371\":372,\"_383\":384,\"_352\":1287,\"_358\":1290,\"_360\":1290,\"_363\":1291,\"_365\":1291,\"_781\":1292,\"_366\":783,\"_368\":272,\"_369\":320,\"_370\":321,\"_373\":1293,\"_381\":1101,\"_787\":1295},{\"_354\":1288,\"_356\":1289},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt8258ffbe0f635379/67b8c318a2df9a0963c0ff88/carter_lipscomb.jpg\",\"Selfie of game developer Carter Lipscomb.\",\"Obituary: Carter Lipscomb, Iron Galaxy's business specialist, has passed away\",\"/business/obituary-carter-lipscomb-iron-galaxy-s-business-specialist-passed-away\",{},[1294],{\"_168\":396,\"_377\":397,\"_379\":398},{\"_789\":140,\"_790\":1296},[],\"dateDisplay\",\"show\",\"contributorDisplay\",\"displayAd\",\"adConfig\",{\"_1303\":180},\"nativeAdOption\",{\"_201\":1305,\"_1306\":1307,\"_1262\":1308},\"module_newsletter_promo\",\"uid\",\"blt5927fa665b4acf51\",{\"_225\":1309,\"_687\":1310,\"_1311\":1307,\"_1312\":1313,\"_383\":1314,\"_1315\":1316,\"_1317\":140,\"_1318\":1319},\"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\",\"moduleLocation\",\"sidebar\",{\"_201\":1321,\"_1262\":1322},\"module_content_spotlight\",{\"_383\":1323,\"_1315\":1324,\"_1325\":1326,\"_1327\":1328,\"_371\":372,\"_365\":272,\"_738\":1329},\"reversed\",\"light\",\"textAlignment\",\"center\",\"moduleDesign\",\"standard\",{\"_1330\":1331,\"_534\":1332,\"_1335\":245,\"_1336\":1337,\"_1338\":1337,\"_1339\":1340,\"_361\":1793,\"_1794\":1793,\"_1795\":1796,\"_781\":1798,\"_363\":1797,\"_369\":320,\"_370\":321,\"_366\":1799,\"_787\":1800},\"keywords\",[],{\"_170\":1333,\"_523\":1334},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf853554cde13e80e/66993eab894f28de8a04de6f/whitehousebwfeatured.jpg\",\"A photo of the White House in black and white.\",\"summary\",\"heading\",\"Opinion: How will Project 2025 impact game developers?\",\"mobileHeading\",\"articleBody\",[1341,1346,1351,1377,1398,1403,1408,1414,1427,1440,1445,1469,1480,1494,1499,1504,1517,1522,1527,1540,1567,1580,1585,1590,1595,1608,1613,1634,1639,1644,1649,1662,1667,1672,1677,1687,1692,1697,1710,1715,1720,1732,1737,1742,1747,1760,1765,1776,1781,1786],{\"_201\":741,\"_742\":1342,\"_738\":1343},{\"_744\":745},[1344],{\"_201\":748,\"_748\":1345},\"In the last few weeks you may have heard of a document known as \\\"Project 2025.\\\" Fully known as \\\"The Project 2025 Presidential Transition Project,\\\" it is a document created by a conservative nonprofit think tank called The Heritage Foundation. The project's aim is to establish policy goals for the possible next presidential administration under Donald Trump and the means by which to achieve them, authored by political insiders with past and present affiliation with the candidate.\",{\"_201\":741,\"_742\":1347,\"_738\":1348},{\"_744\":745},[1349],{\"_201\":748,\"_748\":1350},\"An external nonprofit organization posting and promoting such a plan is unusual on its face, even if its contents echo the policy platforms of Republican Party elected officials for at least the last two decades. Its plans to radically rewrite laws around taxes, LGBTQ rights, regulation, and more are not dissimilar to the policies of many prior administrations.\",{\"_201\":741,\"_742\":1352,\"_738\":1353},{\"_744\":745},[1354,1356,1367,1369,1375],{\"_201\":748,\"_748\":1355},\"Additionally, 501(c)(3) nonprofits are \",{\"_201\":748,\"_1357\":1358,\"_748\":1366},\"marks\",[1359],{\"_201\":377,\"_742\":1360},{\"_5\":1361,\"_1362\":1363,\"_1364\":-5,\"_1365\":-5},\"https://www.irs.gov/charities-non-profits/charitable-organizations/the-restriction-of-political-campaign-intervention-by-section-501c3-tax-exempt-organizations\",\"target\",\"_self\",\"rel\",\"class\",\"prohibited from participating in political campaigns by the IRS\",{\"_201\":748,\"_748\":1368},\", and \",{\"_201\":748,\"_1357\":1370,\"_748\":1374},[1371],{\"_201\":377,\"_742\":1372},{\"_5\":1373,\"_1362\":1363,\"_1364\":-5,\"_1365\":-5},\"https://www.newsweek.com/project-2025-reported-irs-1923145\",\"some have questioned\",{\"_201\":748,\"_748\":1376},\" if its championing of this project runs afoul of tax law.\",{\"_201\":741,\"_742\":1378,\"_738\":1379},{\"_744\":745},[1380,1382,1388,1390,1396],{\"_201\":748,\"_748\":1381},\"What's even more unusual is how conversation around Project 2025 has gone widely viral. Thanks in part to comedian \",{\"_201\":748,\"_1357\":1383,\"_748\":1387},[1384],{\"_201\":377,\"_742\":1385},{\"_5\":1386,\"_1362\":1363,\"_1364\":-5,\"_1365\":-5},\"https://www.youtube.com/watch?v=gYwqpx6lp_s\",\"John Oliver\",{\"_201\":748,\"_748\":1389},\" and extremely due to comments made by actor \",{\"_201\":748,\"_1357\":1391,\"_748\":1395},[1392],{\"_201\":377,\"_742\":1393},{\"_5\":1394,\"_1362\":1363,\"_1364\":-5,\"_1365\":-5},\"https://www.msnbc.com/the-reidout/reidout-blog/bet-awards-taraji-henson-project-2025-rcna159770\",\"Taraji P. Henson\",{\"_201\":748,\"_748\":1397},\", Americans are now closely scrutinizing how this plan may impact their lives.\",{\"_201\":741,\"_742\":1399,\"_738\":1400},{\"_744\":745},[1401],{\"_201\":748,\"_748\":1402},\"Many of those Americans are in the world of video game development. We took a look at Project 2025's ambitions to see how it could impact the game development community. The results were disturbing.\",{\"_201\":741,\"_742\":1404,\"_738\":1405},{\"_744\":745},[1406],{\"_201\":748,\"_748\":1407},\"Game developers should know that Project 2025 contains implications for possible media censorship, worsening health and well-being of workers, and drastic threats to gender and racial equality in an industry still struggling to close decades of unconscious discrimination.\",{\"_201\":1336,\"_742\":1409,\"_738\":1411},{\"_744\":745,\"_1410\":1101},\"level\",[1412],{\"_201\":748,\"_748\":1413},\"Project 2025 includes \\\"transgender ideology\\\" under the definition of \\\"pornography\\\"\",{\"_201\":741,\"_742\":1415,\"_738\":1416},{\"_744\":745},[1417,1419,1425],{\"_201\":748,\"_748\":1418},\"In \",{\"_201\":748,\"_1357\":1420,\"_748\":1424},[1421],{\"_201\":377,\"_742\":1422},{\"_5\":1423,\"_1362\":1363,\"_1364\":-5,\"_1365\":-5},\"https://www.project2025.org/\",\"Project 2025's foreword,\",{\"_201\":748,\"_748\":1426},\" authored by Heritage Foundation president Kevin Richardson, PhD, the organization makes an explicit connection between supporting transgender rights and the act of producing pornography. \\\"Pornography, manifested today in the omnipresent propagation of transgender ideology and sexualization of children, for instance, is not a political Gordian knot inextricably binding up disparate claims about free speech, property rights, sexual liberation, and child welfare,\\\" he writes, adding that it has \\\"no claim to First Amendment protection.\\\"\",{\"_201\":741,\"_742\":1428,\"_738\":1429},{\"_744\":745},[1430,1432,1438],{\"_201\":748,\"_748\":1431},\"This is a wide-reaching expansion of \",{\"_201\":748,\"_1357\":1433,\"_748\":1437},[1434],{\"_201\":377,\"_742\":1435},{\"_5\":1436,\"_1362\":1363,\"_1364\":-5,\"_1365\":-5},\"https://www.merriam-webster.com/dictionary/pornography\",\"the definition of pornography\",{\"_201\":748,\"_748\":1439},\". He does not mince words as to what action the government should take. He follows this by stating pornography should be \\\"outlawed,\\\" and calls for harsh punishments for any involved in its creation or dissemination.\",{\"_201\":741,\"_742\":1441,\"_738\":1442},{\"_744\":745},[1443],{\"_201\":748,\"_748\":1444},\"\\\"The people who produce and distribute it should be imprisoned,\\\" he continues. \\\"Educators and public librarians who purvey it should be classed as registered sex offenders. And telecommunications and technology firms that facilitate its spread should be shuttered.\\\"\",{\"_201\":741,\"_742\":1446,\"_738\":1447},{\"_744\":745},[1448,1450,1455,1457,1461,1463,1467],{\"_201\":748,\"_748\":1449},\"It is here that we can draw a line between this proposed plan and video game development. Such restrictions may outlaw gender-inclusive character creators like those seen in \",{\"_201\":748,\"_1357\":1451,\"_748\":1454},[1452],{\"_201\":1453},\"italic\",\"Cyberpunk 2077\",{\"_201\":748,\"_748\":1456},\", \",{\"_201\":748,\"_1357\":1458,\"_748\":1460},[1459],{\"_201\":1453},\"Baldur's Gate 3\",{\"_201\":748,\"_748\":1462},\", or \",{\"_201\":748,\"_1357\":1464,\"_748\":1466},[1465],{\"_201\":1453},\"The Sims 4\",{\"_201\":748,\"_748\":1468},\" in the United States.\",{\"_201\":741,\"_742\":1470,\"_738\":1471},{\"_744\":745},[1472,1474,1478],{\"_201\":748,\"_748\":1473},\"This may also lead developers to stop including transgender characters in games like \",{\"_201\":748,\"_1357\":1475,\"_748\":1477},[1476],{\"_201\":1453},\"Apex Legends\",{\"_201\":748,\"_748\":1479},\"' Bloodhound and Catalyst. It is unclear if the mere representation of a transgender individual would violate the terms, but studios fearful of litigation would have reason to deny their creation altogether.\",{\"_201\":1481,\"_742\":1482,\"_738\":1485},\"figure\",{\"_1483\":1484},\"figcaption\",\"Image via Respawn Entertainment/Electronic Arts.\",[1486,1493],{\"_201\":534,\"_742\":1487},{\"_744\":745,\"_354\":1488,\"_356\":1489,\"_225\":-5,\"_1490\":1491},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltf4717120ba72e4cf/669941f4b3e572203158f2be/catalystart.jpg\",\"Trans femme legend Catalyst from Apex Legends.\",\"style\",{\"_1492\":1326},\"float\",{\"_201\":748,\"_748\":1484},{\"_201\":741,\"_742\":1495,\"_738\":1496},{\"_744\":745},[1497],{\"_201\":748,\"_748\":1498},\"With regards to its singling out of \\\"technology companies,\\\" much is made further down the document in a section on the Federal Communications Commission authored by former Trump administration FCC chairman Brendan Carr. Carr writes that Congress should set about scrapping the current implementation of Section 230 of the Communications Act. Section 230 is legally understood to absolve telecom providers and platform holders of broad responsibility for content transmitted through their services.\",{\"_201\":741,\"_742\":1500,\"_738\":1501},{\"_744\":745},[1502],{\"_201\":748,\"_748\":1503},\"Altering its language would allow agencies to hold internet providers, social media platforms, and digital storefronts for the content they share. This could lead to companies who own said services to apply downward pressure on each other to preemptively enforce said censorship.\",{\"_201\":741,\"_742\":1505,\"_738\":1506},{\"_744\":745},[1507,1509,1515],{\"_201\":748,\"_748\":1508},\"We should also note that expanding the definition of pornography in vague and uncertain terms may mean video games featuring sexualized characters of any type could be targeted by such legislation. Developers may be tasked with adhering to something \",{\"_201\":748,\"_1357\":1510,\"_748\":1514},[1511],{\"_201\":377,\"_742\":1512},{\"_5\":1513,\"_1362\":1363,\"_1364\":-5,\"_1365\":-5},\"https://www.npr.org/2008/08/08/93301189/remembering-hollywoods-hays-code-40-years-on\",\"like the Hays Code\",{\"_201\":748,\"_748\":1516},\", a self-imposed form of censorship authored by Will Hays in 1934 meant to stave off congressional legislation against the film industry.\",{\"_201\":1336,\"_742\":1518,\"_738\":1519},{\"_744\":745,\"_1410\":1101},[1520],{\"_201\":748,\"_748\":1521},\"Civil rights protections for American game developers in the workplace may suffer\",{\"_201\":741,\"_742\":1523,\"_738\":1524},{\"_744\":745},[1525],{\"_201\":748,\"_748\":1526},\"Americans who require access to abortion or protection from discrimination on the basis of race, gender, or sexuality may suffer greatly under Project 2025. The plan takes a multi-pronged approach to targeting said protections, and Richardson writes that this begins with deleting the terms sexual orientation and gender identity (\\\"SOGI\\\"), diversity, equity, and inclusion (\\\"DEI\\\"), gender, gender equality, gender equity, gender awareness, gender-sensitive, abortion, reproductive health, reproductive rights, and any other term used to deprive Americans of their First Amendment rights out of every federal rule, agency regulation, contract, grant, regulation, and piece of legislation that exists.\\\"\",{\"_201\":741,\"_742\":1528,\"_738\":1529},{\"_744\":745},[1530,1532,1538],{\"_201\":748,\"_748\":1531},\"The effects of said action may already be seeping into companies that contract with the federal government. Recently \",{\"_201\":748,\"_1357\":1533,\"_748\":1537},[1534],{\"_201\":377,\"_742\":1535},{\"_5\":1536,\"_1362\":1363,\"_1364\":-5,\"_1365\":-5},\"https://www.gamedeveloper.com/business/report-microsoft-shuts-down-dei-team-ex-lead-claims-similar-programs-at-risk\",\"laid-off DEI workers at Microsoft\",{\"_201\":748,\"_748\":1539},\" raised the alarm bell that the Redmond-based corporation may be shuttering DEI efforts in advance of a possible second Trump administration.\",{\"_201\":741,\"_742\":1541,\"_738\":1542},{\"_744\":745},[1543,1545,1551,1553,1559,1561,1565],{\"_201\":748,\"_748\":1544},\"A \",{\"_201\":748,\"_1357\":1546,\"_748\":1550},[1547],{\"_201\":377,\"_742\":1548},{\"_5\":1549,\"_1362\":1363,\"_1364\":-5,\"_1365\":-5},\"https://www.gamedeveloper.com/business/why-are-valve-and-discord-permitting-harassment-against-sweet-baby-inc-\",\"reactionary backlash\",{\"_201\":748,\"_748\":1552},\" against DEI initiatives has also fueled renewed harassment campaigns against marginalized groups and their advocates in game development. The campaigns' furor has grown so absurd that even Ubisoft CEO Yves Guillemot took time to \",{\"_201\":748,\"_1357\":1554,\"_748\":1558},[1555],{\"_201\":377,\"_742\":1556},{\"_5\":1557,\"_1362\":1363,\"_1364\":-5,\"_1365\":-5},\"https://www.gamedeveloper.com/business/yves-guillemot-denounces-assassin-s-creed-shadows-racist-malicious-backlash\",\"condemn the racist reaction\",{\"_201\":748,\"_748\":1560},\" to the dual leads of \",{\"_201\":748,\"_1357\":1562,\"_748\":1564},[1563],{\"_201\":1453},\"Assassin's Creed Shadows\",{\"_201\":748,\"_748\":1566},\".\",{\"_201\":741,\"_742\":1568,\"_738\":1569},{\"_744\":745},[1570,1572,1578],{\"_201\":748,\"_748\":1571},\"In a section authored by former chief counsel to the President-Elect Trump Transition team Jonathan Berry, he writes that the Department of Labor and related agencies should cease enforcing what is known as the \\\"disparate impact\\\" standard in determining the existence of racial discrimination in the workplace. \",{\"_201\":748,\"_1357\":1573,\"_748\":1577},[1574],{\"_201\":377,\"_742\":1575},{\"_5\":1576,\"_1362\":1363,\"_1364\":-5,\"_1365\":-5},\"https://www.justice.gov/crt/fcs/T6Manual7\",\"This standard\",{\"_201\":748,\"_748\":1579},\" is shorthand for explaining how regulatory agencies determine if unintentional or covert discrimination has been enabled through rules or policies that disproportionately target people of different racial groups, particularly minorities.\",{\"_201\":741,\"_742\":1581,\"_738\":1582},{\"_744\":745},[1583],{\"_201\":748,\"_748\":1584},\"Eliminating it would likely empower companies to willingly or inadvertently discriminate against workers so long as they do not specify which protected groups they are targeting.\",{\"_201\":741,\"_742\":1586,\"_738\":1587},{\"_744\":745},[1588],{\"_201\":748,\"_748\":1589},\"Berry also explicitly calls for the Department of Labor to \\\"rescind regulations prohibiting discrimination on the basis of sexual orientation, gender identity, transgender status, and sex characteristics.\\\" Employers would be free to discriminate against LGBTQ+ workers with no intervention by the federal government.\",{\"_201\":741,\"_742\":1591,\"_738\":1592},{\"_744\":745},[1593],{\"_201\":748,\"_748\":1594},\"Finally, developers should know that Project 2025's assault on abortion access impact benefits studios provide in the United States. Berry's section of the Mandate for Leadership states that the potential next presidential administration should \\\"keep anti-life 'benefits' out of benefit plans.\\\"\",{\"_201\":741,\"_742\":1596,\"_738\":1597},{\"_744\":745},[1598,1600,1606],{\"_201\":748,\"_748\":1599},\"The lever to eliminate said benefits would be pulled through a judicial reinterpreting of \",{\"_201\":748,\"_1357\":1601,\"_748\":1605},[1602],{\"_201\":377,\"_742\":1603},{\"_5\":1604,\"_1362\":1363,\"_1364\":-5,\"_1365\":-5},\"https://www.dol.gov/general/topic/retirement/erisa\",\"Employee Retirement Income Security Act of 1974 (ERISA)\",{\"_201\":748,\"_748\":1607},\". The law currently denies states the ability to ban companies from providing abortion coverage in their medical benefits.\",{\"_201\":741,\"_742\":1609,\"_738\":1610},{\"_744\":745},[1611],{\"_201\":748,\"_748\":1612},\"\\\"ERISA should not be allowed to trump states’ ability to protect innocent human life in the womb,\\\" writes Berry. \\\"Congress and DOL should clarify that ERISA does not preempt states' power to restrict abortion, surrogacy, or other anti-life 'benefits.'\\\"\",{\"_201\":741,\"_742\":1614,\"_738\":1615},{\"_744\":745},[1616,1618,1624,1626,1632],{\"_201\":748,\"_748\":1617},\"The successful restricting of abortion access has \",{\"_201\":748,\"_1357\":1619,\"_748\":1623},[1620],{\"_201\":377,\"_742\":1621},{\"_5\":1622,\"_1362\":1363,\"_1364\":-5,\"_1365\":-5},\"https://www.gamedeveloper.com/game-platforms/insomniac-games-bungie-issue-statements-supporting-abortion-rights\",\"prompted backlash\",{\"_201\":748,\"_748\":1625},\" from game developers. Many \",{\"_201\":748,\"_1357\":1627,\"_748\":1631},[1628],{\"_201\":377,\"_742\":1629},{\"_5\":1630,\"_1362\":1363,\"_1364\":-5,\"_1365\":-5},\"https://www.gamedeveloper.com/game-platforms/texas-anti-abortion-law-is-a-threat-for-diversity-in-the-game-industry\",\"already worry\",{\"_201\":748,\"_748\":1633},\" that if studios or publishers set up new offices in states with abortion bans on the books, they will have to choose between their careers or their personal safety when considering where they can work.\",{\"_201\":741,\"_742\":1635,\"_738\":1636},{\"_744\":745},[1637],{\"_201\":748,\"_748\":1638},\"The combined eliminations of these protections risk exacerbating inequality in the video game business. If employees cannot fight discrimination or receive equal access to healthcare, they will not have the same opportunities as many of their colleagues when seeking work in the field of game development.\",{\"_201\":1336,\"_742\":1640,\"_738\":1641},{\"_744\":745,\"_1410\":1101},[1642],{\"_201\":748,\"_748\":1643},\"Proposed overtime regulations in Project 2025 could empower more crunch\",{\"_201\":741,\"_742\":1645,\"_738\":1646},{\"_744\":745},[1647],{\"_201\":748,\"_748\":1648},\"The last decade has been marked by workers at companies large and small advocating for an end to \\\"crunch,\\\" commonly understood as periods where developers work intense extra hours to meet harsh deadlines.\",{\"_201\":741,\"_742\":1650,\"_738\":1651},{\"_744\":745},[1652,1654,1660],{\"_201\":748,\"_748\":1653},\"The Game Developers Conference State of the Industry survey \",{\"_201\":748,\"_1357\":1655,\"_748\":1659},[1656],{\"_201\":377,\"_742\":1657},{\"_5\":1658,\"_1362\":1363,\"_1364\":-5,\"_1365\":-5},\"https://www.gamedeveloper.com/game-platforms/diving-into-the-nuance-of-self-imposed-crunch\",\"indicates\",{\"_201\":748,\"_748\":1661},\" that while developers still experience crunch, its presence in the industry has slowly declined in response to said advocacy. Those gains could be wiped away by proposals in Project 2025.\",{\"_201\":741,\"_742\":1663,\"_738\":1664},{\"_744\":745},[1665],{\"_201\":748,\"_748\":1666},\"These proposals attack overtime benefits from multiple angles. In his chapter on the Department of Labor, Berry argues that overtime laws are too restrictive on companies who wish to offer other benefits like reimbursement for education, childcare, or free meals.\",{\"_201\":741,\"_742\":1668,\"_738\":1669},{\"_744\":745},[1670],{\"_201\":748,\"_748\":1671},\"As he states, \\\"overtime requirements may discourage employers from offering certain fringe benefits such as reimbursement for education, childcare, or even free meals because the benefits' value may be included in the 'regular rate' that must be paid at 150 percent for all overtime hours.\\\"\",{\"_201\":741,\"_742\":1673,\"_738\":1674},{\"_744\":745},[1675],{\"_201\":748,\"_748\":1676},\"Elsewhere, Berry writes that overtime laws should be adjusted to offer \\\"flexibility\\\" to \\\"employers and employees\\\" to calculate overtime over two-or-four-week periods. \\\"This would give workers greater flexibility to work more hours in one week and fewer hours in the next and would not require the employer to pay them more for that same total number of hours of work during the entire period,\\\" he says.\",{\"_201\":1481,\"_742\":1678,\"_738\":1680},{\"_1483\":1679},\"Image via Adobe Stock.\",[1681,1686],{\"_201\":534,\"_742\":1682},{\"_744\":745,\"_354\":1683,\"_356\":1684,\"_225\":-5,\"_1490\":1685},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/bltcce83709200ee93e/669942b1894f28345b04de74/AdobeStock_533283534.jpeg\",\"A tired woman works in an unlit office at night.\",{\"_1492\":1326},{\"_201\":748,\"_748\":1679},{\"_201\":741,\"_742\":1688,\"_738\":1689},{\"_744\":745},[1690],{\"_201\":748,\"_748\":1691},\"This means that if an employer were to demand developers work 60 hour weeks to hit a milestone, they would be able to not pay overtime so long as equivalent time off was offered in the weeks after. Such a regulation does not account for the strain that excessive work hours can inflict on workers, even in the software industry.\",{\"_201\":741,\"_742\":1693,\"_738\":1694},{\"_744\":745},[1695],{\"_201\":748,\"_748\":1696},\"Elsewhere, Berry writes that home offices should not be considered workplaces under OSHA guidelines, and employees should not be entitled to overtime protections while working from such locations.\",{\"_201\":741,\"_742\":1698,\"_738\":1699},{\"_744\":745},[1700,1702,1708],{\"_201\":748,\"_748\":1701},\"Finally, Project 2025 seeks to reverse changes to the \\\"overtime threshold\\\" implemented by President Joe Biden's administration. Earlier in 2024 the president \",{\"_201\":748,\"_1357\":1703,\"_748\":1707},[1704],{\"_201\":377,\"_742\":1705},{\"_5\":1706,\"_1362\":1363,\"_1364\":-5,\"_1365\":-5},\"https://www.cbsnews.com/news/biden-labor-department-overtime-pay-expansion-who-qualifies-cbs-news-explains/#:~:text=About%204.3%20million%20U.S.%20workers,rule%20from%20the%20Biden%20administration.\",\"announced it\",{\"_201\":748,\"_748\":1709},\" would raise the income threshold for non-exempt salaried workers to be eligible for overtime. It was raised to include workers making up to $58.6k annually, up from $35.5k under the previous administration. About 4.3 million Americans benefitted from this expansion. This expanded range band covers many junior positions in the video game industry.\",{\"_201\":741,\"_742\":1711,\"_738\":1712},{\"_744\":745},[1713],{\"_201\":748,\"_748\":1714},\"Berry states that the threshold under the previous administration was \\\"high enough\\\" to cover \\\"line workers in lower-cost regions,\\\" an eyebrow-raising implication that only certain types of workers deserve overtime protections.\",{\"_201\":741,\"_742\":1716,\"_738\":1717},{\"_744\":745},[1718],{\"_201\":748,\"_748\":1719},\"Take-home pay for working overtime could also be reduced under Project 2025. Berry advocates that Congress should clarify that the 'regular rate' for overtime pay is based on the salary paid rather than all benefits provided.\\\" In other words, if your overtime pay was calculated as 1.5 times your total pay including benefits, you would now only receive 1.5 times your base salary.\",{\"_201\":741,\"_742\":1721,\"_738\":1722},{\"_744\":745},[1723,1725,1731],{\"_201\":748,\"_748\":1724},\"Project 2025 proponents may point out these changes would be counterbalanced by proposals that would expand accumulation of paid time off based on overtime. This again does not account for the physical and mental strain that \",{\"_201\":748,\"_1357\":1726,\"_748\":1730},[1727],{\"_201\":377,\"_742\":1728},{\"_5\":1729,\"_1362\":1363,\"_1364\":-5,\"_1365\":-5},\"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6617405/\",\"overtime can exert on the human body\",{\"_201\":748,\"_748\":1566},{\"_201\":741,\"_742\":1733,\"_738\":1734},{\"_744\":745},[1735],{\"_201\":748,\"_748\":1736},\"It isn't unreasonable to expect that if the costs of implementing crunch are lowered, more American employers would gladly push for employees to work more and more hours per week.\",{\"_201\":1336,\"_742\":1738,\"_738\":1739},{\"_744\":745,\"_1410\":1101},[1740],{\"_201\":748,\"_748\":1741},\"Project 2025 is an attack on the video game industry\",{\"_201\":741,\"_742\":1743,\"_738\":1744},{\"_744\":745},[1745],{\"_201\":748,\"_748\":1746},\"A deeper examination of Project 2025's impact on the game industry would need to explore how it brutalizes the civil rights of undocumented immigrants while slashing immigration rates for workers on visas. It would also have to account for how proposed changes to tax law would increase taxes on workers to subsidize cuts to corporate tax rates.\",{\"_201\":741,\"_742\":1748,\"_738\":1749},{\"_744\":745},[1750,1752,1758],{\"_201\":748,\"_748\":1751},\"But to quote political reporter Dave Wasserman, \\\"\",{\"_201\":748,\"_1357\":1753,\"_748\":1757},[1754],{\"_201\":377,\"_742\":1755},{\"_5\":1756,\"_1362\":1363,\"_1364\":-5,\"_1365\":-5},\"https://x.com/Redistrict/status/1554639811595669505\",\"I've seen enough\",{\"_201\":748,\"_748\":1759},\".\\\" The Heritage Foundation's ambitious plan for a possible Trump Administration is nothing less than an all-out assault on workers of all stripes, and particularly harmful for the creative and inclusive community that makes game development a joyful vocation.\",{\"_201\":741,\"_742\":1761,\"_738\":1762},{\"_744\":745},[1763],{\"_201\":748,\"_748\":1764},\"I call out the word \\\"joyful\\\" here because joy is a fundamental element of the art and business of making video games. In one way or another, joy is what we offer players. We create that joy through creativity and collaboration, higher-order skills that suffer when one fears for their civil rights, their health, or their life.\",{\"_201\":741,\"_742\":1766,\"_738\":1767},{\"_744\":745},[1768,1770,1774],{\"_201\":748,\"_748\":1769},\"The threats of Project 2025 to the well-being of Americans everywhere should be front-and-center in readers' minds, but it's also worth noting how \",{\"_201\":748,\"_1357\":1771,\"_748\":1773},[1772],{\"_201\":1453},\"joyless\",{\"_201\":748,\"_748\":1775},\" its authors are. The way these people write, you realize they know nothing about the relief of embracing your gender identity or sexuality, the sense of comfort that comes with being in safe spaces at work or out in the community, or the satisfaction of rest that follows a hard 40 hours of work.\",{\"_201\":741,\"_742\":1777,\"_738\":1778},{\"_744\":745},[1779],{\"_201\":748,\"_748\":1780},\"This document is written by miserable people who are upset that Americans have many ways to find happiness and satisfaction. They seem to be fueled by the same self-hatred powering reactionary campaigns targeting game developers and other artistic communities that have reared their heads since Gamergate in 2014. I half-expected to turn the page and read complaints that \\\"Disney's woke agenda ruined Star Wars.\\\" That's how bitter and awful it is!\",{\"_201\":741,\"_742\":1782,\"_738\":1783},{\"_744\":745},[1784],{\"_201\":748,\"_748\":1785},\"It's inevitable that the authors of Project 2025 would promote policies so harmful to developers and players alike. The only question remaining is if they will have the opportunity to implement them.\",{\"_201\":741,\"_742\":1787,\"_738\":1788},{\"_744\":745},[1789],{\"_201\":748,\"_1357\":1790,\"_748\":1792},[1791],{\"_201\":1453},\"GDC and Game Developer are sibling organizations under Informa.\",\"The Heritage Foundation's manifesto for the possible next administration could do great harm to many, including large portions of the game development community.\",\"body\",\"callToAction\",{\"_748\":278,\"_170\":1797},\"/business/how-will-project-2025-impact-game-developers-\",{},\"2024-07-18T16:42:13.000Z\",{\"_789\":140,\"_790\":1801},[],{\"_201\":1261,\"_1262\":1803,\"_1301\":1829},{\"_225\":245,\"_1265\":551,\"_383\":1266,\"_769\":1804,\"_1297\":1298,\"_1299\":1298,\"_1300\":-7},[1805,1813,1821],{\"_201\":1269,\"_1262\":1806},{\"_371\":372,\"_383\":384,\"_352\":1807,\"_358\":779,\"_360\":779,\"_363\":780,\"_365\":780,\"_781\":1808,\"_366\":783,\"_368\":272,\"_369\":320,\"_370\":321,\"_373\":1809,\"_381\":382,\"_787\":1811},{\"_354\":773,\"_356\":774},{},[1810],{\"_168\":376,\"_377\":378,\"_379\":380},{\"_789\":140,\"_790\":1812},[],{\"_201\":1269,\"_1262\":1814},{\"_371\":372,\"_383\":384,\"_352\":1815,\"_358\":822,\"_360\":822,\"_363\":823,\"_365\":823,\"_781\":1816,\"_366\":825,\"_368\":272,\"_369\":332,\"_370\":333,\"_373\":1817,\"_381\":827,\"_787\":1819},{\"_354\":818,\"_356\":819},{},[1818],{\"_168\":376,\"_377\":378,\"_379\":380},{\"_789\":140,\"_790\":1820},[],{\"_201\":1269,\"_1262\":1822},{\"_371\":372,\"_383\":384,\"_352\":1823,\"_358\":836,\"_360\":836,\"_363\":837,\"_365\":837,\"_781\":1824,\"_366\":839,\"_368\":272,\"_369\":320,\"_370\":321,\"_373\":1825,\"_381\":841,\"_787\":1827},{\"_354\":832,\"_356\":833},{},[1826],{\"_168\":376,\"_377\":378,\"_379\":380},{\"_789\":140,\"_790\":1828},[],{\"_1303\":140},{\"_201\":1831,\"_1262\":1832},\"module_link_list\",{\"_1833\":1834,\"_1835\":1836,\"_1837\":1838,\"_1839\":272,\"_1840\":1841,\"_538\":140,\"_1846\":1847},\"listOption\",\"Dynamic\",\"listTitle\",\"Latest Podcasts\",\"icon\",\"Microphone\",\"externalFeed\",\"ctaButton\",{\"_1842\":1843,\"_1844\":1845},\"ctaButtonLink\",\"/keyword/game-developer-podcast\",\"ctaButtonText\",\"See all\",\"articles\",[1848,1858,1862,1866],{\"_371\":1849,\"_225\":1850,\"_170\":1851,\"_1852\":140,\"_1853\":1854,\"_1855\":1856,\"_1857\":272,\"_368\":272},\"Podcast\",\"Snapping Your Career into Place with Ben Brode: Game Developer Podcast Ep. 48\",\"/design/snapping-your-career-into-place-with-ben-brode-game-developer-podcast-ep-48\",\"isExternalLink\",\"readTime\",0,\"publishedDate\",\"2024-11-27T22:49:26.000Z\",\"eventDate\",{\"_371\":1849,\"_225\":1859,\"_170\":1860,\"_1852\":140,\"_1853\":1854,\"_1855\":1861,\"_1857\":272,\"_368\":272},\"Preserving the Past With Charles Cecil: Game Developer Podcast Ep. 46\",\"/design/preserving-the-past-with-charles-cecil-game-developer-podcast-ep-46\",\"2024-08-29T13:00:00.000Z\",{\"_371\":1849,\"_225\":1863,\"_170\":1864,\"_1852\":140,\"_1853\":1854,\"_1855\":1865,\"_1857\":272,\"_368\":272},\"On the unionization frontlines with Autumn Mitchell, Emma Kinema and Chris Lusco: Game Developer Podcast Ep. 45\",\"/production/on-the-unionization-frontlines-with-autumn-mitchell-emma-kinema-and-chris-lusco-game-developer-podcast-ep-45\",\"2024-07-26T15:32:50.000Z\",{\"_371\":1849,\"_225\":1867,\"_170\":1868,\"_1852\":140,\"_1853\":1854,\"_1855\":1869,\"_1857\":272,\"_368\":272},\"Behind the GDC scenes with Beth Elderkin and Sam Warnke: Game Developer Podcast ep. 43\",\"/business/behind-the-gdc-scenes-with-beth-elderkin-and-sam-warnke-game-developer-podcast-ep-43\",\"2024-05-15T18:23:55.000Z\",{\"_201\":1261,\"_1262\":1871,\"_1301\":1920},{\"_225\":1872,\"_1265\":272,\"_383\":1873,\"_769\":1874,\"_1297\":1298,\"_1299\":1298,\"_1300\":-7},\"Featured Blogs\",\"default\",[1875,1891,1904],{\"_201\":1269,\"_1262\":1876},{\"_371\":372,\"_383\":1877,\"_352\":1878,\"_358\":1881,\"_360\":1881,\"_363\":1882,\"_365\":1882,\"_781\":1883,\"_366\":783,\"_368\":272,\"_369\":326,\"_370\":289,\"_373\":1884,\"_381\":382,\"_787\":1889},\"card-horizontal\",{\"_354\":1879,\"_356\":1880},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt3c36f15d8a0391b5/67b8b458149b7e5b340e085c/sam_lake_lucas_pope.png\",\"headshots of Sam Lake and Lucas Pope\",\"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\",{},[1885],{\"_168\":1886,\"_377\":1887,\"_379\":1888},\"Beth Elderkin\",\"/author/beth-elderkin\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta4a6afc5bf4300eb/650f170cde47dca7a8f21ba2/source_small.jpeg\",{\"_789\":140,\"_790\":1890},[],{\"_201\":1269,\"_1262\":1892},{\"_371\":372,\"_383\":1877,\"_352\":1893,\"_358\":1896,\"_360\":1897,\"_363\":1898,\"_365\":1898,\"_781\":1899,\"_366\":866,\"_368\":272,\"_369\":329,\"_370\":330,\"_373\":1900,\"_381\":1101,\"_787\":1902},{\"_354\":1894,\"_356\":1895},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blta66f63c40c6e0180/67a53d380bf90576ec058a17/esa_accessibility_blog_image.png\",\"ESA logo and company logos\",\"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\",{},[1901],{\"_168\":1886,\"_377\":1887,\"_379\":1888},{\"_789\":140,\"_790\":1903},[],{\"_201\":1269,\"_1262\":1905},{\"_371\":372,\"_383\":1877,\"_352\":1906,\"_358\":1909,\"_360\":1909,\"_363\":1910,\"_365\":1910,\"_781\":1911,\"_366\":1912,\"_368\":272,\"_369\":329,\"_370\":330,\"_373\":1913,\"_381\":813,\"_787\":1918},{\"_354\":1907,\"_356\":1908},\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt7e60d18f3d2d0abe/67acfab264f859a2e505f3a8/ss_66a8bc13bf868d0e2a76e4d797e6408c271065d7.1920x1080.jpg\",\"Characters from Space Marine 2\",\"Creating seamless multiplayer experiences for games like Space Marine 2\",\"/production/creating-seamless-multiplayer-experiences-for-games-like-space-marine-2\",{},\"Feb 5, 2025\",[1914],{\"_168\":1915,\"_377\":1916,\"_379\":1917},\"Dmitri Brevdo\",\"/author/dmitri-brevdo\",\"https://eu-images.contentstack.com/v3/assets/blt740a130ae3c5d529/blt67b877227d9e0551/67acfa5567589e7bad2c60a4/Dmitri_Brevdo.jpg\",{\"_789\":140,\"_790\":1919},[],{\"_1303\":140},\"newsletterSignUpPromo\",{\"_225\":1923,\"_687\":272,\"_1311\":1924,\"_1312\":1313,\"_383\":386,\"_1315\":1316},\"Daily news, dev blogs, and stories from Game Developer straight to your inbox\",\"blt3618a0e49d9eaf7a\",\"metadata\",{\"_1306\":1927,\"_1928\":1929},\"blt8dbd82aa815d8779\",\"aid\",\"603750\",\"schema\",[1932],{\"_1933\":1934,\"_1935\":1936,\"_1937\":1938},\"@context\",\"https://schema.org\",\"@type\",\"ProfilePage\",\"mainEntity\",{\"_1935\":1939,\"_168\":376,\"_220\":749,\"_534\":380,\"_1940\":735,\"_1941\":1942},\"Person\",\"disambiguatingDescription\",\"sameAs\",[757,757],\"seo\",{\"_1945\":1946,\"_1947\":1948,\"_1949\":1950,\"_1951\":140,\"_1952\":1953,\"_13\":14},\"canonicalUrl\",\"https://www.gamedeveloper.com/author/bryant-francis\",\"metaDescription\",\"Explore the latest news and expert commentary by Bryant Francis, brought to you by the Contributor of Game Developer\",\"metaTitle\",\"Bryant Francis | Game Developer\",\"noIndex\",\"imageUrl\",\"https://www.gamedeveloper.com/assets/gamedeveloper-CAvl2PCb.ico\",\"weatherWidgetConfig\",\"actionData\",\"errors\"]\n");</script><!--$?--><template id="B:1"></template><!--/$--></div><script>$RC=function(b,c,e){c=document.getElementById(c);c.parentNode.removeChild(c);var a=document.getElementById(b);if(a){b=a.previousSibling;if(e)b.data="$!",a.setAttribute("data-dgst",e);else{e=b.parentNode;a=b.nextSibling;var f=0;do{if(a&&8===a.nodeType){var d=a.data;if("/$"===d)if(0===f)break;else f--;else"$"!==d&&"$?"!==d&&"$!"!==d||f++}d=a.nextSibling;e.removeChild(a);a=d}while(a);for(;c.firstChild;)e.insertBefore(c.firstChild,a);b.data="$"}b._reactRetry&&b._reactRetry()}};$RC("B:0","S:0")</script><div hidden id="S:1"><script>window.__reactRouterContext.streamController.close();</script></div><script>$RC("B:1","S:1")</script></body></html>