본문으로 이동
[NDC] 〈달빛조각사〉 엘릭서를 이용한 MMORPG 서버 개발
컨퍼런스

[NDC] 〈달빛조각사〉 엘릭서를 이용한 MMORPG 서버 개발

NDC 넥슨 · YouTube

원문 보기

AI 핵심 요약

C++·C# 중심의 게임 서버 개발 경험을 바탕으로, 달빛조각사 서버를 Elixir와 Erlang/OTP 기반으로 개발하며 함수형 패러다임과 액터 모델을 적용한 과정을 소개했다. 유저와 몬스터 등을 독립 프로세스로 구성하고 디렉터리 서비스를 통해 메시지를 전달했으며, 기존 지역 프로세스에 집중되던 연산과 브로드캐스트 부하를 분산하도록 구조를 바꿨다. 그 결과 병목과 장애의 영향 범위를 줄이고, 프로세스 슈퍼바이저와 유닛 테스트를 활용해 안정성과 반복 개발을 지원했다. Elixir의 불변 데이터, 패턴 매칭, Mix·OTP 생태계가 서버 구조 개선과 생산성에 도움이 되지만, 프로세스 분할 기준과 메시지 비용을 신중히 설계해야 한다고 설명했다.

  • 불변 데이터와 순수 함수 중심으로 상태 변경을 명시하면 공유 상태로 인한 복잡성을 줄일 수 있다.
  • 프로세스는 독립적인 로직 단위로 나누되, 메시지 통신 비용과 프로세스별 부하를 함께 고려해야 한다.
  • 복잡한 예외를 모두 처리하기보다 프로세스를 종료하고 슈퍼바이저가 재시작하도록 설계할 수 있다.
  • 유닛 테스트를 배포 조건에 포함하면 런타임 오류를 일찍 발견하고 클라이언트 없이도 서버 변경을 검증할 수 있다.

소개

NDC 2019 [〈달빛조각사〉 엘릭서를 이용한 MMORPG 서버 개발] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 김민욱 2. 발표자 소개 : 현재 엑스엘게임즈 달빛조각사 프로젝트에서 서버개발을 담당하고 있으며, 주로 구조 개선, 리팩토링, 최적화에 관련된 업무를 수행하고 있습니다. 이소프넷에서 건담 G-Generation for PC와 디지몬 카드 배틀과 같은 PC 패키지 로컬라이제이션과 묵향 온라인 개발, 웹젠에서 썬온라인, 넥슨에서 M2, 리로디드 스튜디오에서 더데이온라인, 엑스엘게임즈에서 문명 온라인을 차례로 개발해왔습니다. 이번 발표에서는 엑스엘게임즈에서 `엘릭서`라는 언어를 이용해서 달빛조각사라는 MMORPG 서버를 만들고 있으며 그 경험에 대해 이야기하고자 합니다. 3. 세션 소개 : 아직까지 많은 게임 서버는 C++/C# 과 같은 객체지향언어로 개발되고 있습니다. 저도 마찬가지로 C++를...

비슷한 학습 자료

컨퍼런스 NDC

● 설문조사: https://ko.surveymonkey.com/r/SLHMPY8 ↓ 아래를 펼쳐, 세션 상세정보를 확인하세요! ● 발표분야: 프로그래밍 ● 발표자: 엑스엘게임즈 오종빈 / XLGAMES Jongbin Oh ● 권장 대상: 테스트에 관심 있는 프로그래머 ● 키워드: #서버_테스트

소프트웨어 테스트 TDD

컨퍼런스 NDC

NDC 2019 [실버바인 대기열 서버 설계 리뷰] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 강성훈 2. 발표자 소개 : 대학원에서 프로그래밍 언어 전공으로 석사 졸업 후 여러 벤처기업에서 백엔드-프론트엔드와 아키텍처를 가리지 않고 개발을 해 왔습니다. 넥슨에서는 〈마비노기 듀얼〉의 서버 프로그래밍을 담당한 뒤, 오랫만에 전공을 살려 카일루아라는 언어를 개발하였고, 현재는 실버바인 서버 엔진 2의 개발에 참여하고 있습니다. 리듬게임, 난해한 프로그래밍 언어, Rust 등의 키워드로 검색해 보면 흑역사가 튀어 나오기도 합니다. 카일루아 관련 발표: NDC2016 "〈마비노기 듀얼〉 서버, 동적 타입 언어에서 반 정적 타입 언어로의 변신", NDC2017 "내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기" 실버바인 서버 엔진 2 관련 발표: NDC2018 "실버바인 서버 엔진...

백엔드

컨퍼런스 NDC

NDC 2019 [게임 서버의 목차 - 시작부터 출시까지] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 홍성우 2. 발표자 소개 : 데브캣 기반개발팀 소속으로 〈실버바인 서버엔진 2〉 개발에 참여하고 있습니다. 〈마비노기 듀얼〉 서버 개발에 참여하고, 〈마블 배틀라인〉 서버 개발을 리드했습니다. NDC 2018 에서 〈게임 프로그래머는 어떻게 가르치나요?〉, NDC 2017 에서 〈내가 만든 언어로 게임 만들기〉 세션을 발표했습니다. 3. 세션 소개 : 수 년간 현업에서 근무해온 서버 개발자라면 누구나 한번쯤 자문해본 적이 있을겁니다. "내가 개발 업무를 하면서 서버 개발에 관한 여러가지 지식을 쌓았는데, 이걸로 게임 서버 전체를 만들 수 있을까?" 서버 개발자를 지망하고 준비하는 학생이라면 궁금할 겁니다. "게임 서버 개발에 도움이 되는 여러가지 공부를 해왔는데, 빠지거나 치우친 것은 없을까?" 게임 출시를 앞...

백엔드 게임 프로그래밍

컨퍼런스 NDC

NDC 2018 [Packer, Terraform, Vault를 이용해 만드는 재현가능한 게임 서버 인프라] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 김민규 2. 발표자 소개 : 쿠키런 for Kakao, Solitaire: Decked Out의 서버 개발을 맡았으며, 현재 데브시스터즈 서버팀에서 주로 게임 서버 인프라 설계, 구축을 맡고 있습니다. AWS 서버 관리용 툴인 Eclair를 개발했고, AWS User Group에서 이에 대해 발표한 적이 있습니다. 3. 세션 소개 : 데브시스터즈는 지금까지 쿠키런, 쿠키런 오븐브레이크, Solitaire: Decked Out,Tape It Up! 등 여러 게임들을 출시해 왔습니다. 앞으로도 많은 게임들을 출시할 예정이고, 각 게임들의 서버 환경은 공통점이 있으면서도 조금씩 다릅니다. 여러 프로젝트를 동시에 진행하는 상황에서 어떻게 하면 서버 개발자들이 반복되는 ...

데브옵스 · 인프라 클라우드

컨퍼런스 NDC

NDC 2018 [서버 개발 생산성 향상을 위한 ORM 구현 경험 공유] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 남승현 2. 발표자 소개 : 현재 아이펀팩토리에서 아이펀엔진을 개발하고 있으며, 주로 네트워크, ORM, 분산처리 기능을 담당하고 있습니다. 이전에는 넥슨 신기술개발실에서 게임서버엔진을 개발에 참여했었으며, 조이맥스 플랫폼본부에서 미들웨어 서버 및 P2P 관련 개발을 수행했었습니다. NDC 발표를 통해 게임서버 개발 생산성 향상을 위한 ORM 개발 경험을 공유하고자 합니다. 3. 세션 소개 : 게임서버 개발시 ORM 이 어떻게 쓰일 수 있는지에 대해 소개하고 상용 게임서버 엔진의 ORM 을 개발하며 얻은 경험을 발표하려 합니다. 구현에 대해 코드 수준으로 자세히 설명하지는 않지만 최대한 전체 구현에 대해 이해하실 수 있도록 설명드리려 합니다. ORM 을 이용하여 단순히 DB 읽고 쓰기 코드를 줄이...

백엔드 데이터베이스

컨퍼런스 NDC

NDC 2018 [꿈을 현실화하기, '야생의 땅: 듀랑고'의 게임 디자인 역사] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 양승명 2. 발표자 소개 : 야생의 땅: 듀랑고에서 크리에이티브 디렉터를 맡고 있으며 주로 게임 디자인 총괄을 하지만 기술적인 이슈나 프로젝트 매니지먼트 관련 이슈도 관리하고 있습니다. 과거에는 마비노기 영웅전과 다크에덴 프로젝트에서 서버 프로그래머를 맡았습니다. 2010 년 NDC부터 서버와 게임 디자인 관련 이슈로 꾸준히 발표해온 바 있으며 이번 NDC에서는 듀랑고가 런칭하기까지 개발 과정에서의 뒷이야기들을 공유하고 싶습니다. 3. 세션 소개 : 샌드박스 MMORPG를 표방하며 개발하기 시작한 '야생의 땅: 듀랑고'가 현재의 모습으로 론칭하기까지 있었던 게임 디자인 결정들을 리뷰하고, 그 과정에서 원래 만들려고 했던 게임과 실제로 완성된 게임 사이의 차이와 그렇게 된 이유로부터 참관객들...

게임 기획