Monday, November 21, 2016

Andrew DiNunzio - 11/14/16-11/21/16

This week I spent time working on quite a few different things, many of which I was unsuccessful at.
Some of the time I spent working on the Fall Term Alpha Presentation for the CCI side.

Unsuccessful:

I attempted to create a menu system for our game. I researched what is out there right now, and I found a plugin for combining Unreal Engine's UMG with the Vive, but it was evidently discontinued as of 4.12, and we are working on Unreal Engine 4.13. The reason it was discontinued is because 4.13 introduced new features with interactive 3d widgets. I spent a lot of time trying to understand and use this ("highly experimental") feature, and I've found that it is very glitchy when used with both the left and right controllers. Perhaps there is a solution I have yet to find, but it also may simply be the fact that these widgets are experimental in nature, as indicated by Unreal Engine.

I also spent a lot of time trying to get a spring-like force on the ball when it enters a goal. I got a basic system working to a limited extent, but it's extremely buggy. One of the main issues is that if the ball is moving too quickly, it will "jump" past the trigger (that turns on the spring-like forces when the ball enters the goal) from one frame to the next, having never actually intersected with the trigger volume.

I made sure that Continuous Collision Detection (CCD) was turned on for the ball (and even the collision volume), but that didn't seem to fix it. For alpha, we may end up just having the ball stop when it enters the goal, teleport to the center, then shoot out.


Successful:

I figured out how to fix some of the collision issues we were having, when the arena's collision was being treated as if it were a filled capsule instead of a shell, even though the normals for the model were inverted. It turns out there was a pretty easy fix in Unreal Engine to get it to work, by enabling complex collision checking instead of simple. We may have issues with performance due to this, but we'll worry about that when we get there.

I was also able to get Unreal Engine to output the Vive mirror display in a 16:9 ratio by following a tutorial posted to YouTube (actually posted a day or two after the request was made for us to have this, so we got pretty lucky). I had to pull the source of Unreal Engine and modify it to do so. Therefore, the fix is limited to whichever computers we've done that on. Doing this is also necessary to package the exe to output in 16:9.



Time spent: Total: ~21 hours

6 hours - Menu (attempt)
4 hours - 16:9 video output
6 hours - Goal force (attempt)
4 hours - CCI Presentation
1 hour - Package to exe


Pros:

  • We can record footage of gameplay in 16:9 ratio now
  • We can package the project as an exe (that works with the Vive) now
  • I learned a lot about issues with high-speed collisions

Cons:

  • High speed collisions have many issues that need to be taken into consideration
  • 3D menus in VR with UMG are still mostly experimental and buggy
  • I discovered I may want to control the ball's linear damping from multiple different contexts, leading to issues of one taking precedence over another randomly.

Sunday, November 20, 2016

Michael DiLucca - 11/8/16-11/15/16 - Artificial Jive

This week I was able to start implementing the AI to walk around a platform. I started this by following all the documentation unreal has about navigation. First I implemented an AICharacter that looks at an AIController. The AIController on Event BeginPlay looks at BehaviorTree. BehaviorTree starts with a root node that falls to a sequence node seeing if the AI can move, if it can than we move the AI to a random point in a given radius. This repeats itself.

I want to implement a system for the AI to be able to constantly track the ball. It should have the ability to move around its play space following where the ball is. I also want to implement a reach area where the AI has a certain range it is able to reach out to the ball. After that I want the AI to move to the center of the space and launch the ball forward in a random radial direction. This can be improved in the future to a system where we have the AI systematically throw a few hundred balls to find the best current path for it to use.


AI (8 Hours)
Music Discussion (1)