[SEO Subhead]
This Guidance helps you programmatically identify and manage 2D and 3D assets involved in the production of video games. Powered by artificial intelligence and machine learning (AI/ML), intelligent asset identification and management can save time that would otherwise be spent on manually processing digital assets. When a user uploads an asset, the described system will automatically analyze, identify, and produce labels with assigned confidence, and then store the labels along with other asset metadata. Once stored, you can use the asset labels, data, and metadata for fast querying.
Please note: [Disclaimer]
Architecture Diagram
[Architecture diagram description]
Step 1
Upload the 2D/3D object and object screenshots to Amazon Simple Storage Service (Amazon S3).
Step 2
Amazon S3 is configured to invoke AWS Lambda whenever a picture file is uploaded. The onPngUpload Lambda function sends the image files to Amazon Rekognition for analysis.
Step 3
The onPngUpload Lambda function uses Amazon Rekognition to identify and return a series of labels. These labels are applied to the image as tags inside Amazon S3.
Step 4
The onPngUpload Lambda function populates the labelDb Amazon DynamoDB table with the labels attached to these items. This table contains information about the image files stored in Amazon S3.
Step 5
The onObjUpload Lambda function is invoked either after the image has processed or when the object file has finished uploading. If the object resides in a folder with image files in it, then the top five labels from the image files are applied to the object.
Step 6
The onObjUpload Lambda function populates the objDb DynamoDB table with the labels attached to this item. This table contains information about the object files stored in the S3 bucket.
Step 7
Whenever there is an update to the objDb DynamoDB table, the populateOpenSearch Lambda function combines information from the labelDb and objDb into Amazon OpenSearch Service for easy query and consumption.
Well-Architected Pillars
The AWS Well-Architected Framework helps you understand the pros and cons of the decisions you make when building systems in the cloud. The six pillars of the Framework allow you to learn architectural best practices for designing and operating reliable, secure, efficient, cost-effective, and sustainable systems. Using the AWS Well-Architected Tool, available at no charge in the AWS Management Console, you can review your workloads against these best practices by answering a set of questions for each pillar.
The architecture diagram above is an example of a Solution created with Well-Architected best practices in mind. To be fully Well-Architected, you should follow as many Well-Architected best practices as possible.
-
Operational Excellence
AWS CloudFormation enables efficient, reliable, and consistent environment management. By using CloudFormation, you can automate and standardize the deployment of your AWS resources, reducing the risk of human error or environment inconsistencies. You can also modify resources as needed and apply version-controls for each deployment of the Guidance.
Amazon CloudWatch provides detailed logging for the asset across the workflow, from the time the asset is uploaded to the time Amazon Rekognition processes it. CloudWatch can provide insights into where the deployment may not be working as intended and prompt appropriate actions for remediation.
-
Security
You can control who has the ability to upload, copy, or modify assets by using S3 bucket policies and pre-signed URLs. Bucket policies allow you to manage who can interact with objects in your S3 bucket. Pre-signed URLs allow you to grant temporary access to assets in the S3 bucket without exposing them to unintended users.
-
Reliability
CloudWatch provides insights into failure points and metrics, which is critical for monitoring reliability of your workloads. These metrics allow you to set up your own alerts and track errors, so you can prepare automated actions in response to incidents or events. Automated response minimizes downtime and helps ensure that assets successfully complete processing.
-
Performance Efficiency
Lambda is event-driven, helping ensure that resources are only used when needed (such as a user uploading an item or altering a tag). Invoking different Lambda functions for different file formats helps you tailor actions across the workflow to your specific needs. Additionally, as a serverless service, Lambda helps offset the need to provision dedicated, idle compute resources.
-
Cost Optimization
Games that operate on a live service model or that rely on older assets that have already been commissioned require long-term archive of game assets that do not rely on on-premises storage. Amazon S3 offers multiple storage classes, including cost-optimized archival storage that are ideal for assets from older games that may still be needed at a later date.
DynamoDB offers reserve capacity, which allows you to reserve database capacity for a one- or three-year term at a significant discount compared to provisioned capacity pricing. Reserve capacity can be cost-effective, especially if you anticipate a reduction in asset changes or uploads.
-
Sustainability
You can choose the appropriate Amazon S3 storage tier to reduce the carbon impact of your workloads. For example, you can select an energy-efficient archival-class storage for infrequently access images or objects. Additionally, Lambda only consumes resources when invoked, helping you to not overprovision or waste compute power.
Implementation Resources
A detailed guide is provided to experiment and use within your AWS account. Each stage of building the Guidance, including deployment, usage, and cleanup, is examined to prepare it for deployment.
The sample code is a starting point. It is industry validated, prescriptive but not definitive, and a peek under the hood to help you begin.
Related Content
[Title]
Disclaimer
The sample code; software libraries; command line tools; proofs of concept; templates; or other related technology (including any of the foregoing that are provided by our personnel) is provided to you as AWS Content under the AWS Customer Agreement, or the relevant written agreement between you and AWS (whichever applies). You should not use this AWS Content in your production accounts, or on production or other critical data. You are responsible for testing, securing, and optimizing the AWS Content, such as sample code, as appropriate for production grade use based on your specific quality control practices and standards. Deploying AWS Content may incur AWS charges for creating or using AWS chargeable resources, such as running Amazon EC2 instances or using Amazon S3 storage.
References to third-party services or organizations in this Guidance do not imply an endorsement, sponsorship, or affiliation between Amazon or AWS and the third party. Guidance from AWS is a technical starting point, and you can customize your integration with third-party services when you deploy the architecture.