I am a big fan of UE4, I had a great time since last spring. I already had the opportunity to teach UE4 to a game design class at university, I created a small UE4 demo project in context of my studies (Vitreous Tank) and now I started my GearVR centered master thesis project.
I wanted to focus on GearVR Development over the year and here comes what saddens me: Gear VR support seems to be really very low priority and it is far from production ready, additionally there is no time frame or transparent communication on further development - some Trello Buzzwords with not committed delivery dates are not enough.
I’d like to point you on a few things that would make it production ready if you would fix or implement them:
- The rendering support is still rudimentary. It looks very bad, and anti-aliasing seems to have no effect.
- Some parts look done, but are not. Like there is no way to change screen percentage on the GearVR it always stays 100
- There is no guide for recommended graphic settings. I have been experimenting a lot, but recommended Android settings look bad in VR and I really found no settings that looked/performed as good as the same scene in another engine I tried.
- Even with very basic shaders and only a little low poly geometry I cannot hit 60fps - If I missed something, well there is no documentation for UE4 GearVR.
- The Samsung Gamepad EI-GP20 is not supported (dpad and right thumb stick do not work). I submitted a patch at GitHub, but then the Moga Pro support was broken so I canceled it myself, the Moga Pro really uses LZ and RZ axis to indicate right thumbstick… So maybe just allow RX RY RZ an LX LY LZ and let the Developer decide what to use instead of forcing the Z axis to RX and RY output
- I ported my 4.7 Preview 8 game to 4.7 and now my builds render both eyes on the left half of the landscape screen. I cannot find the reason, nor a fix - nothing has changed on my side. So having working builds is kind of random or the way something has changed or could cause this is not documented officially.
- To sum it up: official documentation on GearVR is missing. Community documentation is often outdated or not 100% correct like your oculus Wiki page proves.
- The AndroidManifest cannot be changed by hand, somehow you think configuring it via Settings is enough. What if I want vr_dual, what if I want other native activities? Of course I could work with a custom engine where I change the templates and some code, but having a custom manifest is pretty much standard, and it will be standard for UE4 Android devs too, they know what they are doing (and there is still UE4 documentation right?), so trust them - still there could be an alternative non-technical artist-dev mode with simple manifest mode or something.
- Calling intends is not possible via the android jni interface. Again I could include it for my personal engine build, but I expected it to be delivered by you because this is basic.
- Without intends I can not call the oculsu home activity. So you artist devs are unable to get marketplace ready GearVR apps.
- Same for volume - no way to adjust Android system volume.
- A Gear VR Template could provide the volume and back button longpress and the “Back to Oculus Home?” functionality, again with optimal graphic settings.
- When we are talking graphic settings. In the oculus docs you should basically decide the depth buffer 16bit or 24 bit time warp thread’s multisampling 1x 2x or 4x. The rest are recommended defaults PixelLightCount Low, AntiAliasing Disabled, Shadows off, VSync off, Physics time interval. It should be that easy or at least well documented for UE4 too.
- Having UI on Android is hard, since UMG is still experimental. UMG Crashes the editor what really is bad for mood and workflow.
- UMG 3D Widgets on android render with DX UV coordinates and not with GL. So the UMG UI is mirrored.
- UMG 3D Widgets are lot of pain if you want to control the UI with the gamepad or let’s say with mouse swipes (like the Gear VR touchpad provides). It is not even possible to highlight anything without a mouse, you need to work around with active deactivated states and manually controlled focus. Android devs expect DPAD controls for UI with automatic focus according to widget layout, including jumping in lists and out and scrolling lists. That all is missing in UMG.
I am sure I have forgotten some points and maybe in some cases I am just well informed or too stupid. Maybe some other devs want to share their complaints and experiences too?
Of course some of the issues could be fixed by my own work or by community work, like documentation, Samsung Gamepad or Android intends. But I really believe Epic has to deliver if they want to be a respected VR game engine. VR Projects for GearVR, GearVR2 and CV1 have their roots now. Devs that go to elsewhere for an easier live might never come back (promised, I will).
For my part I worked one year with UE4 and now I have to look for alternatives, because it is impossible to create something for the GearVR jam at the moment. Also I started my Gear VR related master thesis and spend a whole month only to find out UE4 is might be not usable for GearVR in it’s current state. And worse, we do not have a time frame for fixes. In fact there is almost no transparent communication about what is planned on VR. A small Trello Entry “Gear VR optimization” is not enough if you want to start production, only to find out UE4 is still not capable of good quality, painless mobile VR development when your time schedule is over already.
@Epic: Please do not get me wrong. I love UE4. Release 4.7 was awesome, on every other aspect, but VR issues and/or documentation have not been addressed enough maybe.
If I am all wrong with my complaints please just point me the right direction, I would be happy.
P.S. If low performance cost 3d world space UI with DPAD controls is really such a hard problem, maybe you should break the link to Slate. Slate is too complex for the things needed there. The required features and stability might be hard to archive with it. Code reuse is cool, but not at the expense of too many compromises.
P.P.S. I am not a native speaker so please do not hang me for my grammar
P.P.P.S. I deleted my “now going to another engine statements” since the support came so quick and extensively. Thanks!