White Sheep Gaming LLC - Project Setups

Project Setup

Hello! And welcome to White Sheep Gaming LLC's website! I've set this website up utilizing AWS architecture as a practical application of knowledge and will be posting demonstrations of projects on this page in particular.

White Sheep Gaming LLC is video game development company. Over the years I've had a number of ideas I've worked on with varying degrees of intensity. From composing music, crafting art, contemplating storylines, and programming in Unity- I'm now ready to formally put it all together with the release of Choices in the near future, and Mistake following as a spiritual successor.

Project 1: Website Architecture

I started by creating a Hosted Zone to host the domain. This should be thought of as your area to work in for the network. If you have a site already you would like to bring over (like I did), take special note of the details portion to view the 4 AWS Name Servers. These are effectively your preferred DNS. It's highly recommended to change these on your site prior to beginning the transfer process to ensure traffic will continue without interuption. If you don't do this now, doing it later will cause the site to be unavailable for a couple of days as services get updated.

After bringing the domain over and configured properly, I set up 2 buckets. 1 to point directly to the static site and another to serve as a backup in another region. If my site goes down, I can redirect to the backup bucket. While there may be more advantageous backup solutions, this works well for a currently simple site.

For additional accessibility and security, I also used CloudFront. This allows me to provide quick access of cached content and enable WAF (a decent firewall). Enabling CloudFront also meant walking through the process of creating a SSL certificates and securing the site.

Finally, Route53 was configured to ensure www.whitesheepgaming.com redirects properly to whitesheepgaming.com.

AWS Diagram describing how the website was set up with AWS Route 53, CloudFront, WAF, and S3 buckets.

The website design itself utilizes a CSS file for styles to keep the html content relatively clean, as well as provide easy scaling so content can be viewed on a variety of mobile devices. This was tested using the Device Selector within the Inspector Tool of the browser.

The html pages were primarily composed in Notepad++, but I've been adapting to Microsoft's Visual Studio Code and using Amazon's CodeWhisperer extension to expand AI knowledge/interaction. If the site grows, I would move twoards EC2 instances for scaling.

Project 2: Chatbot

I decided to learn about Chatbots. The difference between FAQ bots (those that have been around for a long time), AI bots, and Modern bots. While there are many services out there for quickly and easily creating a chatbot, such as Chatbase, Dante, or Cody, I decided to have more control learning and using Voiceflow. They have a surprisingly great degree of options and graphics user interface (GUI). By supplying some of the website pages as the Knowledge Base, I can have the chatbot refer to information throughout the site as it's updated.

For those not aware, AI uses a metric called tokens for calculations. Tokens can best be thought of a 'keywords', 'parts of a keyword', or even a single letter of a keyword. It all depends on how the information was separated. Voiceflow will allow me to use this chatbot up to a limit of tokens that have been processed, and will ask for an upgrade or wait till the following month for a new amount available. So if the bot doesn't appear to be working at the moment, thank you for your patience.

This chatbot can be found in the bottom right of most pages and may be considered a custom-knowledge chatbot. It's meant to serve as an easy way to find information throughout the site contents without needing to be on the correct page detailing it. If the information can't be found, it should offer the whitesheepgamlingllc email as an option for requesting additional details or reporting issues.

Chat icon.

While a standard FAQ chatbot is all that's needed, I wanted to explore adding logic for a better AI experience. I started programing supplied text with possible alternative versions, passing responses into variables that may go through a services similar to ChatGPT, and structuring the flow of a conversation that loops back to asking if there's anything else it can help with. It will hopefully pick up on the intent of your statements and direct you to the correct information in a more conversational approach than a simple FAQ. Later, it will be able to provide summaries and links to the most recent updates White Sheep Gaming provides.

Diagram of chatbot structure.

[Further Application] These skills can be easily adapted for customizing a bot for business intake. Training the bot on company specific information and have the bot present a fillable form in a conversational approach, which would then be sent to a database. Tools, such as Power Automate, could then take the information from the database and present it in a visually appealing format within an email. You could also summarize totals or send an automatic confirmation, but those are all Power Automate things we can talk about in a later project.

Project 3: Art Tools

All art for Choices and Mistake has been done by myself, Kelson Bain, primarily using Paint Tool Sai 2.

I've used Paint Tool Sai 2 for a number of years, exploring layering, tool, and edit techniques.

Flower Example Flower Example 2 Paint Tool Sai 2 Example

Project 4: Music Composition

All music for Choices and Mistake has been done by myself, Kelson Bain, using LLMS and Reaper.

LLMS is a free DAW (software used for creating music), but I've found a strong community within Reaper for better orchestration. Many of my descisions for how I've composed music comes from the experiment structur of Choices, where you can level up various attributes and have that choice impact your experience. You may gain a new ability and the environment may addapt to facilitate that change. To drive this point home, when you upgrade an ability for the first time you'll hear the part of the overall soundtrack. You could decide jumping simply wasn't important and never know there was a violin section to the song- and that's okay. For Choices, I've tried creating tracks with strong bass, melody, counter-melody, and accents. This allows me to identify the parts of the track I want tied to the various skills. The tracks are hopefully put together in a way that they feel... not necessarily complete, but independent and able to stand on their own. When combined, they should feel stronger together, interweaving within one another.

Project 5: Analyzing Game Engagement

I wanted to take a look at game genre popularity on Steam, to have a better idea of what games are received well over the years. This was a great way to explore Google Cloud Platform (GCP) tools, and get some more experience in data gathering and analysis. To go a step further, I wanted to incorporate AI to perform this analysis and let me know if there was an underlying interest in a game I would like to make based on genre and determined by hours of engagement. No one can tell the future, not even AI (as explained by Wolfram's quest for creating a true computational language), but this would provide some good expectations regarding future products.

I started by grabbing a dataset of the top 5000 Steam games from Kaggle and ensured it was updated within the past month. I edited the dataset for easier use in Excel by adjusting 'Free' and 'Demo' prices to 0 so the fields may be recognized as integers instead of strings. From there, I created a new project in BigQuery and uploaded the dataset. This is where I learned more about SQL query commands and was able to provide a report of the top played game types on Steam. This metric of engagement would help provide context regarding the most sought after games and the number of competitors for a person's time.

Example of BigQuery code used to retrieve desired query.

To train a logistic regression model, I put in additional labels for 'average_engagement' and 'engaging', which is a boolean value to true if the average engagement for a genre is above 300000 hours. For this project, I went very high level and utilized Google's BigQuery ML capabilities, using just a few ML commands. After training the regression model and evaluation, I created a query to check if a game featuring any number of genres may be engaging. This was primarily calculated by the total number of hours played by total number of games containing the genres selected anywhere whithin the dataset. In this example, it was found that a game fitting the survival, platformer, and casual genres would more than likely be engaging.

Example of BigQuery Machine Learning used to predict if a game genre may be engaging to Steam users.

Now, there are many factors that go into making appealing games that attract this degree of engagement and it may be better to identify games that don't seem engaging to capitalize on a niche market. Take any ML/AI output with a grain of salt... or a truckload if you're unsure about the prediction success rate.

[Further Application] With the right data, these skills can be used to identify business opportunities. A good example of this would be to create a model that's trained on CRM data, outlining known services companies are utilizing, and to then predict if it would be advantageous to reach out if something were spotted in a news article detailing service problems. Much better than cold calling since you could easily identify a pain point and offer solutions.