Network attacks and GunZ

Recently, there has been a rise in the number of attacks on specific players in certain game modes in GunZ, such as Clan Wars. A simple solution has been made to stop these attacks in the next patch.

What are the attacks?
Players are using techniques such as Denial of Service (DoS) attacks to cause users to disconnect and end the match quickly with a winning streak. As GunZ is using a peer-to-peer based networking scheme, connection information is exposed between players and opens a huge vector of attack.

How will this situation be dealt with?
To avoid this situation, connections between players for Clan Wars will be routed to the server instead of having direct connections between players. No connection information that would potentially open a gateway for attack will be exposed.

Players should avoid playing with potential attackers in games which aren’t Clan War beforehand, as connection information is exposed, and they have the ability to launch attacks to forcefully disconnect other players.

The downside
Users who live far away from the server will experience distance lag when playing against other players in Clan War matches. While this might seem like a significant problem, it is preferable compared to having a user’s connection attacked by a player.

- Linear88

GunZ API and Statistics!

Previously, I talked about the implementation of an API for Gunz here.

Today, I’ll be talking more about it.

What is an API?
An API (known as Application Programming Interface) basically allows users to access services in a program using programming languages. You may have already seen APIs being used in your daily life, for example, Facebook Connect is a type of API which allows applications to connect to your Facebook account, without allowing the applications to view your account password. The user can revoke application access to his/her account at any time.

The issue
In Gunz, it was nearly impossible to allow administration to carried out in the website. For example, banning a player in the administration panel would not automatically disconnect the player in-game, and this was a major flaw that had to be dealt with manually. Now, we can automate this process.

So how exactly does it work?

  1. Client requests the API page with data encoded in JSON format.
  2. API returns data in JSON format.

It’s that simple!

The following code snippet below shows a whisper command being sent using PHP:

// instantiate the API
$api = new GunzAPI('api_url', 'api_key');

// create the parameters
$params = array('Linear88', 'hello world!');

// make a command 
$cmd = $api->makeCommand('whisper', $params);
$data = $api->fetch($cmd);

// handle command
$response = $api->parseResponse($data);
if ($response != FALSE)
{
    // ok
}

Note that more commands can be added into the API, making it even more flexible.

For example, by using the API, I have retrieved the following statistics (player count from different servers):
Graph of Player Count Statistics

As you can see, Netmarble GunZ is still going pretty strong. (it’s not dead!)
Besides that, GunZ Ultra’s player count has been going up and down inconsistently. (network outage?)

API and Statistics aside… Freestylers, have you seen this secret in the game?
Leave a comment if you did!

- Linear88

GunZ 2 Greenlit on Steam

Great news everyone!

GunZ 2 has finally received Greenlight approval from Steam and the upcoming BETA will be out shortly.

Dear fans,
We finally received Greenlight approval from Steam. We’re thrilled to share the news with you all. I’d like to deliver our sincere thank-you to all of you who voted for and supported us for the past 3 months. We couldn’t have done it without you.
We will be moving forward with launching English version of GunZ 2 on Steam first then gradually add more languages along the way. We will do our best to make the game available for you as quick as possible.

Once again, thank you very much.
- Team Innovative, MAIET Entertainment

(source: GunZ 2 Steam Greenlight page. Retrieved 14 June 2013)

Now let’s wait till the BETA begins!

- Linear88

MAIET and GunZ 2

GunZ 2 is currently under Steam Greenlight. You can find more information about it here.

Besides that, here are a few questions that Venister, the CEO of MAIET entertainment, has answered.

Can you expand on the the new business model planned for GunZ 2?
We’re going to simplify the monetization for GunZ 2 because we thought that monetization for GunZ 1 was not so good for many reasons.
But for now, I cannot say about the system exactly because I think that we have to consider much more.
However basically you will be able to purchase almost items with in-game money.

When is GunZ 2 releasing in Singapore?
For SEA, I think that we have to get a local service provider for many reasons. And unfortunately cannot sure its release date.

Will the Item shop in Gunz 2 have more variety?
Needless to say, we expanded the variety of items for GunZ 2. And almost things can be purchased by in-game money. We changed our business model for GunZ 2.

How do you plan to ensure that all regions will get the amount of fair service that is required?
I think that EU gamers don’t need to worry about that. There will not be an unfair segregation between EU and NA. And as I know, our new partner will announce it officially in few days. They’re thinking that GunZ 2 will be the most important title for them, and they want to make it great success and an effective esports game.

When is the next Korean beta?
There will not be another CBT in Korea.

What are you guys doing about press release/promoting the game? (Are you trying to get the game more noticed in any way? Sending info about the game to review sites, having IGN write about it for example)
Yes. But we will not do anything until we have greenlit.

When are you releasing in Hong Kong?
Cayenne Technology, a publisher of GunZ 2 for HK/Macau/Taiwan will release their own server. We’ll support Traditional Chinese for the version. And you will not need to worry about the lag. Thx. :)

Will there be a functional replay system for eSports fanatics to rewatch top plays?
Please remember that it’s an online shooting game. Currently we couldn’t make a replay system yet, but we will make it if there are many people who want to get the replay system for GunZ 2.

Will there be any maps from the original GunZ game that may make an appearance in the second?
Currently we made a ‘Mansion’. For the open beta, it’s the only map from the original. For other maps, we think that they’re not suitable for the new game system. But there is still possibilities of remaking the old map in near future.

Are the current classes/weapons the only ones that will be avaliable or do you guys plan on adding more to the game?
Needless to say, we will make more classes and weapons. Currently we’re working on the 6th class. (A 6th class!?)

Will there be something similar to clan war?
Yes, we gonna make it. But cannot sure when it is. Actually we wanted to make the whole new tournament system, but we could’t make it because it will require so long time to implement.

Do you expect a full release of Gunz 2 to be out this year for EU/NA?
Yes for EU. We will release the game in this year. But I cannot sure about NA version because we gonna release it with Steam and we cannot guarantee anything related to Steam. But we will try to release the game in this year if it can be.

Will it support 1920×1080 ? Will it be able to use a good PC? Change text fonts? Fullscreen windowed mode?
Yes, it will support the screen resolution if your computer can handle it. Also it supports windowed mode. But GunZ 2 does not support user custom fonts for now.

Will you support 3rd party dedicated servers in the future?
Absolutely NO

Do you plan to use a Peer-to-Peer or Peer-to-Server network code? If P2P, do you plan on having lag compensation?
Yes, we already implemented lag compensation system for GunZ 2 and we believe that it works.

What do you feel is the most exciting feature about GunZ 2?
Personally I love its PvE system and random ranking match based on ELO system.
(ELO Ranking system, cool)

Are hitboxes going to be square/cylindrical or they’re going to fit character?
It is basically larger than the actual character for easier gameplay as I know. But cannot sure. – because I am not a programmer ;)

What plans you have about releasing in India?
Sorry, but we do not have a plan for India yet. :(

Will there be colorful weapon enchantments like in Gunz1 and will they be available for in-game cash?
Dev. team already made them as I know. But cannot sure because they didn’t announce those weapons for CBT or internal testing versions yet.

Any kind of matchmaking system?
Matchmaking, yes. It works like League of Legends including rating.

Will there be role specific accounts chosen upon account creation?
You have to purchase each characters with in-game money and no limit on selecting characters because we will announce only three characters at the first time.

Will the character selection system be like that of GunZ 1?
No. You don’t need to go back to character selection screen for another character. And you will have ONE screen name for all characters. Basically characters have their own name and your name will represent its game player, not a character name.

How is the character customization?
The character system has been changed totally. At the first time, we wanted to make it same as GunZ 1. But we found special skills would be very interesting feature, so we redeveloped the character part. Characters will have each different story, skills, stats.

Would you consider hosting a closed beta for NA while we’re waiting for it to get green lit?
Sorry. But no, we cannot. We’re currently very busy to prepare EU/Traditional Chinese versions. Also making infrastructures like billing/account/customer services is very hard to be done by ourselves.

Will NA be able to play on EU servers until NA is up?
Sorry, maybe not.

Will there be In-game Clan Emblems?
couldn’t make it yet. But I expect that we will make the feature in near future.

Will we be able to kick players from the room by voting, like in GunZ 1?
No. There is no ‘Kick’ function in the game. We think that the function made so many side effects for GunZ 1. So instead of ‘Kick’, we put ‘Report’ function for abusing/hacks. But you can kick some player if you’re the host before the game starts.

Will GunZ 2 support Windows 8?
Sure. Don’t worry.

Will GunZ 2 Support Mac?
Sorry, but it will not support Mac.

(source: Reddit AMA)

- Linear88

GunZ is closing down

Aeria GunZ (also known as IJJI/NA Gunz) will be closing down forever.

MAIET has terminated their contract with Aeria Games, and will not be hosting GunZ for North America anymore.

This has been announced on Aeria Games’ Forums:

Dear GunZ Players,

We regret to inform you that unfortunately GunZ will be closing on May 31st, 2013.

This decision was not taken lightly and only decided on after thorough discussion with Aeria’s internal teams and MAIET. We apologize for these unfortunate circumstances.

We know this is sad news and can be frustrating. The closure of a game is always hardest for us at Aeria as we recognize the community’s dedication towards the game but regrettably games can’t last forever. We hope you enjoy your final month on GunZ as best you can before moving on.

Server Shutdown: 05/31/2013 @ 5:00 PM PST
Forums Removed: 06/31/2013 @ 3:00 PM PST

As a thank you to our customers we have decided to return 100% of the AP spent on GunZ to players within the final 30 days, starting from May 1st, 2013 until May 31st, 2013. However, because of the large nature of rebates, please allow up to 7-10 business days after May 31st, 2013 for the AP to be rebated.

(Source: Aeria Games Forums. Retrieved May 4, 2013)

Well… it’s been fun during the good old days. This probably means existing international players would have to wait for GunZ 2, or join private servers since Gunz would only be available in Korea and South America.

While the official servers are dying, the grass is greener on the other side – the player count of private servers is increasing at a steady rate.

Here are some public statistics of a popular private server:
Public statistics of a private server
(Source: Statistics page of private server. Retrieved May 4, 2013)

As we can see, the graph of this server alone shows us that the private server community is going strong. If the total amount of players for private servers is taken into account, it is definitely more than Aeria GunZ.

Why?
Official servers have gone stale. The hype for an old game like GunZ is dying. Players stick to private servers because of the community that thrives there. Furthermore, there is less attention given to such a game, as new games begin to challenge GunZ’s existence.

I guess all we should do now is wait for MAIET’s next decision.

Rest in peace, GunZ 1.

- Linear88

Past, present and the future

It’s been a while since I posted something here. But I’d like to share a few things.

Back in 2011, I was in the process of building a MatchServer 2010 clone. Besides that, I was implementing an advanced client base (code-named Licious). It includes a custom packet class, as well as signature scanning to allow the finding of virtual tables and functions used in GunZ 2010. Through this, it would create room for possibilites like creating a new login screen, game modes and such.

A pseudo-snippet would be:

LH_DECLARE_HOOK(hook_id)
LH_CREATE_HOOK(hook_id, hook_function)

void hook_function(int params)
{
    // stuff.
}

Sadly, the project was eventually scrapped due to the official source code leak.

So what now?
It’s pretty amazing to watch something you’ve created/modded being put to use by many players.

Small preview of the launcher here!

Regarding the launcher, I have updated lots of backend code.
In the old launcher, it only relied on a single web server. This wasn’t completely feasible as users that live far away from the server location would experience snail-paced downloads. Besides that, it caused a few problems when pushing out a new patch because there was a slight possibility that a user might request the patch list while it was being updated.

With the new launcher, it queries the main patch server to look for patch nodes based on location. The patch nodes will synchronise with the main server from time to time, avoiding the need to do everything manually since it would be a headache. This will allow users to download at much faster rates.

There were also some issues in the GM CP.
For example,

  1. It cannot ban users on-the-fly
  2. It cannot communicate with the game to synchronise changes, etc.

To combat this problem, I have written an API server. The API server connects to the server as a client, and serves requests through a certain protocol. It can be used to disconnect banned users, create announcements and even notify users about an item that they have received. Basically, extending functionality of the game server to the website.

That’s all for now!