Week 9: Money Well Spent (100%)
“We cannot resist the fascination of sacrifice, since a passion for sacrifices is part of a Chessplayer’s nature.” -Rudolf Spielmann
Yup, I made a very big sacrifice this week. Well, more like my mom did. I got the headset, yay!!! It had a pretty hefty price-tag, but without it, my project would be kinda boring. I guess I had no choice. Anyways, let’s take a look at what I worked on this week.
- Work Over The Weekend
- Switch To Oculus Platform
- Demo Of The Current Build
- Plans For Next Week
Work Over The Weekend
Yes, as promised last time, I did work over the weekend to wrap up some stuff. I had to finish the UI and quickly build a mini environment.
*Final* Additions To UI
While analyzing the game, I wanted the user to be able to move the pieces around as well because not all variations might be included in the file. Thus, if the user wants to look deeper at a move that wasn’t listed, they should be able to play the move on the board and return back to the main line later. This feature doesn’t take too long to implement. I just need to disable the control panel buttons when the user analyzes a different line, or else the system will break. Here is a screenshot of what the user sees when they deviate from the game moves:
The last move played was Nxc6, which is not part of the game file. Thus, the annotation panel will prompt the user to return to the main line before they can continue analyzing.
Building An Environment
Having just a chess board on the screen seems a bit boring. So, I decided to have some fun and build a mini environment! As a competitive chess player myself, I have a general idea of what players keep around them when they play. I went onto the Unity Asset Store, did a bit of searching to find free 3D models that I could use, and added them in the game environment.
Here’s a list of what I included: 1) water bottles — all chess players should stay hydrated; 2) clock — to track the time each player has left (it doesn’t actually work, just decorative); 3) notation book + pen — almost all chess players keep a record of the game; 4) board number — used so that players go to the right board in a tournament. Citations for all the assets used are listed at the end of this blog.
Switch To Oculus Platform
Some Quick Background
So, my original plan was to use the Microsoft HoloLens 2 device. However, there were some issues with that. Going to the lab in-person will take a very long time, and my mentor is also out-of-town. In addition, this device costs a bit too much for me to just buy ($3500!!!). A few weeks ago though, my mentor suggested that I get the Meta Quest Pro for my project. It’s *only* $1000, and can be pretty useful long-term as well for my other works. This week, I decided to finally go buy it. I think it’s pretty cool, though switching to another device is much easier said than done…
From MRTK To The Oculus Integration SDK
Unfortunately for me, this whole time I was working with Microsoft’s Mixed Reality Tool Kit, which is a development kit only compatible with the Microsoft HoloLens device. Although the code for my board wouldn’t be a problem, a lot of the interactive features, such as the buttons (and that scroll wheel I spent a million hours on!), will not work on the Oculus platform. Don’t get what I’m saying? Well, let me tell you more straightforwardly — I have to redo a bunch of stuff.
Essentially, I had to go on the Meta Quest development documentation site  and follow their instructions to get the Oculus platform all set up. It was actually easier than I thought, but still took a while. Enough complaining though, after I finished setting up the system, I had to find a way to reconfigure all the buttons. Luckily, buttons with Oculus are much easier than buttons with the HoloLens 2, and after following a simple tutorial , I was able to get it working pretty quickly…
Just kidding!!! It took me quite a few attempts to get everyone working on Oculus. And no, I had way more than 20, but I had to delete them because they took up all my storage… Anyways, here’s a quick look at what the setup looks like:
It looks pretty much the same, except the buttons. Quick note: this system actually uses a laser pointer with a controller, not hand gestures. I think the controller is fine, but in the future, it would be better if I can get the hand gestures to work.
Demo Of The Current Build
Here’s a quick video of the project:
Plans For Next Week
I’m pretty happy about how everything turned out in the headset. However, as you could tell from the video, I was actually in VR mode, not AR mode. Because the Meta Quest Pro uses passthrough to generate augmented reality, meaning the “real world” that you’re seeing is actually a camera projection, the quality isn’t the best. However, getting the AR setting to work would still be pretty cool. In addition, I would also like to try to get the hand gestures to work. As this project is starting to come to a close though, I need to prioritize working on my presentation. I already have a rough draft submitted, but the final is coming up, so I’ll be spending most of my time making my slides better.
Anyways, thanks for tuning in! I hope to see you again next week for what may be one of my final blog posts!!!
- “Get Started With Meta Quest Development In Unity | Oculus Developers.” Meta Quest, Meta, Https://Developer.Oculus.Com/Documentation/Unity/Unity-Gs-Overview/.
- RealaryVR. “VR Development For Oculus Quest: UI.” YouTube, YouTube, 4 Dec. 2021, Https://Www.Youtube.Com/Watch?V=BNf8hQuCbBM&List=PLi-PVxA9VifcdqzeQ1bkV_T5B-YuLKNII&Index=14&Ab_channel=RealaryVR.
List Of 3D Assets Used
- School Supplies, By Rodolfo Rubens: Https://Assetstore.Unity.Com/Packages/3d/School-Supplies-96667
- Low Poly Pack – Environment Lite, By Solum Night: Https://Assetstore.Unity.Com/Packages/3d/Props/Exterior/Low-Poly-Pack-Environment-Lite-102039
- Free Playing Cards Pack – Game Asset Studio: Https://Assetstore.Unity.Com/Packages/3d/Props/Tools/Free-Playing-Cards-Pack-154780
- Low-Poly Chess Set, Board, And Timer – Clayfoot Studios: Https://Assetstore.Unity.Com/Packages/3d/Props/Low-Poly-Chess-Set-Board-And-Timer-216547