Cysharp Seeks to Open Up the Possibilities of C#

Cysharp, a Cygames subsidiary, was established to develop game technology centered on the C# programming language and to communicate the advantages of C# to the world. The company has been gaining recognition by releasing dozens of C# OSS libraries to contribute to the game industry, winning the CEDEC Awards 2022 Excellence in Engineering prize, and taking the stage at the 2022 Game Developers Conference. We interviewed the CEO about the creation of Cysharp and its future prospects.

Note: C# is a programming language developed by Microsoft for the .NET platform. It is used in a wide range of areas, most notably the game engine Unity. In server-side development, there are many examples of its use in large-scale services such as Stack Overflow, a Q&A site for developers used by engineers around the world, and the Microsoft Bing search engine.

Cysharp CEO Yoshifumi
Yoshifumi, together with Cygames, founded Cysharp, Inc. as a company specializing in C#. Under the C# Grand Unified Theory, he developed a framework and architecture that implements both the server and client (Unity) in C#. He has also developed several C# open source software libraries used around the world, including Message Pack for C#. Yoshifumi was named a Microsoft MVP by the Microsoft MVP Award program (Microsoft MVP for Developer Technologies), which recognizes the achievements of technology leaders around the world, for 11 consecutive years from 2011 to 2022. He continues to lead the development of C# technology in Japan.

The history of the CEO and the founding of Cysharp

First, please tell us a little about Cysharp.

Cysharp was established in September 2018 by a group of C# specialists whose motivation is to thoroughly master the C# programming language and spread its benefits to the world. C# in game companies is often associated with the client Unity, but Cysharp proposes the C# Grand Unified Theory, a method that maximizes development productivity by creating both the server and client in C#. Unity client and server development are usually done using different languages, which requires separate, double implementation code management. We solved this problem by using a single language for both sides of the development.

Since this is a new means of development, Cysharp is working hard to promote its adoption throughout the gaming industry by building reference architectures, developing efficient libraries for connecting clients and servers, and providing OSS.

What was your career like before Cysharp?

When I was in high school, I came across Business @ the Speed of Thought: Succeeding in the Digital Economy by Bill Gates, which sparked my interest in Microsoft. I also often played on the original Xbox and Xbox 360. I read about Bill Gates’ origin with the development and marketing of the BASIC interpreter, and I thought that to truly master a computer, I had to be able to program. I started out as an web engineer, but at that time, I wasn’t able to achieve much success and felt very frustrated.

Note: A BASIC interpreter allows users to enter and run programs in the BASIC language.

Business @ the Speed of Thought: Succeeding in the Digital Economy by Bill Gates

The turning point came when I encountered C# 3.0, which was released in 2008 and was the first language with innovative features that combined an object-oriented language called LINQ with a functional language. When I actually tried it, I realized it was a great match for Visual Studio—not to mention being incredibly comfortable to write in. I felt a sense of destiny from this experience, and from then on, I decided that I wanted to pursue this language to the fullest. I began participating in the programming community by sharing information and publishing OSS, which is open-source software.

Later, I received the Microsoft MVP award in 2011 for my personal development of OSS. After receiving the award, I learned about a rapidly growing company that was using C# to develop game and decided to join. After developing several games, my team became independent and established Grani, Inc in 2012. I was there from the beginning and led the company as CTO for a few years. With many more projects under my belt, I joined Cygames, which is where I’m currently at.

That was quite the career before Cygames! After coming here, what were the steps you took toward creating Cysharp?

Even during my time at Grani, I was involved in activities to promote C# to the world and create and share OSS. The C# OSS libraries created then are still widely used today, such as UniRx and MessagePack for C#. After leaving Grani, while assisting in the development of other companies, I became even more focused on achieving great things through C# and making a difference in the world. That’s when I created UniTask, the most widely supported OSS released, even among those of Cysharp. However, I felt that working alone limited my scope of impact on the world.

It was at that time I was invited by the CTO office of Cygames to discuss doing something together. I’d been aware of Cygames since my days at Grani and had the impression that the quality of their games was extremely high. I learned through the course of the conversation that the company’s passion for creating the world’s best games was the source of this high quality, which overlapped with my desire to create the world’s best games using C#.

At Cygames, there is a department that produces its own game engine—the Cyllista Game Engine—for AAA title development, along with a research and development department similar to academia called Cygames Research. After thorough discussions, we came to the conclusion that having a development company specializing in C# within such diversity would bring about an interesting change, and decided to establish Cysharp.

Cysharp’s technology spreads global recognition
The innovative architecture of Princess Connect! Grand Masters

Can you tell us more about Cysharp’s initiatives and achievements?

Cysharp has been involved in two major activities in order to push the boundaries of C#. One is publishing C# OSS on the software development platform GitHub. Currently, twenty-five OSS have been released, and has exceeded over 10,000 likes. This is one of the highest numbers in the world for C#-related projects. In fact, Cysharp’s OSS is so widely used, many Japanese Unity mobile games use some kind of OSS created by Cysharp. Because of these achievements, Cysharp was awarded the CEDEC AWARDS 2022 Excellence in Engineering prize and was also invited to speak online at the 2022 Game Developers Conference where famous engineers gather from all over the world.

Publicly available OSS

The second is to increase the number of high quality games using server-side C#. Of course, C# is used in games made with Unity, but we feel that there are not enough examples of its use in server development. We believe the more our products are used, the more people will be interested in using them, so developing high quality games with Cygames and improving our track record will set us apart.

Our most recent achievement is Princess Connect! Grand Masters*, a.k.a. PCGM. It’s the ideal form of the C# Grand Unified Theory, where every element—from real-time communication to matchmaking from the API server to server infrastructure—is built in C#. At Cysharp, I was primarily responsible for the server-side design, development support tools, and infrastructure.

*Princess Connect! Grand Masters was released as an April Fool’s Day event for Princess Connect! Re:Dive from April 1 to 8, 2022.

What were your goals when developing PCGM?

We wanted to create something that would make the staff at Cygames enjoy using C#. This was Cygames’ first time implementing a server in C#, so we wanted to make sure things went smoothly. We wanted to create an environment that facilitated the development process and where there was plenty of support that only C# can provide. I think the support tool we made for PCGM demonstrated the advantages of C#.

What kind of development support tool is that?

PCGM was designed to take advantage of the server being in C# to allow client-side game logic to run on the server side. That’s how we made a real-time connection between the browser and server to understand what was going on during battles and to rewrite data from the browser. Real-time display and editing on the web browser is also possible by using a new framework called Blazor Server in C#, which shares C# code with the browser, server, and Unity.

This development support tool was very well received by the programmers and planners at Cygames, allowing for a close working relationship. Cygames staff presented PCGM’s development process at CEDEC 2022 in a lecture titled, “Highly Efficient Development Structure Achieved by Unifying Client/Server Development Language with C# – Princess Connect! Grand Masters Case Study.”

What is MagicOnion?
Unidirectional/bidirectional RPC communication definitions in C#
Type-safe RPC (Remote Procedure Call) with natural writing
C# async/await syntax makes asynchronous communication look natural

The significance of sharing the benefits of C# outside of Cygames

Is it right that you’re also involved in activities outside the company?

Outside of Unity, C# is not a major language in the games industry, so it’s important to spread its benefits to companies outside of Cygames. That’s why we’re actively giving talks on C# at large conferences such as GDC, CEDEC, Unity’s Unite, as well as smaller community study groups. I also consult in the development of other companies’ titles. Most recently, I’ve been involved in NieR Re[in]carnation at Square Enix by introducing and providing technical support for many of Cysharp’s OSS.

And last year, I edited the translation for Framework Design Guidelines by Krzysztof Cwalina, Jeremy Barton, and Brad Abrams. I highly recommend it as a must-read for any programmer writing C#. It describes the philosphy behind C#’s own core library, the popular and massive .NET Framework. Please check it out, as it’s very practical and in-depth, covering everything from the basics of C# to its application.

Framework Design Guidelines

The outlook for Cysharp
Making Cysharp the worldwide authority on C#

Lastly, what does the future look like for Cysharp?

I want to expand our business worldwide so that Cysharp is synonymous with C#. Publishing more OSS is important, but the forefront of my goals is to continue creating the best content with Cygames. We don’t plan to just stop at PCGM. We’re also considering standardizing a development support tool that takes advantage of the characteristics of C# and offering it in a form that can be widely used both inside and outside the company. It’s our hope that this will make C# more accessible to the general public.