Original GunZ 1.5 Source Fixed and Modernized

Initiate Mage
Joined
Sep 5, 2026
Messages
3
Reaction score
4
Hello everyone.
My name is W, also known as Sinful. I have been working in software development for around 10 years, and I started a project based on the original GunZ 1.5 source code.

The goal is to fix the many problems that have existed in this source code for years, improve the code structure, increase security, and make the project easier to maintain.

Most importantly, I want to do all of this without changing GunZ's original physics or K-Style gameplay.
At this point, there are already more than 1,200 commits to this source.

​

What has already been done​

I have made changes to several parts of the project, including the Client, MSCommon, MatchServer, and other areas.
Some of the main changes include:
  • Fixed security issues found in the code.
  • Fixed issues that could cause crashes.
  • Improved memory management.
  • Improved FPS.
  • Improved overall performance.
  • Fixed various logic issues.
  • Improved networking and P2P.
  • Removed unnecessary code.
  • Separated parts of the code that were too tightly mixed together.
  • Reduced coupling between different parts of the project.
  • Refactored functions and classes that had become excessively large.
  • Reduced unnecessary dependencies between .h files.
  • Improved database communication.
  • Fixed security issues found in SQL queries.
  • Improved compatibility with newer versions of Windows and DirectX.
  • Improved audio-related systems.
I am also applying good software development practices to make the code easier to understand and modify.
I am not trying to turn GunZ into an unnecessarily complicated project. Quite the opposite. I want to make the code simpler, cleaner, and easier to maintain.

Security and Anti-Cheat​

I am also putting a lot of work into security. The client has its own protection mechanisms, and the server also performs its own checks. I did not make the server fully authoritative because doing so could significantly change the behavior of the game and negatively affect the GunZ gameplay we know.

The goal is to improve security without ruining the game experience.

I am also working on improvements to the launcher.

One of the ideas is to keep the launcher running while GunZ is open. This would allow additional checks to be performed while the player is in-game.

New MRS System​

Another thing I am changing is the protection system for .mrs files.

The old system is very simple, and there are already tools capable of working with that format.

Simply replacing a 5-digit key with a longer key while keeping the same basic system does not solve the problem.

I am working on a new format that includes:
  • Key derivation.
  • Different keys depending on the version.
  • File integrity verification.
  • A new MRS format.
  • Protection against client modification.
  • Improved file protection.
  • Controlled compatibility between different versions.
This does not mean that extracting the files will become impossible.

If the game needs to use a file, the computer must eventually decrypt it. Someone with enough reverse-engineering knowledge can still try to figure out how the system works.

The difference is that the new system will be significantly harder to analyze and break than the old one.

​

Game Improvements​

Besides the technical work, I am also fixing some issues with the game's overall flow.

For example, I am working on improvements to the Ladder system.

After a match ends, the player will be able to automatically return to the queue instead of having to leave the room, click multiple buttons, and repeat the entire process manually.

I am also working on:
  • Mission improvements.
  • Mission difficulty improvements.
  • Better rewards.
  • Daily login rewards.
  • Lobby improvements.
  • A redesign of Mint, since it is currently difficult to maintain.
  • Launcher improvements.
  • General improvements to the player experience.
These features are important, but the main priority is still fixing and improving the foundation of the project.

Why am I doing this?​

Anyone who has worked with the GunZ source knows that there are many long-standing problems.

Over the years, new features were added on top of code that already had many issues. Eventually, this made some parts of the project extremely difficult to understand and modify.

My goal is to fix these problems at their root.

Today, there are many AI tools that can help significantly with software development. I also use AI during this project.

However, simply giving the source code to an AI and asking it to "improve everything" is not enough for a project of this size.

You need to understand C++, memory management, networking, databases, security, architecture, debugging, and, most importantly, how GunZ itself works in order to know whether a change actually fixed a problem without breaking something else.

The changes also need to be tested, and the behavior before and after each change needs to be compared.

The Goal​

My goal is to provide a much more organized, stable, and secure GunZ 1.5 source while preserving what makes GunZ what it is.

I do not want to change the K-Style physics.

I do not want to turn the game into something else.

I simply want to take an old codebase with many long-standing problems, fix those problems, and leave behind a much better foundation for anyone who wants to continue developing GunZ.

The source will eventually be released on GitHub and made available to everyone who wants to use it.

Once the project reaches a state that I consider ready for release, I intend to make the source public for the community.

This will allow other developers to study the code, contribute, fix problems, and create their own projects without having to start over with the same old issues.

There is still a lot of work to do, but the source has already gone through a huge number of changes and is now very different from the original codebase.

Note: If you have any ideas that you would like to see added to the project, please share them. I would be happy to hear your thoughts and work on them. I will soon post screenshots of the tests. The source will now have regression tests, along with screenshots showing the game running, the new folder structure, classes, and functions.

I will share the screenshots soon.

This time, there will be no excuses for not having a GunZ, and this source will become the standard for all of you.
More updates coming soon.
 
Last edited:
Hello everyone.
My name is W, also known as Sinful. I have been working in software development for around 10 years, and I started a project based on the original GunZ 1.5 source code.

The goal is to fix the many problems that have existed in this source code for years, improve the code structure, increase security, and make the project easier to maintain.

Most importantly, I want to do all of this without changing GunZ's original physics or K-Style gameplay.
At this point, there are already more than 1,200 commits to this source.

​

What has already been done​

I have made changes to several parts of the project, including the Client, MSCommon, MatchServer, and other areas.
Some of the main changes include:
  • Fixed security issues found in the code.
  • Fixed issues that could cause crashes.
  • Improved memory management.
  • Improved FPS.
  • Improved overall performance.
  • Fixed various logic issues.
  • Improved networking and P2P.
  • Removed unnecessary code.
  • Separated parts of the code that were too tightly mixed together.
  • Reduced coupling between different parts of the project.
  • Refactored functions and classes that had become excessively large.
  • Reduced unnecessary dependencies between .h files.
  • Improved database communication.
  • Fixed security issues found in SQL queries.
  • Improved compatibility with newer versions of Windows and DirectX.
  • Improved audio-related systems.
I am also applying good software development practices to make the code easier to understand and modify.
I am not trying to turn GunZ into an unnecessarily complicated project. Quite the opposite. I want to make the code simpler, cleaner, and easier to maintain.

Security and Anti-Cheat​

I am also putting a lot of work into security. The client has its own protection mechanisms, and the server also performs its own checks. I did not make the server fully authoritative because doing so could significantly change the behavior of the game and negatively affect the GunZ gameplay we know.

The goal is to improve security without ruining the game experience.

I am also working on improvements to the launcher.

One of the ideas is to keep the launcher running while GunZ is open. This would allow additional checks to be performed while the player is in-game.

New MRS System​

Another thing I am changing is the protection system for .mrs files.

The old system is very simple, and there are already tools capable of working with that format.

Simply replacing a 5-digit key with a longer key while keeping the same basic system does not solve the problem.

I am working on a new format that includes:
  • Key derivation.
  • Different keys depending on the version.
  • File integrity verification.
  • A new MRS format.
  • Protection against client modification.
  • Improved file protection.
  • Controlled compatibility between different versions.
This does not mean that extracting the files will become impossible.

If the game needs to use a file, the computer must eventually decrypt it. Someone with enough reverse-engineering knowledge can still try to figure out how the system works.

The difference is that the new system will be significantly harder to analyze and break than the old one.

​

Game Improvements​

Besides the technical work, I am also fixing some issues with the game's overall flow.

For example, I am working on improvements to the Ladder system.

After a match ends, the player will be able to automatically return to the queue instead of having to leave the room, click multiple buttons, and repeat the entire process manually.

I am also working on:
  • Mission improvements.
  • Mission difficulty improvements.
  • Better rewards.
  • Daily login rewards.
  • Lobby improvements.
  • A redesign of Mint, since it is currently difficult to maintain.
  • Launcher improvements.
  • General improvements to the player experience.
These features are important, but the main priority is still fixing and improving the foundation of the project.

Why am I doing this?​

Anyone who has worked with the GunZ source knows that there are many long-standing problems.

Over the years, new features were added on top of code that already had many issues. Eventually, this made some parts of the project extremely difficult to understand and modify.

My goal is to fix these problems at their root.

Today, there are many AI tools that can help significantly with software development. I also use AI during this project.

However, simply giving the source code to an AI and asking it to "improve everything" is not enough for a project of this size.

You need to understand C++, memory management, networking, databases, security, architecture, debugging, and, most importantly, how GunZ itself works in order to know whether a change actually fixed a problem without breaking something else.

The changes also need to be tested, and the behavior before and after each change needs to be compared.

The Goal​

My goal is to provide a much more organized, stable, and secure GunZ 1.5 source while preserving what makes GunZ what it is.

I do not want to change the K-Style physics.

I do not want to turn the game into something else.

I simply want to take an old codebase with many long-standing problems, fix those problems, and leave behind a much better foundation for anyone who wants to continue developing GunZ.

The source will eventually be released on GitHub and made available to everyone who wants to use it.

Once the project reaches a state that I consider ready for release, I intend to make the source public for the community.

This will allow other developers to study the code, contribute, fix problems, and create their own projects without having to start over with the same old issues.

There is still a lot of work to do, but the source has already gone through a huge number of changes and is now very different from the original codebase.

Note: If you have any ideas that you would like to see added to the project, please share them. I would be happy to hear your thoughts and work on them. I will soon post screenshots of the tests. The source will now have regression tests, along with screenshots showing the game running, the new folder structure, classes, and functions.

I will share the screenshots soon.

This time, there will be no excuses for not having a GunZ, and this source will become the standard for all of you.
More updates coming soon.
A few months ago, I developed a lot of new things for GunZ and intended to share them with the entire community, but unfortunately, my SSD burned out and I lost everything related to the game; I stopped working on GunZ after that. However, it’s great that you’re sharing this in the GunZ section—it will really help anyone looking to start a server.
 
Back