[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:game-dev\u002Fsenior":4,"config":126},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","senior","","tr",389,600,[13,14,7],"junior","mid",[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-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?",[48,51,54,57],{"key":49,"text":50},"a","Çünkü geçerli bir yol olmasa bile NPC'nin asla sıkışmayacağını garanti eder",{"key":52,"text":53},"b","Çünkü bir graf ya da ızgara temsiline olan ihtiyacı tamamen ortadan kaldırır",{"key":55,"text":56},"c","Çünkü seviyede herhangi bir çarpışma tespitine olan ihtiyacı ortadan kaldırır",{"key":58,"text":59},"d","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).",{"id":62,"topic":18,"difficulty":45,"body":63,"options":64,"correct_key":49,"explanation":73},"019f6b28-16f3-7180-9fd3-690d02dfef25","Hedef ve engeller değişmediği halde tek bir NPC'nin yolu her karede yeniden hesaplanıyor. Bir junior geliştiricinin önce denemesi gereken en basit düzeltme nedir?",[65,67,69,71],{"key":49,"text":66},"Yalnızca değişiklikte yeniden hesapla, yoksa aynı yolu kullan",{"key":52,"text":68},"Yükü dağıtmak için NPC sayısını artırmak",{"key":55,"text":70},"Seviyenin tüm render pipeline'ını değiştirmek",{"key":58,"text":72},"Pathfinding'i tamamen kaldırıp NPC'nin olduğu yerde durmasını sağlamak","İlgili hiçbir şey değişmediyse aynı yolu her karede yeniden hesaplamak saf israftır — son geçerli yolu önbelleğe alıp yalnızca gerçek bir değişiklikte (yeni hedef, engel hareketi) yeniden hesaplamak doğrudan düzeltmedir. NPC sayısını artırmak (b) sorunu kötüleştirir, render pipeline'ını değiştirmek (c) ilgisizdir ve pathfinding'i devre dışı bırakmak (d) özelliği düzeltmek yerine bozar.",{"id":75,"topic":18,"difficulty":45,"body":76,"options":77,"correct_key":52,"explanation":86},"019f6b28-16f6-7c30-a2cc-56a1d4e8ba10","NPC'lerin normalde içinden geçtiği bir kapı oyun ortasında aniden kilitlenir ve tek rotayı bloke eder. O kapıdan geçen bir yolu zaten takip etmekte olan NPC'lere ne olmalı?",[78,80,82,84],{"key":49,"text":79},"Kapalı kapıya süresiz olarak yürümeye devam etmeliler",{"key":52,"text":81},"Yol geçersiz olur, yeniden hesaplanmalı ya da ulaşılamaz denmeli",{"key":55,"text":83},"O andan sonra hiçbir yere yol bulmayı kalıcı olarak unutmalılar",{"key":58,"text":85},"Oyun o NPC'leri hemen silmeli","Yeni kilitlenen bir kapı, yürünebilir dünyada bir değişikliktir; bu yüzden ona dayanan her yol bayatlar ve geçersiz sayılıp yeniden hesaplanmalıdır (alternatif yoksa ulaşılamaz olarak bildirilmelidir). Kapıya süresiz yürümek (a), pathfinding yeteneğini kalıcı olarak kaybetmek (c) ve NPC'leri silmek (d), dinamik bir engelin ortaya çıkmasına makul tepkiler değildir.",{"id":88,"topic":18,"difficulty":45,"body":89,"options":90,"correct_key":55,"explanation":99},"019f6b28-16f7-7d06-b495-c8ad6ae5b88c","Birbirlerinden habersiz hesaplanmış yolları takip eden iki NPC şimdi birbirine görünür şekilde çarpıyor. Bunu en iyi ne açıklar?",[91,93,95,97],{"key":49,"text":92},"Navmesh çok fazla poligonla üretilmiş",{"key":52,"text":94},"NPC'ler tam olarak aynı koridorun iki farklı graf temsilini kullanıyor",{"key":55,"text":96},"Yollar yalnızca statik düzene göre planlandı, birbirini engel olarak dikkate almadı",{"key":58,"text":98},"Oyunun fixed timestep'i çok küçük ayarlanmış","Yol planlaması yalnızca statik dünyayı dikkate alıp diğer hareketli ajanları göz ardı ettiyse, bağımsız olarak geçerli iki yol yine de aynı yerde aynı anda kesişip çarpışmaya yol açabilir — düzeltme diğer NPC'leri dinamik engel olarak ele almak (ya da yerel kaçınma eklemek) olmalıdır. Çok fazla navmesh poligonu (a) performans meselesidir, çarpışma nedeni değildir; farklı graf temsilleri (b) senaryoda ima edilmemiştir; ve timestep boyutu (d) ajanların birbirini görmezden gelmesini açıklamaz.",{"id":101,"topic":18,"difficulty":45,"body":102,"options":103,"correct_key":49,"explanation":112},"019f6b28-16f9-7e42-8af5-a99c480b3b9b","Bir NPC olduğu yerde duruyor ve oyuncunun az önce yakınında çıkardığı yüksek sesli gürültüye sırtını dönmüş durumda. İyi tasarlanmış bir algı sistemi NPC'nin tepki vermesine izin vermeli mi?",[104,106,108,110],{"key":49,"text":105},"Evet — işitme genelde yöne bakmaz, oysa görme bir bakış konisi gerektirir",{"key":52,"text":107},"Hayır — algı yalnızca görme duyusunu kullanmalı, asla işitmeyi kullanmamalı",{"key":55,"text":109},"Hayır — NPC'ler oyuncunun yaptığı hiçbir şeye asla tepki vermemeli",{"key":58,"text":111},"Evet, ama yalnızca NPC kilitli bir odanın içindeyse","İşitme genelde yönden bağımsız (ya da görüşten çok daha geniş menzilli) olarak modellenir; bu yüzden yakındaki yüksek bir ses, görüşün aksine, NPC'nin hangi yöne baktığından bağımsız olarak tespit edilebilir. Algının işitmeyi kullanamayacağını (b) ya da oyuncuya asla tepki vermeyeceğini (c) iddia etmek algı sisteminin tüm amacıyla çelişir; kilitli odalar (d) işitmenin çalışma şekliyle ilgisizdir.",{"id":114,"topic":22,"difficulty":45,"body":115,"options":116,"correct_key":52,"explanation":125},"019f6b28-1710-7367-9cda-21de016efc98","Bir joystick'in her karede ne kadar eğildiğini sürekli okuyup akıcı analog hareket üretmek için hangi girdi modeli doğal olarak uyar?",[117,119,121,123],{"key":49,"text":118},"Event-driven girdi, çünkü hareketin yalnızca bir tuşa basışta bir kez güncellenmesi gerekir",{"key":52,"text":120},"Polling, çünkü her karede mevcut analog değer gereklidir",{"key":55,"text":122},"Input buffering, çünkü analog değerlerin birkaç kare geciktirilmesi gerekir",{"key":58,"text":124},"Audio pooling, çünkü joystick verisi ses sinyali olarak iletilir","Sürekli analog durum (stick eğimi, tetik basıncı) doğal olarak polling ile okunur: oyun, ayrık değişim olaylarını beklemek yerine orantılı hareket üretmek için her karede mevcut değeri sorar.",{"fields":127,"seniorities":312,"interview_shapes":313,"locales":318,"oauth":320,"question_count":323,"coach_enabled":324,"jd_match_enabled":324},[128,154,175,191,215,228,247,266,288,295,301,306],{"key":129,"name_tr":130,"name_en":130,"sort":131,"specializations":132},"backend","Backend",1,[133,136,139,142,145,148,151],{"key":134,"name":135,"field":129},"general","Genel",{"key":137,"name":138,"field":129},"go","Go",{"key":140,"name":141,"field":129},"python","Python",{"key":143,"name":144,"field":129},"java","Java",{"key":146,"name":147,"field":129},"csharp","C#\u002F.NET",{"key":149,"name":150,"field":129},"nodejs","Node.js",{"key":152,"name":153,"field":129},"php","PHP",{"key":155,"name_tr":156,"name_en":156,"sort":157,"specializations":158},"frontend","Frontend",2,[159,160,163,166,169,172],{"key":134,"name":135,"field":155},{"key":161,"name":162,"field":155},"javascript","JavaScript",{"key":164,"name":165,"field":155},"typescript","TypeScript",{"key":167,"name":168,"field":155},"react","React",{"key":170,"name":171,"field":155},"vue","Vue",{"key":173,"name":174,"field":155},"angular","Angular",{"key":176,"name_tr":177,"name_en":177,"sort":45,"specializations":178},"fullstack","Fullstack",[179,180,181,182,183,184,185,186,187,188,189,190],{"key":134,"name":135,"field":176},{"key":137,"name":138,"field":129},{"key":140,"name":141,"field":129},{"key":143,"name":144,"field":129},{"key":146,"name":147,"field":129},{"key":149,"name":150,"field":129},{"key":152,"name":153,"field":129},{"key":161,"name":162,"field":155},{"key":164,"name":165,"field":155},{"key":167,"name":168,"field":155},{"key":170,"name":171,"field":155},{"key":173,"name":174,"field":155},{"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":134,"name":135,"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":134,"name":135,"field":216},{"key":140,"name":141,"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":134,"name":135,"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":134,"name":135,"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":134,"name":135,"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":134,"name":135,"field":289},{"key":296,"name_tr":297,"name_en":297,"sort":298,"specializations":299},"data-engineer","Data Engineer",10,[300],{"key":134,"name":135,"field":296},{"key":5,"name_tr":6,"name_en":302,"sort":303,"specializations":304},"Game Development",11,[305],{"key":134,"name":135,"field":5},{"key":307,"name_tr":308,"name_en":308,"sort":309,"specializations":310},"ml-engineer","ML Engineer",12,[311],{"key":134,"name":135,"field":307},[13,14,7],{"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]