A long overdue new blog post! At the start of 2021, I took a break from working on the computer opponent logic in Terrace to focus on a few side-projects for HoloLens 2 (this one in particular, if you’re interested). Developing for HoloLens was so enjoyable, when I returned to Terrace in March, I decided to work on fully implementing the hand tracking controls for the game. I’m thrilled to announce that they are now complete!
There’s a lot of effort involved in making the controls *feel* right. Holograms are immaterial, and without physical haptic feedback… the visuals need to provide the illusion that the holographic objects are solid. I started by implementing a poke system that makes game-pieces glow when the tip of your index finger touches them. This helps the player while selecting a game-piece to move, particularly with depth perception when you have game-pieces in-front of or behind each other.
The past few months have been spent going through every C# script in the game and refactoring them. As none of this results in any exciting new visuals to share and can be a bit technically dry to talk about, I haven’t been posting much. That said, it’s well past time for an update! So, I thought I would offer some insight into what I’ve been working on lately.
Thankfully, the game’s code was in really good shape to begin with! Most of the refactoring was just ensuring the use of consistent style, adding full summary comments for every method, adding tooltips, etc. There were, however, two areas where a substantial overhaul was needed.
The second step in the computer opponent’s logic is handling threats to its T-Piece to avoid losing the game. I divided this into two separate steps: protecting the T-Piece by capturing (shown in orange in the image above) or by moving it to safety. In this post, I’ll walk through the logic as the computer opponent attempts to defend its T-Piece by either eliminating the threatening opponent entirely or by capturing the threatening game-piece.
I love technology, especially spatial computing! The first time I took a 3D model I had created myself and viewed it holographically in augmented reality on HoloLens was truly a magical moment! I’m always experimenting with different platforms, curious to see what they’re capable of. The concept of interacting with holograms using your hands is my favorite aspect of this new era of computing and its such a perfect fit for Terrace!
It’s been far too long since the last post but work on Terrace continues! I took a break around the holidays and then, as it has for everyone, life got rather crazy due to the pandemic and lock down. I hope everyone is healthy, safe, and well supplied! I’ve been working mostly on the logic for the computer opponent over the past few months, slowly making progress towards the game being fully playable in single player mode.
Creating the computer opponent starts in the form of a flow chart in PowerPoint. I’ve listed out what I think are the ideal sequence of decisions to make and then map out the steps necessary to execute them.
Two posts in one day? Someone is playing catch-up! I was fortunate enough to spend this past week in San Jose California attending Oculus Connect 6. It’s an annual conference held by Oculus, Facebook’s virtual reality company, where they reveal new hardware and features, give developers and consumers a glimpse at where VR is going, and offer a plethora of sessions to show developers what’s possible and get them energized to create apps for the platform.
August and most of September were blissfully spent acquainting myself with Magic Leap’s Lumin SDK for Unity. I attended an official workshop at the end of August, but by that time I was already well on my way to creating touch controls for Terrace. I wouldn’t say they’re finalized yet and I definitely plan on supporting the controller as well, but the result of my efforts was a high-tech and very satisfying way to play the game!
One of our goals is to enable players to enjoy a game of Terrace together on the device or platform of their choice, particularly when they’re in the same physical space. It’s a concept we like to call Cross Platform Shared Space Multiplayer.™ If four friends are together in a room, and one person has a HoloLens, another has a Magic Leap One, and the other two have smartphones, they should be able to play together and see and manipulate the same augmented reality content. To that end, we’re not limiting ourselves to just one AR platform (HoloLens). We’re officially working on compatibility with Magic Leap One!
The past two weeks have been spent overhauling the human player class, improving how input is handled, and adding the ability to click or touch and then hold a game-piece to pick it up and then move it by dragging it around. It’s just a natural way to interact with the game and something that’s been on the to-do list for awhile now. As obvious a control scheme as it seems, it wasn’t without a few challenges.
When Terrace was released on store shelves in 1992, it featured a sixty-four square (8 x 8) game-board. The rules offered options for a normal length game with a player using all sixteen game-pieces, and an alternative setup with just six pieces for two players wanting a shorter experience. That left a lot of distance to cover on the board! The majority of the first dozen-or-so turns would involve moving your pieces across just to get in position to engage your opponent. Five years later, in what would be the final retail release of the game to-date, a smaller (6 x 6) version was released. The smaller thirty-six square board and fewer pieces led to an optimized shorter game. Less posturing and more action!