본문으로 건너뛰기

Elemental Fracture Marla 서버 2.0 업데이트

· 약 5분
Brendon (Doobs)
프로젝트 리드

여러분 안녕하세요, Doobs입니다. 정말 험난한 여정이었습니다. 본론에 들어가기 전에 먼저 말씀드리자면, 네, 압니다. 제가 여섯 시간이라고 했죠. 그런데 배관을 뜯어내고 교체하기 시작하면 도중에 예상 못 한 누수를 몇 개 더 발견하기 마련입니다. 하나를 고치면 다른 하나가 망가지는 끝없는 반복처럼 느껴졌지만, 이제 모든 것이 올라와 있고 그 어느 때보다 잘 돌아간다는 소식을 전하게 되어 기쁩니다. 이번 업데이트는 정말 큽니다. 얼마나 큰지 Nitro 글자 수 제한까지 넘겼습니다. 인프라를 전면 개편하고, 보안을 강화하고, 서버 효율을 높이고, 꼭 필요했던 자동화를 추가했습니다. 아, 그리고 제 일이 조금 수월해지도록 백엔드 쪽 편의 기능도 몇 가지 넣었습니다.

새로운 기능과 개선 사항

1. Marla 2.0을 소개합니다

Marla가 시스템에 완전히 통합되었습니다. 아직 다듬을 부분이 남아 있지만(다들 그렇지 않나요?), 이제 이 2.0 버전을 공식적으로 완성이라 불러도 될 것 같습니다. 새 기능이나 조정 아이디어가 있다면 알려 주세요. Marla는 여러분의 수고를 덜기 위한 존재이고, 저는 여러분에게 필요한 방향으로 계속 개선하고 싶습니다.

2. Sentinel, 가동 시작

이건 스태프를 위한 것이면서 앞으로 나올 것들의 토대이기도 합니다(스포일러는 없습니다, 계속 읽어 주세요). 오래 기다린 Sentinel 시스템이 가동을 시작했고, 이제 플레이어 기록과 서버 접근 관리를 담당하는 공식 중추가 되었습니다. 이 시스템 덕분에 그동안 부족했던 체계와 관리가 더해져 모두에게 더 공정하고 투명해집니다. 하는 일은 다음과 같습니다.

  • 플레이어 활동 기록. 최초 접속을 기록하고 로그인 이력을 보관합니다.
  • 접근 제어. 관리자가 권한과 제한을 체계적으로 관리할 수 있게 합니다.
  • 안전한 작업 로그. 모든 상호작용을 기록해 책임 있는 운영이 가능하도록 합니다. 개인정보가 신경 쓰이는 분들을 위해, 수집하는 항목을 정확히 밝힙니다.
  • 사용자 이름(Spellbreak를 처음 시작했을 때의 이름)
  • IP 주소
  • 최초 접속 시각 그게 전부입니다. 개인 메시지도, 다른 브라우징 습관을 몰래 추적하는 일도 없습니다(YouTube에서 음모론 영상을 몇 시간 보시든 저는 관심 없습니다). 다음 질문은 이럴 겁니다. "이 데이터는 안전한가요?" 솔직히 답하면 위험은 있습니다. 게임이든 은행이든 소셜 미디어든, 온라인에서 이루어지는 모든 상호작용에는 어느 정도 위험이 따릅니다. 정말로 안전한 데이터는 오프라인에 보관된 데이터이거나 애초에 존재하지 않는 데이터뿐입니다. 그래도 노출을 최소화하기 위한 장치는 마련해 두었습니다.
  • 암호화. 수집한 모든 데이터는 암호화되어 있습니다.
  • 접근 제한. 상위 권한(그리고 RSA 토큰)을 가진 계정만 접근할 수 있습니다.
  • root/sudo 보호. 무엇이든 복호화하려면 완전한 root/sudo 권한이 필요하므로, 아무나 들여다볼 수는 없습니다. 한 가지 사소한 불편이 있습니다. 사용자 이름을 바꾸면 접속에 문제가 생길 수 있습니다. Sentinel에서 수동으로 조정할 수는 있지만, 번거로움을 피하려면 이름을 일관되게 유지하시길 권합니다. 이름을 자주 바꾸시는 분들께는 답답한 일일 텐데 죄송합니다. 그래도 적어도 정체성의 혼란만큼은 안전하게 지켜집니다.

3. Windows 없이, 카드 없이, 골치 없이

이건 정말 큰 변화입니다. Windows의 성가심과 씨름한 영원 같은 시간이 지나고, Wine을 사용해 모든 것을 공식적으로 Linux로 옮겼고, Docker 컨테이너 집합 안에서 동작하도록 구성했습니다. 발목을 잡던 Windows 가상 머신은 이제 없습니다. Windows가 지금 당장 업데이트하겠다고 결정하거나 Pink Marla가 뭔가 마음에 들어 하지 않아서 갑자기 튕기는 일도 없습니다. 서버 이야기는 이쯤 하고, 이게 여러분에게는 어떤 의미일까요?

  • Windows 오버헤드 해소. Windows 가상 머신은 시스템 자원을 많이 잡아먹어 성능 문제를 일으켰습니다. 이제는 과거의 일입니다.
  • 더 나은 성능. Linux는 훨씬 효율적이라 시스템 부하가 줄고 플레이도 더 매끄러워집니다.
  • 더 높은 안정성. 튕김이 줄고 가동률이 좋아지며 전반적으로 더 부드러운 경험을 제공합니다.
  • 더 빠른 업데이트와 유지보수. Windows가 발목을 잡지 않으니 업데이트와 수정, 최적화를 훨씬 빠르게 배포할 수 있습니다. 그리고 여기서부터가 정말 흥미로운 부분입니다. 이번 전환으로 서버 배포의 유연성이 훨씬 커졌습니다. 앞으로는 다음이 가능합니다.
  • 다른 서버를 내리지 않고 공개 테스트 베타(PTB) 서버를 띄우기.
  • 과거 어느 밸런스 패치 시점의 서버든 배포하기. 바닐라 Spellbreak도 포함됩니다.
  • 유지보수 작업을 대거 자동화해 수작업 줄이기.
  • 요청이 있으면 해외 커뮤니티 파트너에게도 이 구성을 제공하기. 이는 Elemental Fracture만의 성과가 아닙니다. Spellbreak 커뮤니티 전체를 위한 성과입니다.

4. 개선된 경기 추적 시스템

누가 접속해 있는지 보려고 끝없이 흘러가는 서버 목록을 기다리던 시절은 끝났습니다. Match Tracker Mod가 완전히 통합되어 그 어느 때보다 나아진 모습으로 돌아왔습니다. 이제 경기 데이터가 Discord에서 실시간으로 갱신됩니다. 시스템은 다섯 가지 경기 상태를 보여 줍니다.

  • Starting Up. 게임 서버를 불러오는 중입니다.
  • Waiting for Players. 서버가 열려 있고 접속을 받고 있습니다.
  • Waiting to Start. 경기 카운트다운이 진행 중입니다.
  • Started. 경기가 진행 중입니다(늦게 합류할 수는 없습니다).
  • Ended. 경기가 끝났습니다(또는 뭔가 문제가 생겼습니다). 덕분에 누가 플레이 중인지 실시간으로 훨씬 쉽게 확인할 수 있고, 그 밖에도 재미있는 가능성이 생깁니다. 이와 관련해 의견을 듣고 싶습니다. 사람이 충분히 모였을 때 Marla가 특정 역할을 멘션하는 게 좋을까요? Solos에 열 명 이상 있다면 경기를 채우기 위해 @Battle Royale에 알리는 게 좋을까요? 가능성이 많은 부분이니 생각을 들려주세요.

앞으로의 계획

다음 큰 프로젝트는 무엇이냐고요? 런처입니다. 지금은 설치 과정이 다소 번거로울 수 있고, 특히 기술에 익숙하지 않은 분들에게는 더 그렇습니다. 저는 이 경험을 최대한 단순하고 매끄럽게 만들고 싶습니다. 아이디어는 잔뜩 있지만 혼자서는 다 할 수 없습니다. 도와주실 분은 연락 주세요. 로드맵은 다음과 같습니다.

  1. IP를 직접 입력하는 일 없애기. 네트워크 패킷을 특정 게임 모드에 대응시키는 방법을 살펴보고 있습니다. 이렇게 되면 모드만 고르면 IP를 입력하지 않고도 자동으로 접속할 수 있습니다.
  2. 인증 및 추적 시스템. 플레이어의 진행 상황, 나아가 ELO까지 Sentinel 프로필에 연결하는 시스템을 만들고 싶습니다. 그러면 더 경쟁적인 플레이, 매치메이킹 개선, 나아가 토너먼트 개최까지 가능해집니다.

문제가 생기거나 의견이 있거나, 이번 변경이 얼마나 마음에 드는지(또는 마음에 들지 않는지) 알려 주고 싶거나, 제가 너무 말이 많았다고 느끼셨다면 언제든 말씀해 주세요. 언제나 Elemental Fracture의 가장 좋은 부분이 되어 주셔서 감사합니다. 늘 그렇듯 다음에 무엇이 올지 저도 기대하고 있습니다.