For these two weeks, I helped get two primary features working in the game. I also worked on documentation, the website (for CCI), and concepting for the whip's mechanics.
We added a force applied to the ball (the player is using the gravity beam) that pulls the ball towards the player (along the spline). It works much better than simply applying an acceleration to some point away from the player's controller. However, it still feels slow and difficult to control.
I started thinking: the reason a ball on a string moves faster the faster we move our arm is because the string wants to stay the same length. I think this concept is key to getting a whip mechanic that feels good and that allows players to throw the ball faster by moving their arm faster.
I can see two different types of forces to apply to the ball, as well as two different types of drag.
One force (the primary one) is a resistance to *stretching*, and will always pull in the direction of the whip at the ball (the tangent on our spline at that point) if the length is greater than the desired length (however much "string" is let out). This is depicted below:
Showing the stretching and compressing forces
We could also give the whip a force for resistance to *bending*. The points along the spline would accelerate towards the "line of sight" of the motion controller to try to avoid any bending.There is probably a relationship between these two forces but if we have both of them, we can tinker with values until it's faked well enough. A basic description of this force is depicted below.
Showing the force of resistance to bending
Next the drag (which I still need to think about more) would be based off of the distance, d, to its desired location (approaching 0 for a perfectly rigid whip, or a stick, as d goes to 0 and 1 as d goes to infinity, if you consider the drag to be a proportion of the ball's velocity that is maintained). There would be two different drag calculations: one for compression (opposite of stretching) and one for aligning with the controller's forward vector (opposite of bending). It would be near 1 for most of the curve then drop quickly to its minimum (0 for perfectly rigid) as it gets close to 0. These drag forces can be seen in the pictures above as represented by epsilon (ε), which shows that the whip approaches a certain length and "straightness" as time goes on and it oscillates.
Additionally, working with Mike DiLucca and Johanna Oberto, we got a platform in game to scale to the size of the room, as shown below:
Comparison between the real room-scale and platform in-game
I also completed the website for the CCI-side. I scaled down our photos and logos to the required size and followed the template set out in the requirements.
Additionally, I worked on Game Design Document (GDD). I added several sections, namely: the functional requirements for gravity wells, the gravity beam, the player platform, the arena, and the player settings; the non-functional requirements for player safety and preventing virtual reality sickness; the loading scene; the game controls and universal mechanics section; the system evolution section; and I set up the Use Cases section to be filled in later (though I did add the Game Flow diagram created by the DIGM side).
Time spent: Total: ~24 hours
- 3 hours - Working on getting the force applied to the ball, pulling it along the spline towards the player
- 3 hours - Working on getting the platform the player stands on to scale with the room
- 5 hours - Doing the website for the CCI side
- 8 hours - Working on the Game Design Document (GDD)
- 3 hours - Working on concepts for how the gravity beam would work
- 2 hours - Set up times for the CCI side to do individual programming, for times where they are available and I am available to offer assistance where possible
- We have a platform that scales with the room.
- I have an idea for how the gravity beam mechanics should work; I just need to put it into code
- The GDD is close to having a complete first draft.
- The website for CCI is set up
- We still don't have a good force mechanic for the whip