Hyunjik Bae started working in game industry in 1995, developing various MMO games. He was the first Korean to contribute to the Game Programming Gems series, Currently, he is the CEO of Nettention and lead directing programmer of ProudNet.
As all games - including mobile games - move into the games-as-a-service era, understanding game networking becomes an increasing vital skill.
In this respect, the experience of the PC MMOG industry provides a solid foundation on which to build.
And this is also the case in terms of the middleware that's been powering MMOGs for years.
One such provider is South Korean outfit Nettention's ProudNet technology.
Used in over 160 games including Nexon's Vindictus and Netmarble's mobile game Seven Knights, it offers developers a powerful game server & network engine for PC online games & mobile games.
We spoke to Nettention's CEO Hyunjik Bae to find out more details.
Pocket Gamer: For people who haven't heard of ProudNet, can you explain what it is and what it does?
Hyunjik Bae: ProudNet is a game server and network engine for game developers. It gives various networking techniques for client-to-server networking, client-to-client networking and server-to-server networking.
It also gives a database cache system between databases and game servers.
There are lots of different networking technologies available to developers. Why should they consider ProudNet?
In its first release, the major feature of ProudNet was its peer-to-peer (P2P) networking system. It was assessed to be outstanding.
As the number of customers grew, we've upgraded ProudNet in two ways.
1. More features
Some users wanted to use ProudNet to help in other areas. For example, they wanted something that could handle server-to-server communication, database access routines, daemon module, event logger, dead reckoning classes and so on. That's why ProudNet has modules for them.
Making a networking engine is easy, but maintaining performance requirements is what really matters.
Many small features have also been added to ProudNet to meet various users' needs. One example is the Coalescence technique in ProudNet, which works based on measured network quality for both fulfilling minimized network usage and latency. We don't listen to only one side.
2. More performance and stability
Due to wide spectrum of the use cases in terms of customers and running environments, ProudNet has been upgraded to resolve any (and rare) problems that occur only after massive numbers of game players are online. For example, problems that occur when hundreds of players are behind a single NAT router in an internet cafe.
ProudNet server modules are designed for best performance, with a single process of ProudNet server instance efficiently using every CPU core for maximizing concurrent players online.
In short, ProudNet has been tempered by being used by many large game titles. Game developers looking for server and network technology with high reliability should investigate ProudNet.
What are the most advanced features that ProudNet offers developers?
ProudNet has encountered and resolved situations such as: hundreds of players behind a single NAT router; players with weak internet connection 1,500km away from the server; players with malfunctioning network devices which blocks both attacks and non-attacks; and players in crowded Wi-fi spot.
Another example - we had the situation where a few data message going into or out of China were falsificated. We were confused but eventually resolved it by ugrading ProudNet to deal with the situation.
Making a networking engine is easy, but fulfilling everyone's use cases and maintaining performance requirements is what really matters.
How do developers get started with ProudNet and what sort of games do you think it works best for?
For three-month evaluation copy, just fill the request form in our web site www.nettention.com. You can check out the online documentation in help.nettention.com.
ProudNet works best for fast-paced MMO games or games where the servers do a lot of work.
ProudNet gives developers the following features:
- Integrated P2P and client-server networking system
- Zero-time P2P connection establishment
- Techniques within for networking stability: built-in coalescence, MTU fragmentation, header compression and garbling, dropping duplicated packets, auto connection recovery, network fallback, conservative UDP port mapping, etc.
- Server module and server-to-server networking system with CPU usage scalability
- Database cache system for making database access code easy and lowering database workload, and
- Message encryption, compression and throttling.
How difficult is it to integrate and how much code does integration generally add to a game?
Anyone who is familiar with C++, C# or Java can learn it. According to our customers, who have integrated ProudNet into over 160 projects, the process takes between one day to one month. The average time is one week.
In terms of added code, the client-to-server connection is done by one function call and two function callbacks. The P2P connection is done by one function call and one function callbacks. For sending and receiving messages, you don't have to write code for filling or extracting message data fields.
What platforms and engines do you support?
As ProudNet can be used in C#, C++, Java and UnrealScript, and with Unreal Engine 3 (not UDK) and 4, Unity and Cocos2D-X. There are sample source files provided where engines are used in installed ProudNet files.
ProudNet supports Windows Server. Linux support will be completed in months. The beta version is already released. ProudNet DB cache system supports MS SQL Server and MySQL.
You're popular with Korean developers. What have been the biggest games ProudNet has been used in?
In PC MMO, Vindictus is one we're proud of. For mobile games, Creature Academy and Seven Knights use ProudNet and they are neck-and-neck with Clash of Clans when it comes to revenue in Korea.
What is the cost of using ProudNet?
For mobile game development, it's $1,125 for monthly subscription, $11,250 for yearly subscription, or $27,500 for perpetual usage. This is a per-title licensing model.
Our web site www.nettention.com shows price details.
How does your support work? Do you offer English-language support?
Most of our support is done online via our support web site (similar to Mantis), remote desktop access and text chat.
Of course, you can ask us in English too, but written English is preferred to spoken English.
What happens if my game is successful and I need to scale up quickly?
Hosting game servers on cloud services is a more agile approach when it comes to an expanding userbase. However, designing distributed servers without considering data coherency and performance bottleneck can result in servers that are difficult to scale.
We have much experience with this and so we can guide customers about how to design scalable game servers and recommend a suitable server architecture.
What new features should we be looking out for in the coming months?
We have six major milestones due over the next two years. The first one is connection resiliency and Linux support.
Others will be disclosed later.
You can find more details about ProudNet via its website.