[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:game-dev\u002Fgameplay":4,"config":233},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":7,"topic_name":7,"spec_key":8,"spec_name":9,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":133,"samples":147},"game-dev","Oyun Geliştirme","","gameplay","Gameplay","tr",450,2850,[14,15,16],"junior","mid","senior",[18,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127,130],{"key":19,"name":20,"count":21},"game-ai-pathfinding","Game Ai Pathfinding",75,{"key":23,"name":24,"count":21},"game-input-audio","Game Input Audio",{"key":26,"name":27,"count":21},"game-loop-fundamentals","Game Loop Fundamentals",{"key":29,"name":30,"count":21},"game-networking-multiplayer","Game Networking Multiplayer",{"key":32,"name":33,"count":21},"game-performance-optimization","Game Performance Optimization",{"key":35,"name":36,"count":21},"game-physics-collision","Game Physics Collision",{"key":38,"name":39,"count":21},"game-rendering-pipeline","Game Rendering Pipeline",{"key":41,"name":42,"count":21},"game-state-management","Game State Management",{"key":44,"name":45,"count":21},"gfx-forward-deferred-architectures","Gfx Forward Deferred Architectures",{"key":47,"name":48,"count":21},"gfx-gpu-pipeline-stages","Gfx Gpu Pipeline Stages",{"key":50,"name":51,"count":21},"gfx-post-processing-aa-hdr","Gfx Post Processing Aa Hdr",{"key":53,"name":54,"count":21},"gfx-shading-lighting-pbr","Gfx Shading Lighting Pbr",{"key":56,"name":57,"count":21},"gfx-shadows-depth-precision","Gfx Shadows Depth Precision",{"key":59,"name":60,"count":21},"gfx-textures-sampling-compression","Gfx Textures Sampling Compression",{"key":62,"name":63,"count":21},"gp-ability-cooldown-damage","Gp Ability Cooldown Damage",{"key":65,"name":66,"count":21},"gp-animation-state-locomotion","Gp Animation State Locomotion",{"key":68,"name":69,"count":21},"gp-camera-follow-targeting","Gp Camera Follow Targeting",{"key":71,"name":72,"count":21},"gp-character-controller-movement","Gp Character Controller Movement",{"key":74,"name":75,"count":21},"gp-frame-windows-game-feel","Gp Frame Windows Game Feel",{"key":77,"name":78,"count":21},"gp-interaction-detection-triggers","Gp Interaction Detection Triggers",{"key":80,"name":81,"count":21},"nc-rollback-determinism","Nc Rollback Determinism",{"key":83,"name":84,"count":21},"nc-security-protocol","Nc Security Protocol",{"key":86,"name":87,"count":21},"nc-serialization-bandwidth","Nc Serialization Bandwidth",{"key":89,"name":90,"count":21},"nc-time-sync-tick","Nc Time Sync Tick",{"key":92,"name":93,"count":21},"nc-topology-nat-relay","Nc Topology Nat Relay",{"key":95,"name":96,"count":21},"nc-transport-reliability","Nc Transport Reliability",{"key":98,"name":99,"count":21},"ue-actor-component-lifecycle","Ue Actor Component Lifecycle",{"key":101,"name":102,"count":21},"ue-blueprint-cpp-interop","Ue Blueprint Cpp Interop",{"key":104,"name":105,"count":21},"ue-containers-strings-memory","Ue Containers Strings Memory",{"key":107,"name":108,"count":21},"ue-gameplay-framework-classes","Ue Gameplay Framework Classes",{"key":110,"name":111,"count":21},"ue-modules-build-packaging","Ue Modules Build Packaging",{"key":113,"name":114,"count":21},"ue-uobject-reflection-gc","Ue Uobject Reflection Gc",{"key":116,"name":117,"count":21},"un-csharp-memory-gc-performance","Un Csharp Memory Gc Performance",{"key":119,"name":120,"count":21},"un-gameobject-component-transform","Un Gameobject Component Transform",{"key":122,"name":123,"count":21},"un-jobs-burst-dots-basics","Un Jobs Burst Dots Basics",{"key":125,"name":126,"count":21},"un-monobehaviour-lifecycle-execution-order","Un Monobehaviour Lifecycle Execution Order",{"key":128,"name":129,"count":21},"un-prefabs-instantiate-pooling-addressables","Un Prefabs Instantiate Pooling Addressables",{"key":131,"name":132,"count":21},"un-scriptableobject-serialization","Un Scriptableobject Serialization",[134,135,138,141,144],{"key":8,"name":9,"count":11},{"key":136,"name":137,"count":11},"graphics-rendering","Graphics \u002F Rendering",{"key":139,"name":140,"count":11},"multiplayer-netcode","Multiplayer \u002F Netcode",{"key":142,"name":143,"count":11},"unity-csharp","Unity (C#)",{"key":145,"name":146,"count":11},"unreal-cpp","Unreal (C++)",[148,166,180,193,206,219],{"id":149,"topic":63,"difficulty":150,"body":151,"options":152,"correct_key":154,"explanation":165},"01a034ec-049e-74f2-a66c-494ddbdc4e62",1,"Bir yeteneğin cooldown zamanlayıcısı, oyuncu yeteneği tetiklediği anda başlıyor olarak tanımlanmış — cast bittiğinde değil. Yeteneğin cast süresi 1.5 saniye, cooldown süresi 6 saniyedir. Tuşa basıldıktan ne kadar sonra yetenek yeniden tetiklenebilir?",[153,156,159,162],{"key":154,"text":155},"a","Basıştan tam 6.0 saniye sonra, çünkü cooldown zamanlayıcısı tetikleme anında başlar",{"key":157,"text":158},"b","Basıştan 7.5 saniye sonra, çünkü cooldown zamanlayıcısı ancak 1.5 saniyelik cast bittiğinde başlar",{"key":160,"text":161},"c","Basıştan 4.5 saniye sonra, çünkü cast süresi cooldown süresinden düşülür",{"key":163,"text":164},"d","Buna, yeteneğin bir hedefe isabet edip etmediği karar verir; ıska cooldown'ı tüketmemelidir","Cooldown zamanlayıcısı tetikleme anına bağlıdır, bu yüzden cast'in kendisi ne kadar sürerse sürsün basıştan tam 6.0 saniye sonra biter. (b) ve (c) cast süresinin cooldown zamanlayıcısıyla etkileşime girdiğini varsayar; bu yalnızca tasarım cooldown'ı cast bitişinde başlatıyorsa geçerlidir. (d) hiç tanımlanmamış bir isabet-bağımlı kural uyduruyor.",{"id":167,"topic":63,"difficulty":168,"body":169,"options":170,"correct_key":160,"explanation":179},"01a034ec-05ed-75e1-b377-49d82841ec4e",2,"Bir cooldown iki şekilde takip edilebilir: mutlak bir bitiş-zamanı saklamak (`end = başlangıç + süre`, kalan = `end - şimdi`) ya da her render karesinde sabit bir miktar azaltmak. Değişken kare hızı altında bu iki yöntemin farkını hangi ifade doğru anlatır?",[171,173,175,177],{"key":154,"text":172},"İki yöntem de her kare hızında birebir aynı sonucu üretir, çünkü önemli olan tek şey toplam süredir",{"key":157,"text":174},"Sabit-azaltma yöntemi daha doğrudur, çünkü sadece ihtiyaç olduğunda değil her karede güncelleme yapar",{"key":160,"text":176},"Mutlak bitiş-zamanı her kare hızında doğru kalır; sabit-azaltma gerçek hız varsayılandan farklıysa kayar",{"key":163,"text":178},"Mutlak bitiş-zamanı yönteminin sabit bir kare hızına ihtiyacı vardır, sabit-azaltma yönteminin ise yoktur","Mutlak bir bitiş-zamanı saklayıp bunu şimdiki zamanla karşılaştırmak kare hızından etkilenmez, çünkü ne sıklıkla kontrol edildiğine dair hiçbir varsayımda bulunmaz. Her karede sabit bir miktar azaltmak ise ancak gerçek kare hızı varsayılan hızla eşleşirse doğru toplamı üretir; daha yavaş ya da daha hızlı bir kare hızı geri sayımı bozar. (d) hangi yöntemin kare-hızı varsayımına bağlı olduğunu tersine çeviriyor.",{"id":181,"topic":63,"difficulty":150,"body":182,"options":183,"correct_key":157,"explanation":192},"01a034ec-061e-7565-9ed3-3eb8f1221a7c","Bir cooldown kontrolü, geçen süreyi ölçmek yerine render edilen kare sayısını saymak üzerine kuruluyor. 60 kare\u002Fsaniyelik bir kare hızında, 100 milisaniyelik bir bekleme kaç kareye karşılık gelir?",[184,186,188,190],{"key":154,"text":185},"10 kare",{"key":157,"text":187},"6 kare",{"key":160,"text":189},"60 kare",{"key":163,"text":191},"100 kare","60 FPS'te bir kare 1\u002F60 saniye, yani yaklaşık 16.67 milisaniye sürer. Altı kare 6 * 16.67ms = 100ms eder, bu da tam olarak 0.1 saniyelik bir beklemeye karşılık gelir. (a), (c) ve (d) kare sayısı ile geçen süre arasında yanlış bir dönüşüm uyguluyor.",{"id":194,"topic":63,"difficulty":150,"body":195,"options":196,"correct_key":163,"explanation":205},"01a034ec-0625-7e5f-bd5d-09d2654bd645","Bir yeteneğin cooldown zamanlayıcısı, oyun duraklatıldığında ilerlemeyi durduran OYUN ZAMANINA bağlanabilir ya da duraklatma durumundan bağımsız ilerlemeye devam eden GERÇEK (duvar saati) ZAMANINA bağlanabilir. Zamanlayıcı gerçek zamana bağlıysa, oyun duraklatıldığında cooldown'a ne olur?",[197,199,201,203],{"key":154,"text":198},"Duraklatma menüsü açılır açılmaz tam cooldown süresine sıfırlanır",{"key":157,"text":200},"Tıpkı oyun zamanına bağlı olsaydı davranacağı gibi ilerlemeyi durdurur",{"key":160,"text":202},"Duraklatma sırasında normal hızın yarısında ilerler",{"key":163,"text":204},"Duraklatma sırasında ilerlemeye devam eder, oyun simülasyonunun donup donmamasından etkilenmez","Gerçek zamana bağlı bir cooldown, oyun simülasyonu duraklatılmış olsun ya da olmasın işlemeye devam eden duvar-saati geçen süresini ölçer, bu yüzden duraklatma sırasında da geri saymaya devam eder. Oyun zamanına bağlı bir cooldown ise tam tersi davranır ve simülasyonun geri kalanıyla birlikte donar. (a) ve (c) hiçbir modelin üretmediği davranışları anlatıyor.",{"id":207,"topic":63,"difficulty":150,"body":208,"options":209,"correct_key":154,"explanation":218},"01a034ec-0642-7244-8ec2-d11aeb646cb5","Şarj (charge) sistemi, her kullanım anında yeteneği hemen tam cooldown'a sokmadan, oyuncunun maksimum bir sınıra kadar birden fazla biriktirilmiş kullanım hakkı tutmasına izin verir. Bu mekanizmayı en iyi hangisi tanımlar?",[210,212,214,216],{"key":154,"text":211},"Zamanla yeniden dolan bir kullanım stoku",{"key":157,"text":213},"Normalin iki katı hızda işleyen TEK bir cooldown",{"key":160,"text":215},"Maksimum şarj sayısına ulaşıldığında cooldown'ın KALICI olarak kaldırılması",{"key":163,"text":217},"Sadece bir maçtaki İLK kullanımın herhangi bir kaynak tüketmesi kuralı","Şarj sisteminin belirleyici özelliği, tek bir kilit yerine yeniden dolan bir stok gibi davranmasıdır: her kullanım mevcut sayıdan bir şarj harcar, şarjlar ise maksimuma yeniden ulaşana kadar zaman içinde bağımsız olarak dolar. (b) daha hızlı bir cooldown'ı anlatıyor, kullanım stokunu değil. (c) ve (d) şarjlarla ilgisiz mekanizmalar tanımlıyor.",{"id":220,"topic":63,"difficulty":221,"body":222,"options":223,"correct_key":160,"explanation":232},"01a034ec-068c-7a4b-b33e-f59fe72e55f1",3,"Bir buff'tan gelen cooldown azaltması (CDR), iki farklı biçimde tasarlanabilir: HÂLİHAZIRDA geri sayan bir cooldown'a RETROAKTİF olarak uygulanmak ya da yalnızca yeteneğin cooldown'ının BİR SONRAKİ başlangıcına uygulanmak. Bu iki seçenek arasındaki temel davranış farkı nedir?",[224,226,228,230],{"key":154,"text":225},"Davranış farkı yoktur; iki seçenek de mevcut cooldown'ı her zaman aynı anda bitirir",{"key":157,"text":227},"Retroaktif seçenek yalnızca GELECEKTEKİ cooldown'ları azaltabilir, o an çalışanı asla azaltamaz",{"key":160,"text":229},"Retroaktif hâlihazırda çalışan cooldown'ı kısaltır; diğeri mevcut beklemeye dokunmaz, sadece gelecekte etkili olur",{"key":163,"text":231},"Sadece-sonraki-kullanım seçeneği mevcut cooldown'ı tamamen iptal eder, retroaktif seçenek ise onu yalnızca erteler","CDR'yi retroaktif uygulamak, buff kazanılır kazanılmaz hâlihazırda çalışan bir cooldown'ın kalan süresinin kısalması demektir. Onu yalnızca bir sonraki kullanıma uygulamak ise mevcut beklemenin etkilenmediği, kısalmış sürenin ancak yetenek bir dahaki sefere cooldown'a girdiğinde devreye girdiği anlamına gelir. (a), (b) ve (d) bu ayrımın bir tarafını yanlış tanımlıyor.",{"fields":234,"seniorities":446,"interview_shapes":447,"locales":452,"oauth":454,"question_count":457,"coach_enabled":458,"jd_match_enabled":458},[235,260,280,296,320,333,352,371,393,412,427,437],{"key":236,"name_tr":237,"name_en":237,"sort":150,"specializations":238},"backend","Backend",[239,242,245,248,251,254,257],{"key":240,"name":241,"field":236},"general","Genel",{"key":243,"name":244,"field":236},"go","Go",{"key":246,"name":247,"field":236},"python","Python",{"key":249,"name":250,"field":236},"java","Java",{"key":252,"name":253,"field":236},"csharp","C#\u002F.NET",{"key":255,"name":256,"field":236},"nodejs","Node.js",{"key":258,"name":259,"field":236},"php","PHP",{"key":261,"name_tr":262,"name_en":262,"sort":168,"specializations":263},"frontend","Frontend",[264,265,268,271,274,277],{"key":240,"name":241,"field":261},{"key":266,"name":267,"field":261},"javascript","JavaScript",{"key":269,"name":270,"field":261},"typescript","TypeScript",{"key":272,"name":273,"field":261},"react","React",{"key":275,"name":276,"field":261},"vue","Vue",{"key":278,"name":279,"field":261},"angular","Angular",{"key":281,"name_tr":282,"name_en":282,"sort":221,"specializations":283},"fullstack","Fullstack",[284,285,286,287,288,289,290,291,292,293,294,295],{"key":240,"name":241,"field":281},{"key":243,"name":244,"field":236},{"key":246,"name":247,"field":236},{"key":249,"name":250,"field":236},{"key":252,"name":253,"field":236},{"key":255,"name":256,"field":236},{"key":258,"name":259,"field":236},{"key":266,"name":267,"field":261},{"key":269,"name":270,"field":261},{"key":272,"name":273,"field":261},{"key":275,"name":276,"field":261},{"key":278,"name":279,"field":261},{"key":297,"name_tr":298,"name_en":298,"sort":299,"specializations":300},"devops-cloud","DevOps \u002F Cloud",4,[301,302,305,308,311,314,317],{"key":240,"name":241,"field":297},{"key":303,"name":304,"field":297},"aws","AWS",{"key":306,"name":307,"field":297},"gcp","GCP",{"key":309,"name":310,"field":297},"azure","Azure",{"key":312,"name":313,"field":297},"kubernetes","Kubernetes",{"key":315,"name":316,"field":297},"terraform","Terraform",{"key":318,"name":319,"field":297},"linux","Linux",{"key":321,"name_tr":322,"name_en":322,"sort":323,"specializations":324},"ai-engineer","AI Engineer",5,[325,326,327,330],{"key":240,"name":241,"field":321},{"key":246,"name":247,"field":321},{"key":328,"name":329,"field":321},"llm-rag","LLM\u002FRAG",{"key":331,"name":332,"field":321},"mlops","MLOps",{"key":334,"name_tr":335,"name_en":336,"sort":337,"specializations":338},"database","Veritabanı","Database",6,[339,340,343,346,349],{"key":240,"name":241,"field":334},{"key":341,"name":342,"field":334},"postgresql","PostgreSQL",{"key":344,"name":345,"field":334},"mysql","MySQL",{"key":347,"name":348,"field":334},"mongodb","MongoDB",{"key":350,"name":351,"field":334},"redis","Redis",{"key":353,"name_tr":354,"name_en":355,"sort":356,"specializations":357},"mobile","Mobil","Mobile",7,[358,359,362,365,368],{"key":240,"name":241,"field":353},{"key":360,"name":361,"field":353},"ios-swift","iOS (Swift)",{"key":363,"name":364,"field":353},"android-kotlin","Android (Kotlin)",{"key":366,"name":367,"field":353},"flutter","Flutter",{"key":369,"name":370,"field":353},"react-native","React Native",{"key":372,"name_tr":373,"name_en":374,"sort":375,"specializations":376},"security","Güvenlik","Security",8,[377,378,381,384,387,390],{"key":240,"name":241,"field":372},{"key":379,"name":380,"field":372},"appsec","AppSec",{"key":382,"name":383,"field":372},"offensive-pentest","Offensive \u002F Pentest",{"key":385,"name":386,"field":372},"cloud-security","Cloud Security",{"key":388,"name":389,"field":372},"devsecops","DevSecOps",{"key":391,"name":392,"field":372},"blue-team-incident","Blue Team \u002F Incident",{"key":394,"name_tr":395,"name_en":396,"sort":397,"specializations":398},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[399,400,403,406,409],{"key":240,"name":241,"field":394},{"key":401,"name":402,"field":394},"test-automation","Test Automation",{"key":404,"name":405,"field":394},"sdet","SDET",{"key":407,"name":408,"field":394},"performance-testing","Performance Testing",{"key":410,"name":411,"field":394},"mobile-qa","Mobile QA",{"key":413,"name_tr":414,"name_en":414,"sort":415,"specializations":416},"data-engineer","Data Engineer",10,[417,418,421,424],{"key":240,"name":241,"field":413},{"key":419,"name":420,"field":413},"pipelines-etl","Pipelines \u002F ETL",{"key":422,"name":423,"field":413},"streaming","Streaming",{"key":425,"name":426,"field":413},"warehousing","Warehousing",{"key":5,"name_tr":6,"name_en":428,"sort":429,"specializations":430},"Game Development",11,[431,432,433,434,435,436],{"key":240,"name":241,"field":5},{"key":142,"name":143,"field":5},{"key":145,"name":146,"field":5},{"key":8,"name":9,"field":5},{"key":136,"name":137,"field":5},{"key":139,"name":140,"field":5},{"key":438,"name_tr":439,"name_en":439,"sort":440,"specializations":441},"ml-engineer","ML Engineer",12,[442,443],{"key":240,"name":241,"field":438},{"key":444,"name":445,"field":438},"classical-ml","Classical ML",[14,15,16],{"junior":448,"mid":450,"senior":451},{"questions":449,"median_sec":3},20,{"questions":449,"median_sec":3},{"questions":449,"median_sec":3},[10,453],"en",[455,456],"google","github",27600,true]