-
Notifications
You must be signed in to change notification settings - Fork 67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Can you explain why BetterBehaviour is deprecated? #88
Comments
I've talked a lot about this. The runtime/serialization portion of my framework was a very, very bad idea. I had no idea at the time of writing that it is. When I first wrote the serialization part of the framework to support OOP features like polymorphic serialization, generics, interfaces, properties, etc I thought it was 'cool', and useful (in theory). But as I used it in practice it turned out to be a complete fucking utter disaster. A lot of us came to Unity/game programming from pure business/.NET programming backgrounds (like me) and we found that Unity doesn't support all their languages features, so we start to look for alternatives/hacks/plugins to compensate for the missing features, that's how VFW was born, and how most people came across it. It supported almost every aspect of OOP, not knowing how bad and destructive object-oriented programming is. My intention of releasing the plugin for free is to help people out. It bothers me to hell and back that it's actually doing the EXACT opposite to them, without them knowing it. As of VFW 1.3.5, I have officially deprecated the entire runtime/serialziation portion of the framework, leaving only the stuff that proved to be useful: the editor/drawers stuff. The story in short is:
This was my 2 cents on the situation, take it with a grain of salt if you wish, but that was my experience and a lot of fellow developers I know. When I see others doing the same kind of programming I used to do, it makes me sad, and if they were my users, it makes me angry cause I helped participate and facilitate them doing those things. Then I try to talk to them and hopefully correct things, cause I was a victim of OOP lies too. |
A lot of programmers have recently woken up thanks to Casey's Handmade Hero movement (which I highly recommend) - One of them is Brian Will who made a couple of controversial videos about the subject which I quite liked (https://www.youtube.com/watch?v=QM1iUe6IofM). I've been programming in a procedural style ever since. You could do it in C# too, via partial classes to get fake a global scope. Very simple programming, data (classes/structs with no methods) and functions that manipulates the data. |
Thank you for the long, thoughtful response. Yes, I came from a business development background also, and that's when I used to use VFW. Now I'm a big fan of ECS design, I guess maybe I should change the way I develop. I suggest adding this response to the readme file of this project. |
Done. |
Again, thanks for your intentions and I agree on how amazing data driven design is. Currently, one of my existing projects is based on your asset (BetterBehaviour). Is your depreciation purely because of the code design aspect, or is there something that will break on me? |
You should be able to use 1.3.4 just fine, which was a relatively solid and mostly bug-free version. But remember you will get those performance hits when you Instantiate BetterBehaviours due to the custom serialization that happens there. Just profile and make sure it doesn't harm your game. |
You never rely on Unity .scene file to save any data? I cannot imagine how your solution looks like. Maybe I misunderstood what you mean. |
I am also interested to know what you think about dependency injection and specifically as well as what you think about reactive extensions |
I spent a long time looking for ways to serialize all those crazy data structures, and it never occurred to me that it could be a terrible idea. Thanks for your work and that life lesson. |
I love OOP, there's really nothing wrong with it - I use MVC pattern all the time so people who use my editors to create and modify data can use that data with either monobehaviours or DOTS. I haven't done anything with this system yet and I might stay away after some of the things I've read here. It is a nice idea, though. |
I've been using VFW for a while and it's been my favourite asset. Recently, in my new project I updated to the current version and found out that BetterBehaviour is deprecated along with all the serialization.
Quote
I read through the readme and there has been no updates regarding this deprecation, or why it has been deprecated. Can I get an explaination? I love the asset.
The text was updated successfully, but these errors were encountered: