Please use this code! I want games I can play on my new hardware.
But don’t use the included graphics (the holodeck wall texture and the eye-shaped flashlight mask) if you’re doing the 48 hour compo (LD’s rules, not mine). If you’re doing the 72 hour jam, it’s not against the rules, but you’re being lazy. SceneKit is this easy.
The podium is technically code, not a graphic, but use it as an example of how to do nested animations (the ring rotates around the ball, and the question mark follows the ring while also rotating in place) or glowing materials or player interaction (it lights up if you walk over to it) or whatever, don’t just drop the entire thing in your game. It’s not a rule or copyright violation, just lazy.
- LibOVR 0.4.1 support, including DK2 head tracking.
- Multiple standard control schemes (WASD, click-to-move). “Forward” is where the player is facing (requires DK2).
- Lights can autofollow the player. Spotlights can point where the player looks (requires DK2).
- Lots of hooks for common game functions (example: if the theme is Don’t Stop Moving, put your punishment in stopMoving: in Scene.mm or your subclass of it).
Missing Features / Known Issues:
- SceneKit is Mac only. There will not be a Windows version.
- Chromatic aberration correction is missing, aka “something’s wrong with the colors”.
- Only the OculusRiftSceneKitTest example has been updated. The other two are probably broken.
- 2D movement (walking) is in, 3D movement (flying) is not.
You will also need LibOVR. You’ll need a developer account, but it only costs an email address. You do NOT need an Oculus Rift. See the GitHub page for more details — Xcode is picky about where you put these files.
Replace HolodeckScene with your game.
Compile, test, distribute.
You can compile and run this without an Oculus Rift, but the screen looks like this:
and you’ll be able to move with WASD, but not turn (unless you code it yourself). Good luck testing that. 😉
Screenshots and gameplay videos should be viewable by Rift users if recorded and played in fullscreen mode. If you have a Rift, try viewing the screenshot with it! (click for full size)