[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:game-dev\u002Fgp-ability-cooldown-damage":4,"config":233},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":130,"samples":147},"game-dev","Game Development","","gp-ability-cooldown-damage","Gp Ability Cooldown Damage","en",75,2850,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127],{"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":34,"name":35,"count":11},"game-physics-collision","Game Physics Collision",{"key":37,"name":38,"count":11},"game-rendering-pipeline","Game Rendering Pipeline",{"key":40,"name":41,"count":11},"game-state-management","Game State Management",{"key":43,"name":44,"count":11},"gfx-forward-deferred-architectures","Gfx Forward Deferred Architectures",{"key":46,"name":47,"count":11},"gfx-gpu-pipeline-stages","Gfx Gpu Pipeline Stages",{"key":49,"name":50,"count":11},"gfx-post-processing-aa-hdr","Gfx Post Processing Aa Hdr",{"key":52,"name":53,"count":11},"gfx-shading-lighting-pbr","Gfx Shading Lighting Pbr",{"key":55,"name":56,"count":11},"gfx-shadows-depth-precision","Gfx Shadows Depth Precision",{"key":58,"name":59,"count":11},"gfx-textures-sampling-compression","Gfx Textures Sampling Compression",{"key":8,"name":9,"count":11},{"key":62,"name":63,"count":11},"gp-animation-state-locomotion","Gp Animation State Locomotion",{"key":65,"name":66,"count":11},"gp-camera-follow-targeting","Gp Camera Follow Targeting",{"key":68,"name":69,"count":11},"gp-character-controller-movement","Gp Character Controller Movement",{"key":71,"name":72,"count":11},"gp-frame-windows-game-feel","Gp Frame Windows Game Feel",{"key":74,"name":75,"count":11},"gp-interaction-detection-triggers","Gp Interaction Detection Triggers",{"key":77,"name":78,"count":11},"nc-rollback-determinism","Nc Rollback Determinism",{"key":80,"name":81,"count":11},"nc-security-protocol","Nc Security Protocol",{"key":83,"name":84,"count":11},"nc-serialization-bandwidth","Nc Serialization Bandwidth",{"key":86,"name":87,"count":11},"nc-time-sync-tick","Nc Time Sync Tick",{"key":89,"name":90,"count":11},"nc-topology-nat-relay","Nc Topology Nat Relay",{"key":92,"name":93,"count":11},"nc-transport-reliability","Nc Transport Reliability",{"key":95,"name":96,"count":11},"ue-actor-component-lifecycle","Ue Actor Component Lifecycle",{"key":98,"name":99,"count":11},"ue-blueprint-cpp-interop","Ue Blueprint Cpp Interop",{"key":101,"name":102,"count":11},"ue-containers-strings-memory","Ue Containers Strings Memory",{"key":104,"name":105,"count":11},"ue-gameplay-framework-classes","Ue Gameplay Framework Classes",{"key":107,"name":108,"count":11},"ue-modules-build-packaging","Ue Modules Build Packaging",{"key":110,"name":111,"count":11},"ue-uobject-reflection-gc","Ue Uobject Reflection Gc",{"key":113,"name":114,"count":11},"un-csharp-memory-gc-performance","Un Csharp Memory Gc Performance",{"key":116,"name":117,"count":11},"un-gameobject-component-transform","Un Gameobject Component Transform",{"key":119,"name":120,"count":11},"un-jobs-burst-dots-basics","Un Jobs Burst Dots Basics",{"key":122,"name":123,"count":11},"un-monobehaviour-lifecycle-execution-order","Un Monobehaviour Lifecycle Execution Order",{"key":125,"name":126,"count":11},"un-prefabs-instantiate-pooling-addressables","Un Prefabs Instantiate Pooling Addressables",{"key":128,"name":129,"count":11},"un-scriptableobject-serialization","Un Scriptableobject Serialization",[131,135,138,141,144],{"key":132,"name":133,"count":134},"gameplay","Gameplay",450,{"key":136,"name":137,"count":134},"graphics-rendering","Graphics \u002F Rendering",{"key":139,"name":140,"count":134},"multiplayer-netcode","Multiplayer \u002F Netcode",{"key":142,"name":143,"count":134},"unity-csharp","Unity (C#)",{"key":145,"name":146,"count":134},"unreal-cpp","Unreal (C++)",[148,166,180,193,206,219],{"id":149,"topic":9,"difficulty":150,"body":151,"options":152,"correct_key":154,"explanation":165},"01a034ec-049e-74f2-a66c-494ddbdc4e62",1,"An ability's cooldown timer is defined to start the instant the player triggers the ability, not when its cast finishes. The ability has a 1.5-second cast time and a 6-second cooldown. How long after the button press can the ability be triggered again?",[153,156,159,162],{"key":154,"text":155},"a","6.0 seconds after the press, since the cooldown starts at the trigger moment, not at cast end",{"key":157,"text":158},"b","7.5 seconds after the press, because the cooldown timer only starts once the 1.5-second cast finishes",{"key":160,"text":161},"c","4.5 seconds after the press, because the cast time is subtracted from the cooldown duration",{"key":163,"text":164},"d","It depends on whether the ability hits a target, because a miss should not consume the cooldown","The cooldown timer is anchored to the trigger moment, so it always finishes 6.0 seconds after the press, regardless of how long the cast itself takes. (b) and (c) both assume the cast time interacts with the cooldown timer, which only holds if the design explicitly starts the cooldown at cast end instead. (d) invents a hit-dependent rule that was never part of the definition.",{"id":167,"topic":9,"difficulty":168,"body":169,"options":170,"correct_key":160,"explanation":179},"01a034ec-05ed-75e1-b377-49d82841ec4e",2,"A cooldown can be tracked two ways: storing an absolute end time (end = startTime + duration, remaining = end - now) or decrementing a counter by a fixed amount every rendered frame. Which statement correctly describes their difference under a variable frame rate?",[171,173,175,177],{"key":154,"text":172},"Both methods produce identical results at any frame rate, since duration is the only value that matters",{"key":157,"text":174},"The fixed-decrement method is more accurate because it updates every single frame instead of only on demand",{"key":160,"text":176},"End-time tracking stays correct at any frame rate; fixed-decrement drifts if the real rate differs from what was assumed",{"key":163,"text":178},"The absolute end-time method requires the frame rate to be constant, while the fixed-decrement method does not","Storing an absolute end time and comparing it against the current time is unaffected by frame rate, because it never assumes anything about how often it gets checked. Decrementing by a fixed per-frame amount only produces the correct total if the real frame rate matches the assumed one; a slower or faster frame rate throws the countdown off. (d) reverses which method actually depends on frame-rate assumptions.",{"id":181,"topic":9,"difficulty":150,"body":182,"options":183,"correct_key":157,"explanation":192},"01a034ec-061e-7565-9ed3-3eb8f1221a7c","A cooldown check is implemented by counting rendered frames rather than measuring elapsed time. At a frame rate of 60 frames per second, how many frames correspond to a 100-millisecond wait?",[184,186,188,190],{"key":154,"text":185},"10 frames",{"key":157,"text":187},"6 frames",{"key":160,"text":189},"60 frames",{"key":163,"text":191},"100 frames","One frame at 60 FPS lasts 1\u002F60 second, about 16.67 milliseconds. Six frames cover 6 * 16.67ms = 100ms, matching a 0.1-second wait exactly. (a), (c), and (d) all apply the wrong conversion between frame count and elapsed time.",{"id":194,"topic":9,"difficulty":150,"body":195,"options":196,"correct_key":163,"explanation":205},"01a034ec-0625-7e5f-bd5d-09d2654bd645","An ability's cooldown timer can be bound to game time, which stops advancing while the game is paused, or to real (wall-clock) time, which keeps advancing regardless of pause state. If the timer is bound to real time, what happens to the cooldown while the game is paused?",[197,199,201,203],{"key":154,"text":198},"It resets back to the full cooldown duration as soon as the pause menu opens",{"key":157,"text":200},"It stops advancing, exactly as it would if bound to game time",{"key":160,"text":202},"It advances at half the normal rate while paused",{"key":163,"text":204},"It keeps advancing during the pause, since it is not affected by whether gameplay is frozen","A real-time-bound cooldown measures wall-clock elapsed time, which keeps ticking whether or not the game simulation is paused, so the cooldown continues counting down while paused. A game-time-bound cooldown would behave the opposite way and freeze along with the rest of the simulation. (a) and (c) describe behaviors neither model produces.",{"id":207,"topic":9,"difficulty":150,"body":208,"options":209,"correct_key":154,"explanation":218},"01a034ec-0642-7244-8ec2-d11aeb646cb5","A charge system lets a player accumulate more than one stored use of an ability, up to a maximum, without each use immediately locking the ability behind its full cooldown. What best describes this mechanism?",[210,212,214,216],{"key":154,"text":211},"A stock of uses that slowly regenerates over time",{"key":157,"text":213},"A single cooldown that simply runs twice as fast as normal",{"key":160,"text":215},"A permanent removal of the cooldown once the maximum charge count is reached",{"key":163,"text":217},"A rule that only the first use of the ability in a match consumes any resource","The defining trait of a charge system is that it behaves like a refillable stock rather than a single lock: each use spends one charge from the current count, and charges regenerate independently over time until the maximum is reached again. (b) describes a faster cooldown, not a stock of uses. (c) and (d) describe mechanisms unrelated to charges.",{"id":220,"topic":9,"difficulty":221,"body":222,"options":223,"correct_key":160,"explanation":232},"01a034ec-068c-7a4b-b33e-f59fe72e55f1",3,"Cooldown reduction (CDR) from a buff can be designed to apply in one of two ways: retroactively to a cooldown that is already counting down, or only to the next time the ability's cooldown starts. What is the key behavioral difference between these two options?",[224,226,228,230],{"key":154,"text":225},"There is no behavioral difference; both options always finish the current cooldown at the same time",{"key":157,"text":227},"The retroactive option can only reduce future cooldowns, never the one currently running",{"key":160,"text":229},"Retroactive shortens the cooldown already running; next-use-only leaves it untouched and shortens only a future one",{"key":163,"text":231},"The next-use-only option immediately cancels the current cooldown entirely, while the retroactive option merely delays it","Applying CDR retroactively means an already-running cooldown gets its remaining time shortened as soon as the buff is gained. Applying it only to the next use means the current wait is unaffected and the shorter duration only takes effect the next time the ability is put on cooldown. (a), (b), and (d) each misdescribe one side of this distinction.",{"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":428,"name_en":6,"sort":429,"specializations":430},"Oyun Geliştirme",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":132,"name":133,"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},[453,10],"tr",[455,456],"google","github",27600,true]