An open API service indexing awesome lists of open source software.

https://github.com/yelaco/ludofy

PaaS solution for deploying and managing serverless game backends
https://github.com/yelaco/ludofy

autoscaling cost-optimization game-backend paas serverless

Last synced: 3 months ago
JSON representation

PaaS solution for deploying and managing serverless game backends

Awesome Lists containing this project

README

          

# ๐ŸŽฎ Ludofy โ€“ Serverless Game Backend Deployment Platform (PaaS)

Ludofy is a **Platform-as-a-Service (PaaS)** solution designed to simplify the deployment and management of backend services for online games. Built entirely on **AWS serverless architecture**, Ludofy enables game developers to quickly deploy scalable, event-driven, and cost-efficient game backendsโ€”without managing infrastructure.

## ๐Ÿš€ Key Features

- ๐Ÿงฉ **Modular Backend Services** โ€“ Built-in support for:
- Matchmaking
- Player ranking (ELO, Glicko, TrueSkill)
- Live chat & messaging
- Friends & social systems
- Match spectating
- โš™๏ธ **Serverless by Design** โ€“ Powered by AWS Lambda, API Gateway, DynamoDB, AppSync, SQS, SNS, and Fargate.
- ๐Ÿ“ฆ **Custom Game Server Deployment** โ€“ Upload your Docker image, and Ludofy handles orchestration, scaling, and lifecycle management via ECS Fargate.
- ๐Ÿ“ˆ **Real-time Monitoring** โ€“ Frontend dashboard to track active matches, CPU/memory usage, and deployment state.
- ๐Ÿ’ป **SDK & API Integration** โ€“ Use the Go SDK to integrate your game logic, or interact directly with provided APIs.
- ๐Ÿง  **Auto-scaling Game Servers** โ€“ Servers dynamically start or stop based on active players and match load.

## ๐Ÿงฑ System Architecture

Ludofy consists of:
- **Frontend** (Vue + TailwindCSS): Platform dashboard to configure and deploy backends.
- **Deployment Engine** (AWS SAM, CloudFormation): Automates backend provisioning.
- **Game Backend Services**: Serverless microservices implementing core features.
- **ECS Fargate Game Server Layer**: Stateless, isolated microservers per match.

## ๐Ÿ› ๏ธ Tech Stack

| Layer | Tools / Services |
|--------------------|------------------------------------------|
| Infrastructure | AWS SAM, CloudFormation, IaC |
| Compute | AWS Lambda, ECS Fargate |
| Communication | API Gateway (HTTP/WebSocket), AppSync |
| Storage & DB | DynamoDB, S3 |
| Messaging | SQS, SNS |
| Auth | Cognito |
| Monitoring | CloudWatch |
| Frontend | Vue.js + TailwindCSS |
| Load Testing | k6 |
| CI/CD | GitHub Actions |

## ๐Ÿงช Performance & Scalability

- Tested with up to **10,000 concurrent players**
- Stable matchmaking latency under heavy load
- Dynamic scaling of game servers based on match requests
- Cost-efficient (serverless pay-per-use model)

## ๐Ÿ”ง Prerequisites

Before setting up Ludofy locally or deploying your backend, make sure the following tools are installed:

| Tool | Description | Install Guide |
|------|-------------|----------------|
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) | Required for deploying backend via AWS SAM | Run `aws configure` to set credentials |
| [Docker](https://docs.docker.com/get-docker/) | Needed for building and uploading custom game servers | Used for ECS Fargate container deployment |
| [Task](https://taskfile.dev/#/installation) | Task runner used to simplify local dev workflows | Runs scripts like `task web:run-dev` |
| [Go](https://golang.org/dl/) | For SDK usage or backend service development | Required if customizing backend logic |
| [Node.js & npm](https://nodejs.org/) | Needed for running the frontend dashboard | Vue.js-based UI setup |
| [SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html) | AWS Serverless Application Model CLI | Used for deploying infrastructure via `task stack:deploy` |

## ๐Ÿงฐ Getting Started

1. **Clone the repo**
```bash
git clone https://github.com/yelaco/ludofy.git
cd ludofy
```

2. **Frontend setup**
```bash
task env:base
task env:web

cd web
npm install
task web:run-dev
```

4. **Deploy backend (via AWS SAM)**
```bash
task env:base
task stack:deploy
```

## ๐Ÿ“š Documentation

- [Usage Guide](https://yelaco/ludofy)
- [SDK Reference](https://github.com/yelaco/ludofy)
- [Customization Templates](https://ludofy.vercel.app/help/customization)

## ๐Ÿ“Š Evaluation

| Metric | Result |
|----------------------|----------------------------|
| Max Users Tested | 10,000 concurrent |
| Avg Matchmaking Time | < 30 seconds |
| Avg Server Latency | < 100ms |
| Cost Efficiency | ~70% cheaper than EC2/EKS |

## ๐Ÿ“œ License

This project is under the MIT License. See `LICENSE` for more details.

---

> ๐Ÿง‘โ€๐ŸŽ“ Developed as a graduation project at Vietnam National University โ€“ University of Engineering and Technology, under the supervision of Dr. Phแบกm Mแบกnh Linh.