<!--
{
  "documentType" : "article",
  "framework" : "SpriteKit",
  "identifier" : "/documentation/SpriteKit/choosing-a-spritekit-scene-renderer",
  "metadataVersion" : "0.1.0",
  "role" : "article",
  "title" : "Choosing a SpriteKit Scene Renderer"
}
-->

# Choosing a SpriteKit Scene Renderer

Compare the different ways to display a SpriteKit scene.

## Discussion

To display SpriteKit content in a watch app, you use <doc://com.apple.documentation/documentation/WatchKit/WKInterfaceSKScene>, whereas on iOS, macOS, and tvOS, you use [`SKView`](/documentation/SpriteKit/SKView) to display a SpriteKit scene. If you need to mix SpriteKit with any custom Metal content, use [`SKRenderer`](/documentation/SpriteKit/SKRenderer).

> Important:
> SKRenderer is not available on watchOS.

### On iOS, tvOS, and macOS, Draw Using a View or a Renderer

Choose from the options below to display SpriteKit content on iOS, tvOS, or macOS.

#### Draw Using a View

To draw SpriteKit content the most common way, set up an [`SKView`](/documentation/SpriteKit/SKView) and set its [`scene`](/documentation/SpriteKit/SKView/scene) property. See [Drawing SpriteKit Content in a View](/documentation/SpriteKit/drawing-spritekit-content-in-a-view) for an example of using `SKView`.

#### Draw Using a Renderer

When you want to mix SpriteKit content with your own Metal content, use [`SKRenderer`](/documentation/SpriteKit/SKRenderer) to draw your [`SKScene`](/documentation/SpriteKit/SKScene). You might use `SKRenderer` to replace specific portions of a SpriteKit app with custom Metal code, or vice versa. `SKRenderer` combines the full control of Metal with the ease of use of SpriteKit and its library of useful objects.

For example, to take full control of just your game’s tiled background while using SpriteKit to draw the rest, use an `SKRenderer` and `MTLView` combination instead of `SKView`, and then write the tiled background code yourself in Metal.` `When you’re ready to mix the SpriteKit content with the Metal content, you call `SKRenderer`‘s [`render(withViewport:commandBuffer:renderPassDescriptor:)`](/documentation/SpriteKit/SKRenderer/render(withViewport:commandBuffer:renderPassDescriptor:)). Finally, call <doc://com.apple.documentation/documentation/Metal/MTLCommandBuffer/present(_:)> on a Metal view when you’re ready to present a frame.

### On watchOS, Draw Using an Interface Scene

To display SpriteKit content on Apple Watch, you create a <doc://com.apple.documentation/documentation/WatchKit/WKInterfaceSKScene> and then set its <doc://com.apple.documentation/documentation/WatchKit/WKInterfaceSKScene/scene> property. <doc://com.apple.documentation/documentation/WatchKit/WKInterfaceSKScene> functions much like `SKView`, but without the debugging visualization options.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)