Hi,
I have seen worse
He has some very good point, but I think it's more about a clash between a strong scripting background expert like him ( he's obviously very talented) where some rules can't be bent, more than anything else really.
He's basically saying: Hammers are dangerous, if you are going to use a hammer, chances are you are going to hammer your finger if you close your eyes. Should we stop using hammers? no, should we learn how to use a hammer, yep
Would carpenters stop use hammers because of its potential for disaster, no... Do they hammer their fingers? definitely a few times already and counting
. Basically, I guess Valentin was in a bad mood that day he wrote this post
PlayMaker is a very open architecture, and global variables, open access to fsm content is something that gives nightmares to many developers include me, I admit. Yet, it does not invalidate the incredible power of PlayMaker, and therefore I am very cautious when working, enforcing strict policy when I work to never break the rules he's mentioning on big projects, and if in some cases, I deliberately use them to get to my result quicker, I know that what I am doing is dangerous and so I keep my eyes open basically... it's like doing extreme sports in a way
I am using PlayMaker 24/7, and I must admit my general pressure level is far less then when I was doing conventional scripting. PlayMaker brings me more clarity over complex behaviours, conventional scripting is left in the starting block as far as I am concern ( like coroutines... I never liked them, I think this is far more dangerous and breaching basics rules then anything else in Unity... same with components on gameobjects... it can get very ugly and dreadful pretty fast...) . If we would start listing all the things Unity doesn't do by the books... it would be quite tedious
It's simply a matter of knowing the tool you use.
What Valentin is not saying though, is that the opposite of PlayMaker can be a lot more destructive in many cases. Going for a true OOP approach with strong theoretical requirements requires careful planning, in some projects, pre production is huge, to get the oop schema and all the classes, interfaces etc that will form the application. It's a no go for more sensible budget. You can spend months with a team before you write the first line of code....
Who does that apart from google and other big companies?... so you go and start coding of course... d'oh... you will face heavy refactoring sooner or later because you created objects and structures that do not satisfy all your needs, and you can't break encapsulation, or bend oop rules... so what now? In these cases, a severe rewrite is required. Will your client be happy... no because he doesn't want to pay extra. Will your team be happy no, because in your team, you have some that will screaming as they looks at your code as you tried to fix this. I have been there, I know how it goes... then deadlines gets pushed, tension rises, new members join the team and sometimes break the spirit and you start feeling more and more like dilbert...
The source of the issue with this is the customer ( read final expectations). Even with the best intentions, you define with the client a very accurate descriptions and start building what he said he wanted... only that down the line he changed his mind ( always for very good reasons)... ouch... your whole OOP structure is good for the bin, who's fault is it and who's going to pay for it? And why could you not consider flexibility when you coded? because it's impossible to predict these shifts... flexibility is only good when you define what that means... You can not turn a giraffe into an elephant without careful planning (!), and the best you can do is to disguise it as an elephant for a saturday night party at best, not for a careful app store submission approval...
With PlayMaker, you can bend rules, you can do duck tape programming
and that's one big reason why the points Valentin raises are not really valid in the real world. This post from Valentin is a very much from a theoretical perspective, and should be definitely considered for future improvement of PlayMaker, that goes without saying.
I (We the community actually) have pretty much mentioned a lot of it to Alex, and I think he was clever ( dare I say genius) enough to keep Playmaker accessible, even if it meant breaking rules or not strictly enforce them. I think this is why PlayMaker is so successful and other people trying to do visual programming framework fails, because they don't let go on them rules.
I'll happily carry on with PlayMaker, I can't get enough of it really. It's never been so pleasing to develop as far as I am concerned, and conventional scripting will have a hard time make me change my mind on this
I am always on the look out for some clever frameworks and alternatives, but they never resonate in my so well in the end.
Bye,
Jean