Now, I'm going to try my best to make Friday, Blog Day, So yay! [size=2]or at least do this once a week...
Let's cut to the chase and this is what I did all week, programming wise: [font='courier new']FPSControllerSystem[/font] Long story short this is what makes controlling something, usually the camera, in an FPS like feel; WASD movement, mouse to look around, Space to jump, Shift+W to run, and C to crouch/crawl. In flying mode (the only mode currently supported) jump and crouch = fly up/down.
This will be the first system in which is purely optional for users of the engine; where as, Rendering is usually needed, and with Rendering, you'll need positions, meshes, and a camera; (well, unless you want to render nothing at 0,0,0) Oh and don't forget Textures! But that is kinda optional, but due to the fact it'll be used a lot, it's not as "optional" as I could've made it. Currently, one cannot have "no" texture on. Will probably "fix" this later.
I also remade the event system...actually the event "system" was ditched, and replaced with a class that is separate from the "system" pattern I'm using. The reason for this is that, well, entities don't really "accept" keys or mouse inputs; they could be made to, but I found it was 10x easier to ditch the "system" pattern this one time.
Another change today was the fact that Systems now can use other systems, right now it's a bit ugly but it's doing it's job. Going to do something to change it later down the road.
Also, each system now has a [font='courier new']Couple()[/font] function which can Couple the needed [font='courier new']ComponentManager<>[/font]s and systems. It may be smart to make the [font='courier new']ComponentManager<>[/font]s to be gobal, or collected in a general class/struct that can just be passed to the systems; and same with the systems, but I'm gonna try to avoid that if possible, as (or so I'm told) globals = bad; and that would probably be an ugly hack which will allow too much access.
To finish this blog entry, I gotta say that the engine is slowly morphing each day and soon(TM) enough there will be a game running with it.
What game am I planning? Now that's a secret ;)
Next Week: no clue, Might do lights though...assuming I'm not stuck fixing something stupid!