[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:game-dev\u002Fgame-physics-collision":4,"config":126},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-physics-collision","Game Physics Collision","en",75,600,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,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":31,"name":32,"count":11},"game-performance-optimization","Game Performance Optimization",{"key":8,"name":9,"count":11},{"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":57,"explanation":59},"019f6b28-1767-768b-ac55-efe8ad4dff09",1,"In game engines, what is the basic purpose of collision detection?",[47,50,53,56],{"key":48,"text":49},"a","To calculate the total memory used by all active objects each frame",{"key":51,"text":52},"b","To decide which objects should be loaded from disk before a level starts",{"key":54,"text":55},"c","To render objects with correct lighting and shadows based on their position",{"key":57,"text":58},"d","To determine when two or more objects overlap or come into contact","Collision detection's job is purely to determine overlap or contact between objects; what happens afterward (bouncing, taking damage, opening a door) is handled by separate response logic. (a) is memory management, (b) is asset streaming, (c) is rendering — none of these are what collision detection itself does.",{"id":61,"topic":9,"difficulty":62,"body":63,"options":64,"correct_key":48,"explanation":73},"019f6b28-1767-7f17-b949-16dd78d5da91",2,"Checking every object's exact shape against every other object's exact shape every frame is accurate but often too slow at scale. What is the common two-stage strategy engines use to keep this affordable?",[65,67,69,71],{"key":48,"text":66},"Eliminate non-touching pairs with a cheap test first, then run the precise test only on survivors",{"key":51,"text":68},"Skip collision checks entirely for any object moving slower than a fixed speed threshold",{"key":54,"text":70},"Run the exact-shape check once at level load and reuse the cached result for the rest of the level",{"key":57,"text":72},"Reduce the frame rate whenever the number of objects on screen increases","This is the cheap-then-precise two-stage split: a rough approximate test culls most pairs quickly, and the expensive precise test only runs on the small number of pairs that survive it. (b) is wrong because speed isn't the relevant criterion, proximity is. (c) is wrong since object positions change every frame. (d) degrades the game without solving the underlying cost.",{"id":75,"topic":9,"difficulty":62,"body":76,"options":77,"correct_key":54,"explanation":86},"019f6b28-1768-77f8-b95b-56de9fd6b66c","A puzzle game has 200 movable objects on a single screen. A programmer implements collision detection by comparing every object against every other object each frame, and performance drops sharply as more objects are added. What is the root cause?",[78,80,82,84],{"key":48,"text":79},"The rendering pipeline redraws every object twice whenever collision detection is enabled",{"key":51,"text":81},"Each object's collider is being rebuilt from its mesh from scratch every single frame",{"key":54,"text":83},"Pairwise comparisons grow roughly with the square of the object count",{"key":57,"text":85},"The physics engine is running on a separate thread that is being starved of CPU time by rendering","A naive all-pairs check is O(n^2): at n=200 there are about 19,900 pairs; at n=400 there are about 79,800 — roughly 4x the work for 2x the objects. This growth is exactly why spatial partitioning matters. (a), (b), and (d) sound plausible but are not the described cause.",{"id":88,"topic":9,"difficulty":44,"body":89,"options":90,"correct_key":51,"explanation":99},"019f6b28-1769-733c-944e-5d799862b9fd","What is the basic idea behind dividing the game world into regions (such as a grid) for collision purposes?",[91,93,95,97],{"key":48,"text":92},"It lets the renderer draw distant regions with lower-detail textures",{"key":51,"text":94},"It groups nearby objects so comparisons stay local",{"key":54,"text":96},"It automatically merges overlapping objects into a single combined object",{"key":57,"text":98},"It lets the audio engine decide which region's sounds should be muted","Spatial partitioning groups objects by location so comparisons are limited to nearby regions instead of the whole object set, directly reducing the pairwise-comparison cost seen in the previous scenario. (a) describes level-of-detail rendering, (c) is not what partitioning does, (d) is audio culling.",{"id":101,"topic":9,"difficulty":62,"body":102,"options":103,"correct_key":54,"explanation":112},"019f6b28-1769-79b7-9252-fa25506c740b","Two objects sit at opposite corners of a very large open-world map, far enough apart that they can never realistically touch. In a naive collision system they are still compared every frame. How would a grid-based partitioning scheme typically avoid this wasted work?",[104,106,108,110],{"key":48,"text":105},"By deleting one of the two objects from memory once the distance exceeds a threshold",{"key":51,"text":107},"By merging both objects into the same physics body regardless of distance",{"key":54,"text":109},"By placing them in different, non-adjacent cells so they are never compared",{"key":57,"text":111},"By disabling collision detection entirely once the map size exceeds a certain limit","Objects only get compared to others sharing their cell (or adjacent cells); two far-apart objects land in unrelated cells and are simply never paired for a check. (a), (b), and (d) describe destructive or all-or-nothing approaches that are not how partitioning works.",{"id":114,"topic":9,"difficulty":62,"body":115,"options":116,"correct_key":57,"explanation":125},"019f6b28-176a-726e-97bc-37c3f988fb3e","For an object's collider, what is the main trade-off between using a simple shape (like a box or sphere) versus a shape that closely follows the exact visual mesh?",[117,119,121,123],{"key":48,"text":118},"Simple shapes always look identical to the visual mesh, so there is no real trade-off",{"key":51,"text":120},"Mesh-based colliders only work correctly for objects that never move",{"key":54,"text":122},"Simple shapes require more memory than exact mesh colliders because they need extra padding data",{"key":57,"text":124},"Simple shapes are cheaper to test but less precise; mesh shapes are accurate but costlier","This is the core collider trade-off: cost versus precision. Simple primitives are cheap to test mathematically but may allow small visual gaps or false contacts near corners; mesh colliders hug the visual shape closely but are far more expensive to test, especially at scale.",{"fields":127,"seniorities":311,"interview_shapes":312,"locales":317,"oauth":319,"question_count":322,"coach_enabled":323,"jd_match_enabled":323},[128,153,173,190,214,227,246,265,287,294,300,305],{"key":129,"name_tr":130,"name_en":130,"sort":44,"specializations":131},"backend","Backend",[132,135,138,141,144,147,150],{"key":133,"name":134,"field":129},"general","Genel",{"key":136,"name":137,"field":129},"go","Go",{"key":139,"name":140,"field":129},"python","Python",{"key":142,"name":143,"field":129},"java","Java",{"key":145,"name":146,"field":129},"csharp","C#\u002F.NET",{"key":148,"name":149,"field":129},"nodejs","Node.js",{"key":151,"name":152,"field":129},"php","PHP",{"key":154,"name_tr":155,"name_en":155,"sort":62,"specializations":156},"frontend","Frontend",[157,158,161,164,167,170],{"key":133,"name":134,"field":154},{"key":159,"name":160,"field":154},"javascript","JavaScript",{"key":162,"name":163,"field":154},"typescript","TypeScript",{"key":165,"name":166,"field":154},"react","React",{"key":168,"name":169,"field":154},"vue","Vue",{"key":171,"name":172,"field":154},"angular","Angular",{"key":174,"name_tr":175,"name_en":175,"sort":176,"specializations":177},"fullstack","Fullstack",3,[178,179,180,181,182,183,184,185,186,187,188,189],{"key":133,"name":134,"field":174},{"key":136,"name":137,"field":129},{"key":139,"name":140,"field":129},{"key":142,"name":143,"field":129},{"key":145,"name":146,"field":129},{"key":148,"name":149,"field":129},{"key":151,"name":152,"field":129},{"key":159,"name":160,"field":154},{"key":162,"name":163,"field":154},{"key":165,"name":166,"field":154},{"key":168,"name":169,"field":154},{"key":171,"name":172,"field":154},{"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":133,"name":134,"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":133,"name":134,"field":215},{"key":139,"name":140,"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":133,"name":134,"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":133,"name":134,"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":133,"name":134,"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":133,"name":134,"field":288},{"key":295,"name_tr":296,"name_en":296,"sort":297,"specializations":298},"data-engineer","Data Engineer",10,[299],{"key":133,"name":134,"field":295},{"key":5,"name_tr":301,"name_en":6,"sort":302,"specializations":303},"Oyun Geliştirme",11,[304],{"key":133,"name":134,"field":5},{"key":306,"name_tr":307,"name_en":307,"sort":308,"specializations":309},"ml-engineer","ML Engineer",12,[310],{"key":133,"name":134,"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]