玩法原型与打包
Gameplay prototyping & packaging
Implement a mechanic with blueprints or scripts and ship a build.
20 条本项目编写的提案 · 分类 v1.1 · 新增基准运行 0 次。下方验证方式与部分得分规则是设计,不是执行结果。
- 典型应用
- Unreal (Blueprints) · Unity · Godot
- 小类 GUI 需求标签
HY· 混合
任务提案 · 20
展开查看完整原文与建议检查方式;两种界面均保留提案英文原文。
R06.10.01.02-T01 Add double jump with coyote time in Blueprints and package a build
原始指令
Unreal project RunnerProto (Blueprint-only). In BP_PlayerCharacter add a double jump (second jump allowed once in air, 70% of first jump velocity) and 0.12 s coyote time after walking off a ledge. Do not add C++. Package a Development build for the host platform to Builds/.
- 平台
mac· macOSwin· Windows- 应用
- Unreal Engine 5 (Blueprints)
- 交互表面
desk· 桌面 GUI- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
G2· GUI 必要- 交互原语
drag· 拖放click· 指向与点击type· 文字与表单- 工作产物
WP06· 代码 / 工程- 条件
licensed· 授权专业软件- 提案难度
- 4 / 5
建议验证方式
Hidden Gauntlet test runs the packaged build with scripted input: second-jump apex = 0.49±0.05 of first jump height (v² ratio), third jump rejected, jump accepted at 0.10 s after ledge exit and rejected at 0.16 s. No new .cpp/.h in Source/. Python Editor Script Plugin is disabled and the agent has no terminal or C++ toolchain, so logic must be authored in the Blueprint editor.
建议部分得分
15% build packages; 35% double jump correct; 30% coyote window; 20% third jump blocked
R06.10.01.02-T02 Implement coin pickup, score HUD and win screen in Unity
原始指令
Unity project CoinDash, scene Level1 has 10 Coin prefabs. Make coins collectible on player trigger (destroy + sound), show 'Coins: n/10' in a TextMeshPro HUD, and load scene WinScreen when all 10 are collected. Build a standalone player for the host OS to Build/.
- 平台
mac· macOSwin· Windows- 应用
- Unity
- 交互表面
desk· 桌面 GUI- GUI 需求 · 任务设定
HY· 混合- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令click· 指向与点击drag· 拖放- 工作产物
WP06· 代码 / 工程- 条件
licensed· 授权专业软件- 提案难度
- 3 / 5
建议验证方式
Hidden PlayMode tests teleport player onto coins: HUD text updates exactly, coin destroyed, AudioSource played; after 10th coin active scene == WinScreen within 1 s. Build/ contains a launchable player that reaches Level1 in a smoke run.
建议部分得分
30% pickup works; 25% HUD text; 25% win transition; 20% build launches
R06.10.01.02-T03 Build an AnimationTree state machine for run, jump and fall
原始指令
Godot 4 project Platformer2D. Player.tscn has an AnimationPlayer with idle/run/jump/fall clips but no state logic. Add an AnimationTree with a state machine (idle↔run on |vx|>10, any→jump on jump, jump→fall when vy>0, fall→idle on floor) and drive it from player.gd. Export a Linux and Windows build with the existing presets.
- 平台
mac· macOSwin· Windowslin· Linux- 应用
- Godot
- 交互表面
desk· 桌面 GUI- GUI 需求 · 任务设定
HY· 混合- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
drag· 拖放click· 指向与点击code· 代码与命令- 工作产物
WP06· 代码 / 工程- 条件
- 未声明
- 提案难度
- 3 / 5
建议验证方式
Headless test script replays an input sequence and logs AnimationNodeStateMachinePlayback.get_current_node() each frame: matches expected sequence with ≤2 frame lag. Two export binaries exist and boot to the level with --headless --quit-after 120.
建议部分得分
40% state machine transitions; 20% driven from script; 20% playback sequence; 20% both exports
R06.10.01.02-T04 Map jump and dash actions to keyboard and gamepad
原始指令
Godot 4 project Platformer2D. In Project Settings > Input Map add action 'jump' bound to Space and Joypad button 0 (A), and 'dash' bound to Left Shift and Joypad button 5 (RB), each with deadzone 0.2. Save project settings.
- 平台
mac· macOSwin· Windowslin· Linux- 应用
- Godot
- 交互表面
desk· 桌面 GUI- GUI 需求 · 任务设定
HY· 混合- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
click· 指向与点击key· 快捷键- 工作产物
WP08· 应用 / 系统状态- 条件
- 未声明
- 提案难度
- 1 / 5
建议验证方式
Parse project.godot [input]: jump and dash exist with exactly the listed InputEventKey physical keycodes and InputEventJoypadButton indices, deadzone 0.2. Headless test: Input.parse_input_event of each binding triggers is_action_pressed.
建议部分得分
50% jump bindings; 50% dash bindings
R06.10.01.02-T05 Make a key-card door with interaction prompt in Blueprints
原始指令
Unreal project FacilityProto. Create BP_KeyCard (pickup, adds 'Red' to player inventory array) and BP_SecurityDoor implementing BPI_Interact: shows UMG prompt 'Press E' within 2 m, opens (slides 3 m up over 1.5 s) only if player has Red card, otherwise shows 'Access denied' for 2 s. Place one of each in level Lab01.
- 平台
mac· macOSwin· Windows- 应用
- Unreal Engine 5 (Blueprints)
- 交互表面
desk· 桌面 GUI- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
G2· GUI 必要- 交互原语
drag· 拖放click· 指向与点击- 工作产物
WP06· 代码 / 工程- 条件
licensed· 授权专业软件- 提案难度
- 3 / 5
建议验证方式
Automation test in PIE: interact without card → door Z unchanged, denial widget visible ~2 s; pick card then interact → door Z +300±5 uu after 1.5±0.1 s; prompt widget visible only within 200 uu. BPI_Interact implemented by door. Python Editor Script Plugin is disabled and no C++ toolchain is installed; any new .cpp/.h under Source/ is detected and scores 0.
建议部分得分
20% card pickup; 20% prompt range; 30% door opens with card; 30% denial without card
R06.10.01.02-T06 Implement patrol, chase and return AI with NavMeshAgent
原始指令
Unity project StealthProto, scene Courtyard. Give Guard prefab a behavior: patrol waypoints WP1–WP4 in order, chase the player when within 8 m and in line of sight (raycast, 90° FOV), give up 5 s after losing sight, then return to the nearest waypoint and resume patrol. Speed 2 m/s patrol, 4.5 m/s chase.
- 平台
mac· macOSwin· Windows- 应用
- Unity
- 交互表面
desk· 桌面 GUI- GUI 需求 · 任务设定
HY· 混合- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令click· 指向与点击- 工作产物
WP06· 代码 / 工程- 条件
licensed· 授权专业软件- 提案难度
- 4 / 5
建议验证方式
Hidden PlayMode tests: waypoint visit order over 60 s; chase starts within 0.3 s when player placed 6 m in FOV, not when behind wall or at 10 m; returns to patrol 5±0.5 s after LOS lost; agent speeds within 5%.
建议部分得分
25% patrol order; 30% chase trigger incl. LOS/FOV; 25% give-up timing; 20% speeds
R06.10.01.02-T07 Fix a project that fails to package and ship a Development build
原始指令
Unreal project ArenaShooter fails in packaging: cook errors from a missing soft reference, a Blueprint referencing an editor-only module, and a map not listed in Maps to Cook. Fix all causes without deleting gameplay content, then package a Development build that boots to MainMenu and loads Arena01.
- 平台
mac· macOSwin· Windows- 应用
- Unreal Engine 5
- 交互表面
desk· 桌面 GUI- GUI 需求 · 任务设定
HY· 混合- GUI 需求 · 普通权限
G2· GUI 必要- 交互原语
click· 指向与点击vis· 视觉判断code· 代码与命令- 工作产物
WP06· 代码 / 工程- 条件
licensed· 授权专业软件hidden· 隐藏 / 过期状态- 提案难度
- 4 / 5
建议验证方式
Run packaged build with -ExecCmds to open Arena01 and quit: log shows MainMenu then Arena01 loaded, 0 Fatal errors. Cook log 0 errors. Hash list confirms all original gameplay Blueprints still present.
建议部分得分
30% cook errors resolved; 30% build packages; 25% boots and loads Arena01; 15% content preserved
R06.10.01.02-T08 Prototype a grid tower-defense wave and export a web build
原始指令
Godot 4 project TDProto has an enemy scene and a Path2D. Implement: click empty grid cells (32 px) to place a tower costing 50 gold (start 200), towers shoot nearest enemy in 120 px range at 1 shot/s for 10 damage, a wave spawns 20 enemies (30 HP) along the path, and leaking enemies cost a life (10 lives). Export Web build to build/web.
- 平台
mac· macOSwin· Windowslin· Linux- 应用
- Godot
- 交互表面
desk· 桌面 GUI- GUI 需求 · 任务设定
HY· 混合- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令click· 指向与点击drag· 拖放- 工作产物
WP06· 代码 / 工程- 条件
long· 长流程- 提案难度
- 5 / 5
建议验证方式
Headless test places towers via simulated clicks at given cells: gold, tower count and placement legality checked; deterministic wave sim with 3 fixed towers yields expected kills ±1 and lives. build/web/index.html loads in headless Chromium and reaches the main scene without console errors.
建议部分得分
20% placement and gold; 30% tower targeting/damage; 25% wave and lives; 25% web export runs
R06.10.01.02-T09 Add JSON save and load for player position and inventory
原始指令
Unity project ForestRPG. Implement SaveSystem: F5 saves player position, rotation, health and inventory item ids to Application.persistentDataPath/save1.json; F9 loads it and restores state. Save format must match schema save_schema.json.
- 平台
mac· macOSwin· Windows- 应用
- Unity
- 交互表面
desk· 桌面 GUI- GUI 需求 · 任务设定
HY· 混合- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令click· 指向与点击- 工作产物
WP06· 代码 / 工程- 条件
licensed· 授权专业软件- 提案难度
- 3 / 5
建议验证方式
Hidden PlayMode test: set state, press F5, mutate, press F9: position within 0.01 m, rotation within 0.5°, health and inventory equal. save1.json validates against save_schema.json.
建议部分得分
35% save file valid; 45% load restores state; 20% key bindings
R06.10.01.02-T10 Build a health component with UMG bar and floating damage numbers
原始指令
Unreal project BrawlerProto. Create Blueprint Actor Component BPC_Health (MaxHP 100, TakeDamage clamps to 0, OnDeath dispatcher). Add it to BP_Enemy, show a world-space UMG health bar that tracks HP, and spawn a floating damage number widget on each hit that rises and fades in 0.8 s.
- 平台
mac· macOSwin· Windows- 应用
- Unreal Engine 5 (Blueprints)
- 交互表面
desk· 桌面 GUI- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
G2· GUI 必要- 交互原语
drag· 拖放click· 指向与点击vis· 视觉判断- 工作产物
WP06· 代码 / 工程- 条件
licensed· 授权专业软件- 提案难度
- 3 / 5
建议验证方式
Automation test applies 3x35 damage: HP 65, 30, 0 (clamped), OnDeath fired once; bar percent equals HP/100 each frame; 3 damage widgets spawned with text '35' and destroyed after 0.8±0.1 s. Screenshot of bar shows fill proportional within 3%. Python Editor Script Plugin is disabled and no C++ toolchain is installed; any new .cpp/.h under Source/ is detected and scores 0.
建议部分得分
35% component logic; 15% OnDeath; 25% health bar; 25% damage numbers
R06.10.01.02-T11 Configure and build a landscape-only Android APK with touch joystick
原始指令
Unity project EndlessRunner. Add an on-screen joystick (Input System On-Screen Stick) controlling lateral movement, lock orientation to landscape, set package name com.test.runner, version 1.0.3 (code 13), min SDK 26, IL2CPP ARM64, and build a debug-signed APK to Builds/runner.apk.
- 平台
mac· macOSwin· Windows- 应用
- Unity
- 交互表面
desk· 桌面 GUI- GUI 需求 · 任务设定
HY· 混合- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
click· 指向与点击type· 文字与表单drag· 拖放- 工作产物
WP06· 代码 / 工程- 条件
licensed· 授权专业软件- 提案难度
- 3 / 5
建议验证方式
aapt2 dump badging: package, versionName/Code, minSdk 26, screenOrientation landscape, arm64-v8a lib only. Install on Android emulator, inject swipe on joystick region: player x-position changes in logcat telemetry.
建议部分得分
40% manifest values; 20% ARM64 IL2CPP; 40% joystick works on emulator
R06.10.01.02-T12 Stop fast bodies tunneling through thin platforms
原始指令
Godot 4 project FallTest: the player CharacterBody3D and falling crates (RigidBody3D) pass through 0.1 m platforms when falling from above 100 m. Fix it so nothing tunnels at up to 80 m/s while keeping platform thickness. Do not reduce max fall speed.
- 平台
mac· macOSwin· Windowslin· Linux- 应用
- Godot
- 交互表面
desk· 桌面 GUI- GUI 需求 · 任务设定
HY· 混合- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
click· 指向与点击code· 代码与命令- 工作产物
WP06· 代码 / 工程- 条件
- 未声明
- 提案难度
- 3 / 5
建议验证方式
Headless test drops player and 20 crates from 200 m onto each of 5 platforms: 100% come to rest above the platform. Platform mesh/shape thickness unchanged; max fall speed constant unchanged; physics ticks ≤120 Hz.
建议部分得分
40% crates stop; 40% player stops; 20% constraints kept
R06.10.01.02-T13 Add an in-game key rebinding menu that persists
原始指令
Unreal project RallyProto uses Enhanced Input. Build a UMG options screen listing actions Throttle, Brake, Handbrake, Reset with their keys; clicking an entry waits for a key press and rebinds it via Enhanced Input user settings; bindings persist to the saved config and survive restart. Package for the host platform.
- 平台
mac· macOSwin· Windows- 应用
- Unreal Engine 5 (Blueprints)
- 交互表面
desk· 桌面 GUI- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
drag· 拖放click· 指向与点击key· 快捷键- 工作产物
WP06· 代码 / 工程- 条件
licensed· 授权专业软件- 提案难度
- 4 / 5
建议验证方式
Gauntlet test on packaged build: open menu, click Handbrake, press J; J triggers handbrake and old key does not; restart build, binding still J (saved settings file contains mapping). All 4 actions listed with current keys. Python Editor Script Plugin is disabled and no C++ toolchain is installed; any new .cpp/.h under Source/ is detected and scores 0.
建议部分得分
25% menu lists actions; 35% rebind works; 25% persists across restart; 15% packaged
R06.10.01.02-T14 Implement a grappling hook to a design spec
原始指令
Unity project SkyHook. Per design/grapple.md: right mouse fires a ray up to 15 m at surfaces tagged Grapple, then pulls the player toward the hit point at 20 m/s, releases within 1 m or on jump, 1.5 s cooldown, line renderer shows the rope. Include the spec's air-control rule (50% input while pulling).
- 平台
mac· macOSwin· Windows- 应用
- Unity
- 交互表面
desk· 桌面 GUI- GUI 需求 · 任务设定
HY· 混合- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令click· 指向与点击- 工作产物
WP06· 代码 / 工程- 条件
licensed· 授权专业软件- 提案难度
- 4 / 5
建议验证方式
Hidden PlayMode tests: miss at 16 m and on untagged walls; hit at 14 m; pull velocity 20±1 m/s; release ≤1 m from point or on jump; second fire blocked for 1.5±0.05 s; LineRenderer enabled only while attached; air control halves lateral accel.
建议部分得分
25% targeting rules; 30% pull and release; 20% cooldown; 25% rope visual and air control
R06.10.01.02-T15 Drive branching NPC dialogue from a JSON script
原始指令
Godot 4 project VillageRPG. Implement a dialogue box that plays dialogue/blacksmith.json (nodes with text, choices, set_flag, require_flag). Choosing 'Offer ore' sets flag ore_given and unlocks node 'forge_sword' on the next conversation. Talk is triggered with ui_accept within 1.5 m of the NPC.
- 平台
mac· macOSwin· Windowslin· Linux- 应用
- Godot
- 交互表面
desk· 桌面 GUI- GUI 需求 · 任务设定
HY· 混合- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令click· 指向与点击- 工作产物
WP06· 代码 / 工程- 条件
- 未声明
- 提案难度
- 3 / 5
建议验证方式
Headless test walks the dialogue: displayed RichTextLabel text per node equals JSON; choice buttons match; after 'Offer ore' GameState.flags.ore_given==true and second talk reaches forge_sword; without flag the node is skipped; trigger fails at 2 m.
建议部分得分
30% text playback; 30% choices; 30% flags gate nodes; 10% trigger range
R06.10.01.02-T16 Replicate door state and pickup counter for listen-server multiplayer
原始指令
Unreal project CoopProto (Blueprints). Make BP_Door open state and the team pickup counter replicate: server-authoritative interaction via Run on Server event, OnRep updates door animation and HUD on all clients. Late-joining clients must see current state. Test with 2 PIE players on a listen server.
- 平台
mac· macOSwin· Windows- 应用
- Unreal Engine 5 (Blueprints)
- 交互表面
desk· 桌面 GUI- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
G2· GUI 必要- 交互原语
drag· 拖放click· 指向与点击- 工作产物
WP06· 代码 / 工程- 条件
licensed· 授权专业软件hidden· 隐藏 / 过期状态- 提案难度
- 5 / 5
建议验证方式
Automation multi-PIE test (server + 2 clients): client-initiated interaction opens door on all instances within 0.5 s; counter equal everywhere after 5 pickups; client cannot change state locally; late joiner sees open door and count 5. Python Editor Script Plugin is disabled and no C++ toolchain is installed; any new .cpp/.h under Source/ is detected and scores 0.
建议部分得分
30% server RPC path; 30% door replicated; 25% counter replicated; 15% late join
R06.10.01.02-T17 Find and remove a per-frame GC spike with the Profiler
原始指令
Unity project SwarmDemo stutters every ~2 s in scene Swarm. Use the Profiler to locate the managed allocations and fix them (pooling, cached arrays, no LINQ in Update) without changing gameplay behaviour. Target: 0 B GC alloc per frame in steady state and median frame time ≤16.6 ms in the provided benchmark.
- 平台
mac· macOSwin· Windows- 应用
- Unity
- 交互表面
desk· 桌面 GUI- GUI 需求 · 任务设定
HY· 混合- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
vis· 视觉判断nav· 平移 / 缩放 / 滚动code· 代码与命令- 工作产物
WP06· 代码 / 工程- 条件
licensed· 授权专业软件hidden· 隐藏 / 过期状态- 提案难度
- 4 / 5
建议验证方式
Hidden performance test (Unity Performance Testing) over 600 frames on reference machine: GC.Alloc per frame 0 B after warm-up, median frame ≤16.6 ms, p99 ≤25 ms. Behaviour test: swarm unit positions after 300 fixed steps equal baseline within 1e-3.
建议部分得分
40% zero GC alloc; 25% median frame; 15% p99; 20% behaviour unchanged
R06.10.01.02-T18 Configure Windows and macOS export presets and ship v1.2.0
原始指令
Godot 4 project PuzzleBox. Create export presets for Windows Desktop and macOS: application name 'Puzzle Box', version 1.2.0, icon icon.png, PCK embedded (Windows), bundle id com.test.puzzlebox (macOS). Export release builds to dist/win and dist/mac.
- 平台
mac· macOSwin· Windowslin· Linux- 应用
- Godot
- 交互表面
desk· 桌面 GUI- GUI 需求 · 任务设定
HY· 混合- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
click· 指向与点击type· 文字与表单- 工作产物
WP06· 代码 / 工程- 条件
- 未声明
- 提案难度
- 2 / 5
建议验证方式
export_presets.cfg contains both presets with listed fields. dist/win exe has embedded PCK and PE version 1.2.0; dist/mac .app Info.plist CFBundleIdentifier and CFBundleShortVersionString match. Windows build boots headless to the main scene.
建议部分得分
40% presets correct; 30% Windows build; 30% macOS build
R06.10.01.02-T19 Export the same builds from the command line (control pair of T18)
原始指令
Control pair of T18. Same project PuzzleBox, with export_presets.cfg already present but the GUI unavailable: run godot --headless --export-release for both presets and write a Makefile target 'dist' that reproduces the exports.
- 平台
lin· Linuxmac· macOS- 应用
- Godot
- 交互表面
term· 终端- GUI 需求 · 任务设定
CL· CLI 足够- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令- 工作产物
WP06· 代码 / 工程- 条件
- 未声明
- 提案难度
- 2 / 5
建议验证方式
make dist from a clean dist/ produces both artifacts with the same version and bundle checks as T18; shell history shows no editor launch.
建议部分得分
40% Windows artifact; 40% macOS artifact; 20% Makefile target reproducible
R06.10.01.02-T20 Build a two-plate crate puzzle that opens a gate
原始指令
Unity project TempleProto, scene Room3. Make two PressurePlate objects that register pressed when a Crate (Rigidbody, 40 kg) or the player stands on them, push-able crates, and a Gate that opens over 2 s only while both plates are pressed and closes when either is released. The provided solution replay solution.inputtrace must complete the room.
- 平台
mac· macOSwin· Windows- 应用
- Unity
- 交互表面
desk· 桌面 GUI- GUI 需求 · 任务设定
HY· 混合- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令geom· 精确几何- 工作产物
WP11· 游戏 / 仿真状态- 条件
licensed· 授权专业软件- 提案难度
- 3 / 5
建议验证方式
PlayMode tests: plate states with crate, player, nothing; gate opens 2±0.2 s after both pressed, closes on release; replaying solution.inputtrace ends with player in ExitTrigger within 90 s. Plate trigger rejects objects under 20 kg.
建议部分得分
30% plate detection; 30% gate logic; 30% replay solves room; 10% weight threshold
已有研究映射
以下沿用研究目录中的基准与小类映射,不是逐题标注、执行记录或产品背书。