Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
NathanFlurry committed Sep 11, 2024
1 parent 01d9603 commit f07b095
Showing 1 changed file with 209 additions and 47 deletions.
256 changes: 209 additions & 47 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,82 +1,244 @@
<p align="center">
<picture>
<img src="https://github.com/NathanFlurry/ass/raw/main/media/icon.png" alt="Rivet">
<source media="(prefers-color-scheme: dark)" srcset="./media/icon-text-white.svg" alt="Rivet">
<img src="./media/icon-text-black.svg" alt="Rivet">
</picture>
</p>

<p align="center">
<a href="https://github.com/NathanFlurry/ass"><img alt="License: THICC-2.0" src="https://img.shields.io/badge/license-THICC--2.0-blue?style=flat-square"></a>
<a href="https://github.com/NathanFlurry/ass"><img alt="GitHub commit activity" src="https://img.shields.io/badge/commits-thicc-green?style=flat-square"/></a>
<a href="https://github.com/NathanFlurry/ass/issues"><img alt="GitHub closed issues" src="https://img.shields.io/badge/issues-clenched-red?style=flat-square"/></a>
<a href="https://rivet.gg/discord"><img alt="Discord" src="https://img.shields.io/badge/discord-dummy__thicc-purple?style=flat-square"/></a>
<a href="/docs/philosophy/LICENSING.md"><img alt="License Apache-2.0" src="https://img.shields.io/github/license/rivet-gg/rivet?style=flat-square"></a>
<a href="https://github.com/rivet-gg/rivet/graphs/commit-activity"><img alt="GitHub commit activity" src="https://img.shields.io/github/commit-activity/m/rivet-gg/rivet?style=flat-square"/></a>
<a href="https://github.com/rivet-gg/rivet/issues"><img alt="GitHub closed issues" src="https://img.shields.io/github/issues-closed/rivet-gg/rivet?style=flat-square"/></a>
<a href="https://rivet.gg/discord"><img alt="GitHub closed issues" src="https://img.shields.io/discord/822914074136018994?style=flat-square&label=discord"/></a>
</p>

## 🍑 Features
## Features

### 🎮 Dummy Thicc Dedicated Game Servers
### 🎮 Dedicated Game Servers

Deploy game servers faster than you can say "ASS":
Deploy game servers in minutes across multiple regions & clouds providers.

- Optimize for booty or bounty, servers starting at $6.9/mo for 4.20 servers
- Auto-scales 69% faster than AWS GameLift (because we said so)
- No-downtime deploys & instant twerk-backs
- Monitoring & crash reporting (we've got your back[side])
- Optimize for performance or cost, servers
<Tooltip tip="Shared CPU core similar to VPS providers, see pricing page for details">starting at $9/mo for
6 servers</Tooltip>
- Auto-scales 90% faster than AWS GameLift
- No-downtime deploys & instant rollbacks
- Monitoring & crash reporting

### 🛡️ DDoASS Mitigation
[Documentation](https://rivet.gg/docs/dynamic-servers)

- No added jiggle
- Supports UDP & TCP & WebSockets & WebRTC (all dat ASS)
- Automatic SSL for game servers (because security is sexy)
### 🛡️ DDoS Mitigation

### 🌐 Content Delivery Network (CDN)
- No added latency
- Supports UDP & TCP & WebSockets & WebRTC
- Automatic SSL for game servers (WebSockets & TCP+TLS)

Asset delivery, game downloads, & website hosting:
[Documentation](https://rivet.gg/docs/dynamic-servers/concepts/game-guard)

- Custom domains (make dat ASS yours)
- Instant twerk-backs
- Automatic SSL (Safe Sensual Layer)
### 🌐 CDN

Asset delivery, game downloads, & website hosting

- Custom domains
- Instant rollbacks
- Automatic SSL

[Documentation](https://rivet.gg/docs/cdn)

### 🧩 Backend Modules

Write server-side logic using THICC++ (or use your own API server):
Write server-side logic using TypeScript (or use your own API server)

- Modules include matchmaking, parties, authentication, & more
- Postgres database included for persistence (because real databases are overrated)
- Combine existing open-source modules - Open dat ASS up
- Postgres database included for persistence
- Powered by <a href="https://github.com/rivet-gg/opengb">Open Game Backend</a>

## 🚫 What ASS is NOT

- Not Kubernetes (because who needs that many syllables?)
- Not written in fake languages like "Go" or "Java" (we use REAL languages like THICC++ and ASSembly)
- Not a joke (okay, maybe a little)
- Not your grandma's server solution (unless your grandma is really cool)
- Not afraid of a little junk in the trunk (our servers are dummy thicc)
[Documentation](https://opengb.dev/)

## 🚙 Supported Game Engines

| Engine |
|---------------|
| Godot |
| Unity |
| Unreal Engine |
| HTML5 & JS |
| Rust |
| Other |
| Engine | Plugin | Crash Course | Example Projects |
| ------------------ | -------------------------------------------------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------------- |
| Godot | [rivet-gg/plugin-godot](https://github.com/rivet-gg/plugin-godot) | [Learn](https://rivet.gg/learn/godot) | [Examples](https://github.com/rivet-gg/examples/tree/main?tab=readme-ov-file#godot) |
| Unity | [rivet-gg/plugin-unity](https://github.com/rivet-gg/plugin-unity) | [Learn](https://rivet.gg/learn/unity) | [Examples](https://github.com/rivet-gg/examples/tree/main?tab=readme-ov-file#unity) |
| Unreal Engine | [rivet-gg/plugin-unreal](https://github.com/rivet-gg/plugin-unreal) | [Learn](https://rivet.gg/learn/unreal) | _WIP_ |
| HTML5 & JavaScript | [@rivet-gg/api](https://github.com/rivet-gg/rivet/tree/main/sdks/runtime/typescript) | [Learn](https://rivet.gg/learn/html5) | [Examples](https://github.com/rivet-gg/examples/tree/main?tab=readme-ov-file#javascript) |
| Rust | [rivet-api](https://github.com/rivet-gg/rivet/tree/main/sdks/runtime/rust) | [Learn](https://rivet.gg/learn/custom) | [Examples](https://github.com/rivet-gg/examples?tab=readme-ov-file#other) |
| Go | [Source](https://github.com/rivet-gg/rivet/tree/main/sdks/runtime/go) | [Learn](https://rivet.gg/learn/custom) | [Examples](https://github.com/rivet-gg/examples?tab=readme-ov-file#other) |
| Other | [Source](https://github.com/rivet-gg/rivet/blob/main/sdks/runtime/openapi/openapi.yml) | [Learn](https://rivet.gg/learn/custom) | [Examples](https://github.com/rivet-gg/examples?tab=readme-ov-file#other) |

## 🚀 Getting Started

1. Clone dat ASS
2. Shake it
3. Deploy it
**Self-hosting & development**

## 📐 Architecture
See the [setup guide](/docs/getting_started/DEVELOPMENT.md) to develop & deploy Rivet yourself.

**Rivet Cloud**

[Rivet Cloud](https://rivet.gg) is the fastest and most affordable way to get your game up and running. Sign
up at [rivet.gg](https://rivet.gg).

## 💬 Community & Support

**Discord**

[Invite](https://rivet.gg/discord)

Our architecture is THICC. Trust us, you'll really want to dive right in.
- **Lounge** The Rivet team is remote and does most of their work in public Discord voice chat. Come drop by
if you have questions or want to hang!
- **#support** Ask questions about getting your game runnin on Rivet
- **#open-source-dev** Ask questions about the open source repo
- **#showcase** Show off your game, get feedback

**Releases**

Stay up to date on the latest releases on [X](https://x.com/rivet_gg).

Technical release notes can be subscribed to by watcing this repository.

**Bugs & Feature Requests**

Bugs and feature requests can be submitted as a GitHub Issue.

**Roadmap**

We create public issues for most items on our roadmpa.

Subscribe to issues to get notified when they're updated. Add a 👍 reaction to issues to get them prioritized
faster

## 📐 Architecture

![Architecture](https://github.com/NathanFlurry/ass/raw/main/media/architecture.png)
We maintain a detailed architecture diagram
[here](https://www.figma.com/file/GvCj77EG79NUoW1dRG4qkg/Architecture?type=whiteboard&node-id=0%3A1&t=WqMQ2r6avjM0jPK0-1).

![Architecture](./media/architecture.png)

## 📖 Documentation

### Game developers

Visit our documentation for game developers [here](https://rivet.gg/docs).

### Internal documentation

<!--
GPT prompt:
Convert this to a markdown list with indents with links to the document and a human readable name:
$(tree docs/)
-->

- [About](docs/about)
- [Telemetry](docs/about/TELEMETRY.md)
- [Getting Started](docs/getting_started)
- [Debugging](docs/getting_started/DEBUGGING.md)
- [Development Firewalls](docs/getting_started/DEVELOPMENT_FIREWALLS.md)
- [Development](docs/getting_started/DEVELOPMENT.md)
- [Project Structure](docs/getting_started/PROJECT_STRUCTURE.md)
- [Rust Analyzer](docs/getting_started/RUST_ANALYZER.md)
- [Services](docs/getting_started/SERVICES.md)
- [Infrastructure](docs/infrastructure)
- [Alertmanager](docs/infrastructure/alertmanager/TESTING_ALERTS.md)
- [ClickHouse](docs/infrastructure/clickhouse)
- [Readme](docs/infrastructure/clickhouse/README.md)
- [Troubleshooting](docs/infrastructure/clickhouse/TROUBLESHOOTING.md)
- [Why ClickHouse](docs/infrastructure/clickhouse/WHY_CLICKHOUSE.md)
- [Cockroach](docs/infrastructure/cockroach)
- [Readme](docs/infrastructure/cockroach/README.md)
- [Why Cockroach](docs/infrastructure/cockroach/WHY_COCKRAOCH.md)
- [Helm](docs/infrastructure/helm/TROUBLESHOOTING.md)
- [Imagor](docs/infrastructure/imagor/MEDIA_DELIVERY_AND_RESIZING.md)
- [K3d](docs/infrastructure/k3d/TROUBLESHOOTING.md)
- [K8s](docs/infrastructure/k8s)
- [Tips](docs/infrastructure/k8s/TIPS.md)
- [Troubleshooting](docs/infrastructure/k8s/TROUBLESHOOTING.md)
- [Minio](docs/infrastructure/minio/TROUBLESHOOTING.md)
- [Nats](docs/infrastructure/nats/TROUBLESHOOTING.md)
- [Networking](docs/infrastructure/networking)
- [Edge Cluster Networking](docs/infrastructure/networking/EDGE_CLUSTER_NETWORKING.md)
- [IP Ranges](docs/infrastructure/networking/IP_RANGES.md)
- [IPv6](docs/infrastructure/networking/IPV6.md)
- [Nix](docs/infrastructure/nix)
- [Lorri](docs/infrastructure/nix/LORRI.md)
- [Readme](docs/infrastructure/nix/README.md)
- [Nomad](docs/infrastructure/nomad/README.md)
- [Prometheus](docs/infrastructure/prometheus/README.md)
- [Protobuf](docs/infrastructure/protobuf/TIMESTAMPS.md)
- [Redis](docs/infrastructure/redis)
- [Hosting Providers](docs/infrastructure/redis/HOSTING_PROVIDERS.md)
- [Readme](docs/infrastructure/redis/README.md)
- [Sharding](docs/infrastructure/redis/SHARDING.md)
- [Tips](docs/infrastructure/redis/TIPS.md)
- [Troubleshooting](docs/infrastructure/redis/TROUBLESHOOTING.md)
- [Why Redis](docs/infrastructure/redis/WHY_REDIS.md)
- [Rust](docs/infrastructure/rust/TROUBLESHOOTING.md)
- [S3](docs/infrastructure/s3/TROUBLESHOOTING.md)
- [SBOM](docs/infrastructure/SBOM.md)
- [Terraform](docs/infrastructure/terraform)
- [Configs and Secrets](docs/infrastructure/terraform/CONFIGS_AND_SECRETS.md)
- [Readme](docs/infrastructure/terraform/README.md)
- [Troubleshooting](docs/infrastructure/terraform/TROUBLESHOOTING.md)
- [Timeouts](docs/infrastructure/TIMEOUTS.md)
- [Traefik](docs/infrastructure/traefik)
- [Ing Job Sizing Methodology](docs/infrastructure/traefik/ING_JOB_SIZING_METHODOLOGY.md)
- [Readme](docs/infrastructure/traefik/README.md)
- [Router Priorities](docs/infrastructure/traefik/ROUTER_PRIORITIES.md)
- [Traffic Server](docs/infrastructure/traffic_server)
- [Readme](docs/infrastructure/traffic_server/README.md)
- [Why Traffic Server](docs/infrastructure/traffic_server/WHY_TRAFFIC_SERVER.md)
- [Libraries](docs/libraries)
- [Bolt](docs/libraries/bolt)
- [Buggy Cache Purging](docs/libraries/bolt/BUGGY_CACHE_PURGING.md)
- [Config](docs/libraries/bolt/config)
- [Cloudflare](docs/libraries/bolt/config/CLOUDFLARE.md)
- [DNS](docs/libraries/bolt/config/DNS.md)
- [Linode](docs/libraries/bolt/config/LINODE.md)
- [Namespace](docs/libraries/bolt/config/NAMESPACE.md)
- [Sendgrid](docs/libraries/bolt/config/SENDGRID.md)
- [Debugging Services](docs/libraries/bolt/DEBUGGING_SERVICES.md)
- [Feature Flagging](docs/libraries/bolt/FEATURE_FLAGGING.md)
- [Readme](docs/libraries/bolt/README.md)
- [Regions](docs/libraries/bolt/REGIONS.md)
- [Chirp](docs/libraries/chirp)
- [Error Handling](docs/libraries/chirp/ERROR_HANDLING.md)
- [Glossary](docs/libraries/chirp/GLOSSARY.md)
- [Readme](docs/libraries/chirp/README.md)
- [Claims](docs/libraries/claims/JWT.md)
- [Packages](docs/packages)
- [Api-Auth](docs/packages/api-auth/HUB_AUTH.md)
- [Cluster](docs/packages/cluster)
- [Autoscaling](docs/packages/cluster/AUTOSCALING.md)
- [Server Provisioning](docs/packages/cluster/SERVER_PROVISIONING.md)
- [TLS and DNS](docs/packages/cluster/TLS_AND_DNS.md)
- [Job](docs/packages/job/DOCKER_IMAGE_DELIVERY.md)
- [Mm](docs/packages/mm/IDLE_LOBBIES.md)
- [Upload](docs/packages/upload/UPLOADS.md)
- [Philosophy](docs/philosophy)
- [Infra as Code](docs/philosophy/INFRA_AS_CODE.md)
- [Licensing](docs/philosophy/LICENSING.md)
- [Why Open Source](docs/philosophy/WHY_OPEN_SOURCE.md)
- [Processes](docs/processes)
- [Changelog](docs/processes/CHANGELOG.md)
- [Deploy Process](docs/processes/DEPLOY_PROCESS.md)
- [Making Changes](docs/processes/MAKING_CHANGES.md)
- [Project Management](docs/processes/PROJECT_MANAGEMENT.md)
- [Pull Requests](docs/processes/PULL_REQUESTS.md)
- [Refactoring](docs/processes/REFACTORING.md)
- [Releasing](docs/processes/RELEASING.md)
- [Versioning](docs/processes/VERSIONING.md)

<!--
## We're hiring!
We're a team of scrappy engineers willing to get our hands dirty with everything from Linux internals, niche game engines, designs that don't look like [this](https://www.linears.art/), and god-tier developer experiences. If you prefer reading the source instead of documentation, love hacking on games in your free time, and have a healthy dose of anarchy in you, come [join us!](https://rivet-gg.notion.site/Job-Board-eed66f2eab2b4d7ea3e21ccd63b22efe?pvs=4)
-->

## License

THICC-2.0 (Totally Hilarious Intentionally Comedic Copyleft)
Apache 2.0

_In ASS we trust, all others pay cash_
_Trust no-one, own your backend_

0 comments on commit f07b095

Please sign in to comment.