[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:game-dev\u002Fgame-performance-optimization":4,"config":127},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":40,"samples":41},"game-dev","Game Development","","game-performance-optimization","Game Performance Optimization","en",75,600,[14,15,16],"junior","mid","senior",[18,21,24,27,30,31,34,37],{"key":19,"name":20,"count":11},"game-ai-pathfinding","Game Ai Pathfinding",{"key":22,"name":23,"count":11},"game-input-audio","Game Input Audio",{"key":25,"name":26,"count":11},"game-loop-fundamentals","Game Loop Fundamentals",{"key":28,"name":29,"count":11},"game-networking-multiplayer","Game Networking Multiplayer",{"key":8,"name":9,"count":11},{"key":32,"name":33,"count":11},"game-physics-collision","Game Physics Collision",{"key":35,"name":36,"count":11},"game-rendering-pipeline","Game Rendering Pipeline",{"key":38,"name":39,"count":11},"game-state-management","Game State Management",[],[42,60,74,87,100,113],{"id":43,"topic":9,"difficulty":44,"body":45,"options":46,"correct_key":54,"explanation":59},"019f6b28-1756-7414-a34d-394bfbd7f98e",1,"What is a 'frame budget' in game development?",[47,50,53,56],{"key":48,"text":49},"a","The total number of frames a game can render before crashing",{"key":51,"text":52},"b","The maximum file size allowed for a single frame's assets",{"key":54,"text":55},"c","The maximum time allowed to produce one frame at the target frame rate",{"key":57,"text":58},"d","The number of draw calls permitted per second by the platform","Frame budget is the time window available to produce a single frame at a chosen target frame rate; if the work for a frame exceeds that window, the frame rate drops or stutters.",{"id":61,"topic":9,"difficulty":62,"body":63,"options":64,"correct_key":48,"explanation":73},"019f6b28-1756-7d3b-afd8-4efffea6394a",2,"Which statement best distinguishes a CPU-bound frame from a GPU-bound frame?",[65,67,69,71],{"key":48,"text":66},"CPU-bound means the CPU work finishes later than the GPU; GPU-bound is the opposite",{"key":51,"text":68},"CPU-bound frames only occur on mobile devices, GPU-bound only on PC",{"key":54,"text":70},"CPU-bound means the game uses more disk storage than GPU-bound frames",{"key":57,"text":72},"GPU-bound frames always run faster than CPU-bound frames regardless of workload","A frame is CPU-bound when the bottleneck is game logic\u002Fsimulation\u002Fsubmission work on the CPU side finishing later than the GPU could consume it; it's GPU-bound when the graphics hardware is the slower side.",{"id":75,"topic":9,"difficulty":62,"body":76,"options":77,"correct_key":57,"explanation":86},"019f6b28-1757-7592-99b5-f1841497c3d1","A game spawns and destroys a new bullet object every time the player fires, dozens of times per second in heavy combat. Frame times spike during these moments. What is the most appropriate general fix?",[78,80,82,84],{"key":48,"text":79},"Reduce the player's fire rate so fewer bullets exist at once",{"key":51,"text":81},"Move all bullet creation to a background thread with no other change",{"key":54,"text":83},"Increase the target frame rate so spikes are less noticeable",{"key":57,"text":85},"Reuse a fixed pool of pre-created bullets instead of creating and destroying them","This is the classic object pooling case: frequent creation\u002Fdestruction of short-lived objects has real cost (allocation, initialization, teardown). Pre-allocating a pool and reusing instances removes that repeated cost from the hot path.",{"id":88,"topic":9,"difficulty":44,"body":89,"options":90,"correct_key":51,"explanation":99},"019f6b28-1757-7e12-a817-c4ca9f73ac43","Conceptually, what is 'garbage collection' in the context of frame rate concerns?",[91,93,95,97],{"key":48,"text":92},"A manual process where the developer deletes unused assets from disk before shipping",{"key":51,"text":94},"An automatic process that reclaims unused memory and can pause execution",{"key":54,"text":96},"A rendering technique that removes objects outside the camera's view",{"key":57,"text":98},"A network protocol step that clears unused player connections","Garbage collection automatically identifies and frees memory that is no longer reachable. Because it runs at unpredictable times and can briefly pause or compete with the main thread, it is a common cause of frame-time spikes if the game allocates heavily.",{"id":101,"topic":9,"difficulty":62,"body":102,"options":103,"correct_key":54,"explanation":112},"019f6b28-1758-75b6-aed1-e819290c062b","A game targets 60 frames per second. Approximately how many milliseconds does each frame have to fit within?",[104,106,108,110],{"key":48,"text":105},"33.3 ms",{"key":51,"text":107},"8.3 ms",{"key":54,"text":109},"16.7 ms",{"key":57,"text":111},"20 ms","1000ms \u002F 60 ≈ 16.7ms per frame. Any consistent overrun of this budget causes the frame rate to drop below 60.",{"id":114,"topic":9,"difficulty":115,"body":116,"options":117,"correct_key":57,"explanation":126},"019f6b28-1758-7dec-bf82-92342b82e25b",3,"A mobile game loads all level textures at full resolution into memory at once. On lower-end devices, the OS starts terminating the app or textures visibly corrupt during play. What is the most likely underlying issue?",[118,120,122,124],{"key":48,"text":119},"The frame budget for 60fps was miscalculated",{"key":51,"text":121},"The CPU is spending too much time on physics broad-phase checks",{"key":54,"text":123},"The garbage collector is running too frequently",{"key":57,"text":125},"The game's memory usage exceeds the device's available memory budget","Mobile and console platforms have a hard, fixed memory ceiling. Loading everything at full resolution regardless of device capability can exceed that budget, leading to OS-level termination or emergency asset downgrades — a classic memory budgeting failure, not a frame-timing one.",{"fields":128,"seniorities":311,"interview_shapes":312,"locales":317,"oauth":319,"question_count":322,"coach_enabled":323,"jd_match_enabled":323},[129,154,174,190,214,227,246,265,287,294,300,305],{"key":130,"name_tr":131,"name_en":131,"sort":44,"specializations":132},"backend","Backend",[133,136,139,142,145,148,151],{"key":134,"name":135,"field":130},"general","Genel",{"key":137,"name":138,"field":130},"go","Go",{"key":140,"name":141,"field":130},"python","Python",{"key":143,"name":144,"field":130},"java","Java",{"key":146,"name":147,"field":130},"csharp","C#\u002F.NET",{"key":149,"name":150,"field":130},"nodejs","Node.js",{"key":152,"name":153,"field":130},"php","PHP",{"key":155,"name_tr":156,"name_en":156,"sort":62,"specializations":157},"frontend","Frontend",[158,159,162,165,168,171],{"key":134,"name":135,"field":155},{"key":160,"name":161,"field":155},"javascript","JavaScript",{"key":163,"name":164,"field":155},"typescript","TypeScript",{"key":166,"name":167,"field":155},"react","React",{"key":169,"name":170,"field":155},"vue","Vue",{"key":172,"name":173,"field":155},"angular","Angular",{"key":175,"name_tr":176,"name_en":176,"sort":115,"specializations":177},"fullstack","Fullstack",[178,179,180,181,182,183,184,185,186,187,188,189],{"key":134,"name":135,"field":175},{"key":137,"name":138,"field":130},{"key":140,"name":141,"field":130},{"key":143,"name":144,"field":130},{"key":146,"name":147,"field":130},{"key":149,"name":150,"field":130},{"key":152,"name":153,"field":130},{"key":160,"name":161,"field":155},{"key":163,"name":164,"field":155},{"key":166,"name":167,"field":155},{"key":169,"name":170,"field":155},{"key":172,"name":173,"field":155},{"key":191,"name_tr":192,"name_en":192,"sort":193,"specializations":194},"devops-cloud","DevOps \u002F Cloud",4,[195,196,199,202,205,208,211],{"key":134,"name":135,"field":191},{"key":197,"name":198,"field":191},"aws","AWS",{"key":200,"name":201,"field":191},"gcp","GCP",{"key":203,"name":204,"field":191},"azure","Azure",{"key":206,"name":207,"field":191},"kubernetes","Kubernetes",{"key":209,"name":210,"field":191},"terraform","Terraform",{"key":212,"name":213,"field":191},"linux","Linux",{"key":215,"name_tr":216,"name_en":216,"sort":217,"specializations":218},"ai-engineer","AI Engineer",5,[219,220,221,224],{"key":134,"name":135,"field":215},{"key":140,"name":141,"field":215},{"key":222,"name":223,"field":215},"llm-rag","LLM\u002FRAG",{"key":225,"name":226,"field":215},"mlops","MLOps",{"key":228,"name_tr":229,"name_en":230,"sort":231,"specializations":232},"database","Veritabanı","Database",6,[233,234,237,240,243],{"key":134,"name":135,"field":228},{"key":235,"name":236,"field":228},"postgresql","PostgreSQL",{"key":238,"name":239,"field":228},"mysql","MySQL",{"key":241,"name":242,"field":228},"mongodb","MongoDB",{"key":244,"name":245,"field":228},"redis","Redis",{"key":247,"name_tr":248,"name_en":249,"sort":250,"specializations":251},"mobile","Mobil","Mobile",7,[252,253,256,259,262],{"key":134,"name":135,"field":247},{"key":254,"name":255,"field":247},"ios-swift","iOS (Swift)",{"key":257,"name":258,"field":247},"android-kotlin","Android (Kotlin)",{"key":260,"name":261,"field":247},"flutter","Flutter",{"key":263,"name":264,"field":247},"react-native","React Native",{"key":266,"name_tr":267,"name_en":268,"sort":269,"specializations":270},"security","Güvenlik","Security",8,[271,272,275,278,281,284],{"key":134,"name":135,"field":266},{"key":273,"name":274,"field":266},"appsec","AppSec",{"key":276,"name":277,"field":266},"offensive-pentest","Offensive \u002F Pentest",{"key":279,"name":280,"field":266},"cloud-security","Cloud Security",{"key":282,"name":283,"field":266},"devsecops","DevSecOps",{"key":285,"name":286,"field":266},"blue-team-incident","Blue Team \u002F Incident",{"key":288,"name_tr":289,"name_en":290,"sort":291,"specializations":292},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[293],{"key":134,"name":135,"field":288},{"key":295,"name_tr":296,"name_en":296,"sort":297,"specializations":298},"data-engineer","Data Engineer",10,[299],{"key":134,"name":135,"field":295},{"key":5,"name_tr":301,"name_en":6,"sort":302,"specializations":303},"Oyun Geliştirme",11,[304],{"key":134,"name":135,"field":5},{"key":306,"name_tr":307,"name_en":307,"sort":308,"specializations":309},"ml-engineer","ML Engineer",12,[310],{"key":134,"name":135,"field":306},[14,15,16],{"junior":313,"mid":315,"senior":316},{"questions":314,"median_sec":3},20,{"questions":314,"median_sec":3},{"questions":314,"median_sec":3},[318,10],"tr",[320,321],"google","github",21750,true]