An online multiplayer tank battle game built on AWS, designed for seamless gameplay and a highly scalable backend architecture.
Features:
- Core Gameplay
- Supports real-time online multiplayer battles for immersive and engaging gameplay.
- Developed using Unreal Engine 5 for both the client and server sides.
- Backend Development
- Implements user authentication (sign-up/sign-in), matchmaking, and room creation using Golang.
- Integrates GameLift FleetIQ for efficient game server deployment and cost optimization.
- All services are containerized for Lambda and EKS.
- Cloud Architecture
- Designed a serverless architecture leveraging AWS Lambda, API Gateway, DynamoDB, and Aurora, ensuring high availability and scalability.
- Uses Terraform for infrastructure-as-code (IaC), enabling consistent, automated multi-environment deployments.
- CI/CD
- Implements a CI/CD pipeline using GitHub Actions to streamline development, ensure rapid iteration, and automate deployment processes.
Related GitHub Projects:
Project Name | Description | Technologies |
---|---|---|
toon-tank-user-service | Manages user authentication and provides access tokens. | Golang, AWS Cognito, Secrets Manager |
toon-tank-post-signup-service | Implements a Cognito Post Confirmation Lambda Trigger, forwarding events to SQS for downstream processing. | Golang, AWS Cognito, SQS |
[WIP] toon-tank-user-db-service | Securely stores user data in the database. | Golang, Aurora |
-
Extract files under
C:\Program Files
-
Add
C:\Program Files\mingw64\bin
to the system's environment variablePath
-
Rename the executable under the
bin
folder frommingw32-make
tomake
-
Verify the installation by running the following command in the Command Prompt:
make -v
-
Download Terraform
-
Extract the downloaded file to
C:\Program Files\HashiCorp\Terraform
-
Add the Terraform directory to your system's
Path
in the Environment Variables. -
Verify the installation by running the following command in the Command Prompt:
terraform version
We use IAM Identity Center to manage users and groups, so access keys are not enabled. To set up SSO authentication locally, please follow this AWS documentation.
To connect to the RDS instance using a Bastion Host, follow these steps:
-
Deploy the
bastion-host
. -
Run the following command to establish a port forwarding session:
aws ssm start-session --target <ec2-instance-id> --document-name AWS-StartPortForwardingSessionToRemoteHost --parameters '{\"host\":[\"<rds-endpoint>\"],\"portNumber\":[\"3306\"],\"localPortNumber\":[\"3306\"]}'
- Replace
<ec2-instance-id>
with your Bastion Host's EC2 instance ID. - Replace
<rds-endpoint>
with the Aurora Cluster Writer Endpoint to ensure connectivity to the primary writable database instance.
- Replace
-
Open a database tool such as MySQL Workbench and connect to
localhost:3306
.