How I used AWS to make a live-service turn-based web game.
Amazon Q's uses for developers and diving into specifics of my game.
Published Jan 6, 2025
To start off, I'd like to emphasize how useful Amazon Q was in the process of making this game. Not only did it streamline my switch from a C# based Unity game to a JS based Web game (for the sake of utilizing AWS Amplify's seamless deployment), it helped with mundane tasks like remaking DynamoDB queries through its code autofill, harrowing tasks like learning new AWS technologies through it's accurate use of sourcing when giving solutions, and even creative ones like UI design through its code generation. Using Amazon Q, the amount of work and server management for this game was comfortable for one person to handle, and really only sprite creation took a considerable time given that I had never drawn before and was particular about my character designs. I can see this becoming pivotal for producing large live-service games at minimal cost. In conclusion, if you have a project in which AWS services are being used, Amazon Q is likely to have a marginal positive impact on your development cycle.
If you're familiar with a certain type of mobile games known as "gacha" games, known for their use of micro-transactions through spending currency to "pull" allies, then you probably know how profitable they can be. My goal was to make a skeleton of one that captured the most important elements of a turn-based gacha game, mainly the ability to pull on banners for allies, fight enemies, and strategize using character stats that you can increase over time. My game has an account system so that your currency and stats are stored, and is designed in a way where I can add new character banners, enemies, and game modes over time, emulating the business practices of a real live service game.
I used these AWS services to do the following:
S3- Sprite Storage
CloudFront - Sprite Delivery
DynamoDB - Data Storage
Lambda - Account Creation
Cognito - Account Authentication
API Gateway - Code Security
Amplify - Seamless Deployment
The combat is simple but allows for complexity over time with the release of new characters, attacking on both the ally and enemy side accumulates "combo", which can be spent to unleash more powerful versions of each ally's basic attacks. This encourages surviving enemy onslaughts until enough combo is generated, then going for the win.
You can create an account and try it using this link: main.d22za2x5ln55me.amplifyapp.com/
You can also view the source code on my Github: github.com/SurajGajula/Utopia
Lastly you can give me suggestions through this email: utopiagamedeveloper@gmail.com