Author: Nic Raboy

Interacting with Sprite and UI Buttons in a Unity Game

January 1, 2022 Nic Raboy

When you're developing a game, whether it be 2D or 3D, you're going to need to add menus with buttons at some point. These buttons could be as simple as a means to exit the game, or something more complex.

In the Unity game development framework, there are a few ways to accomplish buttons. You could create sprites and interact with them through mouse clicks and keyboard presses, or you could make use of the canvas and UI elements.

In this tutorial, we're going to look at both options for creating buttons in a game.

Read More

Implement Full-Text Search over a GraphQL API in MongoDB Atlas

December 16, 2021 Nic Raboy

GraphQL can be an extremely powerful and efficient way to create APIs and MongoDB Realm makes it easy by allowing you to connect your collections to GraphQL schemas without writing a single line of code. I wrote about some of the basics behind configuring MongoDB and Realm for GraphQL in an announcement tutorial a while back.

As you find yourself needing to do more advanced things with GraphQL, you're going to need to familiarize yourself with custom resolvers. If you can't map collection fields to a schema from within Realm and you need to write custom logic using a serverless function instead, this is where the custom resolvers come into play. Take the example of needing to use an aggregation pipeline within MongoDB. The complex logic that you add to your aggregation pipeline isn't something you can map. The good news is that you don't need to abandon MongoDB Realm for these scenarios, but you can leverage Realm's custom resolvers instead.

In this tutorial we're going to see how to create a custom resolver that implements Atlas Search for our GraphQL API using Realm Functions, enabling you to add fast, relevant full-text search to your applications.

Read More

Download and Cache YouTube Data in an Eleventy Website with Simple JavaScript

September 15, 2021 Nic Raboy

So you want to add your YouTube videos to your static generated website, but you don't want to manually keep track of all your videos and playlists? I get it because I've been there!

Take my website, Poké Trainer Nic, for example. It's a Pokémon website built with Eleventy that shows a list of my YouTube videos among other things. The videos on the website refresh daily, but it's not something I do manually.

So how do I do this?

In this tutorial you'll see how to get information about your YouTube videos and playlists using APIs for displaying within an Eleventy website. To make things better, we're going to see how to cache this data to prevent making too many requests to an API that has a finite allocation.

Read More

Implement the Konami Keystroke Cheat Code in a Unity Game

September 8, 2021 Nic Raboy

Remember all the cheat codes you could use in old-school games back in the day? Remember the Konami cheat code? Ever wonder how you could add cheat codes to your own games?

Adding cheat codes to your game is a great way to leave your imprint. Think easter eggs, but even more secretive.

In this tutorial we're going to see how to add keystroke driven cheat codes to a game built with Unity and C#. While the Konami cheat code will be the basis of this example, a lot of the logic and ideas can be applied to other aspects of your game.

Read More

Building a Space Shooter Game that Syncs with Unity and MongoDB Realm

August 25, 2021 Nic Raboy

When developing a game, in most circumstances you're going to need to store some kind of data. It could be the score, it could be player inventory, it could be where they are located on a map. The possibilities are endless and it's more heavily dependent on the type of game.

Need to sync that data between devices and your remote infrastructure? That is a whole different scenario.

If you managed to catch MongoDB .Live 2021, you'll be familiar that the first stable release of the MongoDB Realm SDK for Unity was made available. This means that you can use Realm in your Unity game to store and sync data with only a few lines of code.

In this tutorial, we're going to build a nifty game that explores some storage and syncing use-cases.

Read More

Influence Search Result Ranking with Function Scores in Atlas Search

July 14, 2021 Nic Raboy

When it comes to natural language searching, it's useful to know how the order of the results for a query were determined. Exact matches might be obvious, but what about situations where not all the results were exact matches due to a fuzzy parameter, the $near operator, or something else?

This is where the document score becomes relevant.

Every document returned by a $search query in MongoDB Atlas Search is assigned a score based on relevance, and the documents included in a result set are returned in order from highest score to lowest.

You can choose to rely on the scoring that Atlas Search determines based on the query operators, or you can customize its behavior using function scoring and optimize it towards your needs. In this tutorial, we're going to see how the function option in Atlas Search can be used to rank results in an example.

Read More

An Introduction to Indexes for MongoDB Atlas Search

April 30, 2021 Nic Raboy

Imagine reading a long book like "A Song of Fire and Ice," "The Lord of the Rings," or "Harry Potter." Now imagine that there was a specific detail in one of those books that you needed to revisit. You wouldn't want to search every page in those long books to find what you were looking for. Instead, you'd want to use some sort of book index to help you quickly locate what you were looking for. This same concept of indexing content within a book can be carried to MongoDB Atlas Search with search indexes.

Atlas Search makes it easy to build fast, relevant, full-text search on top of your data in the cloud. It's fully integrated, fully managed, and available with every MongoDB Atlas cluster running MongoDB version 4.2 or higher.

Correctly defining your indexes is important because they are responsible for making sure that you're receiving relevant results when using Atlas Search. There is no one-size-fits-all solution and different indexes will bring you different benefits.

In this tutorial, we're going to get a gentle introduction to creating indexes that will be valuable for various full-text search use cases.

Read More