Hello! And welcome to WHITE SHEEP GAMING LLC's website! My name is Kelson Bain and I've set this website up utilizing AWS architecture as a practical application of self-pursued knowledge. I'll 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. I've just released Dem Gem Cats using Godot, now available on Android and iOS devices! The next planned release will be Choices in the near future, and Mistake following as a spiritual successor.
Solution Architecture
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.
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.
In-App Transaction Notifications Architecture
A friend of mine mentioned that they made a purchase in my game. While I could find the transaction history, I wished I had a notification. So today I sat down and created a multi-cloud solution that's nearly free given the expected volume for a small business.
A purchase gets made in Google Play, and the transaction history is then sent to the attributed Google Cloud Project's Pub/Sub setup. From there, the message is sent to my Amazon resources for processing. Route 53 for approved routing to an API Gateway with an attached Lambda function. All relevant information is parsed in the Lambda function and sent as an email using SES. I could then also store information if needed in a streamlined way instead of a pull/download.
ML: YouTube Positivity (Application of ML)
Some friends of mine over the years have become content creators, and one of their pain points has been that while feedback is important, they don't always have the bandwidth for running into toxic or hateful comments. It tends to stop their inspiration. Out of 100 comments, they may focus on the 2-3 that were mean or looking for attention.
This sentiment was echoed by Kawehi, a talented musician, and I decided on a great project to help. So, I created YouTube Positivity!
This webpage interface requests a YouTube video link. It then verifies the link, retreives a number of comments from the video, and sends them through AWS Comprehend for a toxicity score (similar to sentiment analysis). What's returned is a formatted table of comments within the filter. Below is a button to view the entire hidden list to help identify if comments are getting caught that shouldn't.
In an age where engagement is the metric of success for algorithms, I wanted to develop something that counters bots that may prioritize such comments.
Comprehend is a great service within AWS, but we could make our own fine-tuned model and automate a pipeline by flagging comments in the additional table to be stored to a csv file in an S3 bucket.
GenAI: Spoken to Story (Claude, Comprehend, and Titan)
Generative Artificial Intelligence (GenAI) has been at the forefront of artistic discussion for years now without much in the way of clear answers regarding proper use cases, copyright laws, or who can claim the model output with only minor tweaks being made. However, that shouldn't stop us from using it as ethically as possible as such things are sorted out. It's a really useful tool that can be wonderful to approach problems from a different perspective. And as advancements are continued to be made, we can easily imagine new processes such as this:
Do you ever have amazing dreams, but they quickly fade away as you wake up? Or have you ever been amazing at improvisation as you tell a child a bedtime story? That SPARK of precious creativity. If only you could gift these stories later! Well, I made a process using AWS tools, specifically Transcribe, Bedrock (Claude/Titan), and Comprehend. In this example, I'm telling a very quick story about Troy and Abed becoming Dem Gem Cats.
We start with grabing a recording of our story to the best of our ability and then transcribing it. I used Audacity to capture my voice as a file for testing, but you could use your phone or native OS recorder as well. I then uploaded the mp3 file to my S3 bucket, and used Amazon Transcribe to recognize any known words within the recording and ideally grammar.
The output file contains a lot of information regarding settings, but we can easily grab the transcription portion since it's nicely labeled in the beginning. The output file doesn't have an extension, but you can open it with Notepad or an equivalent. While here, it's also a good time to adjust any details or misunderstood grammar. For this example, I didn't need to correct too many things outside of sentences getting cut short. Then in Amazon Bedrock we can use the Anthropic Claude 2 model to summarize the transcription. You may need to request access to the model.
Now the real magic happens. With this summary, we can use the Amazon Comprehend Key Phrases Insight to identify parts of the summary that are most impactful or descriptive. Once again, head back to Bedrock to use a Titan model for image generation. Your prompts for image generation are best kept short and simple, which is why we used Amazon Comprehend. Instead of supplying an entire paragraph, we could further limit our instruction to a couple key sentences. The Titan model provided 3 images to choose from.
And here we have the finished product: A summary of the story alongside a picture.
Multimodal capabilities are quickly pacing to streamline this process, escpecially with AI Agents.
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.
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.
[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.
Art Tools
All art for Dem Gem Cats 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. There are many tutorials for such a strong piece of software. I highly recommend taking a look if exploring digital art tools.
Music Composition
All music for Dem Gem Cats has been done by myself, Kelson Bain, using LLMS and Reaper. Choices is currently next in development.
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 structure 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 adapt 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.