Global game controller function?

I may be missing something obvious here, but I've been wondering what the best strategy is for implementing a global game controller function? Like a main() update loop in traditional programming.

I intend to use this to track game state changes, centralise events, instantiate objects etc. From what I understand Unity seems to expect a script to be attached to a GameObject, there doesn't appear to be a 'world' object I can apply an update() function to.

I would also like this 'world' object/function to be able to receive propagated events in the hierarchy.

I just need a tip to set me on the right path, the paradigm Unity uses to deal with this more traditional programming paradigm.

You can make an empty game object and attach scripts to that. If you make everything else a child of this empty game object, it will receive SendMessageUpwards events sent from any other object.