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

Posts under General subtopic

Post

Replies

Boosts

Views

Activity

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.
5
0
1.4k
Sep ’26
Core Animation Background Thread CATransaction
Hey everyone 👋 I'm trying to initialize a part of a CALayer hierarchy on a background thread and then attach the root of that hierarchy to a CALayer that backs a UIView. The motivation is to keep the main thread responsive when constructing a complex layer hierarchy. This isn't a case where I'm creating two or three layers and then switching back to the main thread. The hierarchy can potentially contain a large number of layers, with animations being created/configured for those layers as well. My first approach was to create and configure the layers entirely on a background thread. While the output might be the expected one (not always), CoreAnimation emits an assertion along the lines of: "Modifications to the layer tree from a background thread may not be committed" (or something like this). This makes sense to me if implicit CATransaction is thread-local. In that case, the implicit transaction opened by the layer modification on the background thread would not be part of the transaction that is already open on the main thread. Therefore, committing the main-thread transaction would not commit the changes made on the background thread. My second approach was to explicitly create and commit a CATransaction on the background thread. This appears to be accepted by Core Animation's threading model, but I'm seeing unreliable results. Sometimes parts of the hierarchy are missing, and in other cases the hierarchy is present but the animations don't appear to run at all. I do understand that this is private behavior of the framework, but I wanted to know if what I am trying to achieve is possible and, if so, what the solution would be (obviously if you can share this information). Besides this, I would also like to know what behavior CATransactions have when they are created on different threads. What I mean by this is that the transactions work as a stack, and the changes are committed when the stack is empty. Does this behavior still apply when having transactions on different threads? Any weird behaviours that might appear between transactions operated on main vs background threads? Thank you! Vlad.
7
0
1.2k
Sep ’26
Lockpicking - Steuerung
Hallo, mein Spiel Lockpicking ist exakt gleich programmiert für Android und Apple. Warum sehen die links rechts Tasten bei beiden Apps verschieden aus ? https://apps.apple.com/us/app/lockpicking/id6793054294
1
0
538
Aug ’26
GCKeyboard reports a phantom “Generic Keyboard” on iOS 27 beta 5
Update: Please disregard this report. The behavior was caused by enabling the hardware keyboard for the device in Xcode 27 beta 5’s Device Hub. This appears to expose a virtual “Generic Keyboard” to the connected physical device, causing GCKeyboardDidConnect to be posted even though no physical keyboard is attached directly to it. Simply disabling the hardware keyboard option was not sufficient. I needed to close Device Hub and restart Xcode for the virtual keyboard to be removed and the expected GCKeyboard behavior to resume. I’m seeing what appears to be a GameController regression on physical iPhone and iPad devices running iOS 27 beta 5. When my app launches with no Bluetooth, USB, or Smart Connector keyboard attached, GCKeyboard.coalesced is initially nil. Shortly afterward, the system posts .GCKeyboardDidConnect for a keyboard named “Generic Keyboard,” and GCKeyboard.coalesced becomes non-nil: === Initial state === GCKeyboard.coalesced: nil cannot add handler to 0 from 0 - dropping === GCKeyboardDidConnect #1 === notification.object: GCKeyboard: 0x10b01cd00 'Generic Keyboard'> GCKeyboard.coalesced: Optional( 0x10b01cd00>) The phantom keyboard then appears to remain connected indefinitely. After this happens: Attaching a real hardware keyboard does not post another .GCKeyboardDidConnect. Detaching the real keyboard does not post .GCKeyboardDidDisconnect. GCKeyboard.coalesced remains non-nil even though no hardware keyboard is attached. This may be interacting with the documented coalescing behavior: the connect notification is posted only for the first keyboard, and the disconnect notification only after the last keyboard disconnects. If the phantom “Generic Keyboard” remains present, a real keyboard is never considered the first or last keyboard. Minimal observer code: print("Initial GCKeyboard.coalesced:", GCKeyboard.coalesced as Any) NotificationCenter.default.addObserver( forName: .GCKeyboardDidConnect, object: nil, queue: .main ) { notification in print("GCKeyboardDidConnect") print("notification.object:", notification.object as Any) print("GCKeyboard.coalesced:", GCKeyboard.coalesced as Any) } NotificationCenter.default.addObserver( forName: .GCKeyboardDidDisconnect, object: nil, queue: .main ) { notification in print("GCKeyboardDidDisconnect") print("notification.object:", notification.object as Any) print("GCKeyboard.coalesced:", GCKeyboard.coalesced as Any) } I can reproduce this on both a physical iPhone and a physical iPad. This is not Simulator keyboard forwarding, and no keyboard is attached when the “Generic Keyboard” appears. Has anyone else observed this behavior on iOS 27 beta 5 or found another API that reliably reports whether a real hardware keyboard is attached? Filed as FB24269002.
0
1
399
Aug ’26
Draw WKWebView into OpenGL Texture
I'm trying to figure out how to display a Web Browser inside my iOS VR app (Obj-c, SceneKit and raw OpenGL), and the part i'm not fully understanding is how to get the WKWebView to draw it's content into a Pixel Buffer of some sort, so I can use the speed of CVOpenGLESTextureCacheCreateTextureFromImage to convert the pixel data into a OpenGl Texture quickly/efficently and display it on a floating surface.I'm already doing something simular with the video portion of my app, but it has a AVPlayerItemVideoOutput, which produced the pixel buffer, but I can't figure out how to massage the CALayer into a Buffer so I can convert it into a texture to then draw in opengl.I know it has something to do with drawLayer:(Layer) ,(Context), but searching online hasn't been very fruitful.And i'm not using SceneKit like you would assume, the app was built before GVR for Scenekit was a thing, so every part of VR is handled manually (scenekit to textures, textures to opengl for Left/Right eye distortion mesh).
3
0
3.2k
Jul ’26
WatchBlocks v1.5 is now available: a sandbox game built for Apple Watch
Hi everyone! After about 4-5 months of development, I released WatchBlocks v1.5 today. The project started as an experiment to answer a simple question: Could you build a real sandbox survival game that runs well on Apple Watch? It eventually grew into a cross-platform game supporting Apple Watch, iPhone, iPad, and Mac. Some of the technical challenges I enjoyed solving included: Optimizing rendering and gameplay for watchOS. Designing controls around the Digital Crown and the watch display. Building multiplayer across Apple platforms. Creating a content system that lets players make and share their own blocks, items, mobs, and biomes. The new update also transitions the game to a free-to-start model, making it easier for people to try it before deciding whether to unlock the full experience. I’d love to hear from other developers building for watchOS. It’s a platform that doesn’t get much attention for games, but I think there’s a lot of untapped potential. If anyone has questions about developing games for Apple Watch, I’m happy to answer them. App Store: https://apps.apple.com/us/app/watchblocks-craft-build/id6760209351
0
0
1.2k
Jul ’26
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.
1
0
1.2k
Jul ’26
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
1.2k
Jul ’26
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
1
571
Jul ’26
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
4.2k
Jul ’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?
2
0
578
Jul ’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.9k
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
1.1k
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
971
Jun ’26
SpriteKit Continued Support
Hi! Question Could you provide some reassurance on the continued support for SpriteKit in the coming years? Trigger The deprecation of SceneKit at WWDC 2025 made me nervous. Context I use SpriteKit because: It can render any video AVFoundation can handle, which third-party engines don't do for several reasons including patents. This allows me to prototype UI that controls video with a game-like feel. It can render text and emojis through AttributedString, and text is hard. Thanks to a clear and well-exposed update loop, it can be integrated with libraries such as Core Image or Box2D. Example with Box2D here. It can draw dynamic shapes and paths with SKShapeNode, and visualize and respond to all the processing done at specific times during a frame. SKView is very handy to generate textures from nodes, and SKRenderer can be used to render a SpriteKit scene to video or sequence of images. This is possible thanks to multiple frameworks working together, including AVAssetWriter and IOSurface. Example of SpriteKit offline rendering here. Apple Alternatives When Apple announced the deprecation of SceneKit, I learned RealityKit in order to move my SpriteKit-based projects to RealityKit. RealityKit is interesting, but for 2D and 2.5D workflows I found several areas where SpriteKit remains significantly more practical: I had to lock physics to the XY plane, which could stress the engine and introduce unwanted overlap. Overlapping entities on a 2D plane was hard: ModelSortGroup did not provide the simple flexibility that SpriteKit zPosition provides. AFAIK there is no dynamic path/shape drawing in RealityKit. So drawing lines, visualizing physics and joints, rendering graph connections in the scene is not as easy as it is with SpriteKit shape nodes. SpriteKit is lighter and less power-hungry. Let me know if you need any more context or detail. Thank you!
1
2
918
Jun ’26
Are there details about what Rosetta functionality for "older unmaintained gaming titles" will be kept?
The developer documentation for Rosetta describing its end of support (https://developer.apple.com/documentation/apple-silicon/about-the-rosetta-translation-environment) says the following: Beyond this timeframe, we will keep a subset of Rosetta functionality aimed at supporting older unmaintained gaming titles, that rely on Intel-based frameworks. Are there details about which specific functionality this is? And as a concrete example, will parts of Rosetta that are needed by programs used to run and/or evaluate Windows games, such as WINE or CrossOver, remain supported?
1
2
830
Jun ’26
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
5
Boosts
0
Views
1.4k
Activity
Sep ’26
Efootball mobile
Tengo un iphone 13, estoy con ios 27 ultima beta reciente y juego efootball mobile pero anda horrible. Anda muy pesado.
Replies
0
Boosts
0
Views
1.1k
Activity
Sep ’26
Core Animation Background Thread CATransaction
Hey everyone 👋 I'm trying to initialize a part of a CALayer hierarchy on a background thread and then attach the root of that hierarchy to a CALayer that backs a UIView. The motivation is to keep the main thread responsive when constructing a complex layer hierarchy. This isn't a case where I'm creating two or three layers and then switching back to the main thread. The hierarchy can potentially contain a large number of layers, with animations being created/configured for those layers as well. My first approach was to create and configure the layers entirely on a background thread. While the output might be the expected one (not always), CoreAnimation emits an assertion along the lines of: "Modifications to the layer tree from a background thread may not be committed" (or something like this). This makes sense to me if implicit CATransaction is thread-local. In that case, the implicit transaction opened by the layer modification on the background thread would not be part of the transaction that is already open on the main thread. Therefore, committing the main-thread transaction would not commit the changes made on the background thread. My second approach was to explicitly create and commit a CATransaction on the background thread. This appears to be accepted by Core Animation's threading model, but I'm seeing unreliable results. Sometimes parts of the hierarchy are missing, and in other cases the hierarchy is present but the animations don't appear to run at all. I do understand that this is private behavior of the framework, but I wanted to know if what I am trying to achieve is possible and, if so, what the solution would be (obviously if you can share this information). Besides this, I would also like to know what behavior CATransactions have when they are created on different threads. What I mean by this is that the transactions work as a stack, and the changes are committed when the stack is empty. Does this behavior still apply when having transactions on different threads? Any weird behaviours that might appear between transactions operated on main vs background threads? Thank you! Vlad.
Replies
7
Boosts
0
Views
1.2k
Activity
Sep ’26
Lockpicking - Steuerung
Hallo, mein Spiel Lockpicking ist exakt gleich programmiert für Android und Apple. Warum sehen die links rechts Tasten bei beiden Apps verschieden aus ? https://apps.apple.com/us/app/lockpicking/id6793054294
Replies
1
Boosts
0
Views
538
Activity
Aug ’26
GCKeyboard reports a phantom “Generic Keyboard” on iOS 27 beta 5
Update: Please disregard this report. The behavior was caused by enabling the hardware keyboard for the device in Xcode 27 beta 5’s Device Hub. This appears to expose a virtual “Generic Keyboard” to the connected physical device, causing GCKeyboardDidConnect to be posted even though no physical keyboard is attached directly to it. Simply disabling the hardware keyboard option was not sufficient. I needed to close Device Hub and restart Xcode for the virtual keyboard to be removed and the expected GCKeyboard behavior to resume. I’m seeing what appears to be a GameController regression on physical iPhone and iPad devices running iOS 27 beta 5. When my app launches with no Bluetooth, USB, or Smart Connector keyboard attached, GCKeyboard.coalesced is initially nil. Shortly afterward, the system posts .GCKeyboardDidConnect for a keyboard named “Generic Keyboard,” and GCKeyboard.coalesced becomes non-nil: === Initial state === GCKeyboard.coalesced: nil cannot add handler to 0 from 0 - dropping === GCKeyboardDidConnect #1 === notification.object: GCKeyboard: 0x10b01cd00 'Generic Keyboard'> GCKeyboard.coalesced: Optional( 0x10b01cd00>) The phantom keyboard then appears to remain connected indefinitely. After this happens: Attaching a real hardware keyboard does not post another .GCKeyboardDidConnect. Detaching the real keyboard does not post .GCKeyboardDidDisconnect. GCKeyboard.coalesced remains non-nil even though no hardware keyboard is attached. This may be interacting with the documented coalescing behavior: the connect notification is posted only for the first keyboard, and the disconnect notification only after the last keyboard disconnects. If the phantom “Generic Keyboard” remains present, a real keyboard is never considered the first or last keyboard. Minimal observer code: print("Initial GCKeyboard.coalesced:", GCKeyboard.coalesced as Any) NotificationCenter.default.addObserver( forName: .GCKeyboardDidConnect, object: nil, queue: .main ) { notification in print("GCKeyboardDidConnect") print("notification.object:", notification.object as Any) print("GCKeyboard.coalesced:", GCKeyboard.coalesced as Any) } NotificationCenter.default.addObserver( forName: .GCKeyboardDidDisconnect, object: nil, queue: .main ) { notification in print("GCKeyboardDidDisconnect") print("notification.object:", notification.object as Any) print("GCKeyboard.coalesced:", GCKeyboard.coalesced as Any) } I can reproduce this on both a physical iPhone and a physical iPad. This is not Simulator keyboard forwarding, and no keyboard is attached when the “Generic Keyboard” appears. Has anyone else observed this behavior on iOS 27 beta 5 or found another API that reliably reports whether a real hardware keyboard is attached? Filed as FB24269002.
Replies
0
Boosts
1
Views
399
Activity
Aug ’26
Draw WKWebView into OpenGL Texture
I'm trying to figure out how to display a Web Browser inside my iOS VR app (Obj-c, SceneKit and raw OpenGL), and the part i'm not fully understanding is how to get the WKWebView to draw it's content into a Pixel Buffer of some sort, so I can use the speed of CVOpenGLESTextureCacheCreateTextureFromImage to convert the pixel data into a OpenGl Texture quickly/efficently and display it on a floating surface.I'm already doing something simular with the video portion of my app, but it has a AVPlayerItemVideoOutput, which produced the pixel buffer, but I can't figure out how to massage the CALayer into a Buffer so I can convert it into a texture to then draw in opengl.I know it has something to do with drawLayer:(Layer) ,(Context), but searching online hasn't been very fruitful.And i'm not using SceneKit like you would assume, the app was built before GVR for Scenekit was a thing, so every part of VR is handled manually (scenekit to textures, textures to opengl for Left/Right eye distortion mesh).
Replies
3
Boosts
0
Views
3.2k
Activity
Jul ’26
WatchBlocks v1.5 is now available: a sandbox game built for Apple Watch
Hi everyone! After about 4-5 months of development, I released WatchBlocks v1.5 today. The project started as an experiment to answer a simple question: Could you build a real sandbox survival game that runs well on Apple Watch? It eventually grew into a cross-platform game supporting Apple Watch, iPhone, iPad, and Mac. Some of the technical challenges I enjoyed solving included: Optimizing rendering and gameplay for watchOS. Designing controls around the Digital Crown and the watch display. Building multiplayer across Apple platforms. Creating a content system that lets players make and share their own blocks, items, mobs, and biomes. The new update also transitions the game to a free-to-start model, making it easier for people to try it before deciding whether to unlock the full experience. I’d love to hear from other developers building for watchOS. It’s a platform that doesn’t get much attention for games, but I think there’s a lot of untapped potential. If anyone has questions about developing games for Apple Watch, I’m happy to answer them. App Store: https://apps.apple.com/us/app/watchblocks-craft-build/id6760209351
Replies
0
Boosts
0
Views
1.2k
Activity
Jul ’26
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
1
Boosts
0
Views
1.2k
Activity
Jul ’26
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
1.2k
Activity
Jul ’26
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
1
Views
571
Activity
Jul ’26
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
4.2k
Activity
Jul ’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
578
Activity
Jul ’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.9k
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
1.1k
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
971
Activity
Jun ’26
Code sharing between iOS and watchOS
What's the recommended pattern for sharing a complex SpriteKit game scene (and basic game code) between iOS and watchOS targets without code duplication, given the platform differences in input and rendering?
Replies
2
Boosts
2
Views
786
Activity
Jun ’26
SpriteKit Continued Support
Hi! Question Could you provide some reassurance on the continued support for SpriteKit in the coming years? Trigger The deprecation of SceneKit at WWDC 2025 made me nervous. Context I use SpriteKit because: It can render any video AVFoundation can handle, which third-party engines don't do for several reasons including patents. This allows me to prototype UI that controls video with a game-like feel. It can render text and emojis through AttributedString, and text is hard. Thanks to a clear and well-exposed update loop, it can be integrated with libraries such as Core Image or Box2D. Example with Box2D here. It can draw dynamic shapes and paths with SKShapeNode, and visualize and respond to all the processing done at specific times during a frame. SKView is very handy to generate textures from nodes, and SKRenderer can be used to render a SpriteKit scene to video or sequence of images. This is possible thanks to multiple frameworks working together, including AVAssetWriter and IOSurface. Example of SpriteKit offline rendering here. Apple Alternatives When Apple announced the deprecation of SceneKit, I learned RealityKit in order to move my SpriteKit-based projects to RealityKit. RealityKit is interesting, but for 2D and 2.5D workflows I found several areas where SpriteKit remains significantly more practical: I had to lock physics to the XY plane, which could stress the engine and introduce unwanted overlap. Overlapping entities on a 2D plane was hard: ModelSortGroup did not provide the simple flexibility that SpriteKit zPosition provides. AFAIK there is no dynamic path/shape drawing in RealityKit. So drawing lines, visualizing physics and joints, rendering graph connections in the scene is not as easy as it is with SpriteKit shape nodes. SpriteKit is lighter and less power-hungry. Let me know if you need any more context or detail. Thank you!
Replies
1
Boosts
2
Views
918
Activity
Jun ’26
Are there details about what Rosetta functionality for "older unmaintained gaming titles" will be kept?
The developer documentation for Rosetta describing its end of support (https://developer.apple.com/documentation/apple-silicon/about-the-rosetta-translation-environment) says the following: Beyond this timeframe, we will keep a subset of Rosetta functionality aimed at supporting older unmaintained gaming titles, that rely on Intel-based frameworks. Are there details about which specific functionality this is? And as a concrete example, will parts of Rosetta that are needed by programs used to run and/or evaluate Windows games, such as WINE or CrossOver, remain supported?
Replies
1
Boosts
2
Views
830
Activity
Jun ’26
Minigame support in GameKit?
My app contains hundreds of games, each of which would benefit from its own set of achievements, leaderboards, etc. Is there any hope for minigame support in GameKit?
Replies
1
Boosts
3
Views
706
Activity
Jun ’26