Delve into the world of graphics and game development. Discuss creating stunning visuals, optimizing game mechanics, and share resources for game developers.

All subtopics
Posts under Graphics & Games topic

Post

Replies

Boosts

Views

Activity

Refresh Rate Drops from 144Hz to 98Hz After Monitor Power Cycle on macOS Golden Gate 27
Hello, I use a Gigabyte M32U monitor with my Mac mini. After updating to macOS Golden Gate 27 Release 3, I started experiencing an issue with my external display. Whenever I turn my monitor off and then turn it back on, the refresh rate automatically changes from 144Hz to 98Hz, and the 144Hz option disappears from the display settings. However, if I unplug the display cable and plug it back in, the monitor is detected again and the 144Hz option returns, allowing me to select it normally. This issue only started after updating to macOS Golden Gate 27 Release 3. Before the update, the monitor consistently worked at 144Hz without any problems. Could you please investigate this issue? Thank you.
0
0
88
3d
Import models into my game
Hello, Im watching this tutorial: https://www.youtube.com/watch?v=tNkvu-YUVro&t=241s I have a reality composer project saved But she does not explain step by step what directory to import, how exactly to import it, and where exactly to import it to I tried to drag and drop every folder level into xcode and also into finder, 1 by 1, nothing works. it does not recognize my contentBundle in code. if someone from apple can upload 2 screenshots sowing the proper way to do this in 2026 it will be awesome Thanks guys :)
2
0
247
4d
How can I determine which side of a RoomPlan wall surface contains the wall thickness?
I am using Apple RoomPlan and working with CapturedRoom.Surface objects representing walls. From RoomPlan, I can get information such as: transform dimensions polygonCorners completedEdges However, I am not sure how the returned wall surface should be interpreted geometrically. Is the wall surface returned by RoomPlan: the centerline of the physical wall; the interior face of the wall; the exterior face of the wall; or simply an estimated 2D surface without any guarantee about wall thickness? If I want to create a wall with thickness, for example when converting RoomPlan data to IFC or another BIM format, how can I determine which side of the returned surface the wall should be extruded toward? Does RoomPlan provide any information such as: wall thickness; interior or exterior wall side; inward or outward normal; wall centerline; a full 3D wall boundary; or the opposite face of the wall? I can calculate the surface normal from the third column of the wall transform and obtain the wall-face boundary using polygonCorners, but I do not know whether the positive normal points toward the room interior or exterior. Is there an official or recommended way to determine the correct wall side, or must applications infer it from the room geometry and apply an assumed wall thickness? Any clarification about the coordinate convention and intended geometric meaning of a RoomPlan wall surface would be appreciated.
1
0
202
6d
iPad Pro M4 (11-inch) – Persistent Gaming Performance Issues Across Multiple iPadOS Versions
Hello everyone, I am posting this to determine whether other iPad Pro M4 users are experiencing the same issue. Device: iPad Pro 11-inch (M4) Original Apple charger Tested on multiple iPadOS versions, stebal and beta including 26.2, 26.3, 26.4, 26.5.2 Games Tested: BGMI PUBG Mobile Global Call of Duty: Mobile Fortnite Issue: Despite using one of Apple's most powerful tablets, I continue to experience gaming performance problems. The issues include: FPS drops during long gaming sessions. Frame pacing inconsistencies. Reduced responsiveness during intense fights. Inconsistent hit registration and spray accuracy after extended play. Performance sometimes changes when gaming while charging with the original Apple charger. I have tested multiple iPadOS versions and multiple game updates over several months, but the issue has never been completely resolved. Interestingly, iPadOS feels more consistent for me than some previous versions, but the overall gaming experience is still not what I would expect from the M4 hardware. I have also noticed that many other iPad Pro M4 users have reported similar concerns on Reddit, Apple Communities, and other gaming forums. Questions: Are other iPad Pro M4 users experiencing the same FPS drops and gameplay inconsistencies? Has anyone found a reliable solution? Is Apple aware of these gaming performance issues on the M4 iPad Pro? Is this an iPadOS optimization issue, a GPU scheduling issue, or something related to game optimization? I hope Apple and game developers investigate this further because the M4 hardware should be capable of delivering a consistently excellent gaming experience. Thank you.
0
0
155
1w
M5 Pro external 5K 165Hz display: Window animations and scrolling UI appear to render at ~60Hz/jitter while cursor remains perfectly smooth
Hello Apple engineers, I’m trying to determine whether what I’m seeing is expected behavior or a software issue with the new M5 Pro platform. System MacBook Pro (M5 Pro) Latest macOS Beta External 5K 165Hz monitor connected via DisplayPort Refresh rate correctly detected as 165Hz What I observe The display itself is clearly running at 165Hz. For example: Mouse cursor movement is extremely smooth. Dragging the desktop by holding an empty area is also perfectly smooth. However: Moving application windows feels much closer to 60Hz. Scrolling in Safari, Chrome and other applications also appears to run at a much lower frame rate than the display refresh rate. Mission Control animations sometimes show similar micro-stutters. This makes the cursor and desktop movement noticeably smoother than normal window animations. ⸻ Troubleshooting already performed Different DisplayPort cables Different timing configurations Different resolutions / HiDPI modes DSC enabled and disabled Refresh rate confirmed at 165Hz Same behavior across multiple applications The issue appears unrelated to the monitor itself because the cursor is clearly rendered at the full refresh rate. ⸻ Additional observation Interestingly, I previously used another external 4K 144Hz HDR monitor and did not notice this behavior. I also found another M5 Pro user reporting nearly the same issue: external 165Hz display smooth cursor window dragging jitter / micro-stuttering At the same time, I haven’t found similar reports from M4 Pro or the base M5 running the same monitor. ⸻ My question Could this be related to the new M5 Pro display pipeline (WindowServer, Display Engine, or DCP)? Is there any known issue regarding high-refresh-rate external displays on the M5 Pro platform? Or is there additional diagnostic logging (WindowServer, DCP, Metal, etc.) that would help identify whether frames are actually being presented at the display refresh rate? I’d be happy to provide: sysdiagnose WindowServer logs Screen recordings Display timing information IORegistry dumps if they would be helpful. Thank you!
3
1
142
1w
M5 Pro WindowServer/Display Engine: Window animations and UI scrolling capped at ~60Hz on external 5K 165Hz display while hardware cursor remains smooth
On the new M5 Pro platform running macOS, UI animations (window dragging, Safari/Chrome scrolling, Mission Control) on an external 5K 165Hz display appear to render at a much lower frame rate (~60Hz) or exhibit severe micro-stuttering. However, the mouse cursor and desktop wallpaper dragging remain perfectly fluid at 165Hz, indicating a potential issue in the WindowServer compositor or display pipeline rather than the physical link. Environment • Hardware: MacBook Pro (M5 Pro) • OS: macOS 27.0 beta 3 (26A5378j) • External Display: 5K 165Hz monitor connected via DisplayPort (DSC confirmed via IORegistry). System Settings correctly detects and selects 165Hz. Expected Behavior All UI elements, including window movement, application scrolling, and system animations, should render smoothly at the native 165Hz refresh rate matching the hardware capabilities. Actual Behavior The display output appears split between two different refresh rates: 1. Full 165Hz: The hardware mouse cursor and desktop dragging (empty area selection) are perfectly smooth. 2. ~60Hz / Jitter: Application windows (Finder, Safari, Chrome) stutter heavily when dragged or scrolled. Mission Control animations suffer from micro-stutters. Note: This specific combination suggests the Hardware Cursor layer is running at full rate, but the WindowServer compositor layer is throttled or dropping frames. Troubleshooting Performed (No Change) • Verified with multiple certified DisplayPort cables. • Tested across various resolutions (Scaled/HiDPI modes) and toggling DSC. • Regression Check: This issue did not occur on a 4K 144Hz HDR monitor previously, and initial community feedback shows other M5 Pro users experiencing this specific 165Hz window-dragging jitter, while M4 Pro / base M5 users on the same macOS beta do not seem impacted. Questions & Diagnostics 1. Is this a known regression related to the new M5 Pro display engine / Display Coprocessor (DCP) pipeline handling 5K high-refresh-rate timings? 2. Are there specific defaults write commands, Quartz Debug profiles, or custom logging arguments (WindowServer, DCP, or Metal) we can enable to capture frame presentation metrics? I have captured a sysdiagnose, IORegistry dump, and high-frame-rate screen recordings, and am ready to attach them as soon as this feedback is processed. Case / Feedback Reference Feedback ID: FB23616959 (Captured after the system format)
0
0
100
1w
Archived achievements
Hi! With my next update i want to archive 6 of my 18 achievements, and add 7 new ones. I've archived the 6, and added the 7 new ones, but i can distritibute any points due to the archived 6 still holding the active point amount. It's been about 12 hours since i archived them, so do i just wait another 12 hours or is there a better way ?
4
0
279
1w
HidHide on MacOS
I was wondering if there's a method on MacOS to have my application hide a hid device such as a game controller and instead have the receiving game/application see my app's virtual controller? Is this possible via DriverKit or some other form of kernel level coding? On Windows we have a tool known as HidHide that hids a game controller from all other applications. Is it possible to implement such behavior into an app or is that system level?
7
0
3.0k
1w
SKView showsFields draws only on a portion of the screen
The SKView.showsFields = true only draws on a portion of the screen - nothing shows on the bottom-left. This can be easily tested using Apple's default game playground. I only removed the action for the Hello World label and added a radialGravityField into the scene. Also other fields like electricField do not draw anything on the screen. Tested in Xcode 11.7 and Xcode 12.5.1. Is this a bug in the recent releases? override func didMove(to view: SKView) { // ... let field = SKFieldNode.radialGravityField() addChild(field) } and sceneView.showsFields = true
5
1
1.6k
1w
How do I work with the BlendMask node in the animation graph in RCP3?
In RCP3, is it possible to mask out joints in a pose at runtime? I want to have two poses running for my character, one for the upper body and one for the lower body and I was hoping to do that from the animation graph. It seems like I should be able to have two State Machine nodes running, and use the Blend Mask node to make sure only joints from the upper body animation comes through from the upper body state machine, and the same for the lower body. The description of the Blend Mask node say "Filter a pose by applying per-joint weights from a blend mask" so that seems like what I want. But I can't figure out how to author a blend mask resources in RCP3. It seems to be possible to do programmatically via the SkeletonResource.BlendMask struct but how do I do it in RCP3? Also, the Blend Mask node takes two poses as parameters, whereas I was expecting it to take a pose and a blend mask.
0
0
96
1w
Xcode 26 – "Manage Game Progress" not showing achievements/leaderboards on macOS
Hello, When testing GameKit "Manage Game Progress" in Xcode 26: On iOS devices, achievements, leaderboards, and party code data display and work correctly. On macOS devices, none of these data appear in "Manage Game Progress." Is this a known issue with macOS GameKit, or is there a limitation compared to iOS? If it is not a bug, is there any additional configuration needed to make achievements and leaderboards visible on macOS? I also included the GameKit bundle in my macOS app and enabled Enable Debug Mode in GameKit Configuration in the scheme options. Thank you.
4
1
981
1w
App terminated by watchdog due to hang in Game Center authentication.
Hi, We are seeing watchdog-terminated app hangs reported by users on iOS 26. The hang occurs during cold launch when we set the Game Center authenticate handler. Our usage is straightforward — we follow the official guide: to set the handler once in the boot flow. localPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error){//handler code} The app never reaches our handler code. Instead, it is killed by the watchdog before the handler is invoked. Root Cause: We believe the root cause is GKDaemonProxy localPlayerAgeCategory makes a synchronous XPC call ( xpc_connection_send_message_with_reply_sync ) to the Game Center daemon ( com.apple.gamed ). The daemon does not respond, blocking the main thread indefinitely until the watchdog terminates the app. Also we haven't seen this before iOS 26. Reproduction Conditions: Unfortunately we don't have a consistent way to reproduce it. It happens intermittently. And I can't share the iOS build due to company requirements. I have pasted the stack trace below (all users report the similar stack tracks). Stack trace (representative, reported consistently across affected users): App Hang: The app was terminated while unresponsive 0 libsystem_kernel.dylib +0xcd0 _mach_msg2_trap 1 libsystem_kernel.dylib +0x4308 _mach_msg2_internal 2 libsystem_kernel.dylib +0x4228 _mach_msg_overwrite 3 libsystem_kernel.dylib +0x4074 _mach_msg 4 libdispatch.dylib +0x1c980 __dispatch_mach_send_and_wait_for_reply 5 libdispatch.dylib +0x1cd20 _dispatch_mach_send_with_result_and_wait_for_reply 6 libxpc.dylib +0x11ed8 _xpc_connection_send_message_with_reply_sync 7 Foundation +0x41710 ___NSXPCCONNECTION_IS_WAITING_FOR_A_SYNCHRONOUS_REPLY__ 8 Foundation +0x29068 -[NSXPCConnection _sendInvocation:orArguments:count:methodSignature:selector:withProxy:] 9 Foundation +0x69b7c -[NSXPCConnection _sendSelector:withProxy:arg1:] 10 Foundation +0x699e8 __NSXPCDistantObjectSimpleMessageSend1 11 GameCenterFoundation +0x986fc ___39-[GKDaemonProxy localPlayerAgeCategory]_block_invoke.109 12 GameCenterFoundation +0x1397d0 0x22cbde7d0 (0x22cbde794 + 60) 13 GameCenterFoundation +0x139610 0x22cbde610 (0x22cbde508 + 264) 14 GameCenterFoundation +0x139770 0x22cbde770 (0x22cbde6ec + 132) 15 GameCenterFoundation +0x98420 -[GKDaemonProxy localPlayerAgeCategory] 16 GameCenterFoundation +0x2ceb4 -[GKClientPreferencesSupport localPlayerAgeCategory] 17 GameCenterFoundation +0x93ba4 -[GKPreferences(AgeCategoryRestrictions) localPlayerAgeCategory] 18 GameCenterFoundation +0x93c34 -[GKPreferences(AgeCategoryRestrictions) getRestrictionLimitForLocalPlayer:] 19 GameCenterFoundation +0x93cd0 -[GKPreferences(AgeCategoryRestrictions) clampBoolRestriction:tableEntry:] 20 GameCenterFoundation +0x93d40 -[GKPreferences(AgeCategoryRestrictions) isBoolValueRestricted:tableEntry:] 21 GameCenterFoundation +0x9f7b8 -[GKPreferences(Restrictions) isBoolKeyRestricted:category:] 22 GameCenterUICore +0x2d04 -[GKLocalPlayerAuthenticator _authenticateUsingAuthUI:authenticationResults:usernameEditable:authUIDismissHandler:completionHandler:] 23 GameCenterUICore +0xd638 ___106-[GKLocalPlayer(AuthenticationPrivate) startAuthenticationForExistingPrimaryPlayerUponReturnToForeground:]_block_invoke 24 libsystem_trace.dylib +0xdb40 _os_activity_apply_f 25 GameCenterFoundation +0x181f4 -[GKActivity execute:] 26 GameCenterFoundation +0x18138 +[GKActivity named:execute:] 27 GameCenterUICore +0xd528 -[GKLocalPlayer(AuthenticationPrivate) startAuthenticationForExistingPrimaryPlayerUponReturnToForeground:] 28 libsystem_trace.dylib +0xdb40 _os_activity_apply_f 29 GameCenterFoundation +0x181f4 -[GKActivity execute:] 30 GameCenterFoundation +0x18138 +[GKActivity named:execute:] 31 GameCenterFoundation +0x4f124 ___40-[GKLocalPlayer setAuthenticateHandler:]_block_invoke 32 libdispatch.dylib +0x1b1e0 __dispatch_client_callout 33 libdispatch.dylib +0x45ac __dispatch_once_callout 34 GameCenterFoundation +0x4f070 -[GKLocalPlayer setAuthenticateHandler:] Additional Notes: This issue was not observed prior to iOS 26. We have no reports of this on iOS 17 or iOS 18. We are unable to share a build due to company policy. We cannot reproduce this consistently — it occurs intermittently in production. All affected users report the same stack trace pattern.
4
7
806
1w
Metal Shader Converter thread safety
Hello Apple! We've got offline shader compilation from HLSL -> Metallib using DXC -> SPIR-V -> metal.exe. This works okay for the most part, but it requires the creation of intermediate files to pass to/from the metal.exe process and we've had some issues with metal.exe sometimes not launching (probably our fault). Then we noticed Metal Shader Converter (MSC) exists and has a DLL - this looks way better since there's no need to launch processes or store intermediate files. However, upon trying to replace metal.exe with it I quickly ran into rampant heap corruption. I was surprised because the docs claim this: Each thread in your program needs to create its own instance of IRCompiler to avoid race conditions. But once I start calling IRCompilerAllocCompileAndLink in parallel all hell breaks loose, whether or not each thread has its own IRCompiler. I figured I must be doing something wrong, so I removed my attempt and compiled DXC locally with the MSC integration and encountered the exact same heap corruption. So I'm inclined to think the library isn't actually thread safe, but I'm wondering if there's something I'm missing? I tried all 3 versions of MSC just in case it was a problem with 3.0, but I got the same result each time. The only way to make it work was to surround compilation with a mutex, which makes its use pointless in our case.
0
0
182
2w
Times New Roman superscript and Unicode fallback font
I was using Times New Roman and trying to use superscript numbers, but found out that Times New Roman only has superscript numbers 0, 1, 2, 3, ¹ (like so) and since I'm writing out transcriptions of pinyin, I also need superscript 4, 5, 6, 7. When I do that, the font changes to Lucida Grande automatically. I would like to change the default unicode font/alt font from Lucida Grande to EB Garamond (downloaded from Google) since it more closely resembles Times New Roman and unfortunately, I need to keep the font as close to Times New Roman as possible. Is there a way to change the default the computer chooses to when Times New Roman/alt font fails unicode? Alternatively, is there a font that looks exactly like Times New Roman that has the superscript numbers 0-9? 2022 laptop, M2, Tahoe 26.6.1 Move post at will if need be.
4
0
413
2w
Why is this framework marketed as AR/VR ?
Its an honest question, while VR and AR are a cool thing, they are a bit far from what the vast majority of gaming is. (wither mobile or none mobile) Im only a few weeks with the system, but it think its insanely powerful as a game dev tool.Data orient based with ECS, fast, seamless, frictionless, well thought, optimized and packed everything needed. Just my humble opinion, Maybe consider naming it Apple Game Engine / Apple Game Framework - it will attract a lot of developers who just want to make games and are tired of the bloated and messy unreal and unity, tired of being chained into a bloated OOP hierarchy. "Reality" within the name of the kit, as a concept scares away a lot of developers, they think its just a tool only for VR, they dont know its actually a complete powerful and optimized framework to create any game you want. It have so many advantages over unreal. Unreal wraps everything in proprietary objects, forcing you learn mountains of made up keywords even if you already know native C++ A lot of developers are attracted to rayLib because of how bloated commercial game engines are, they dont know Reality Kit is actually a better solution then a lot of framework libraries out there. Just my thoughts,Maybe it finds its way to some folks in marketing. Either way thank you for creating this framework. its absolutely amazing to use
0
1
147
2w
-1003 error when reporting or loading achievements in Unity app
Hello, I'm building an unreleased game and testing it on both iOS 26.5.2 and iOS 27.0 Developer Beta, and getting the same error when trying to interact with GameKit. It doesn't seem to matter whether the game is deployed directly through Xcode or Testflight. The local player authenticates properly upon booting the game, but when trying to claim an achievement using the following code: try { var inProgressAchievements = await GKAchievement.LoadAchievements(); var gkAchievement = inProgressAchievements.FirstOrDefault(ach => ach.Identifier == "NEW_CASE"); if (gkAchievement == null) gkAchievement = GKAchievement.Init("NEW_CASE"); gkAchievement.PercentComplete = 100; await GKAchievement.Report(gkAchievement); } catch (GameKitException e) { Debug.LogError($"Failed to report achievement {achievement.IOSAchievementID}, error {e.Code} : {e.Message}"); } I get the following error: [Platform] [21.598] Failed to report achievement NEW_CASE, error -1003 : Code=-1003 Domain=NSURLErrorDomain Description=Aucun serveur ayant le nom d’hôte précisé n’a été détecté. Manavoid.Core.<<UnlockAchievement>gDoAsync|0>d:MoveNext() (at ./Library/PackageCache/com.manavoid.core@824a3b70b55f/Runtime/Platform/IOSSubsystem.cs:69) Apple.GameKit.GKAchievement:OnLoadAchievementsError(Int64, IntPtr) (at ./Library/PackageCache/com.apple.unityplugin.gamekit@1ebe01ff0665/Source/GKAchievement.cs:139) [Platform] [21.59859] Failed to report achievement , error -1003 : Code=-1003 Domain=NSURLErrorDomain Description=Aucun serveur ayant le nom d’hôte précisé n’a été détecté. Manavoid.Core.<<UnlockAchievement>gDoAsync|0>d:MoveNext() (at ./Library/PackageCache/com.manavoid.core@824a3b70b55f/Runtime/Platform/IOSSubsystem.cs:69) Apple.GameKit.GKAchievement:OnLoadAchievementsError(Int64, IntPtr) (at ./Library/PackageCache/com.apple.unityplugin.gamekit@1ebe01ff0665/Source/GKAchievement.cs:139) I currently have 18 achievements set up in Game Center. Some of them are still strictly IDs and have no localization data or artwork yet, if that matters. Opening the Game Center overlay in-game works, but I can't see any achievements listed. I did manage to see them once (with missing localization as expected), but I couldn't reproduce it consistently, most of the time Game Center simply says "0 out of 0 achievements". My Testflight build metadata looks like this: ***.app*** application-identifier: **********.com.***.*** get-task-allow: false beta-reports-active: true com.apple.developer.team-identifier: ********** com.apple.developer.game-center: true Help!
1
0
215
2w
Game Mode never engages for my card game
Environment: macOS 26.5, M4 Pro, native SwiftUI app (no MTKView/game render loop; it does use SwiftUI Metal shader effects). There's a related scheduling puzzle underneath: my app's worker threads are confined to E-cores for work that runs on P-cores from a CLI. The game computes AI decisions with brief CPU-bound bursts of parallel tree search. The identical library, doing node-count-identical work, runs ~6× slower inside the app than from a CLI on the same machine — the difference is core placement, not the workload. And since several bot decisions run in sequence each hand, that 6× stacks into user-visible seconds at the table: CLI process, default QoS: ~54ms per decision (P-cores) GUI app, worker threads at .userInitiated and .userInteractive: ~350ms (E-cores) Reproducible from the CLI with taskpolicy clamps: utility ≈ 92ms, background ≈ 584ms The app declares LSApplicationCategoryType = public.app-category.card-games and GCSupportsGameMode = true, and runs native full screen as the frontmost app on Apple Silicon — but Game Mode never engages (no menu-bar controller icon). Questions: What are the actual activation criteria for Game Mode? Is a game-style render surface (e.g. MTKView/CAMetalLayer) required beyond the Info.plist declarations? Is E-core placement for a GUI app's non-main-thread compute intended scheduler policy even at userInteractive QoS? What is the supported way for a GUI app to run brief, user-blocking compute on P-cores — is Game Mode the intended lever, or should I be looking at something like os_workgroup?
2
0
199
2w
Setting massProperties on a USDZ-loaded entity corrupts its transform (position/scale → NaN)
Setting massProperties on a USDZ-loaded entity corrupts its transform (position/scale → NaN) Category: RealityKit / visionOS Environment: visionOS 26.x Summary: Modifying PhysicsBodyComponent.massProperties at runtime on an entity loaded from a .usdz file silently corrupts the entity's transform. The translation and scale components become NaN, while rotation remains valid. The corruption occurs during the next RealityKit scene update cycle (e.g., during an await suspension on the main actor). Steps to Reproduce: Author a .usda file with a RigidBody component including valid m_mass and m_inertia values Load the entity at runtime via Entity(named: "MyEntity.usdz", in: bundle) Read the existing PhysicsBodyComponent, modify massProperties, and set it back: if var physics = entity.components[PhysicsBodyComponent.self] { physics.massProperties = .init( mass: 1.944, inertia: SIMD3<Float>(0.013, 0.026, 0.016), centerOfMass: (position: .zero, orientation: .init()) ) entity.components.set(physics) } Add the entity to the scene Perform any await call (e.g., TextureResource(contentsOf:)) that yields to the main actor, allowing a RealityKit scene update to run Expected: The entity retains its position and scale with the updated mass/inertia values. Actual: The entity's transform becomes corrupted: Transform( scale: SIMD3<Float>(nan, nan, nan), rotation: simd_quatf(real: 1.0, imag: SIMD3<Float>(0.0, 0.0, 0.0)), // ← fine translation: SIMD3<Float>(-nan, -nan, -nan) ) Additional findings from investigation: The entity's physics mode does not matter — corruption occurs even when the entity is .kinematic Creating a new PhysicsBodyComponent(...) and replacing the existing one also triggers the bug Modifying other properties on the same component (linearDamping, angularDamping, material, mode) does not cause corruption — only massProperties triggers it The parent entity's transform remains valid The computed mass/inertia values themselves are valid (finite, positive) The corruption is silent — no error, no warning, no crash from RealityKit itself Workaround: Author mass and inertia values directly in the .usda file and do not modify massProperties at runtime: def RealityKitStruct "massFrame" { float3 m_inertia = (0.02, 0.02, 0.038) float m_mass = 2.5 def RealityKitStruct "m_pose" { } } Other PhysicsBodyComponent properties (damping, material, mode) can safely be modified at runtime.
2
0
792
2w
MDLAsset loads texture in usdz file loaded with wrong colorspace
I have a very basic usdz file from this repo I call loadTextures() after loading the usdz via MDLAsset. Inspecting the MDLTexture object I can tell it is assigning a colorspace of linear rgb instead of srgb although the image file in the usdz is srgb. This causes the textures to ultimately render as over saturated. In the code I later convert the MDLTexture to MTLTexture via MTKTextureLoader but if I set the srgb option it seems to ignore it. This significantly impacts the usefulness of Model I/O if it can't load a simple usdz texture correctly. Am I missing something? Thanks!
6
3
1.3k
2w
Reality Kit 3 large scale practices - what is under the hood
Hello guys I want to use Reality Kit 3 for none AR games. Coming from unreal (7y) I have a few technical questions if i may please: (all questions are assuming my game will handle 50-500 enemies on screen) How does RTK3 handle everything under the hood? its easy to create a struct that hold multiple floats as a data blocks for the system to handle (like hp, dmg, ect), but, what happen when i want generic ASSET data (materials, meshes) ? What if i want to construct a material and hand a cheap id to the processor (system) ? while make sure i packed it nicely to the cpu's cache line . There is not much in the documentation to explain the under the hood architecture of the system for me to make educated decision abut my code. i try to avoid reference bloat in my game, and make sure the system does not coupled new material or new mesh every time it want to perform a generic command on the entity (in 60 fps) For example, in unreal mass, as bloated and over complicated it is - its pretty clear to me what is construction phase, what is the recommended way to generate my data blocks (called fragments there) and how exactly to use them in the system so its all tightly packed At this moment my only assumption is to create a 3 layers custom system to make sure its all running properly: The builder of the pool - it will do the " let shinyMetal = SimpleMaterial(color: ... ect" and save it on some dictionary map the data block - just a simple struct that hold a thin reference to the pool that can be use as a component in the ECS the system - The RTK3 built is system real time . can use the struct as a component and even swap the id in real time is this safe consider how RTK3 build under the hood? or is this even slower ? i have very little to go by. if reality kit engineer can reply and help me here it would be awesome :) Thank you so much for reading guys ! was kinda long. cheers
1
1
340
2w
Refresh Rate Drops from 144Hz to 98Hz After Monitor Power Cycle on macOS Golden Gate 27
Hello, I use a Gigabyte M32U monitor with my Mac mini. After updating to macOS Golden Gate 27 Release 3, I started experiencing an issue with my external display. Whenever I turn my monitor off and then turn it back on, the refresh rate automatically changes from 144Hz to 98Hz, and the 144Hz option disappears from the display settings. However, if I unplug the display cable and plug it back in, the monitor is detected again and the 144Hz option returns, allowing me to select it normally. This issue only started after updating to macOS Golden Gate 27 Release 3. Before the update, the monitor consistently worked at 144Hz without any problems. Could you please investigate this issue? Thank you.
Replies
0
Boosts
0
Views
88
Activity
3d
Import models into my game
Hello, Im watching this tutorial: https://www.youtube.com/watch?v=tNkvu-YUVro&t=241s I have a reality composer project saved But she does not explain step by step what directory to import, how exactly to import it, and where exactly to import it to I tried to drag and drop every folder level into xcode and also into finder, 1 by 1, nothing works. it does not recognize my contentBundle in code. if someone from apple can upload 2 screenshots sowing the proper way to do this in 2026 it will be awesome Thanks guys :)
Replies
2
Boosts
0
Views
247
Activity
4d
How can I determine which side of a RoomPlan wall surface contains the wall thickness?
I am using Apple RoomPlan and working with CapturedRoom.Surface objects representing walls. From RoomPlan, I can get information such as: transform dimensions polygonCorners completedEdges However, I am not sure how the returned wall surface should be interpreted geometrically. Is the wall surface returned by RoomPlan: the centerline of the physical wall; the interior face of the wall; the exterior face of the wall; or simply an estimated 2D surface without any guarantee about wall thickness? If I want to create a wall with thickness, for example when converting RoomPlan data to IFC or another BIM format, how can I determine which side of the returned surface the wall should be extruded toward? Does RoomPlan provide any information such as: wall thickness; interior or exterior wall side; inward or outward normal; wall centerline; a full 3D wall boundary; or the opposite face of the wall? I can calculate the surface normal from the third column of the wall transform and obtain the wall-face boundary using polygonCorners, but I do not know whether the positive normal points toward the room interior or exterior. Is there an official or recommended way to determine the correct wall side, or must applications infer it from the room geometry and apply an assumed wall thickness? Any clarification about the coordinate convention and intended geometric meaning of a RoomPlan wall surface would be appreciated.
Replies
1
Boosts
0
Views
202
Activity
6d
iPad Pro M4 (11-inch) – Persistent Gaming Performance Issues Across Multiple iPadOS Versions
Hello everyone, I am posting this to determine whether other iPad Pro M4 users are experiencing the same issue. Device: iPad Pro 11-inch (M4) Original Apple charger Tested on multiple iPadOS versions, stebal and beta including 26.2, 26.3, 26.4, 26.5.2 Games Tested: BGMI PUBG Mobile Global Call of Duty: Mobile Fortnite Issue: Despite using one of Apple's most powerful tablets, I continue to experience gaming performance problems. The issues include: FPS drops during long gaming sessions. Frame pacing inconsistencies. Reduced responsiveness during intense fights. Inconsistent hit registration and spray accuracy after extended play. Performance sometimes changes when gaming while charging with the original Apple charger. I have tested multiple iPadOS versions and multiple game updates over several months, but the issue has never been completely resolved. Interestingly, iPadOS feels more consistent for me than some previous versions, but the overall gaming experience is still not what I would expect from the M4 hardware. I have also noticed that many other iPad Pro M4 users have reported similar concerns on Reddit, Apple Communities, and other gaming forums. Questions: Are other iPad Pro M4 users experiencing the same FPS drops and gameplay inconsistencies? Has anyone found a reliable solution? Is Apple aware of these gaming performance issues on the M4 iPad Pro? Is this an iPadOS optimization issue, a GPU scheduling issue, or something related to game optimization? I hope Apple and game developers investigate this further because the M4 hardware should be capable of delivering a consistently excellent gaming experience. Thank you.
Replies
0
Boosts
0
Views
155
Activity
1w
M5 Pro external 5K 165Hz display: Window animations and scrolling UI appear to render at ~60Hz/jitter while cursor remains perfectly smooth
Hello Apple engineers, I’m trying to determine whether what I’m seeing is expected behavior or a software issue with the new M5 Pro platform. System MacBook Pro (M5 Pro) Latest macOS Beta External 5K 165Hz monitor connected via DisplayPort Refresh rate correctly detected as 165Hz What I observe The display itself is clearly running at 165Hz. For example: Mouse cursor movement is extremely smooth. Dragging the desktop by holding an empty area is also perfectly smooth. However: Moving application windows feels much closer to 60Hz. Scrolling in Safari, Chrome and other applications also appears to run at a much lower frame rate than the display refresh rate. Mission Control animations sometimes show similar micro-stutters. This makes the cursor and desktop movement noticeably smoother than normal window animations. ⸻ Troubleshooting already performed Different DisplayPort cables Different timing configurations Different resolutions / HiDPI modes DSC enabled and disabled Refresh rate confirmed at 165Hz Same behavior across multiple applications The issue appears unrelated to the monitor itself because the cursor is clearly rendered at the full refresh rate. ⸻ Additional observation Interestingly, I previously used another external 4K 144Hz HDR monitor and did not notice this behavior. I also found another M5 Pro user reporting nearly the same issue: external 165Hz display smooth cursor window dragging jitter / micro-stuttering At the same time, I haven’t found similar reports from M4 Pro or the base M5 running the same monitor. ⸻ My question Could this be related to the new M5 Pro display pipeline (WindowServer, Display Engine, or DCP)? Is there any known issue regarding high-refresh-rate external displays on the M5 Pro platform? Or is there additional diagnostic logging (WindowServer, DCP, Metal, etc.) that would help identify whether frames are actually being presented at the display refresh rate? I’d be happy to provide: sysdiagnose WindowServer logs Screen recordings Display timing information IORegistry dumps if they would be helpful. Thank you!
Replies
3
Boosts
1
Views
142
Activity
1w
M5 Pro WindowServer/Display Engine: Window animations and UI scrolling capped at ~60Hz on external 5K 165Hz display while hardware cursor remains smooth
On the new M5 Pro platform running macOS, UI animations (window dragging, Safari/Chrome scrolling, Mission Control) on an external 5K 165Hz display appear to render at a much lower frame rate (~60Hz) or exhibit severe micro-stuttering. However, the mouse cursor and desktop wallpaper dragging remain perfectly fluid at 165Hz, indicating a potential issue in the WindowServer compositor or display pipeline rather than the physical link. Environment • Hardware: MacBook Pro (M5 Pro) • OS: macOS 27.0 beta 3 (26A5378j) • External Display: 5K 165Hz monitor connected via DisplayPort (DSC confirmed via IORegistry). System Settings correctly detects and selects 165Hz. Expected Behavior All UI elements, including window movement, application scrolling, and system animations, should render smoothly at the native 165Hz refresh rate matching the hardware capabilities. Actual Behavior The display output appears split between two different refresh rates: 1. Full 165Hz: The hardware mouse cursor and desktop dragging (empty area selection) are perfectly smooth. 2. ~60Hz / Jitter: Application windows (Finder, Safari, Chrome) stutter heavily when dragged or scrolled. Mission Control animations suffer from micro-stutters. Note: This specific combination suggests the Hardware Cursor layer is running at full rate, but the WindowServer compositor layer is throttled or dropping frames. Troubleshooting Performed (No Change) • Verified with multiple certified DisplayPort cables. • Tested across various resolutions (Scaled/HiDPI modes) and toggling DSC. • Regression Check: This issue did not occur on a 4K 144Hz HDR monitor previously, and initial community feedback shows other M5 Pro users experiencing this specific 165Hz window-dragging jitter, while M4 Pro / base M5 users on the same macOS beta do not seem impacted. Questions & Diagnostics 1. Is this a known regression related to the new M5 Pro display engine / Display Coprocessor (DCP) pipeline handling 5K high-refresh-rate timings? 2. Are there specific defaults write commands, Quartz Debug profiles, or custom logging arguments (WindowServer, DCP, or Metal) we can enable to capture frame presentation metrics? I have captured a sysdiagnose, IORegistry dump, and high-frame-rate screen recordings, and am ready to attach them as soon as this feedback is processed. Case / Feedback Reference Feedback ID: FB23616959 (Captured after the system format)
Replies
0
Boosts
0
Views
100
Activity
1w
Archived achievements
Hi! With my next update i want to archive 6 of my 18 achievements, and add 7 new ones. I've archived the 6, and added the 7 new ones, but i can distritibute any points due to the archived 6 still holding the active point amount. It's been about 12 hours since i archived them, so do i just wait another 12 hours or is there a better way ?
Replies
4
Boosts
0
Views
279
Activity
1w
HidHide on MacOS
I was wondering if there's a method on MacOS to have my application hide a hid device such as a game controller and instead have the receiving game/application see my app's virtual controller? Is this possible via DriverKit or some other form of kernel level coding? On Windows we have a tool known as HidHide that hids a game controller from all other applications. Is it possible to implement such behavior into an app or is that system level?
Replies
7
Boosts
0
Views
3.0k
Activity
1w
SKView showsFields draws only on a portion of the screen
The SKView.showsFields = true only draws on a portion of the screen - nothing shows on the bottom-left. This can be easily tested using Apple's default game playground. I only removed the action for the Hello World label and added a radialGravityField into the scene. Also other fields like electricField do not draw anything on the screen. Tested in Xcode 11.7 and Xcode 12.5.1. Is this a bug in the recent releases? override func didMove(to view: SKView) { // ... let field = SKFieldNode.radialGravityField() addChild(field) } and sceneView.showsFields = true
Replies
5
Boosts
1
Views
1.6k
Activity
1w
How do I work with the BlendMask node in the animation graph in RCP3?
In RCP3, is it possible to mask out joints in a pose at runtime? I want to have two poses running for my character, one for the upper body and one for the lower body and I was hoping to do that from the animation graph. It seems like I should be able to have two State Machine nodes running, and use the Blend Mask node to make sure only joints from the upper body animation comes through from the upper body state machine, and the same for the lower body. The description of the Blend Mask node say "Filter a pose by applying per-joint weights from a blend mask" so that seems like what I want. But I can't figure out how to author a blend mask resources in RCP3. It seems to be possible to do programmatically via the SkeletonResource.BlendMask struct but how do I do it in RCP3? Also, the Blend Mask node takes two poses as parameters, whereas I was expecting it to take a pose and a blend mask.
Replies
0
Boosts
0
Views
96
Activity
1w
Xcode 26 – "Manage Game Progress" not showing achievements/leaderboards on macOS
Hello, When testing GameKit "Manage Game Progress" in Xcode 26: On iOS devices, achievements, leaderboards, and party code data display and work correctly. On macOS devices, none of these data appear in "Manage Game Progress." Is this a known issue with macOS GameKit, or is there a limitation compared to iOS? If it is not a bug, is there any additional configuration needed to make achievements and leaderboards visible on macOS? I also included the GameKit bundle in my macOS app and enabled Enable Debug Mode in GameKit Configuration in the scheme options. Thank you.
Replies
4
Boosts
1
Views
981
Activity
1w
App terminated by watchdog due to hang in Game Center authentication.
Hi, We are seeing watchdog-terminated app hangs reported by users on iOS 26. The hang occurs during cold launch when we set the Game Center authenticate handler. Our usage is straightforward — we follow the official guide: to set the handler once in the boot flow. localPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error){//handler code} The app never reaches our handler code. Instead, it is killed by the watchdog before the handler is invoked. Root Cause: We believe the root cause is GKDaemonProxy localPlayerAgeCategory makes a synchronous XPC call ( xpc_connection_send_message_with_reply_sync ) to the Game Center daemon ( com.apple.gamed ). The daemon does not respond, blocking the main thread indefinitely until the watchdog terminates the app. Also we haven't seen this before iOS 26. Reproduction Conditions: Unfortunately we don't have a consistent way to reproduce it. It happens intermittently. And I can't share the iOS build due to company requirements. I have pasted the stack trace below (all users report the similar stack tracks). Stack trace (representative, reported consistently across affected users): App Hang: The app was terminated while unresponsive 0 libsystem_kernel.dylib +0xcd0 _mach_msg2_trap 1 libsystem_kernel.dylib +0x4308 _mach_msg2_internal 2 libsystem_kernel.dylib +0x4228 _mach_msg_overwrite 3 libsystem_kernel.dylib +0x4074 _mach_msg 4 libdispatch.dylib +0x1c980 __dispatch_mach_send_and_wait_for_reply 5 libdispatch.dylib +0x1cd20 _dispatch_mach_send_with_result_and_wait_for_reply 6 libxpc.dylib +0x11ed8 _xpc_connection_send_message_with_reply_sync 7 Foundation +0x41710 ___NSXPCCONNECTION_IS_WAITING_FOR_A_SYNCHRONOUS_REPLY__ 8 Foundation +0x29068 -[NSXPCConnection _sendInvocation:orArguments:count:methodSignature:selector:withProxy:] 9 Foundation +0x69b7c -[NSXPCConnection _sendSelector:withProxy:arg1:] 10 Foundation +0x699e8 __NSXPCDistantObjectSimpleMessageSend1 11 GameCenterFoundation +0x986fc ___39-[GKDaemonProxy localPlayerAgeCategory]_block_invoke.109 12 GameCenterFoundation +0x1397d0 0x22cbde7d0 (0x22cbde794 + 60) 13 GameCenterFoundation +0x139610 0x22cbde610 (0x22cbde508 + 264) 14 GameCenterFoundation +0x139770 0x22cbde770 (0x22cbde6ec + 132) 15 GameCenterFoundation +0x98420 -[GKDaemonProxy localPlayerAgeCategory] 16 GameCenterFoundation +0x2ceb4 -[GKClientPreferencesSupport localPlayerAgeCategory] 17 GameCenterFoundation +0x93ba4 -[GKPreferences(AgeCategoryRestrictions) localPlayerAgeCategory] 18 GameCenterFoundation +0x93c34 -[GKPreferences(AgeCategoryRestrictions) getRestrictionLimitForLocalPlayer:] 19 GameCenterFoundation +0x93cd0 -[GKPreferences(AgeCategoryRestrictions) clampBoolRestriction:tableEntry:] 20 GameCenterFoundation +0x93d40 -[GKPreferences(AgeCategoryRestrictions) isBoolValueRestricted:tableEntry:] 21 GameCenterFoundation +0x9f7b8 -[GKPreferences(Restrictions) isBoolKeyRestricted:category:] 22 GameCenterUICore +0x2d04 -[GKLocalPlayerAuthenticator _authenticateUsingAuthUI:authenticationResults:usernameEditable:authUIDismissHandler:completionHandler:] 23 GameCenterUICore +0xd638 ___106-[GKLocalPlayer(AuthenticationPrivate) startAuthenticationForExistingPrimaryPlayerUponReturnToForeground:]_block_invoke 24 libsystem_trace.dylib +0xdb40 _os_activity_apply_f 25 GameCenterFoundation +0x181f4 -[GKActivity execute:] 26 GameCenterFoundation +0x18138 +[GKActivity named:execute:] 27 GameCenterUICore +0xd528 -[GKLocalPlayer(AuthenticationPrivate) startAuthenticationForExistingPrimaryPlayerUponReturnToForeground:] 28 libsystem_trace.dylib +0xdb40 _os_activity_apply_f 29 GameCenterFoundation +0x181f4 -[GKActivity execute:] 30 GameCenterFoundation +0x18138 +[GKActivity named:execute:] 31 GameCenterFoundation +0x4f124 ___40-[GKLocalPlayer setAuthenticateHandler:]_block_invoke 32 libdispatch.dylib +0x1b1e0 __dispatch_client_callout 33 libdispatch.dylib +0x45ac __dispatch_once_callout 34 GameCenterFoundation +0x4f070 -[GKLocalPlayer setAuthenticateHandler:] Additional Notes: This issue was not observed prior to iOS 26. We have no reports of this on iOS 17 or iOS 18. We are unable to share a build due to company policy. We cannot reproduce this consistently — it occurs intermittently in production. All affected users report the same stack trace pattern.
Replies
4
Boosts
7
Views
806
Activity
1w
Metal Shader Converter thread safety
Hello Apple! We've got offline shader compilation from HLSL -> Metallib using DXC -> SPIR-V -> metal.exe. This works okay for the most part, but it requires the creation of intermediate files to pass to/from the metal.exe process and we've had some issues with metal.exe sometimes not launching (probably our fault). Then we noticed Metal Shader Converter (MSC) exists and has a DLL - this looks way better since there's no need to launch processes or store intermediate files. However, upon trying to replace metal.exe with it I quickly ran into rampant heap corruption. I was surprised because the docs claim this: Each thread in your program needs to create its own instance of IRCompiler to avoid race conditions. But once I start calling IRCompilerAllocCompileAndLink in parallel all hell breaks loose, whether or not each thread has its own IRCompiler. I figured I must be doing something wrong, so I removed my attempt and compiled DXC locally with the MSC integration and encountered the exact same heap corruption. So I'm inclined to think the library isn't actually thread safe, but I'm wondering if there's something I'm missing? I tried all 3 versions of MSC just in case it was a problem with 3.0, but I got the same result each time. The only way to make it work was to surround compilation with a mutex, which makes its use pointless in our case.
Replies
0
Boosts
0
Views
182
Activity
2w
Times New Roman superscript and Unicode fallback font
I was using Times New Roman and trying to use superscript numbers, but found out that Times New Roman only has superscript numbers 0, 1, 2, 3, ¹ (like so) and since I'm writing out transcriptions of pinyin, I also need superscript 4, 5, 6, 7. When I do that, the font changes to Lucida Grande automatically. I would like to change the default unicode font/alt font from Lucida Grande to EB Garamond (downloaded from Google) since it more closely resembles Times New Roman and unfortunately, I need to keep the font as close to Times New Roman as possible. Is there a way to change the default the computer chooses to when Times New Roman/alt font fails unicode? Alternatively, is there a font that looks exactly like Times New Roman that has the superscript numbers 0-9? 2022 laptop, M2, Tahoe 26.6.1 Move post at will if need be.
Replies
4
Boosts
0
Views
413
Activity
2w
Why is this framework marketed as AR/VR ?
Its an honest question, while VR and AR are a cool thing, they are a bit far from what the vast majority of gaming is. (wither mobile or none mobile) Im only a few weeks with the system, but it think its insanely powerful as a game dev tool.Data orient based with ECS, fast, seamless, frictionless, well thought, optimized and packed everything needed. Just my humble opinion, Maybe consider naming it Apple Game Engine / Apple Game Framework - it will attract a lot of developers who just want to make games and are tired of the bloated and messy unreal and unity, tired of being chained into a bloated OOP hierarchy. "Reality" within the name of the kit, as a concept scares away a lot of developers, they think its just a tool only for VR, they dont know its actually a complete powerful and optimized framework to create any game you want. It have so many advantages over unreal. Unreal wraps everything in proprietary objects, forcing you learn mountains of made up keywords even if you already know native C++ A lot of developers are attracted to rayLib because of how bloated commercial game engines are, they dont know Reality Kit is actually a better solution then a lot of framework libraries out there. Just my thoughts,Maybe it finds its way to some folks in marketing. Either way thank you for creating this framework. its absolutely amazing to use
Replies
0
Boosts
1
Views
147
Activity
2w
-1003 error when reporting or loading achievements in Unity app
Hello, I'm building an unreleased game and testing it on both iOS 26.5.2 and iOS 27.0 Developer Beta, and getting the same error when trying to interact with GameKit. It doesn't seem to matter whether the game is deployed directly through Xcode or Testflight. The local player authenticates properly upon booting the game, but when trying to claim an achievement using the following code: try { var inProgressAchievements = await GKAchievement.LoadAchievements(); var gkAchievement = inProgressAchievements.FirstOrDefault(ach => ach.Identifier == "NEW_CASE"); if (gkAchievement == null) gkAchievement = GKAchievement.Init("NEW_CASE"); gkAchievement.PercentComplete = 100; await GKAchievement.Report(gkAchievement); } catch (GameKitException e) { Debug.LogError($"Failed to report achievement {achievement.IOSAchievementID}, error {e.Code} : {e.Message}"); } I get the following error: [Platform] [21.598] Failed to report achievement NEW_CASE, error -1003 : Code=-1003 Domain=NSURLErrorDomain Description=Aucun serveur ayant le nom d’hôte précisé n’a été détecté. Manavoid.Core.<<UnlockAchievement>gDoAsync|0>d:MoveNext() (at ./Library/PackageCache/com.manavoid.core@824a3b70b55f/Runtime/Platform/IOSSubsystem.cs:69) Apple.GameKit.GKAchievement:OnLoadAchievementsError(Int64, IntPtr) (at ./Library/PackageCache/com.apple.unityplugin.gamekit@1ebe01ff0665/Source/GKAchievement.cs:139) [Platform] [21.59859] Failed to report achievement , error -1003 : Code=-1003 Domain=NSURLErrorDomain Description=Aucun serveur ayant le nom d’hôte précisé n’a été détecté. Manavoid.Core.<<UnlockAchievement>gDoAsync|0>d:MoveNext() (at ./Library/PackageCache/com.manavoid.core@824a3b70b55f/Runtime/Platform/IOSSubsystem.cs:69) Apple.GameKit.GKAchievement:OnLoadAchievementsError(Int64, IntPtr) (at ./Library/PackageCache/com.apple.unityplugin.gamekit@1ebe01ff0665/Source/GKAchievement.cs:139) I currently have 18 achievements set up in Game Center. Some of them are still strictly IDs and have no localization data or artwork yet, if that matters. Opening the Game Center overlay in-game works, but I can't see any achievements listed. I did manage to see them once (with missing localization as expected), but I couldn't reproduce it consistently, most of the time Game Center simply says "0 out of 0 achievements". My Testflight build metadata looks like this: ***.app*** application-identifier: **********.com.***.*** get-task-allow: false beta-reports-active: true com.apple.developer.team-identifier: ********** com.apple.developer.game-center: true Help!
Replies
1
Boosts
0
Views
215
Activity
2w
Game Mode never engages for my card game
Environment: macOS 26.5, M4 Pro, native SwiftUI app (no MTKView/game render loop; it does use SwiftUI Metal shader effects). There's a related scheduling puzzle underneath: my app's worker threads are confined to E-cores for work that runs on P-cores from a CLI. The game computes AI decisions with brief CPU-bound bursts of parallel tree search. The identical library, doing node-count-identical work, runs ~6× slower inside the app than from a CLI on the same machine — the difference is core placement, not the workload. And since several bot decisions run in sequence each hand, that 6× stacks into user-visible seconds at the table: CLI process, default QoS: ~54ms per decision (P-cores) GUI app, worker threads at .userInitiated and .userInteractive: ~350ms (E-cores) Reproducible from the CLI with taskpolicy clamps: utility ≈ 92ms, background ≈ 584ms The app declares LSApplicationCategoryType = public.app-category.card-games and GCSupportsGameMode = true, and runs native full screen as the frontmost app on Apple Silicon — but Game Mode never engages (no menu-bar controller icon). Questions: What are the actual activation criteria for Game Mode? Is a game-style render surface (e.g. MTKView/CAMetalLayer) required beyond the Info.plist declarations? Is E-core placement for a GUI app's non-main-thread compute intended scheduler policy even at userInteractive QoS? What is the supported way for a GUI app to run brief, user-blocking compute on P-cores — is Game Mode the intended lever, or should I be looking at something like os_workgroup?
Replies
2
Boosts
0
Views
199
Activity
2w
Setting massProperties on a USDZ-loaded entity corrupts its transform (position/scale → NaN)
Setting massProperties on a USDZ-loaded entity corrupts its transform (position/scale → NaN) Category: RealityKit / visionOS Environment: visionOS 26.x Summary: Modifying PhysicsBodyComponent.massProperties at runtime on an entity loaded from a .usdz file silently corrupts the entity's transform. The translation and scale components become NaN, while rotation remains valid. The corruption occurs during the next RealityKit scene update cycle (e.g., during an await suspension on the main actor). Steps to Reproduce: Author a .usda file with a RigidBody component including valid m_mass and m_inertia values Load the entity at runtime via Entity(named: "MyEntity.usdz", in: bundle) Read the existing PhysicsBodyComponent, modify massProperties, and set it back: if var physics = entity.components[PhysicsBodyComponent.self] { physics.massProperties = .init( mass: 1.944, inertia: SIMD3<Float>(0.013, 0.026, 0.016), centerOfMass: (position: .zero, orientation: .init()) ) entity.components.set(physics) } Add the entity to the scene Perform any await call (e.g., TextureResource(contentsOf:)) that yields to the main actor, allowing a RealityKit scene update to run Expected: The entity retains its position and scale with the updated mass/inertia values. Actual: The entity's transform becomes corrupted: Transform( scale: SIMD3<Float>(nan, nan, nan), rotation: simd_quatf(real: 1.0, imag: SIMD3<Float>(0.0, 0.0, 0.0)), // ← fine translation: SIMD3<Float>(-nan, -nan, -nan) ) Additional findings from investigation: The entity's physics mode does not matter — corruption occurs even when the entity is .kinematic Creating a new PhysicsBodyComponent(...) and replacing the existing one also triggers the bug Modifying other properties on the same component (linearDamping, angularDamping, material, mode) does not cause corruption — only massProperties triggers it The parent entity's transform remains valid The computed mass/inertia values themselves are valid (finite, positive) The corruption is silent — no error, no warning, no crash from RealityKit itself Workaround: Author mass and inertia values directly in the .usda file and do not modify massProperties at runtime: def RealityKitStruct "massFrame" { float3 m_inertia = (0.02, 0.02, 0.038) float m_mass = 2.5 def RealityKitStruct "m_pose" { } } Other PhysicsBodyComponent properties (damping, material, mode) can safely be modified at runtime.
Replies
2
Boosts
0
Views
792
Activity
2w
MDLAsset loads texture in usdz file loaded with wrong colorspace
I have a very basic usdz file from this repo I call loadTextures() after loading the usdz via MDLAsset. Inspecting the MDLTexture object I can tell it is assigning a colorspace of linear rgb instead of srgb although the image file in the usdz is srgb. This causes the textures to ultimately render as over saturated. In the code I later convert the MDLTexture to MTLTexture via MTKTextureLoader but if I set the srgb option it seems to ignore it. This significantly impacts the usefulness of Model I/O if it can't load a simple usdz texture correctly. Am I missing something? Thanks!
Replies
6
Boosts
3
Views
1.3k
Activity
2w
Reality Kit 3 large scale practices - what is under the hood
Hello guys I want to use Reality Kit 3 for none AR games. Coming from unreal (7y) I have a few technical questions if i may please: (all questions are assuming my game will handle 50-500 enemies on screen) How does RTK3 handle everything under the hood? its easy to create a struct that hold multiple floats as a data blocks for the system to handle (like hp, dmg, ect), but, what happen when i want generic ASSET data (materials, meshes) ? What if i want to construct a material and hand a cheap id to the processor (system) ? while make sure i packed it nicely to the cpu's cache line . There is not much in the documentation to explain the under the hood architecture of the system for me to make educated decision abut my code. i try to avoid reference bloat in my game, and make sure the system does not coupled new material or new mesh every time it want to perform a generic command on the entity (in 60 fps) For example, in unreal mass, as bloated and over complicated it is - its pretty clear to me what is construction phase, what is the recommended way to generate my data blocks (called fragments there) and how exactly to use them in the system so its all tightly packed At this moment my only assumption is to create a 3 layers custom system to make sure its all running properly: The builder of the pool - it will do the " let shinyMetal = SimpleMaterial(color: ... ect" and save it on some dictionary map the data block - just a simple struct that hold a thin reference to the pool that can be use as a component in the ECS the system - The RTK3 built is system real time . can use the struct as a component and even swap the id in real time is this safe consider how RTK3 build under the hood? or is this even slower ? i have very little to go by. if reality kit engineer can reply and help me here it would be awesome :) Thank you so much for reading guys ! was kinda long. cheers
Replies
1
Boosts
1
Views
340
Activity
2w