Final Audition remade in VR

category: general [glöplog]

It's been a while. Around a half year ago I decided that we won't be able support our internal engine anymore :(. I started to learn Unity, and for the exercise I've chosen to redo our old demo "Final Audition" both in 2D and in VR. I mostly used compute shaders and Indirect drawing so the engine overhead is minimal (except the tree scene).

Today I have released all source assets and code for it, so you could see how to do demoscene aesthetics in Unity. Yep 2017 was a tough year ;).


(check the 'releases' tab)

It works on Oculus and Vive

added on the 2018-01-08 16:35:34 by bonzaj bonzaj
BB Image

added on the 2018-01-08 17:34:41 by Gargaj Gargaj
Very much a graphical downgrade, especially with a side-by-side comparison, and the VR version doesn't seem to make the best of the experience either, it just never feels as immersive and captivating as the original one. :/
added on the 2018-01-08 17:40:02 by Gargaj Gargaj
I have fear about that the VR demos and VR recreation of demos became an overrated trend in a near future and be abandoned for a long time. Although, nice remade.
added on the 2018-01-08 22:24:03 by nVolantis nVolantis
Unity is used for demos to on the scene.. Welcome back Plastic.. One day hopefully ;)
added on the 2018-01-08 22:46:43 by magic magic
i really like the material on the metaballs :)
added on the 2018-01-08 22:55:36 by ntsc_ ntsc_
Yeah, I started to change some scenes, in order to get at least a bit of creative fun from it :). The thing that you probably see the most is the lack of volume lights. I got a bit tired, and Unity's volume lights are not the nicest I've seen. I'll rewrite those at some point.

The thing that is missing in VR is the full interaction.
added on the 2018-01-08 23:18:14 by bonzaj bonzaj
Hi Bonzaj !
what do you mean not been able to support your internal engine? you mean with respect to doing things in VR?

Do you like unity? do you find it better/easier than doing things through your old internal engine?
added on the 2018-01-09 11:17:40 by Navis Navis
I finally need to reply to your last email ;).

So to sum things up. If you were doing your engine for last 12 years, and you constantly feel that you need to catch up with stuff then it may be frustrating. I don't mean rendering or effects. I mean all the rudimentary tools like exporting, packaging, scripting, timeline, UI, and finally documentation. You don't want to do it :).

So basically if you want to concentrate on a single effect, write some rendering tech then Unity is very good for that. it's extremely easy to use, and C# is a weapon of choice for just triggering elementary things in the code - like controlling shader parameters, firing events, logic etc. You can keep those scripts easily below 2-3 ms on majority of CPUs. If you want to make some CPU heavy stuff, connect OpenCV etc, then you just write a small NativePlugin, pin couple of array pointers and do the computation in C++ with threading/SSE/AVX etc.

For you - I guess compute shaders are the key. The interface for compute shaders in Unity is probably the easiest I dealt with with with very low overhead.

As for VR ...
We did VR support in our internal engine so it was not a problem. Actually we did a lot more than Unity provides - for example dynamic resolution, single pass rendering, FOVated rendering etc.
But in VR interaction is the key, and when it takes me 2 or 3 hours to get a nice simple interaction, comparing to nightmares of scripting in LUA or C++ with constant reloading etc. then it makes a huge difference.

It's hard to fight with 4 programmers against 400-600 with Natalya Tatarchuk leading them.

If you want to make intro, then forget it :). For demos go ahead - Gargaj will not forgive, but I will :D.

Also, think about releasing your VR demo through Oclusus/Steam - it will reach second audience. I'll do that with my stuff, but I want to write a Loader with bootstrap, so from one hub you will be able to load different demos/experiences.

Take care!
added on the 2018-01-09 13:36:11 by bonzaj bonzaj
Thanks, like all tools it has its uses. If I want to do something for mobiles, I will use Unity or Defold.
For bigger things (especially demos) I found that my productivity hit the floor, although this tells more about my ability with using Unity and c# than with anything else.
In the demoscene, I think it's good to approach unity or similar tools with an open mind; If you are writing games (are you?) then it may well be the only way.

Although I cannot understand how these things scale up once you go past 1-2 scenes..
added on the 2018-01-09 13:47:10 by Navis Navis
For demos go ahead - Gargaj will not forgive, but I will :D.

For what it's worth, I've never argued against using Unity.
added on the 2018-01-09 13:54:37 by Gargaj Gargaj
Well I did ;) I shouted it loud that it's a crap :). But they've made enormous changes lately.

I guess that when Unity and Unreal enable collaborative workflow for 1000 ppl on an open world environments then the era of home baked internal engines will be over ...
added on the 2018-01-09 15:35:50 by bonzaj bonzaj
I dunno, I mean from a business perspective maybe, but to me making my own engine is the fun part; although I do feel obsolete from time to time since artists no longer need coders like me who are more in the system-middleware-tool coding business and less the flashy visual coding types.
added on the 2018-01-09 15:49:22 by Gargaj Gargaj
(I'm saying "maybe" because Unity mostly seems to be geared towards up-to-25-people dev teams - I can't think of a lot of higher-end games using it.)
added on the 2018-01-09 16:13:02 by Gargaj Gargaj
Well... FinalAudition.. what can I say. I remember watching it back in 2005 thinking how beautiful these graphics looked - they still look great today. Not my favorite demo due to not having much of a story arc, but those reflections ! the motion blur ! the feel of urgency at the end and the rush of colors !

In VR it looks very different. I think that the Conspiracy is a better port, or rather, it was an "easier" demo to port while keeping the wow factor almost the same.
Final audition now has some fillers which I don't remember from the original demo (such as the rotating cubes). I really liked the end with the reflective object and the woman - I wanted to see more of her!

Not been able to cut your own cameras may be the biggest problem in VR demos I think.
added on the 2018-01-09 20:42:58 by Navis Navis
In VR it looks very different. I think that the Conspiracy is a better port, or rather, it was an "easier" demo to port while keeping the wow factor almost the same.

That was a conscious decision - I ported all 4 intros (with the same engine it's easy), but the other 3 don't work for reasons I'll explain in the Demobit seminar ;)
added on the 2018-01-09 21:18:34 by Gargaj Gargaj
Navis: yes, you need to think about cutting to spaces rather to camera views. That was my biggest problem with the port. As for the fillers ... - yes everything outside the camera composition with not so wide lens, is empty :). I think that I like the new version more because of fidelity of the picture, but that's of course subjective. I'm rather disappointed with the first tunnel and differential surfaces in VR. There's nothing happening ;).

I'll try to push a little bit and release next thing in a month. It will have a lot of more context.
added on the 2018-01-10 01:36:26 by bonzaj bonzaj
I simply want to say thank you for sharing the sources, this is by far the most sophisticated effects in a unity demo so far and alot of "aha!". I don't have the GPU or headset to run the whole thing, but due to the sources I could examine the scenes independently.
Maybe ask an admin to link to this thread or the github in the demo's page? Most certainly this will be useful to others aswell in the future and it won't just disappear in the forum.
added on the 2018-01-24 16:42:51 by r1g8 r1g8