Pro Developer Using Unity + Razer Hydra + Occulus Rift but...?

Check this article out, apologies if you have already seen it.

But in the article the developer mentions that the Unity API is not exposing DirectX and PhysX features that he could be utilizing to improve the games performance.

Just wondering if there are any pro game developers using Unity that could comment on what advanced features DirectX, OpenGL and PhysX have that could be exposed used in Unity but are not available?

Now before you start going on about he’s not doing anything amazing he’s just using a bunch of blocks, I do think that Unity due to it’s port everywhere philosophy may be limiting it’s own potential on higher performance platforms and this is the issue I would like to explore.

Could Unity work faster and better than it does if it were to enable some higher performance features in the Graphical and Physics libraries it uses?

There’s a fuckton of things. Off the top of my head, from a Direct3D point of view:

  • Proper instancing support
  • Configurable vertex formats, so we can compress our vertices better
  • Texture arrays
  • Occlusion queries
  • Partial buffer locking/updating
  • GPU skinning

Good points superpig.

The article does mention the limitations of the Unity Physx api with regards to the joint system vs other physics api’s I’m wondering how well the Unity Phyiscs system features compare to current generation Physics e.g. Havok, Bullet ect?

interesting thread… So Unity is truly lacking in PhysX

I’m especially interested in getting the Hydra operational in Unity. I have the hydra, Unity4 pro awaiting the Oculus Rift.

I think the PhysX implementation in Unity is adapted to perform on mobile, but has not adopted the updates and features you find in the current PhysX SDK, e.g. GPU accelerated physics ect.

And in the article mentioned it appears to be issues with the Joint physics within Unity that were casing problems/limiting the developer.

from here VR Game "Armored Ops" Prototype for the Rift - Meant to be Seen

What’s interesting is the fact that the Oculus Rift requires stereoscopic images, two offset views and the developer is saying that DX10/11 hardware instancing would improve the performance of having to draw the scene twice.

Unfortunately this is a DirectX feature that is not available within Unity at the moment (Unity 4.1.1).

And as the makers of the Rift are highlighting the need for 60fps with minimal lag to get the best VR experience this could impact the Quality of the VR games made with Unity.

In balance further into the forum discussion he does say this in defence of Unity

This demo was developed before Unity 4 I believe. I wonder if the issues he had are still present?

Good point as he is using an ad hock IK rig, and the new Mechanim animation system supports IK rigs.

I wonder how well Mechanim would work in a sword fighting game?

I cannot answer what a PC developer misses using unity. I wish to share some thoughts though. I believe that unity is not a solution for everything. The more you choose to focus in a platform, the more specific solutions you will need and the more difficult will be to move to another platform. As time passes, platforms come and vanish, which makes multi platform solutions valuable, with some compromises. It worth knowing these compromises, so I see the importance of this thread.
A client wished me to develop a project in obj-c. I told him it does not worth the effort, since, if the project succeeds, it will be trapped in apple platforms. Until next major revision. Or maybe this becomes a killer project and everyone gets rich, because it specifically uses unique characteristics of this platform.
People choose where to place their efforts. No right answers here.

Most likely, yes, but to me at least that’s not a negative. Unity isn’t a tool I use to get the best out of a single platform, it’s something I use to get the most out of as many platforms as possible - and I think that that’s probably a design goal of Unity as well. I happily forgo features that let me get more out of high end PCs or other specific devices because they’re not something we’ll be using for our games.

As an indie developer, I don’t necessarily care about being able to add the newest DX11 effects to my game. I do care about being able to deploy it to iOS and Android and PC and Mac and (hopefully I get the privilege to put it on) some consoles later on. Our design reflects this, and it’s a huge part of the reason we picked Unity. We could have picked other tools that would get better results out of any one of those platforms, but something that lets us target so many platforms with a feature set that surpasses what we need? Unity’s a winner there.

Just to be clear, though, our game is designed for “lowest common denominator” in terms of input and hardware. We don’t want to do anything that won’t work on all of the above platforms with minimal changes or, if possible, no changes at all. It’s not just our implementation that’s cross-platform, it’s the design, and when designing that way Unity more than covers 95% of your needs. But also, when you’re designing that way, you don’t typically need (or even want) low level stuff like what’s being discussed here to be exposed. Starting to play around with stuff that’s platform-specific adds unwanted complexity, which is bad for our kind of game. But it would be a great thing for people targeting specific platforms rather than varieties of platforms.

well said. This is why so many indies like unity, its easy to get your game on as many platforms as possible. People just need to realize that unity isnt gonna be pushing technical limits on any one platform, but it doesn’t try to. Sometimes I need to remember that! Unity’s way is just a different mindset then what I grew up with.

wow, great thread…

I’m interested in how well unity will integrate with The Hydra, Rift + Unity’s Mecanim.

What would be the minimum spec machine I could get away with that will allow for smooth fast paced motion…such as in a fight scene that takes place on horse back… I guess it comes domes down to many factors within Unity… I’m no programmer but I’d say real low draw calls is the key + simple textures, might let you get away with fluid motion. I wonder if a few bots running about in the background on a navmesh are a bad idea ?