I hereby issue myself a challenge.
It is shortly after 9 AM on Friday, April 28th, 2006. I have a list of mini-milestones that I wanted to have done this week in order to get the cutscene engine mostly implemented. I have thus far not done such a great job of keeping up with things, mostly due to having apparently developed a light dose of narcolepsy in the last three days. (I'm sure my rampant caffeine abuse and maniacally inconsistent schedule has nothing to do with it.)
So... here's what I want to get done today. My goal is to finish all of this by around 7 PM so that I can go out to dinner and a movie with some friends of mine.
Finish linear interpolation wrapper code (trivial)(Finished 9:14 AM) Stub out spline interpolation code(Finished 9:15 AM) Finish remaining special non-interpolation modes(Finished 9:16 AM) Build and pass unit tests for interpolation system, sans spline interpolation(Finished 12:56 PM) Codify the remaining elements of the system as a set of class interfaces(Finished 3:53 PM) Implement skeletal outlines of the system in code, stub in pseudocode for algorithms where possible(Finished 4:31 PM) Implement the core of the data flow model for managing timing and interdependent timing events(See Final Update below) Implement validation/sanity logic for timing dependency system(See Final Update below) Implement a dummy playback system that shows a real-time log of what a cutscene does as it plays (without actual rendering) - this is optional for tonight, but needs to be done this weekend at the latest.(See Final Update below)
Once those goals are done, the next big thing is to start integrating the logic with actual rendering code, so that we can actually see what's going on. From there, I need to build a veneer layer in XML so that certain special cases (Mission Briefing screens) can be handled easily by the content creation team. And then it's pretty much just patching and polishing and the sucker is done and ready for prime-time - right on schedule, hopefully.
So... there's my goals for myself, and they're now public, so I can no longer succumb to the temptation to go sneakly reassign tasks to next week, and pretend that I'm still on track.
I'll update this post and strike off items as I finish them, followed by a recap tonight when I finish. I'm going to force myself to not go out tonight if I'm not done, which should serve as a nice incentive to actually work.
Gentlemen, start your brains. The cheese flow will arrive soon, and we must be ready.
I'm very annoyed. The unit test thing is taking about a billion times longer than it should have - I've had the tests coded for ages but I can't run them because my build environment got borked someplace along the line.
I've tracked the issue down to a couple of script files that were built with an old version of the compiler, so I have to rebuild them - but to do that I need to update a couple of files from the master repository, and it's taking a bloody long time. Much longer than copying 120KB should take.
Eventually, I'll be able to strike off that item. With luck I'll have a finished, unit-tested module by 1PM, which will give me about 6 hours to tackle the remaining items. Should be doable.
Finally got it all working. The unit test quickly nailed a boundary-condition bug that I probably wouldn't have found for months without the test in place. Score one for good development practices. Anyways, it's time for a hard-earned break I think... and some food.
Man... I suck. I have no idea where the last hour and a half went. Oh well... four hours to get this stuff done; it'll be a hard push, but I'm armed with a Stewart's peach soda and DI.fm's Chillout channel, so I think I can pull it off. Crunch time.
Alright, this is more like it. I've got the basics of the classes all stubbed out, and some detailed implementation plans for how to represent all of the necessary data. I even whipped up a couple of diagrams and a wiki page entry for the plans. Now I just need to fight the urge to take another "quick break" - hah, hah.
Final Update 4:35PM
I just realized that I got some things out of order with this task list. I can't really solve the timing stuff until the representation of the entire system is built up, so I'll finish fleshing out the skeleton framework first and go back and add in the timing logic as I go, organically. That should work a lot better.
I will continue on this until 7PM (or some close time where I feel satisfied with my progress). So... all things considered: Challenge Completed Successfully! I am The Man.