Original Post
I'm having some trouble deciding if certain elements in my game engine should be integrated in the Kernel or run as tasks. In particular I'm wondering about the following: Message System: ALL tasks use this communicate with each other and the kernel. Log System: Well... You know. Settings Manager: Tasks that need to load user configurable data use this. Scripting System: Responsible for passing task requests to the scripting system and vice versa. I think if they were integrated in the Kernel they would be easier to use and at least in the case of the messaging system ALL tasks need to know about it. Kernel integration would make that much smoother. On the other hand, adding them as kernel tasks would be more flexible. Easier to manage since you have one central location for everything. Another question I have is reguarding a canonical game loop. Since I've got a renderer task, what would be the best way to separate it from the other tasks that update only a limited number of times per second? I'm currently using the enginuity method of task priority. I've thought about using a method that others have mentioned around which entails using an update rate instead of fixed priority. Then you could set the rate at which individual tasks update. What tasks other then the renderer would benifit from this? Thanks for taking the time to read this! Tim.