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

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
344
Jul ’26
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
922
Jul ’26
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.6k
Jul ’26
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
525
Jul ’26
Background GPU Access availability
I would love to use Background GPU Access to do some video processing in the background. However the documentation of BGContinuedProcessingTaskRequest.Resources.gpu clearly states: Not all devices support background GPU use. For more information, see Performing long-running tasks on iOS and iPadOS. Is there a list available of currently released devices that do (or don't) support GPU background usage? That would help to understand what part of our user base can use this feature. (And what hardware we need to test this on as developers.) For example it seems that it isn't supported on an iPad Pro M1 with the current iOS 26 beta. The simulators also seem to not support the background GPU resource. So would be great to understand what hardware is capable of using this feature!
7
0
1.8k
Jul ’26
Game Center Missing for iMessage Extensions
I have enabled Game Center in App Store Connect, as well as the entitlements in Xcode for both my parent (stub) target and extension target. I call the Game Center authentication function which returns a "Signed in as: [my username]" banner during testing. However, when it is tapped on by the user, it opens the Game Center view where "Now Playing _" shows a blank title and app icon. I have a full size app icon that App Store Connect and even GameKit recognizes (https://games.apple.com/us/game/6757935828) but not when I actually run my iMessage app. When I call the authentication function, it completes (hence the banner), but then says later on Game Center does not recognize my app and that my achievements cannot be reported to Game Center. Is Game Center fully disabled for iMessage apps? Or is there a solution I am missing? My goal is to have achievement banners show up for winning iMessage games and certain gameplay combos.
1
0
617
Jun ’26
Timestamp counter heap always returns zero
Hi, I am trying to use a timestamp counter heap, but it always seems to report timestamp zero. Consider this example program: #include <Metal/Metal.h> #include <assert.h> int main(int argc, char *argv[]) { auto device = MTLCreateSystemDefaultDevice(); assert(device); auto descriptor = [MTL4CounterHeapDescriptor new]; [descriptor setType:MTL4CounterHeapTypeTimestamp]; [descriptor setCount:1]; auto heap = [device newCounterHeapWithDescriptor:descriptor error:nullptr]; assert(heap); [heap invalidateCounterRange:NSMakeRange(0, 1)]; auto command_buffer = [device newCommandBuffer]; assert(command_buffer); auto allocator = [device newCommandAllocator]; assert(allocator); [command_buffer beginCommandBufferWithAllocator:allocator]; auto encoder = [command_buffer computeCommandEncoder]; assert(encoder); [encoder writeTimestampWithGranularity:MTL4TimestampGranularityPrecise intoHeap:heap atIndex:0]; [encoder endEncoding]; [command_buffer endCommandBuffer]; auto queue = [device newMTL4CommandQueue]; assert(queue); auto event = [device newSharedEvent]; assert(event); [queue commit:&command_buffer count:1]; [queue signalEvent:event value:1]; [event waitUntilSignaledValue:1 timeoutMS:UINT64_MAX]; auto data = [heap resolveCounterRange:NSMakeRange(0, 1)]; printf("size %lu: %llu\n", data.length, *(uint64_t*)data.bytes); return 0; } Trying to compile and run: % clang++ -g -O0 -o test test.mm -framework Metal -framework Foundation && MTL_DEBUG_LAYER=1 ./test 2026-06-23 14:44:48.006 test[26472:1588857] Metal API Validation Enabled size 8: 0 I would have expected to receive size 8: [some random non-zero number] that number being a GPU timestamp of when the command was executed, but I always get zero. Does anybody have an idea of what I am doing wrong?
1
0
509
Jun ’26
CGSetDisplayTransferByTable is broken on macOS Tahoe 26.4 RC (and 26.3.1) with MacBook M5 Pro, Max and Neo
The CGSetDisplayTransferByTable() is not working on the latest round of Mac hardware, namely the MacBook Neo (external display), MacBook M5 Pro (both built-in and external display) and possibly the M5 Max. All tested apps (BetterDisplay, MonitorControl, f.lux, Lunar) exhibit the very issue both in macOS Tahoe 26.3 and macOS Tahoe 26.4 RC. Tested on multiple Macs and installations on the MacBook Neo and MacBook M5 Pro. This issue breaks several display related macOS apps. Way to reproduce the issue using an affected app: Install the app BetterDisplay (https://betterdisplay.pro) Launch the app, open the app menu, choose Image Adjustments and try to adjust colors. Adjustments take no effect Way to reproduce the issue programmatically: Attempt to use the affected macOS API feature: https://developer.apple.com/documentation/coregraphics/cgsetdisplaytransferbytable(::::_:) Here are the FB numbers: FB22273730 (Filed this one as a developer on an unaffected MBP M3 Max) FB22273782 (Filed from an affected MBP M5 Pro running 26.4 RC, with debug info attached)
8
5
3.5k
Jun ’26
GameCenter sometimes not working on iPadOS 26.5
We are investigating a Game Center authentication issue that appears to affect some devices consistently. Symptoms: Game Center authentication initiated from our app does not complete. The GKLocalPlayer authentication flow does not recover during the session. The issue is not limited to our app: on affected devices, the Game Center section in the iOS/iPadOS Settings app also fails to load. The Games app also fails to load. After a device restart, Game Center may work once, but then becomes unavailable again and further authentication attempts fail. We have reproduced this on iPadOS 26.5. In addition, our analytics show an unusually high percentage of unfinished Game Center authentication attempts on this OS version. We have also received individual reports from users on other devices/OS versions. Given that the Game Center Settings screen and the Games app are also affected, this appears to be a system-level Game Center availability problem rather than an issue isolated to our application. There is a description of a similar problem https://developer.apple.com/forums/thread/787749 But it belongs to beta testing and is marked as fixed.
1
2
778
Jun ’26
Blurry Game Center Achievement Images?
Hey all — I’ve been building out my first set of Game Center Achievements for a game I’m working on, and I’ve run into something odd with the image quality. The specs say to upload icons at 512x512 or 1024x1024@2x. I’ve been uploading 1024x1024 PNGs (without explicitly naming them “@2x” since there’s only one upload slot), assuming that Game Center would just handle the scaling automatically — kind of like how a lot of things are getting more streamlined across platforms lately. But in testing, the icons are showing up a bit blurry, especially in the Game Center interface. It’s not horrible, but it’s definitely softer than I expected — more like low-res than Retina. All my test devices (outside the Simulator) are running iOS 26, so I’m also wondering if this might be a beta-related display bug? Has anyone else run into this? Curious if I’m missing a best practice here, or if I really do need to ensure I’m uploading it with the @2x suffix, or maybe something else entirely? Thanks!
3
1
1.6k
Jun ’26
MaterialX definitions download link is broken in ShaderGraph documentation
The link to download “MaterialX definitions” is broken on the main page of ShaderGraph documentation in the Interoperability section. See here: https://developer.apple.com/documentation/ShaderGraph#Interoperability Link in the page is https://developer.apple.com/augmented-reality/realitykit/files/MaterialX-definitions.zip but leads nowhere now. Since Reality Composer Pro 3 has been released, it would be good to have these definitions available to download again and to know if it’s still MaterialX 1.38 being used in the updated RCP & RealityKit. Opened a ticket about this: FB23258836
1
0
539
Jun ’26
Assets catalog .webp warrning
When I enter webp image to the assets catalog I get warrning: /Users/..../Assets.xcassets The image set "Card-Back" references a file "Card-Back.webp", but that file does not have a valid extension. It works, I see all my images perfect. How can I fix the 200+ warrnings?
3
0
1.4k
Jun ’26
PhotogrammetrySession(input: [PhotogrammetrySample]) Hangs or terminates
Xcode hangs when I call PhotogrammetrySession(input: [PhotogrammetrySample]) with objectMask set and traps on some devices, see the attached screenshot, it gets to the function and hangs. Even the folder reconstruction also doesn't complete as it can't find alignment and displays the CoreOC.PhotogrammetrySession.Error 6 and I understand to mean alignment failed. In this case it failed while object masking was ON, so RealityKit could not find enough consistent feature tracks inside the masked pixels across the image set. What can be done or do you guys expose any functions that can be used to aid, or handle these internally, can't find any internally. The ObjectMasks are actually segmentation masks from an ML algorithm . To replicate try calling PhotogrammetrySession(input: [PhotogrammetrySample]) with contentsOf as captured on your documentation, even with like 30 image set or is there something I'm missing. I will appreciate a timely response and willing to provide more clarity and informations, thank you so much for your understanding
4
0
2.2k
Jun ’26
Show Forums: I built a 100k+ line game in 2 months with all-AI assets
Hi everyone, I’ve spent the last 2 months pulling off a wild solo experiment: building a complete mobile puzzle game from scratch using Unreal Engine, where over 100k lines of code (C++ & pipelines) and thousands of 3D/UI assets were entirely generated by various AI models. Before anyone rolls their eyes—no, AI didn't replace the game designer here. AI provided the brute-force production muscle, but I gave it its soul. Every single bit of core design—the underlying math models, difficulty pacing, and counter-mechanics for the dynamic gimmick bosses—was designed and balanced by me. The game itself is a tactical, gimmick-boss driven match-3. I got tired of the usual candy-coated reskins and wanted to make something with rigid logic, irregular board topologies, and tight move economies for people who actually like strategic puzzle-solving. I’m currently running a closed beta via TestFlight on iOS to stress-test the build, and I'd love to get some brutal feedback from fellow devs. (Just a heads up: save progress won't carry over to final release). You can grab the build directly here: https://testflight.apple.com/join/VnUWvHFC I’m specifically looking for insights on: Performance & Thermals: How does the UE rendering pipeline handle on your device during heavy chain reactions? Aesthetic Cohesion: Does an all-AI asset pipeline manage to feel like a unified universe, or do you feel that "AI uncanny valley"? Balance: Do the non-Euclidean layouts and boss disruption mechanics feel strategic or just plain frustrating? I'll be hanging out in the comments. Drop any questions you have about prompt-engineering a 100k-line codebase, solo pipeline management, or UE integration. Thanks for testing!
0
0
671
Jun ’26
Show Forums: I built a 100k+ line Unreal Engine game in 2 months with all-AI assets
Hi everyone, I’ve spent the last 2 months pulling off a wild solo experiment: building a complete mobile puzzle game from scratch using Unreal Engine, where over 100k lines of code (C++ & pipelines) and thousands of 3D/UI assets were entirely generated by various AI models. Before anyone rolls their eyes—no, AI didn't replace the game designer here. AI provided the brute-force production muscle, but I gave it its soul. Every single bit of core design—the underlying math models, difficulty pacing, and counter-mechanics for the dynamic gimmick bosses—was designed and balanced by me. The game itself is a tactical, gimmick-boss driven match-3. I got tired of the usual candy-coated reskins and wanted to make something with rigid logic, irregular board topologies, and tight move economies for people who actually like strategic puzzle-solving. I’m currently running a closed beta via TestFlight on iOS to stress-test the build, and I'd love to get some brutal feedback from fellow devs. (Just a heads up: save progress won't carry over to final release). You can grab the build directly here: https://testflight.apple.com/join/VnUWvHFC I’m specifically looking for insights on: Performance & Thermals: How does the UE rendering pipeline handle on your device during heavy chain reactions? Aesthetic Cohesion: Does an all-AI asset pipeline manage to feel like a unified universe, or do you feel that "AI uncanny valley"? Balance: Do the non-Euclidean layouts and boss disruption mechanics feel strategic or just plain frustrating? I'll be hanging out in the comments. Drop any questions you have about prompt-engineering a 100k-line codebase, solo pipeline management, or UE integration. Thanks for testing!
0
0
539
Jun ’26
Setting GKLocalPlayer.local.authenticateHandler may cause whole window to be obfuscated by alert "No Internet Connection"
My game supports both GameCenter, setting up a custom host and local games against bots. To log in to GameCenter and be able to handle invitations from other players, I set GKLocalPlayer.local.authenticateHandler after the app finished loading. But it seems that whenever I’m disconnected from the internet for more than 24 hours, setting GKLocalPlayer.local.authenticateHandler causes the whole window to be obfuscated by an alert telling me that I have no internet connection. When this happens, if I connect to the internet and disconnect again, the alert is not shown anymore. This is a huge problem because the alert prevents a user from using any other feature of the app unrelated to GameCenter, since there's no way to dismiss it. Is this really intended behaviour or how is a user supposed to continue using the app that supports GameCenter and does not rely on it, while being disconnected from the internet? I created FB22951946.
3
0
626
Jun ’26
SceneKit shader compile and cache issues? :(
I'm making an apple watch game and it's running so smooth and nice while developing but I ran into a showstopping problem that I wouldn't even have noticed until i deleted the app and reinstalled... Every first-run on a freshly installed copy of the game has major frame hitches as it loads assets. Every run after that has ZERO hitches and runs like butter. Even if i install a new version on top of the old one (which is why i never noticed this problem in my almost finished game) it runs smooth. Framerate issues come back if I delete and reinstall. I think it's compiling shaders or caching geometry but I haven't been able to trick it into doing the hard work during non-critical moments in the game. I've tried preloading assets in the main menu, loading at the start of the level, loading and rendering in a tiny part of the screen, rendering behind dialog boxes... it seems no matter what i can only get rid of the frame hitches after the game has been played through once... and I'm going to lose all customers on that first terrible impression even though the game is actually really good and fun when it's running properly... Any suggestions how i can prewarm/precompile the assets to avoid framerate hitches and freezes during gameplay? I thought I was so close to release but I feel this is un-shippable! I can send a link to my test flight build to anyone that wants to see the problem first hand. Also please note that I am artist-forward with a technical lean, but certainly not a real programmer, unfortunately. Jiovanie
2
0
857
Jun ’26
Comprehensive documentation and literature
The WWDC videos like the new "Boost your graphics performance with the M5 and A19 GPUs" contain extremely valuable information and tips on how to discover, diagnose and remedy performance issues. They seem to serve as quick reminders and distilled summaries of more comprehensive documentation that I assume can be found somewhere. Where do we find the underlying comprehensive documentation that explains Apple Silicon GPU architecture? How can I learn to understand the basis of the data presented by the Xcode Metal Debugger? Any hints at external literature and resources are welcome.
1
0
497
Jun ’26
Documentation and literature
The WWDC videos like the new "Boost your graphics performance with the M5 and A19 GPUs" contain extremely valuable information and tips on how to discover, diagnose and remedy performance issues. They seem to serve as quick reminders and distilled summaries of more comprehensive documentation that I assume can be found somewhere. Where do we find the underlying comprehensive documentation that explains Apple Silicon GPU architecture? How can I learn to understand the basis of the data presented by the Xcode Metal Debugger? Any hints at external literature and resources are welcome.
0
0
487
Jun ’26
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
344
Activity
Jul ’26
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
922
Activity
Jul ’26
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.6k
Activity
Jul ’26
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
525
Activity
Jul ’26
Background GPU Access availability
I would love to use Background GPU Access to do some video processing in the background. However the documentation of BGContinuedProcessingTaskRequest.Resources.gpu clearly states: Not all devices support background GPU use. For more information, see Performing long-running tasks on iOS and iPadOS. Is there a list available of currently released devices that do (or don't) support GPU background usage? That would help to understand what part of our user base can use this feature. (And what hardware we need to test this on as developers.) For example it seems that it isn't supported on an iPad Pro M1 with the current iOS 26 beta. The simulators also seem to not support the background GPU resource. So would be great to understand what hardware is capable of using this feature!
Replies
7
Boosts
0
Views
1.8k
Activity
Jul ’26
Game Center Missing for iMessage Extensions
I have enabled Game Center in App Store Connect, as well as the entitlements in Xcode for both my parent (stub) target and extension target. I call the Game Center authentication function which returns a "Signed in as: [my username]" banner during testing. However, when it is tapped on by the user, it opens the Game Center view where "Now Playing _" shows a blank title and app icon. I have a full size app icon that App Store Connect and even GameKit recognizes (https://games.apple.com/us/game/6757935828) but not when I actually run my iMessage app. When I call the authentication function, it completes (hence the banner), but then says later on Game Center does not recognize my app and that my achievements cannot be reported to Game Center. Is Game Center fully disabled for iMessage apps? Or is there a solution I am missing? My goal is to have achievement banners show up for winning iMessage games and certain gameplay combos.
Replies
1
Boosts
0
Views
617
Activity
Jun ’26
Timestamp counter heap always returns zero
Hi, I am trying to use a timestamp counter heap, but it always seems to report timestamp zero. Consider this example program: #include <Metal/Metal.h> #include <assert.h> int main(int argc, char *argv[]) { auto device = MTLCreateSystemDefaultDevice(); assert(device); auto descriptor = [MTL4CounterHeapDescriptor new]; [descriptor setType:MTL4CounterHeapTypeTimestamp]; [descriptor setCount:1]; auto heap = [device newCounterHeapWithDescriptor:descriptor error:nullptr]; assert(heap); [heap invalidateCounterRange:NSMakeRange(0, 1)]; auto command_buffer = [device newCommandBuffer]; assert(command_buffer); auto allocator = [device newCommandAllocator]; assert(allocator); [command_buffer beginCommandBufferWithAllocator:allocator]; auto encoder = [command_buffer computeCommandEncoder]; assert(encoder); [encoder writeTimestampWithGranularity:MTL4TimestampGranularityPrecise intoHeap:heap atIndex:0]; [encoder endEncoding]; [command_buffer endCommandBuffer]; auto queue = [device newMTL4CommandQueue]; assert(queue); auto event = [device newSharedEvent]; assert(event); [queue commit:&command_buffer count:1]; [queue signalEvent:event value:1]; [event waitUntilSignaledValue:1 timeoutMS:UINT64_MAX]; auto data = [heap resolveCounterRange:NSMakeRange(0, 1)]; printf("size %lu: %llu\n", data.length, *(uint64_t*)data.bytes); return 0; } Trying to compile and run: % clang++ -g -O0 -o test test.mm -framework Metal -framework Foundation && MTL_DEBUG_LAYER=1 ./test 2026-06-23 14:44:48.006 test[26472:1588857] Metal API Validation Enabled size 8: 0 I would have expected to receive size 8: [some random non-zero number] that number being a GPU timestamp of when the command was executed, but I always get zero. Does anybody have an idea of what I am doing wrong?
Replies
1
Boosts
0
Views
509
Activity
Jun ’26
Mesh boolean subtraction operation with SceneKit/RealityKit
I ma trying to figure out if there is a Boolean subtraction functionality native in SceneKit or RealityKit. Simple operation like cutting a hole in a box from a sphere. If not, are there any libraries (free) that I can look into?
Replies
3
Boosts
0
Views
2.4k
Activity
Jun ’26
CGSetDisplayTransferByTable is broken on macOS Tahoe 26.4 RC (and 26.3.1) with MacBook M5 Pro, Max and Neo
The CGSetDisplayTransferByTable() is not working on the latest round of Mac hardware, namely the MacBook Neo (external display), MacBook M5 Pro (both built-in and external display) and possibly the M5 Max. All tested apps (BetterDisplay, MonitorControl, f.lux, Lunar) exhibit the very issue both in macOS Tahoe 26.3 and macOS Tahoe 26.4 RC. Tested on multiple Macs and installations on the MacBook Neo and MacBook M5 Pro. This issue breaks several display related macOS apps. Way to reproduce the issue using an affected app: Install the app BetterDisplay (https://betterdisplay.pro) Launch the app, open the app menu, choose Image Adjustments and try to adjust colors. Adjustments take no effect Way to reproduce the issue programmatically: Attempt to use the affected macOS API feature: https://developer.apple.com/documentation/coregraphics/cgsetdisplaytransferbytable(::::_:) Here are the FB numbers: FB22273730 (Filed this one as a developer on an unaffected MBP M3 Max) FB22273782 (Filed from an affected MBP M5 Pro running 26.4 RC, with debug info attached)
Replies
8
Boosts
5
Views
3.5k
Activity
Jun ’26
GameCenter sometimes not working on iPadOS 26.5
We are investigating a Game Center authentication issue that appears to affect some devices consistently. Symptoms: Game Center authentication initiated from our app does not complete. The GKLocalPlayer authentication flow does not recover during the session. The issue is not limited to our app: on affected devices, the Game Center section in the iOS/iPadOS Settings app also fails to load. The Games app also fails to load. After a device restart, Game Center may work once, but then becomes unavailable again and further authentication attempts fail. We have reproduced this on iPadOS 26.5. In addition, our analytics show an unusually high percentage of unfinished Game Center authentication attempts on this OS version. We have also received individual reports from users on other devices/OS versions. Given that the Game Center Settings screen and the Games app are also affected, this appears to be a system-level Game Center availability problem rather than an issue isolated to our application. There is a description of a similar problem https://developer.apple.com/forums/thread/787749 But it belongs to beta testing and is marked as fixed.
Replies
1
Boosts
2
Views
778
Activity
Jun ’26
Blurry Game Center Achievement Images?
Hey all — I’ve been building out my first set of Game Center Achievements for a game I’m working on, and I’ve run into something odd with the image quality. The specs say to upload icons at 512x512 or 1024x1024@2x. I’ve been uploading 1024x1024 PNGs (without explicitly naming them “@2x” since there’s only one upload slot), assuming that Game Center would just handle the scaling automatically — kind of like how a lot of things are getting more streamlined across platforms lately. But in testing, the icons are showing up a bit blurry, especially in the Game Center interface. It’s not horrible, but it’s definitely softer than I expected — more like low-res than Retina. All my test devices (outside the Simulator) are running iOS 26, so I’m also wondering if this might be a beta-related display bug? Has anyone else run into this? Curious if I’m missing a best practice here, or if I really do need to ensure I’m uploading it with the @2x suffix, or maybe something else entirely? Thanks!
Replies
3
Boosts
1
Views
1.6k
Activity
Jun ’26
MaterialX definitions download link is broken in ShaderGraph documentation
The link to download “MaterialX definitions” is broken on the main page of ShaderGraph documentation in the Interoperability section. See here: https://developer.apple.com/documentation/ShaderGraph#Interoperability Link in the page is https://developer.apple.com/augmented-reality/realitykit/files/MaterialX-definitions.zip but leads nowhere now. Since Reality Composer Pro 3 has been released, it would be good to have these definitions available to download again and to know if it’s still MaterialX 1.38 being used in the updated RCP & RealityKit. Opened a ticket about this: FB23258836
Replies
1
Boosts
0
Views
539
Activity
Jun ’26
Assets catalog .webp warrning
When I enter webp image to the assets catalog I get warrning: /Users/..../Assets.xcassets The image set "Card-Back" references a file "Card-Back.webp", but that file does not have a valid extension. It works, I see all my images perfect. How can I fix the 200+ warrnings?
Replies
3
Boosts
0
Views
1.4k
Activity
Jun ’26
PhotogrammetrySession(input: [PhotogrammetrySample]) Hangs or terminates
Xcode hangs when I call PhotogrammetrySession(input: [PhotogrammetrySample]) with objectMask set and traps on some devices, see the attached screenshot, it gets to the function and hangs. Even the folder reconstruction also doesn't complete as it can't find alignment and displays the CoreOC.PhotogrammetrySession.Error 6 and I understand to mean alignment failed. In this case it failed while object masking was ON, so RealityKit could not find enough consistent feature tracks inside the masked pixels across the image set. What can be done or do you guys expose any functions that can be used to aid, or handle these internally, can't find any internally. The ObjectMasks are actually segmentation masks from an ML algorithm . To replicate try calling PhotogrammetrySession(input: [PhotogrammetrySample]) with contentsOf as captured on your documentation, even with like 30 image set or is there something I'm missing. I will appreciate a timely response and willing to provide more clarity and informations, thank you so much for your understanding
Replies
4
Boosts
0
Views
2.2k
Activity
Jun ’26
Show Forums: I built a 100k+ line game in 2 months with all-AI assets
Hi everyone, I’ve spent the last 2 months pulling off a wild solo experiment: building a complete mobile puzzle game from scratch using Unreal Engine, where over 100k lines of code (C++ & pipelines) and thousands of 3D/UI assets were entirely generated by various AI models. Before anyone rolls their eyes—no, AI didn't replace the game designer here. AI provided the brute-force production muscle, but I gave it its soul. Every single bit of core design—the underlying math models, difficulty pacing, and counter-mechanics for the dynamic gimmick bosses—was designed and balanced by me. The game itself is a tactical, gimmick-boss driven match-3. I got tired of the usual candy-coated reskins and wanted to make something with rigid logic, irregular board topologies, and tight move economies for people who actually like strategic puzzle-solving. I’m currently running a closed beta via TestFlight on iOS to stress-test the build, and I'd love to get some brutal feedback from fellow devs. (Just a heads up: save progress won't carry over to final release). You can grab the build directly here: https://testflight.apple.com/join/VnUWvHFC I’m specifically looking for insights on: Performance & Thermals: How does the UE rendering pipeline handle on your device during heavy chain reactions? Aesthetic Cohesion: Does an all-AI asset pipeline manage to feel like a unified universe, or do you feel that "AI uncanny valley"? Balance: Do the non-Euclidean layouts and boss disruption mechanics feel strategic or just plain frustrating? I'll be hanging out in the comments. Drop any questions you have about prompt-engineering a 100k-line codebase, solo pipeline management, or UE integration. Thanks for testing!
Replies
0
Boosts
0
Views
671
Activity
Jun ’26
Show Forums: I built a 100k+ line Unreal Engine game in 2 months with all-AI assets
Hi everyone, I’ve spent the last 2 months pulling off a wild solo experiment: building a complete mobile puzzle game from scratch using Unreal Engine, where over 100k lines of code (C++ & pipelines) and thousands of 3D/UI assets were entirely generated by various AI models. Before anyone rolls their eyes—no, AI didn't replace the game designer here. AI provided the brute-force production muscle, but I gave it its soul. Every single bit of core design—the underlying math models, difficulty pacing, and counter-mechanics for the dynamic gimmick bosses—was designed and balanced by me. The game itself is a tactical, gimmick-boss driven match-3. I got tired of the usual candy-coated reskins and wanted to make something with rigid logic, irregular board topologies, and tight move economies for people who actually like strategic puzzle-solving. I’m currently running a closed beta via TestFlight on iOS to stress-test the build, and I'd love to get some brutal feedback from fellow devs. (Just a heads up: save progress won't carry over to final release). You can grab the build directly here: https://testflight.apple.com/join/VnUWvHFC I’m specifically looking for insights on: Performance & Thermals: How does the UE rendering pipeline handle on your device during heavy chain reactions? Aesthetic Cohesion: Does an all-AI asset pipeline manage to feel like a unified universe, or do you feel that "AI uncanny valley"? Balance: Do the non-Euclidean layouts and boss disruption mechanics feel strategic or just plain frustrating? I'll be hanging out in the comments. Drop any questions you have about prompt-engineering a 100k-line codebase, solo pipeline management, or UE integration. Thanks for testing!
Replies
0
Boosts
0
Views
539
Activity
Jun ’26
Setting GKLocalPlayer.local.authenticateHandler may cause whole window to be obfuscated by alert "No Internet Connection"
My game supports both GameCenter, setting up a custom host and local games against bots. To log in to GameCenter and be able to handle invitations from other players, I set GKLocalPlayer.local.authenticateHandler after the app finished loading. But it seems that whenever I’m disconnected from the internet for more than 24 hours, setting GKLocalPlayer.local.authenticateHandler causes the whole window to be obfuscated by an alert telling me that I have no internet connection. When this happens, if I connect to the internet and disconnect again, the alert is not shown anymore. This is a huge problem because the alert prevents a user from using any other feature of the app unrelated to GameCenter, since there's no way to dismiss it. Is this really intended behaviour or how is a user supposed to continue using the app that supports GameCenter and does not rely on it, while being disconnected from the internet? I created FB22951946.
Replies
3
Boosts
0
Views
626
Activity
Jun ’26
SceneKit shader compile and cache issues? :(
I'm making an apple watch game and it's running so smooth and nice while developing but I ran into a showstopping problem that I wouldn't even have noticed until i deleted the app and reinstalled... Every first-run on a freshly installed copy of the game has major frame hitches as it loads assets. Every run after that has ZERO hitches and runs like butter. Even if i install a new version on top of the old one (which is why i never noticed this problem in my almost finished game) it runs smooth. Framerate issues come back if I delete and reinstall. I think it's compiling shaders or caching geometry but I haven't been able to trick it into doing the hard work during non-critical moments in the game. I've tried preloading assets in the main menu, loading at the start of the level, loading and rendering in a tiny part of the screen, rendering behind dialog boxes... it seems no matter what i can only get rid of the frame hitches after the game has been played through once... and I'm going to lose all customers on that first terrible impression even though the game is actually really good and fun when it's running properly... Any suggestions how i can prewarm/precompile the assets to avoid framerate hitches and freezes during gameplay? I thought I was so close to release but I feel this is un-shippable! I can send a link to my test flight build to anyone that wants to see the problem first hand. Also please note that I am artist-forward with a technical lean, but certainly not a real programmer, unfortunately. Jiovanie
Replies
2
Boosts
0
Views
857
Activity
Jun ’26
Comprehensive documentation and literature
The WWDC videos like the new "Boost your graphics performance with the M5 and A19 GPUs" contain extremely valuable information and tips on how to discover, diagnose and remedy performance issues. They seem to serve as quick reminders and distilled summaries of more comprehensive documentation that I assume can be found somewhere. Where do we find the underlying comprehensive documentation that explains Apple Silicon GPU architecture? How can I learn to understand the basis of the data presented by the Xcode Metal Debugger? Any hints at external literature and resources are welcome.
Replies
1
Boosts
0
Views
497
Activity
Jun ’26
Documentation and literature
The WWDC videos like the new "Boost your graphics performance with the M5 and A19 GPUs" contain extremely valuable information and tips on how to discover, diagnose and remedy performance issues. They seem to serve as quick reminders and distilled summaries of more comprehensive documentation that I assume can be found somewhere. Where do we find the underlying comprehensive documentation that explains Apple Silicon GPU architecture? How can I learn to understand the basis of the data presented by the Xcode Metal Debugger? Any hints at external literature and resources are welcome.
Replies
0
Boosts
0
Views
487
Activity
Jun ’26