It’s been a while since the last VLOG because a lot has been happening.
All work in Unity3d has been halted and the new Retro Recording Studio is being developed in Unreal Engine.
Let’s start with some development screenshots of the latest stuff that I’ve been building in Unreal Engine and Blender. Yeah, that’s an SSL 4000 G+ Clone for those who are wondering. Still have to think of a name that is allowed instead of SSL maybe the LLS. And of course the return of the Bruder (a virtual Studer 827 clone)
Unity3D vs Unreal
One reason there were not many updates was the lack of time to work on this project, but another big reason is Unity’s changing company. As many of you probably heard, Unity changed its pricing structure last year, which caused a big backlash from all the Unity developers.
Because my VR studio product wasn’t available yet, and I didn’t have previous applications in any store making money, I was not affected by these new plans and decisions. Still, it did make me think twice about using Unity. I’ve already felt in the last few years that the game engine was not the company’s main focus anymore. Since 2017/2018 they were happier introducing new features (which sometimes were never released) than improving upon the engine and fixing long-standing issues, bugs and missing features. (dots audio, dots programming, removal of standard pipeline and upgrading everything (including sample projects) to the URP etc ). Add to this a money-driven CEO John Riccitelo who has no affiliation with game devs whatsoever and you got a shitty project with a shitty future.
Although I liked working in C# and have worked in Unity since 2013 so could find my way around quite well, I still didn’t find it intuitive to work on VR projects in Unity and performance was often an issue as I had to go back in and change things around to get it more optimised.
While this was happening, I read about the improvements on Metasound in Unreal, which sounded like just the thing I wanted from DOTS Audio in Unity3D, so why not give Unreal a try?
I modelled an SSL 4000 G console in Blender. I started to see if I could import this in Unreal and I could add VR interaction and audio modulation/manipulation in Unreal. It took me a month or so and a lot of headaches and frustration about the general lack of good educational material for Unreal (except 3rd party shooters, millions of them) but I got the hang of it.
Soon enough I had a demo playing with multiple tracks, with volume control etc. I’m starting to like blueprints more than C#. It was slow in the beginning, but a lot easier to read and optimise. Even without trying I could hit 120 fps in Unreal, so I’m not worried about optimising for VR just yet. The VR integration is far behind Unity so I still have to invent and implement a lot of basic stuff myself. (movement, grabbing, controlling, spawning, haptics etc), but hey it’s working.
It’s already looking much better than Unity, so my path is forward with Unreal. Hoping to release a completely new beta version soon for ppl to try out.
The main advantages of Unreal I have noticed so far are :
- Metasounds is a solid and robust audio tool in Unreal that can handle 95% of what I want. All channel processing, routing, cue sends, compressor, metering etc is handled this way.
- Channels and sub-mixes and logic implemented with blueprints can probably do the rest like start/ stop/rewind/timekeeping / sound FX/inserts / routing externally / metering (VU and digital)
- Working in blueprints is slower than C#, but when built is better readable and easier to re-use and optimise.
- Unreal engine renders just nicer out of the box and FPS seem to keep high although I use quite some objects and FX
- Debugging in Unreal is a different ball game than c#, and it’s way more complicated to do, but the same applies to the BP, once you get the hang of it, it solves problems faster than code debugging.
The things I still don’t like about Unreal are:
- the outliner is nothing like the hierarchy view in unity. You can’t disable stuff or select stuff easily. And even using it to parent/group stuff is cumbersome
- working in blueprint a lot of the editor tools like snapping, drop to floor, select in outliner etc don’t work. Only when working on the root level this stuff works
- there are so many settings for everything which makes things unnecessarily complex all the time
- Sometimes unreal editor slows down so much that working in it is a real pain. Don’t know if it’s only this project, my system or some bug, but have been having this issue since the beginning and it keeps me from making big jumps in dev.
- Importing stuff in Unreal converts them to Uassets, which you can’t edit externally. So reimport is needed every time you adjust.
- When importing meshes as FBX, your pivot points will all shift to the centre which is just stupid. Data Smith allows you to fix a bit of this shit
- Plugins don’t always work nicely together
- Lack of good tutorials and documentation. They are way behind on everything. Luckily YouTube helps out a lot, but the main focus is game dev, and my project is less game and more simulation
- Building for Android is not easy at all
- strange errors in the log sometimes which I don’t understand. Can’t click on log to find out what caused it (like Unity)
- outliner always has all nodes open, but should stay closed (folded) when possible
- hitting F on outliner should go to the selected object
- favourites can only have folders, not items
- can’t disable parts of the scene for performance testing
- while in play mode, can’t see changes reflected in the editor.