[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:game-dev\u002Fgame-ai-pathfinding":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-ai-pathfinding","Game Ai Pathfinding","en",75,600,[14,15,16],"junior","mid","senior",[18,19,22,25,28,31,34,37],{"key":8,"name":9,"count":11},{"key":20,"name":21,"count":11},"game-input-audio","Game Input Audio",{"key":23,"name":24,"count":11},"game-loop-fundamentals","Game Loop Fundamentals",{"key":26,"name":27,"count":11},"game-networking-multiplayer","Game Networking Multiplayer",{"key":29,"name":30,"count":11},"game-performance-optimization","Game Performance Optimization",{"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,73,87,100,113],{"id":43,"topic":9,"difficulty":44,"body":45,"options":46,"correct_key":51,"explanation":59},"019f6b28-16e6-733e-a3e2-265985e6ff21",1,"What is a state machine in the context of NPC AI?",[47,50,53,56],{"key":48,"text":49},"a","A system that stores the exact 3D coordinates of every object in the game world",{"key":51,"text":52},"b","The NPC is in one fixed state at a time, moving between states via defined conditions",{"key":54,"text":55},"c","A rendering technique that determines how many polygons an NPC model uses",{"key":57,"text":58},"d","A network protocol used to synchronize NPC positions between server and clients","A state machine models an NPC as being in exactly one of a fixed set of named states (e.g., Idle, Patrol, Chase) at a time, moving between them via defined transition conditions. It has nothing to do with storing world coordinates (a), polygon\u002Frendering detail (c), or network synchronization (d) — those are separate systems entirely.",{"id":61,"topic":9,"difficulty":44,"body":62,"options":63,"correct_key":48,"explanation":72},"019f6b28-16ec-7498-8bc5-50df5e87721c","Which of these is a simple, valid example of state-machine-based NPC logic?",[64,66,68,70],{"key":48,"text":65},"Patrol becomes Chase on player detection, reverts once they leave",{"key":51,"text":67},"The NPC's health bar color changes gradually as damage accumulates",{"key":54,"text":69},"The NPC model's texture resolution changes based on distance from the camera",{"key":57,"text":71},"The NPC's animation frame rate is capped to match the game's fixed timestep","This is a textbook two-state machine: a named state (Patrol) with a condition (player detected) that transitions to another named state (Chase), and a condition to transition back. The other options describe gradual visual effects (b), level-of-detail rendering (c), and animation timing (d) — none involve discrete named behavior states with transitions.",{"id":74,"topic":9,"difficulty":75,"body":76,"options":77,"correct_key":57,"explanation":86},"019f6b28-16ed-74f0-bc4d-7ff50c7921f7",2,"What is the main practical drawback of a state machine as more states and transitions are added?",[78,80,82,84],{"key":48,"text":79},"It cannot represent more than two states at once",{"key":51,"text":81},"It requires a network connection to evaluate transitions",{"key":54,"text":83},"It always runs slower than any other decision-making approach, regardless of state count",{"key":57,"text":85},"Transitions grow fast as states multiply, making the logic hard to read and extend","As states multiply, the transitions between them tend to grow combinatorially, so the web of conditions becomes tangled and error-prone to extend. State machines aren't limited to two states (a), don't need networking to evaluate (b), and aren't inherently slower — the problem is maintainability, not raw runtime cost (c).",{"id":88,"topic":9,"difficulty":75,"body":89,"options":90,"correct_key":54,"explanation":99},"019f6b28-16ee-704a-a3f0-3cb8ac666acd","A designer wants NPC logic where: Idle -> hears a noise -> Investigate -> sees no threat -> back to Idle; sees the player -> Attack. This is best described as what kind of logic structure?",[91,93,95,97],{"key":48,"text":92},"A tree-based decision structure with priority branches",{"key":51,"text":94},"A physics simulation with rigid body constraints",{"key":54,"text":96},"A finite set of named states linked by transitions",{"key":57,"text":98},"A pure random number generator choosing actions each frame","Idle, Investigate, and Attack are discrete named states, and each arrow is a condition-driven transition — the definition of a state machine. It is not described as a prioritized tree of behaviors (a), has nothing to do with physics constraints (b), and is fully deterministic given the conditions, not random (d).",{"id":101,"topic":9,"difficulty":75,"body":102,"options":103,"correct_key":51,"explanation":112},"019f6b28-16ee-79ed-ab0e-f57b1315b690","What does a tree-based decision structure (an alternative to a plain state machine) typically let designers do more easily?",[104,106,108,110],{"key":48,"text":105},"Skip the need for any conditions when deciding NPC actions",{"key":51,"text":107},"Reuse sub-behaviors and reorder priorities easily",{"key":54,"text":109},"Guarantee the NPC never changes behavior once the game starts",{"key":57,"text":111},"Store NPC position data more compactly in memory","A tree-based structure organizes behaviors hierarchically by priority, so designers can reuse sub-trees and reorder branches without touching a web of state-to-state transitions. It still needs conditions (a), doesn't freeze NPC behavior (c), and isn't about memory layout of positions (d).",{"id":114,"topic":9,"difficulty":44,"body":115,"options":116,"correct_key":57,"explanation":125},"019f6b28-16ef-7536-8dff-e8035da40ded","Pathfinding, at its core, is the process of...",[117,119,121,123],{"key":48,"text":118},"determining how many textures to load for a level",{"key":51,"text":120},"deciding which NPC animation clip should play next",{"key":54,"text":122},"calculating the exact frame rate the game should target",{"key":57,"text":124},"finding the lowest-cost route between two points","Pathfinding is fundamentally about computing a valid, usually lowest-cost route from a start point to a goal while respecting obstacles. It is unrelated to texture streaming (a), animation selection (b), or frame-rate targets (c).",{"fields":127,"seniorities":314,"interview_shapes":315,"locales":320,"oauth":322,"question_count":325,"coach_enabled":326,"jd_match_enabled":326},[128,153,173,190,214,227,246,265,287,297,303,308],{"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":75,"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,294],{"key":133,"name":134,"field":288},{"key":295,"name":296,"field":288},"test-automation","Test Automation",{"key":298,"name_tr":299,"name_en":299,"sort":300,"specializations":301},"data-engineer","Data Engineer",10,[302],{"key":133,"name":134,"field":298},{"key":5,"name_tr":304,"name_en":6,"sort":305,"specializations":306},"Oyun Geliştirme",11,[307],{"key":133,"name":134,"field":5},{"key":309,"name_tr":310,"name_en":310,"sort":311,"specializations":312},"ml-engineer","ML Engineer",12,[313],{"key":133,"name":134,"field":309},[14,15,16],{"junior":316,"mid":318,"senior":319},{"questions":317,"median_sec":3},20,{"questions":317,"median_sec":3},{"questions":317,"median_sec":3},[321,10],"tr",[323,324],"google","github",22200,true]