프로젝트 소개
Gamend는 Elixir로 작성된 멀티플레이어 게임용 오픈소스 백엔드입니다. 자체 호스팅을 전제로 하며, 구매할 수 있는 호스팅 서비스는 없고, 게임 자체가 아니라 게임을 둘러싼 서버 측 계층을 지향합니다. 게임은 여전히 로컬에서 렌더링하고 시뮬레이션하지만, 서버 측 스크립팅을 통해 실제 로직이 서버에서 실행되므로 점수, 보상, 매치메이킹 규칙, 검증이 플레이어가 수정할 수 없는 곳에서 결정됩니다. 백그라운드 및 예약 작업도 그곳에서 실행됩니다.
README에 설명된 기능:
- 인증: 이메일/비밀번호, 매직 링크, OAuth(Discord, Google, Apple, Facebook, GitHub, Steam) 및 JWT API 토큰.
- 유저: 프로필, 메타데이터, 디바이스 토큰 및 계정 수명 주기.
- 로비: 호스트 관리, 최대 유저 수, 숨김/잠금 상태, 비밀번호 및 실시간 업데이트.
- 그룹: 역할, 가입 요청, 초대가 있는 공개, 비공개 또는 숨김 커뮤니티.
- 파티: 기본 2~32명의 임시 초대 기반 그룹으로, 로비와 통합됩니다.
- 친구: 요청, 수락/거절 및 차단.
- 채팅: 읽기 커서와 읽지 않은 수를 포함한 로비, 그룹, 파티 및 친구 다이렉트 메시지.
- 알림: 소셜 이벤트용 유형별 알림, 읽음/읽지 않음 상태 및 실시간 전달, 그리고 디바이스 토큰별로 라우팅되는 FCM 및 APNs 직접 모바일 푸시.
- 퀘스트 및 진행: 업적, 일일/주간 퀘스트, 이벤트 기간 및 체인을 아우르는 이벤트 기반 엔진으로, 경제에 정확히 한 번 보상을 지급합니다.
- 리더보드: 글로벌 및 사용자별 순위.
- 결제: 영수증 검증, 웹훅, 권한, 환불 및 관리 도구를 갖춘 Stripe Checkout, Google Play, App Store 및 Steam 제공자 흐름.
- 키-값 저장소: 접근 제어 훅이 있는 서버 측 저장소.
- 서버 스크립팅: 로그인, 로비 생성, 퀘스트 완료 같은 서버 이벤트에 대한 훅으로, Elixir, GDScript(해석이 아닌 컴파일), 또는 모든 BEAM 언어로 작성합니다.
- 백그라운드 작업: Postgres 또는 SQLite에서 서버 훅으로부터의 내구성 있고 재시도 가능한 백그라운드 및 cron 작업.
- 경제 및 인벤토리: 원자적이고 감사 가능한 원장이 있는 가상 화폐 지갑과 아이템 스택, 실시간 잔액 업데이트가 있는 서버 권위 부여/지출/소비.
- 오브젝트 스토리지: 로컬 디스크 또는 AWS S3, Cloudflare R2, MinIO 같은 모든 S3 호환 서비스를 사용하는 플러그형 백엔드가 있는 아바타 및 UGC 업로드.
- 관리자 포털: 리소스 관리를 위한 내장 웹 대시보드.
클라이언트 SDK는 Godot(Godot Asset Library에도 등록됨), Balaur 애드온을 통한 Rune, 플러그형 전송을 갖춘 C++17, npm의 JavaScript, 그리고 커스텀 훅에서 IDE 자동 완성을 위한 스텁 모듈의 Elixir SDK로 제공됩니다. Godot, Balaur 및 C++ SDK는 main에 변경이 있을 때마다 다시 빌드되어 최신 릴리스에 첨부됩니다.
로컬 실행에는 Elixir 1.20과 Erlang/OTP 29, WebRTC 네이티브 의존성(ex_sctp)을 위한 Rust, 선택적으로 PostgreSQL이 필요합니다. 개발은 기본적으로 SQLite를 사용하며 데이터베이스 어댑터는 컴파일 시점에 선택됩니다. 첫 실행은 `cp .env.example .env`, `mix setup`, `mix dev.start`를 실행한 뒤 localhost:4000을 방문하는 것입니다. Docker Compose 파일은 단일 인스턴스와 nginx, PostgreSQL, Redis를 사용하는 다중 인스턴스 구성을 다룹니다. 배포 지침과 스타터 템플릿은 fly.io에서의 프로덕션 배포를 대상으로 합니다.
README에는 머신 크기, 메모리 및 월 가격별 동시 유휴 플레이어를 비교하는 성능 차트도 포함되어 있으며, 3GB 메모리의 한 코어에서 37,854명의 동시 유휴 플레이어를 측정한 수치를 공개된 비교 수치와 함께 제시하고, 재현 세부 사항을 위한 성능 및 부하 테스트 문서 링크를 제공합니다. AI 도구용 AGENTS.md 파일도 제공됩니다.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.