[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:game-dev\u002Fmid":4,"config":127},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":8,"spec_key":8,"spec_name":8,"locale":9,"cell_total":10,"field_total":11,"seniorities":12,"topics":15,"specs":41,"samples":42},"game-dev","Oyun Geliştirme","mid","","tr",506,600,[13,7,14],"junior","senior",[16,20,23,26,29,32,35,38],{"key":17,"name":18,"count":19},"game-ai-pathfinding","Game Ai Pathfinding",75,{"key":21,"name":22,"count":19},"game-input-audio","Game Input Audio",{"key":24,"name":25,"count":19},"game-loop-fundamentals","Game Loop Fundamentals",{"key":27,"name":28,"count":19},"game-networking-multiplayer","Game Networking Multiplayer",{"key":30,"name":31,"count":19},"game-performance-optimization","Game Performance Optimization",{"key":33,"name":34,"count":19},"game-physics-collision","Game Physics Collision",{"key":36,"name":37,"count":19},"game-rendering-pipeline","Game Rendering Pipeline",{"key":39,"name":40,"count":19},"game-state-management","Game State Management",[],[43,61,74,87,100,113],{"id":44,"topic":18,"difficulty":45,"body":46,"options":47,"correct_key":58,"explanation":60},"019f6b28-16ed-74f0-bc4d-7ff50c7921f7",2,"Durum ve geçiş sayısı arttıkça bir state machine'in temel pratik dezavantajı nedir?",[48,51,54,57],{"key":49,"text":50},"a","Aynı anda ikiden fazla durumu temsil edemez",{"key":52,"text":53},"b","Geçişleri değerlendirmek için ağ bağlantısı gerektirir",{"key":55,"text":56},"c","Durum sayısından bağımsız olarak her zaman diğer karar mekanizmalarından daha yavaş çalışır",{"key":58,"text":59},"d","Durumlar arttıkça geçişler hızla çoğalır, mantığı okumayı ve genişletmeyi zorlaştırır","Durum sayısı arttıkça aralarındaki geçişler genelde kombinasyonel olarak büyür, böylece koşul ağı karmaşıklaşır ve genişletmesi hataya açık hale gelir. State machine ikiyle sınırlı değildir (a), değerlendirme için ağ gerekmez (b) ve doğası gereği daha yavaş değildir — sorun bakım kolaylığıdır, ham çalışma zamanı maliyeti değil (c).",{"id":62,"topic":18,"difficulty":45,"body":63,"options":64,"correct_key":55,"explanation":73},"019f6b28-16ee-704a-a3f0-3cb8ac666acd","Bir tasarımcı şu NPC mantığını istiyor: Idle -> gürültü duyar -> Investigate -> tehdit görmez -> tekrar Idle; oyuncuyu görürse -> Attack. Bu en iyi hangi tür mantık yapısıyla tanımlanır?",[65,67,69,71],{"key":49,"text":66},"Öncelik dallarına sahip ağaç-tabanlı bir karar yapısı",{"key":52,"text":68},"Katı cisim kısıtlarına sahip bir fizik simülasyonu",{"key":55,"text":70},"Geçişlerle bağlı sonlu bir isimlendirilmiş durum kümesi",{"key":58,"text":72},"Her karede eylem seçen saf bir rastgele sayı üreteci","Idle, Investigate ve Attack ayrık isimlendirilmiş durumlardır ve her ok koşula bağlı bir geçiştir — bu tam olarak state machine tanımıdır. Öncelikli davranış ağacı olarak tarif edilmemiştir (a), fizik kısıtlarıyla ilgisi yoktur (b) ve koşullar verildiğinde tamamen deterministiktir, rastgele değildir (d).",{"id":75,"topic":18,"difficulty":45,"body":76,"options":77,"correct_key":52,"explanation":86},"019f6b28-16ee-79ed-ab0e-f57b1315b690","Ağaç-tabanlı bir karar yapısı (düz bir state machine'e alternatif olarak) tasarımcılara tipik olarak neyi daha kolay yaptırır?",[78,80,82,84],{"key":49,"text":79},"NPC eylemlerine karar verirken herhangi bir koşula ihtiyaç duymamayı",{"key":52,"text":81},"Alt-davranışları kullanmayı ve öncelikleri kolayca sıralamayı",{"key":55,"text":83},"Oyun başladıktan sonra NPC'nin davranışının asla değişmeyeceğini garanti etmeyi",{"key":58,"text":85},"NPC pozisyon verisini bellekte daha kompakt saklamayı","Ağaç-tabanlı yapı davranışları önceliğe göre hiyerarşik düzenler, böylece tasarımcılar durum-durum geçiş ağına dokunmadan alt-ağaçları yeniden kullanabilir ve dalları yeniden sıralayabilir. Yine de koşullara ihtiyaç duyar (a), NPC davranışını dondurmaz (c) ve pozisyonların bellek düzeniyle ilgili değildir (d).",{"id":88,"topic":18,"difficulty":45,"body":89,"options":90,"correct_key":49,"explanation":99},"019f6b28-16ef-7dee-8e68-22aea2e012d8","Bir NPC'nin bir odanın bir tarafından diğerine, ortadaki bir duvarın etrafından dolaşarak yürümesi gerekiyor. Bu neyin temel bir örneğidir?",[91,93,95,97],{"key":49,"text":92},"Bir engelin etrafından pathfinding yapmak",{"key":52,"text":94},"Bir render draw call'u",{"key":55,"text":96},"Bir ses occlusion (engelleme) efekti",{"key":58,"text":98},"Bir save\u002Fload sistemi kontrol noktası","Hedefe ulaşmak için bir duvarın etrafından rota bulmak, en basit pathfinding senaryosudur: bir engelden kaçınan geçerli bir yol bulmak. Render'la (b), sesle (c) ya da save sistemiyle (d) ilgisi yoktur.",{"id":101,"topic":18,"difficulty":45,"body":102,"options":103,"correct_key":55,"explanation":112},"019f6b28-16f0-766c-be10-b2d6d365a3e8","Bir seviyenin yürünebilir alanı, her hücrenin komşu hücrelerine bağlantılar sakladığı 50x50'lik bir ızgara olarak temsil ediliyor. Bu temsil öncelikle ne için kullanılır?",[104,106,108,110],{"key":49,"text":105},"Seviyenin arka plan müziğinin çözünürlüğünü belirlemek için",{"key":52,"text":107},"Render edilen her mesh'in tam poligon sayısını saklamak için",{"key":55,"text":109},"Bir arama algoritmasına keşfedeceği bir düğüm grafı vermek",{"key":58,"text":111},"NPC'nin maksimum can puanını hesaplamak için","Komşu bağlantılarına sahip bir hücre ızgarası, tam olarak bir pathfinding aramasının başlangıçtan hedefe hücre hücre olası rotaları keşfetmek için ihtiyaç duyduğu graf yapısıdır. Ses çözünürlüğüyle (a), mesh poligon sayısıyla (b) ya da NPC can değerleriyle (d) ilgisi yoktur.",{"id":114,"topic":18,"difficulty":115,"body":116,"options":117,"correct_key":58,"explanation":126},"019f6b28-16f0-7eb3-aad8-65cd73b8f8a6",3,"Bir pathfinding araması, hedefe kalan mesafeyi kuş uçuşu mesafeyi bir sezgisel (heuristic) olarak kullanarak tahmin eder ve en düşük (şimdiye-kadarki-maliyet + tahmini-kalan) değerine sahip düğümü önce genişletir. Bu neden hiç sezgisel kullanmayan bir aramaya göre daha az düğüm keşfetme eğilimindedir?",[118,120,122,124],{"key":49,"text":119},"Çünkü geçerli bir yol olmasa bile NPC'nin asla sıkışmayacağını garanti eder",{"key":52,"text":121},"Çünkü bir graf ya da ızgara temsiline olan ihtiyacı tamamen ortadan kaldırır",{"key":55,"text":123},"Çünkü seviyede herhangi bir çarpışma tespitine olan ihtiyacı ortadan kaldırır",{"key":58,"text":125},"Sezgisel, aramayı hedefe yönlendirir, böylece daha az ilgisiz düğüm genişler","Şimdiye kadarki gerçek maliyeti kalan mesafe tahminiyle birleştirmek, aramanın her yöne kör kör genişlemek yerine umut vaat eden yönlere öncelik vermesini sağlar; bu yüzden genelde daha az düğüm ziyaret edilir. Bir yolun var olduğunu garanti etmez (a), graf ihtiyacını ortadan kaldırmaz (b) ve çarpışma tespitiyle ilgisi yoktur (c).",{"fields":128,"seniorities":312,"interview_shapes":313,"locales":318,"oauth":320,"question_count":323,"coach_enabled":324,"jd_match_enabled":324},[129,155,175,191,215,228,247,266,288,295,301,306],{"key":130,"name_tr":131,"name_en":131,"sort":132,"specializations":133},"backend","Backend",1,[134,137,140,143,146,149,152],{"key":135,"name":136,"field":130},"general","Genel",{"key":138,"name":139,"field":130},"go","Go",{"key":141,"name":142,"field":130},"python","Python",{"key":144,"name":145,"field":130},"java","Java",{"key":147,"name":148,"field":130},"csharp","C#\u002F.NET",{"key":150,"name":151,"field":130},"nodejs","Node.js",{"key":153,"name":154,"field":130},"php","PHP",{"key":156,"name_tr":157,"name_en":157,"sort":45,"specializations":158},"frontend","Frontend",[159,160,163,166,169,172],{"key":135,"name":136,"field":156},{"key":161,"name":162,"field":156},"javascript","JavaScript",{"key":164,"name":165,"field":156},"typescript","TypeScript",{"key":167,"name":168,"field":156},"react","React",{"key":170,"name":171,"field":156},"vue","Vue",{"key":173,"name":174,"field":156},"angular","Angular",{"key":176,"name_tr":177,"name_en":177,"sort":115,"specializations":178},"fullstack","Fullstack",[179,180,181,182,183,184,185,186,187,188,189,190],{"key":135,"name":136,"field":176},{"key":138,"name":139,"field":130},{"key":141,"name":142,"field":130},{"key":144,"name":145,"field":130},{"key":147,"name":148,"field":130},{"key":150,"name":151,"field":130},{"key":153,"name":154,"field":130},{"key":161,"name":162,"field":156},{"key":164,"name":165,"field":156},{"key":167,"name":168,"field":156},{"key":170,"name":171,"field":156},{"key":173,"name":174,"field":156},{"key":192,"name_tr":193,"name_en":193,"sort":194,"specializations":195},"devops-cloud","DevOps \u002F Cloud",4,[196,197,200,203,206,209,212],{"key":135,"name":136,"field":192},{"key":198,"name":199,"field":192},"aws","AWS",{"key":201,"name":202,"field":192},"gcp","GCP",{"key":204,"name":205,"field":192},"azure","Azure",{"key":207,"name":208,"field":192},"kubernetes","Kubernetes",{"key":210,"name":211,"field":192},"terraform","Terraform",{"key":213,"name":214,"field":192},"linux","Linux",{"key":216,"name_tr":217,"name_en":217,"sort":218,"specializations":219},"ai-engineer","AI Engineer",5,[220,221,222,225],{"key":135,"name":136,"field":216},{"key":141,"name":142,"field":216},{"key":223,"name":224,"field":216},"llm-rag","LLM\u002FRAG",{"key":226,"name":227,"field":216},"mlops","MLOps",{"key":229,"name_tr":230,"name_en":231,"sort":232,"specializations":233},"database","Veritabanı","Database",6,[234,235,238,241,244],{"key":135,"name":136,"field":229},{"key":236,"name":237,"field":229},"postgresql","PostgreSQL",{"key":239,"name":240,"field":229},"mysql","MySQL",{"key":242,"name":243,"field":229},"mongodb","MongoDB",{"key":245,"name":246,"field":229},"redis","Redis",{"key":248,"name_tr":249,"name_en":250,"sort":251,"specializations":252},"mobile","Mobil","Mobile",7,[253,254,257,260,263],{"key":135,"name":136,"field":248},{"key":255,"name":256,"field":248},"ios-swift","iOS (Swift)",{"key":258,"name":259,"field":248},"android-kotlin","Android (Kotlin)",{"key":261,"name":262,"field":248},"flutter","Flutter",{"key":264,"name":265,"field":248},"react-native","React Native",{"key":267,"name_tr":268,"name_en":269,"sort":270,"specializations":271},"security","Güvenlik","Security",8,[272,273,276,279,282,285],{"key":135,"name":136,"field":267},{"key":274,"name":275,"field":267},"appsec","AppSec",{"key":277,"name":278,"field":267},"offensive-pentest","Offensive \u002F Pentest",{"key":280,"name":281,"field":267},"cloud-security","Cloud Security",{"key":283,"name":284,"field":267},"devsecops","DevSecOps",{"key":286,"name":287,"field":267},"blue-team-incident","Blue Team \u002F Incident",{"key":289,"name_tr":290,"name_en":291,"sort":292,"specializations":293},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[294],{"key":135,"name":136,"field":289},{"key":296,"name_tr":297,"name_en":297,"sort":298,"specializations":299},"data-engineer","Data Engineer",10,[300],{"key":135,"name":136,"field":296},{"key":5,"name_tr":6,"name_en":302,"sort":303,"specializations":304},"Game Development",11,[305],{"key":135,"name":136,"field":5},{"key":307,"name_tr":308,"name_en":308,"sort":309,"specializations":310},"ml-engineer","ML Engineer",12,[311],{"key":135,"name":136,"field":307},[13,7,14],{"junior":314,"mid":316,"senior":317},{"questions":315,"median_sec":3},20,{"questions":315,"median_sec":3},{"questions":315,"median_sec":3},[9,319],"en",[321,322],"google","github",21750,true]