02 12 2020
Event System - Dispatcher
Event Dispatcher is Easy and Straight Forward to Use... Great for Beginners
I`ve got a bit of a research fetish for event systems. I feel like I`ve tried them all in order to create that perfect `nirvana` game pattern where code writes effortlessly and everything is loosely decoupled and extendable. Event Dispatcher is one of several event messaging systems I really enjoy working with. In fact I would say if you are looking for an easy to use `beginner` type event system then you can`t go wrong with Event Dispatcher. It is inexpensive, easy to setup and gets the job done.
Another attribute of Event Dispatcher is that it completely a C# monobehavior based solution as opposed to some event systems that use scriptable objects to make event management more artist/designer friendly. For me personally I find myself leaning away from scriptable objects for my event systems because wiring things up in the inspector and managing all the connections there starts to get overwelming as the size of the project grows. That said I`m still on the search for that ultimate design pattern that would combine the best of all the available event systems.
One consideration about this asset is that it on the more simple and could be argued, limited end, of the event systems available. It costs $15 and to be honest, ultEvents for free has more features and is remarkably easy to use as well In addition, another powerful free event system, SOFlow, is built on ultEvents. So while I`m giving this asset a strong thumbs up overall because it is good and does the job... it is hard to compete with free and the amazing capabilities of UltEvents. That said I think a lot comes down to personal development style. Sometimes my brain just needs simplicity and doesn`t want to deal with complex systems. That is where Event Dispatcher really shines. If you are new and confused by events then Event Dispatcher could be a very good way to help you get moving along. It is more straightforward and easier to troubleshoot while still allowing you to create well designed interactions between components.