This week started off poorly in terms of work but finished off strong. After spending about 9.5 hours banging my head against my computer trying to get the vertical island movement and navmesh/pathfinding to work, I had gotten no progress, and was around where I was at the end of last term. Spending almost a month on this, I was extraordinarily frustrated, and was almost at the point of throwing the entire functionality out. However after talking with Josh, we had come up with a new movement system that does not rely on nav meshing. In a nutshell, the way this new system worked was that it found a line extending from the capturing players base island and the final location the captured island was going to go to, and found a midpoint on said line between the islands original location and its final location. From there the island would then move in a straight line to the final location.
To do all of this, I had to crack open the old algebra knowledge and work with some Cartesian planes. Calculating the slope using the base island and final location, I then had to use the x and y values of the final location to make a point-slope form equation (y-y1 = m(x-x1)) to find the location of the midpoint. Making the x the halfway point between the original location and the final location, I plugged that value in to the equation to get the y. The Z of the location was irrelevant because all the islands move to the same Z plane. Now with this new Vector3 I was able to do a timeline lerp from the original to the mid point, then a 2nd lerp from the midpoint to the final location. Here is the blue prints for it.
I also spent some time doing some minor edits on the dragon, making it so when the dragon descends onto an island and the bottom hits a floating island, it switches to walking mode. Some changes still needed to land on other objects
- Island movement now works much better than before, actually moves vertically and horizontally in good time
- Can finally get ready to finish this and move onto other aspects of the game.
- The process it took me to get to this point was way too long. I wasted too much time working on broken navmeshing and AI behavior that I just threw out.
- New movement system still needs refining, primarily in the speed the islands travel in relation to distance
- Still need to test this with Networking.