Then, I spent some time finishing up the decoupling of the whip from the player's motion controller. All tools have a common interface for "engaging" and "disengaging", as well as a "trigger axis" which the Vive's motion controller uses for how much its trigger is pushed in. Decoupling this logic also made it possible for the AI character to use the exact same code for the tools as the human player does.
In doing this, I also put the pieces in place to make it easier to create additional tools. As a proof of concept, I created a "psychic wand" tool in one night, and I documented the whole process here (Google Docs). I did this to make it easier for other developers and designers to understand what steps are involved in making new tools.
Basically, it is a tool that holds a charge and has a cool-off period when the charge is up (while it recharges to its full charge). When the player holds the trigger (assuming they don't miss), it "attaches" to the ball in front of it and when the player moves his or her hand, a force is applied to the attached ball depending not only on how much the trigger is held down, but also how quickly they moved their arm. The charge is depleted only based on how much the trigger is held down (and does so regardless of whether or not they successfully grabbed a ball).
I posted a video of it here (Google Drive).
I didn't work on fixing the whip's damping problem (since I'm still not totally sure how I can go about fixing it yet, and I felt like in doing this, my time was better spent).
In terms of my reading, I finished chapters 5 and 6 in C++ primer, and I'm partially through chapter 7. I didn't do any of the exercises yet, but I figured I'd go back and do all of them after Part I (at the end of ch 7).
Time spent: Total: ~25 hours
10 hours - Decoupling the whip from the player's controller completely
10 hours - Creating proof-of-concept "psychic wand" tool and documenting the process
5 hours - Reading C++ Primer
- Whip is now it's own entity completely and can be used by the AI
- Common interface for input to all tools
- Tools are now much easier to make, and the entire process is documented
- I learned quite a bit about C++
- Whip damping problem is still not fixed