C#의 가능성을 여는 전문회사 ‘Cysharp’가 지향하는 곳

프로그래밍 언어 C#를 중심으로 한 게임 기술 개발을 통해 C#(※1)의 매력을 세상에 알려 나가고자 설립된 사이게임즈 그룹사 ‘Cysharp’(※영어/일본어 페이지). 게임 업계에 기여하기 위해 수십 개의 C#용 오픈 소스 소프트웨어 라이브러리를 공개하는 등의 활동으로 ‘CEDEC AWARDS 2022 엔지니어링 부문 우수상’을 수상하고, 국제적 게임 크리에이터의 제전 ‘GDC2022’에 등단하는 등 이름을 알려오고 있습니다. 그런 ‘Cysharp’의 설립 경위와 앞으로의 전망에 대해 대표이사에게 들어보았습니다.

※1 C#……Microsoft가 개발한 .NET 플랫폼 프로그래밍 언어. 게임 엔진 Unity에도 채용되는 등 폭넓은 영역에서 사용되고 있다. 서버 사이드 개발에서는 전세계 엔지니어가 이용하는 개발자 대상 Q&A 사이트 ‘Stack Overflow’나 검색 엔진 ‘Microsoft Bing’ 등 대규모 서비스에서 이용된 예도 많다.

주식회사 Cysharp 대표이사요시후미
gutenberg-examples
사이게임즈와 함께 C# 전문 개발회사인 주식회사 Cysharp을 설립. ‘C# 대통일 이론’을 내걸고 서버와 클라이언트(Unity)를 모두 C#으로 구현하는 프레임워크를 개발 및 아키텍처를 구축. 뿐만 아니라 ‘Message Pack for C#’를 비롯해, 세계적으로 사용되고 있는 여러 C# 오픈 소스 소프트웨어 라이브러리를 개발해, Microsoft가 전세계 기술 커뮤니티 리더의 활약을 표창하는 Microsoft MVP 어워드 프로그램에서 ‘Microsoft MVP’(Microsoft MVP for Developer Technologies)를 2011년부터 2022년 현재까지 11년 연속 수상. 일본의 C# 기술 개발을 견인하고 있다.

대표이사의 발걸음과
Cysharp 설립 경위

먼저, Cysharp에 대해 소개해 주세요.

Cysharp는 ‘프로그래밍 언어 C#를 최대한으로 이용해 세상에 C#의 매력을 전파하는 것’을 모티베이션으로 한 C# 전문 집단으로, 2018년 9월에 설립했습니다. 게임 회사에서 C#라고 하면 클라이언트(Unity)의 이미지가 강한데, Cysharp에서는 서버와 클라이언트 모두 C#로 만들어 개발 생산성을 최대로 끌어올리는 구축 방법 ‘C# 대통일 이론’을 제안하고 있습니다. Unity 클라이언트와 서버 개발은 대체로 각각 다른 언어로 이루어져 이중 구현이 필요로 되는 등 코드의 개별 관리가 요구되는데, 하나로 통일함으로써 종래의 여러 문제를 해결했습니다.

새로운 개발 수단이라, Cysharp에서는 이를 위한 레퍼런스 아키텍처 구축이나 클라이언트와 서버를 연결하는 효율적인 라이브러리를 개발해 오픈 소스 소프트웨어를 제공하는 등, 게임 업계 전체에서 채용이 이루어지도록 힘을 쏟고 있습니다.

요시후미 씨의 Cysharp 설립 전 경력을 소개해 주세요.

고등학생 때 ‘생각의 속도 ~디지털 신경망 비즈니스~’(빌 게이츠)를 만난 것을 계기로 Microsoft에 흥미를 가지게 되면서, 초대 Xbox나 Xbox360을 곧잘 가지고 놀았습니다. 빌 게이츠 씨의 원점은 BASIC 인터프리터(※2)를 개발해 팔았던 데에 있었다고 보고, 컴퓨터를 정말 잘 활용하려면 프로그래밍을 할 수 있어야 한다고 생각하여 시작해 봤던 것이 엔지니어로서 내딛은 첫걸음입니다. 다만, 당시에는 그다지 큰 성과를 내지 못하고 프로그래머로서는 좌절을 거듭했습니다.

※2 BASIC 인터프리터……유저가 BASIC 언어로 프로그램을 입력해 실행할 수 있게 하는 방법의 하나.

▲ 빌 게이츠, ‘생각의 속도 ~디지털 신경망 비즈니스~’

그런 가운데 ‘C# 3.0’과의 만남이 전환점이 되어주었습니다. 2008년에 출시된 ‘C# 3.0’은, 당초 ‘LINQ’라고 불리는 오브젝트 지향 언어와 함수형 언어를 융합한 혁신적인 기능이 탑재된 개발 언어였습니다. 실제로 다뤄 보니 Visual Studio와 상성이 좋고 사용하기도 편해서 바로 이거다 싶은 마음이 들었습니다. 이 체험에서 운명을 느끼고, 그 뒤로는 ‘이 언어에 할 수 있는 데까지 파고들어보고 싶다’는 마음으로 적극적으로 정보를 발신하고 언어 커뮤니티에 참가했습니다. 또한, 성과물을 오픈 소스 소프트웨어로 발표하기 시작하기도 했습니다.

그 뒤, 개인적으로 개발한 오픈 소스 소프트웨어가 높은 평가를 받아, 2011년에 ‘Microsoft MVP’를 수상했습니다. 수상 후에는 C#로 게임을 개발해 급성장 중에 있던 회사의 존재를 알고 그 회사에 들어가게 되었죠. 몇 가지 게임을 개발한 뒤, 2012년에 참가했던 개발 팀이 독립해 주식회사 그라니가 설립되었습니다. 그라니에는 창설 초기부터 참가해 CTO로 취임했습니다. 거기서 다양한 타이틀 개발에 관여한 뒤, 사이게임즈에 합류해서 지금에 이릅니다.

합류하기 전에는 그런 경험을 하셨군요! 사이게임즈에 합류한 뒤, Cysharp를 설립하게 된 경위를 이야기해 주세요.

그라니에 있을 적에도 ‘세상에 C#가 더 많이 이용되게 하기’, ‘C# 오픈 소스 소프트웨어를 만들어 내놓기’ 같은 활동을 했습니다. 지금도 세상에 널리 쓰이고 있는 ‘UniRx’, ‘MessagePack for C#’와 같은 C# 오픈 소스 소프트웨어 라이브러리는 그 당시에 태어났죠. 그라니를 나온 후, 타사의 개발을 도우면서, ‘C#에 초점을 맞춰 큰 일을 해내고 싶다’, ‘세계가 인지할 만한 성과를 내고 싶다’와 같은 마음이 보다 강해졌습니다. Cysharp로서 출시한 오픈 소스 소프트웨어 중에서도 가장 많은 지지를 얻고 있는 ‘UniTask’는 이 시기에 만들어졌습니다. 하지만 혼자서는 역시 할 수 있는 일의 폭도 좁고, 세상에 큰 영향을 끼치거나 가치를 만들어 내기는 어렵겠다는 생각을 하고 있었습니다.

그런 시기에 사이게임즈의 CTO실에서 ‘함께 뭔가 하지 않겠습니까?’라는 제안을 받았습니다. 사이게임즈의 존재는 그라니에 있을 적부터 의식하고 있었죠. 게임의 퀄리티가 매우 높은 회사라는 인상을 가지고 있었습니다. 그 원천이 회사 전체의 ‘세계를 향해 최고의 콘텐츠를 만들어 나가자’라는 정열에서 오고 있다는 사실을 이야기를 들으면서 알게 되었는데, ‘C#로 세계 최고의 결과물을 만들어 가겠다’라는 저의 의식과도 겹쳐지는 부분이 있어 매우 흥미로웠습니다.

또한 ‘Cyllista Game Engine’과 같은 AAA 타이틀 개발을 목표로 한 독자적인 게임 엔진을 제작하는 부문도 있거니와, Cygames Research(※일본어 페이지) 같은 아카데믹에 가까운 연구 개발 부문도 있죠. 그런 다양성 속에 ‘C# 전문 개발 회사’가 있으면 재미있는 화학 변화를 일으킬 수 있지 않을까, 하고 생각하고 사이게임즈의 그룹사로 Cysharp를 설립할 것을 결심하게 되었습니다.

세계로 뻗어 나가는 Cysharp의 기술
‘프리코네! 그랜드 마스터즈’ 개발의 혁신적인 아키텍처

Cysharp가 시도해온 바와 그 실적을 자세히 소개해 주세요.

Cysharp에서는 ‘C#의 가능성을 열어 나가기’ 위해 크게 나누어 두 가지 활동을 하고 있습니다. 하나는 ‘소프트웨어 개발 플랫폼인 GitHub에 C#의 오픈 소스 소프트웨어 공개’입니다. 현재 25개의 오픈 소스 소프트웨어를 공개 중이며, GitHub 내의 인기도 측정 지표인 스타 수가 합계 1만을 넘었습니다. 이는 C# 관련으로는 세계에서도 톱클래스에 드는 숫자입니다. 실제로 Cysharp의 오픈 소스 소프트웨어는 널리 이용되고 있으며, Unity를 활용해 개발된 일본의 모바일 게임 다수가 Cysharp가 작성한 오픈 소스 소프트웨어 중 무언가를 이용하고 있습니다. 이러한 실적 덕분에, 이번 해에는 ‘CEDEC AWARDS 2022 엔지니어링 부문 우수상’(※일본어 페이지) 수상을 비롯해, 전세계에서 저명한 기술자가 모이는 ‘2022 Game Developers Conference(GDC2022)’에도 초대되어 온라인으로 강단에 서기도 했습니다.

▲ 공개 중인 오픈 소스 소프트웨어

또 하나는 ‘서버 사이드 C#를 사용한 고퀄리티 게임 실적 늘려 나가기’입니다. Unity로 제작된 게임에서는 물론 C#가 사용되고 있지만, 서버 개발에 채용되는 사례가 부족하다고 느끼고 있습니다. 채용 실적이 늘어날수록 사용해 보고 싶다고 생각하는 분들도 많아질 테죠. 그러므로, 퀄리티 높은 게임을 사이게임즈와 함께 개발해 실적을 늘려 나가는 것이 최대의 어필이 될 거라고 생각하고 있습니다.

근래의 성과로는 ‘프리코네! 그랜드 마스터즈’(※3)를 들 수 있습니다. 이 작품이야말로 ‘C# 대통일 이론’의 이상적인 형태라고 할 수 있는데, 리얼타임 통신 부분, 그리고 API 서버부터 매치 메이킹, 서버 인프라의 기반 작성까지, 구성되는 모든 요소가 C#로 만들어졌습니다. Cysharp는 서버 측의 기반 설계와 개발 서포트 툴, 인프라 등을 주로 담당했습니다.

※3 ‘프리코네! 그랜드 마스터즈‘는 ‘프린세스 커넥트! Re:Dive’의 만우절 기획으로 2022년 4월 1일~8일까지 공개된 애플리케이션

‘프리코네! 그랜드 마스터즈’ 개발 시에 신경 쓴 점은 무엇인가요?

사이게임즈의 스태프가 ‘C#를 쓰기를 잘했다’라고 생각해 줄 만한 것을 만들고자 노력했습니다. 사이게임즈는 서버를 C#로 구축하는 것이 처음이었기 때문에 C#로 개발함에 있어서 불편함이 느껴지지 않도록 세심한 주의를 기울였습니다. 개발 중, 좋은 의미로 ‘공기처럼’ 매끄럽게 작업이 가능하면서, C#이기에 가능한 개발 서포트가 풍부하게 이루어지는 분위기를 만들 수 있다면 좋겠다고 생각했습니다. Cysharp 측에서 ‘프리코네! 그랜드 마스터즈’를 위해 개발한 개발 서포트 툴은 C#의 이점이 적절히 살아있다고 생각합니다.

어떤 개발 서포트 툴인가요?

‘프리코네! 그랜드 마스터즈’는 종래 클라이언트 측에 존재했던 게임 로직을, 서버가 C#라는 점을 살려 서버 측에서 로직을 실행하도록 설계된 프로젝트입니다. 그 점을 이용해 웹 브라우저에서 서버에 리얼타임으로 접속해서 배틀 중의 내용을 리얼타임으로 파악하거나, 브라우저 상에서 데이터를 고쳐 쓰도록 하기도 했습니다. 웹 브라우저 상에서의 리얼타임 표시나 편집도 C#의 ‘Blazor Server’라는 새로운 프레임워크를 사용함으로써, 브라우저, 서버, Unity 등 모든 범위에서 C# 코드를 공유하고 있습니다.

이 개발 서포트 툴은 사이게임즈의 엔지니어나 플래너에게도 평판이 매우 좋아, 밀접하고 양호한 협력 관계를 구축할 수 있었습니다. ‘프리코네! 그랜드 마스터즈’ 전체에 관한 자세한 내용은, 사이게임즈의 스태프가 CEDEC 2022의 강연 ‘C#에 의한 클라이언트/서버 개발 언어 통일이 가져오는 고효율 개발 체제 ~프리코네! 그랜드 마스터즈 개발 사례~’(※일본어 페이지)에서 자세히 발표한 바 있습니다.

▲MagicOnion이란?
C#의 형식이 통신 정의가 되는 단방향/양방향RPC
// 쓰기 쉬우면서 형식 안정적으로 RPC(Remote Procedure Call)를 실현
// C#의 async/await 구문으로 비동기 통신도 자연스럽게 보임

사이게임즈 외의 기업에도
C#의 매력을 알려 나가는 의의

요시후미 씨는 대외적인 활동도 하신다고 들었습니다.

게임 업계에서 C#는 Unity 개발을 제외하면 주류 언어가 아니기 때문에, 사이게임즈 외의 기업에도 C#의 매력을 알려 나갈 필요가 있다고 생각하고 있습니다. ‘GDC’, ‘CEDEC’, Unity가 주최하는 ‘Unite’와 같은 대형 컨퍼런스 외에, 커뮤니티 스터디 같은 소규모 자리에서도 C#를 테마로 적극적으로 강연을 실시하고 있습니다. 또한 컨설팅의 형식으로 타사의 타이틀 개발에 협력하기도 합니다. 여러분도 아실 최근 작품으로는 ‘니어 리[인]카네이션’(운영:스퀘어 에닉스)(※일본어 페이지)의 개발에 Cysharp의 오픈 소스 소프트웨어가 다수 도입되었고, 기술 지원 또한 하고 있습니다.

그 밖에는 기술서 번역 감수도 하곤 합니다. 작년에는 ‘.NET의 클래스 라이브러리 설계’(Krzysztof Cwalina, Jeremy Barton, Brad Abrams, ‘Framework Design Guidelines’)의 번역서 감수도 담당했습니다. 이 책은 C#를 쓰는 엔지니어 여러분께 꼭 추천하고 싶은 내용을 담았습니다. C#에서 가장 잘 쓰이고, 가장 거대한 프레임워크인 C# 자신의 코어 라이브러리 ‘.NET 프레임워크’를 어떤 사상을 가지고 설계했는가 하는 내용이 아낌없이 적혀 있어 실천적이면서도 심오합니다. C#에 관한 기본부터 응용까지 전부 다루고 있어 C# 공부에 매우 도움이 될 거라 생각합니다. 꼭 살펴봐 주시기 바랍니다.

▲ '.NET의 클래스 라이브러리 설계'

Cysharp의 전망
‘C# 하면 Cysharp’가 세계 공통 인식이 되었으면

그럼 마지막으로 Cysharp의 향후 전망에 대해 이야기해 주세요.

‘C# 하면 Cysharp’가 세계의 공통 인식이 되게 하기 위해서도, 앞으로 세계 진출에 보다 힘을 싣고 싶습니다. 적극적으로 오픈 소스 소프트웨어를 공개해 나가는 것은 물론, 무엇보다도 사이게임즈와 함께 최고의 게임을 만드는 것이 중요하리라고 생각합니다. ‘프리코네! 그랜드 마스터즈’에 이어서, 사이게임즈가 최고의 콘텐츠를 선보일 수 있도록 협력해 나가겠습니다. 또한, C#의 특성을 살린 개발 서포트 툴을 일반화해, 사내외에서 널리 이용될 수 있는 형태로 제공하는 것도 고려하고 있습니다. 그런 곳에서부터 C#에 친근감을 가져 주셨으면 하는 바람입니다.