Tweeter version:
The title says it all, is a there a way I can’t find?
If not why most say “one can create a full game with BP”, when BP can’t even handle such a simple and common task?
Long version:
I’m at a stage where I’m making the backend of the options page for a very simple game. The Audio section of the options page (no art yet) looks like this:
So as you can see there are 3 categories for all the soundcues in the game, I already programmed the sliders to not be continuous, and have steps of 10, so each slidebar can have a value of 0 through 10; so 11 states for each slider.
We would do something like this very easily in UE3 using unrealscript:
I understand in UE4’s C++ it’s almost the same, and we could access the sound classes via GetAudioDevice(). I searched blueptint up to bottom only to find out we don’t have any access to neither the Engine class, nor the GetAudioDevice function, so we cannot iterate through the sound classes. I also checked and made sure we can’t manipulate those SoundClasses or SoundMixes by having a direct reference.
Now why I don’t just use 10 lines of C++ to do this instead of a full page post here, considering I’m actually a programmer and not a designer? Well the whole point of this project since the moment I started it a few weeks back, was to see if what everyone says is true: * “You can make a full game with blueprints” *.
When I started I figured if that statement proved to be true, I’d stick to BP for small/mobile games, unless I need some advanced parts in the game, and only use C++ for the base of larger scaled games, plus whenever I need to use more advanced features. Now obviously changing volume is no advanced thing, even a tetris game should allow you modify the sound volumes.
The only way I could find so far to do this in BP, is to create a SoundMix for each state of each slider, and swtich between or rather push/pop them. But that means creating and managing 33 SoundMixes, which doesn’t make any sense, I would call it not a solution, but a workaround, and a bad one at that.
It won’t be that hard for me to switch to a C++ based project at this moment, but if I have to do that for such a simple task, then the statement above in italic is just a myth, while BP is much more powerful than Kismet, and I admit I found to like it, but it is in no way a replacement for UnrealScript, as been advertised, and you also cannot create a full publishable game with it, not even a simple one.
So now the question is, (I’m almost certain there isn’t, but in case I missed it) is there really any way to do a very simple thing like this in BP? If not, is there a plan to expose the GetAudioDevice function to BP, or make some other way available, in near future? Or really the only solution would be to switch to C++ after all?