Today, something somewhat weird occured to me. If you build a game in Unity engine, you can easily publish it for Windows Phone, even in old and very low-end devices like the Lumia 520. This phone has a Qualcomm Snapdragon S4 MSM8227 with ISA ARMv7 supported. The Raspberry Pi 2 Model B device also has an ARM v7 processor and can be loaded with Windows 10, that support the Universal Windows Plarform, which Unity supports. You can imagine the question, can a game built with Unity be published into a Raspberry Pi 2?
I’ll jump straight to the answer: Yes but don’t do it! Games built in Unity can and will run on a Raspberry Pi 2 loaded with Windows 10 IoT Core even though the performance is mediocre, at best. So, if you’re like me and want to try this (why? because you can!), follow the below steps
– Get a Raspberry Pi 2 Model B, easy and inexpensive
– Get started with Windows IoT, setup your PC for Raspberry development
– Set up the Raspberry by downloading and installing Windows 10 IoT Core on it
– Download Unity (version tested is 5.3.2, but other versions should work)
– Find or develop a Unity game, you can find some in my blog
– Publish it for Universal Windows Platform
– Open the published game in Visual Studio
– Deploy the UWP game in the Raspberry
– (optional but recommended) Connect a monitor via HDMI and a mouse to the Raspberry to see the game running
If you’re wondering, the games I tested to jump into the mediocre performance conclusion were two pretty simple 2D games I’ve built; the match-3 game and the puzzle one. Frame rate was 2-3 frames per second, making the performance totally unacceptable. I’m not aware of any optimizations that one could do in order to make them run faster, unless, of course, one could fiddle with the engine’s source code. Well, either that or Unity (or another engine) releases a version with Raspberry-friendly compatible output. Till then, I’ll be more than happy to enjoy Snake and Tetris-like games on my Raspberry!
9 thoughts on “Can a Raspberry Pi 2 with Windows 10 IoT Core run a game made in Unity?”
Hello, have you done more testing about this on Raspberry 3 and new versions of Unity?
Unfortunately no, but it’s on my todo list! If you do, please share your experiences
I am going to try this week, if not Unity3D i need to know the best way to render graphics on display.
Have you investigated other methods, DirectX or other engines?
No, I haven’t. Reason I chose Unity is that it exports in UWP format which fits perfectly on Windows 10 IoT Core running on the Pi.
OK i tried, no luck, still <5fps for both XAML and D3D build options.
So i guess nobody at Unity still tried to optimize it for RaspBerry, which is a shame because that GPU can deliver some juice if properly configured…
I have a working Rpi3 Android SDcard image and a Unity 5.6 2D test game working. sadly you can not use a set resolution the change res in game. It causes OpenGL to color pallet swap. So the entire system must be pre set to 800x480p60. 1280x720p is doable but needs chipset cooling heatsink+fan. and long duration play causes overheat. 480p-wide is sustainable with testing lasting for 4hr of non stop play test.
I have worked with testing Unity on the Raspberry Pi3. On Windows IoT the GPU has no display drivers. So a software renderer is used on the CPU. So I move to Linux, then to Android TV custom compiled.
The Android TV custom I was able to run a Unity 2D sprite UnityChan test app at 800x640p@60fps. This worked because of experimental GPU drivers loaded in the Android OS. The Video Core 4 GPU is limited so you can not over work it. Do not used 3D this will over heat and cause a safety shutdown. When using the 2D sprites you must render ALL at 1:1 pixel ratio. the less scaling the better. a 32x32px sprite should be 32×32 on screen. Also graph and test all scenes limit the amount of content that is loaded and swapped in/out. Bye carefully designing a scene you can run a SNES quality game in 480p(wide) mode. For testing I paired a Xbox One S to the Rpi3 via bluetooth. The Pi3 with Android is more then capable of presenting it self as a SNES or GBA quality of system.
Anyone wishing to gain access to Unity on Rpi3 image and test project can email me at firstname.lastname@example.org and request access approval. Please explain who you are, why you want access. Access in alpha will be limited once polished I will further open access.
A test video I upload some time ago on twitter via our parent company Broten Technologies Corp.
Impressive ! nice work