It looks like you're new here. If you want to get involved, click one of these buttons!
This has always been confusing to me tbh. How come tons of asian mmos get private servers. o.O
Heck even blade and soul has one now and its still in beta o.O
''/\/\'' Posted using Iphone bunni
( o.o)
(")(")
**This bunny was cloned from bunnies belonging to Gobla and is part of the Quizzical Fanclub and the The Marvelously Meowhead Fan Club**
Comments
B&S Has had one out for a few months.
Its kinda impressive at how good at piracy they are in the east.
I'd assume that making a private server requires you to have access to the server software for the game. That's not released to the general public like the client is. I don't know if the problem is that employees leak it or hackers get access to software that they shouldn't or what. If it's the former, then it could conceivably be a cultural issue of less respect for IP. If the latter, then it's a major security problem: do the hackers steal the database while they're at it?
Actually B&S private server is done by westerm person AFAIK.
Besides WoW also had private servers preety quick. They were missing alot of content and were bugged. Just like B&S ones.
Actually it is frequently done by reverse-enginerring on client, and looking up on packets and data via packet sniffing.
That is usually why private servers for all but very old games are bugged as hell, missing content or mechanics, etc
In example UO private servers were written from the scratch, they did not use 'stolen' code from some angry ex-employer. How I know this? Cause work on them was preety public, almost open source.
It is much easier to create something when you just try to rebuild something in 1:1. Still hard and alot of work but easier and have to figure alot of things by yourself, but easier. It is like writting tetris. It is much easier to just recreate tetris game if you know exact rules how this game work, than doing it from scratch. If you can reverse engineer some of it - it is even easier. (still hard mind you).
That's also why all succesful games have clones fast. Because you can take conceptual things and it is preety easy to think what internal mechanics are used to script certain things. Of course that is difftent things since clones create their own code, but big part of private servers are also newly written code.
I'm not saying you're wrong, but that sounds harder than just recoding the client as well as the server from scratch so that they'll at least work together.
On the other hand, making software is a lot easier if it's allowed to be horribly buggy than if it needs to actually be good.
It is preety easy to find out yourself. UO private servers software should still be easy to find. Also alot of private servers have their development forums more or less open, so you can backtrack their whole development. Release and patch notes for every version, etc
I mean if some version of original legit game servers were out then you would not have much better private servers and they are usually (unless game is very old and private server is 5+ years in development) horribly bugged and many things are not even implemented. Ai for mobs is missing, skills are not implemented and don't work, some part of content does not exist (don't load) and so on.
Of course it is very ahrd to make private server. But it is not that hard to create some server framework to fire up empty world, just with scenery (usually either wituout mobs or with mobs but without ai). Hell first versions of Diablo 3 private servers were up before Diablo 3 release. You could even download source code for it I think.
Of course only thing you could do is to load game and run around (only parts of game avabile in Beta and WITHOUT any mobs and any NPC's, etc). I am not sure if there is real working server out there.
Btw. Did Blade&Soul have not released already in Korea? I think it did. Of course private server was up befroe that. It was empty husk though, just few quests and cutscenes + mobs to kill. Very little of it.
In most cases, writing a new client, even when you have all the assets in front of you, would take months, if not years, for a single person or small group of hobbyist programmers to do. It's much harder to create than a server emulator.
There isn't a "right" or "wrong" way to play, if you want to use a screwdriver to put nails into wood, have at it, simply don't complain when the guy next to you with the hammer is doing it much better and easier. - Allein
"Graphics are often supplied by Engines that (some) MMORPG's are built in" - Spuffyre
Coding a client is easier than you might think. I've been messing with it for a while and occasionally posting screenshots on various threads. It's a lot easier than I thought it would be.
Tessellation makes doing 3D graphics a lot easier if you understand the underlying mathematics. That lets you just tell it to draw a surface in some particular location and orientation, and not have to worry about where the vertices or triangles will go because the video card will take care of it. Well, once you write the necessary several hundred lines of GLSL code (or HLSL if you're using DirectX), that is. But while it's dense, several hundred lines isn't a project that should take years.
But that's assuming that you understand the underlying mathematics. A typical person with a BS in computer science not only has never seen it, but wouldn't even know what to look for. Which I think explains why games have been so slow to embrace tessellation.
I guess that doesn't help you if you're trying to reverse-engineer some other game. But if you're going to make a game anyway, then just make your own.
The server it self is only sending quite limited amounts of information, and the most complicated aspect at least in Theme Parks is to mimic the more complicated PVE encounters and mechanics.
The client already has all the assets in it, if you want to spawn an NPC the client gets a very simple command(Spawn, npcID, coords), and most simple NPC's have client side logic..
All the data that is stored server side such as spawn cycles, loot tables, and other things can be easily data mined by just playing the real game, things like boss fights and scripted PVE encounters needed to be mimicked, but it's not like they need to recreate every thing, if a boss casts a spell on the raid the spell, it's graphics, effects, duration, and other attributes are stored in the client not transferred from the server, so for those events you just need to script the general timing, and triggering of those spells.
Creating clients, and servers once you have them is rather an easy task, especially when they are asymmetrical when you have 90% of your logic in one end, the rest is easy to replicate.
Take a look at ScriptCraft, that's the software which most, if not all WoW Private Servers run on, it's just a scripting engine tied to the same sandbox engine that they used to allow you to run the leaked alpha(and every leaked version since then), it's quite a simple piece of software..
Availability.
Eastern mmos, while not considered extremely fun in the west, always have something, one or few things which are either completely outlandish or very complex, thus making them appealing to people in the west.
However, they are either not released in the west, released after a westernisation (killing off the appealing bits, Tera) or run by a inadequate company in the west (Lineage 2 being the prime example).
Thus private servers fill the gap, Lineage 2 being again the more extreme example, where more people played on free servers than ever on the official western ones.
Flame on!
That's why there are so many "cheats" and exploits in WoW, speed hacks, teleports, "radar" hacks, buff hacks and many other things.
Most of the bugs in private servers are because they could not get enough information to mimic every thing, since it's just a matter of data mining, the longer the game is out there the easier it's to data mine it. Especially when the game provides you with data mining tools(like WoW does).
Understanding the server to client communication is fairly easy, you don't need the source code for that at all, actually reverse engineering is if not easier, than more simplified and focused with out having access to the source code.
All that can be achieved even with out touching the client, listening to the client to server communication is enough, most of it is usually in readable form, and even if it's not it's easy enough to break it down.
Private servers for WoW and many other games, don't even require you to modify the client(except for changing the address of the host server) since the actual logic that goes on in the server does not matter to the client as long as it receives the very small and simple information it needs, many times beyond "world updates" the only thing it gets back is a form of a keep-alive signal from the server that signals the client it's ok to continue with what it was doing, and other junk like chat.
If every thing had to be done on the server side you would have major latency issue, and would require much more massive amounts of servers to facilitate the game.
heck WoW for example runs on a single server per realm...
Youre right regarding source code. Very rarely do these private servers actually have access to source coude. It is mainly manipulating and / or replacing already existing server & client side files. The lack of source code also creates a lot of limitations inw hat they can add to the game, however even with those limitations you can sometimes find servers run by talented staff that can manipulte the files well enought o add in completely new content & features.
I was a Head GM and dev for a 12 game private server platform for awhile, as well as co-owner / dev / GM for another single game server. One of those 12 games, as well as our single game server was for RF Online. We were able to expand so much on what existed in retail with adding completely new & original maps, implementing the new Korean UI, redesign of classes and their skills, improving / fixing bugs with certain features & mechanics, original mobs, unique skills & effects, and custom armors and weapons, etc. But lack of source code prevented us from adding in some really great ideas we had because certain things just cant be changed through the files and require the source.
Its actually quite easy to get a lot of these games up and running once you have all the files & structures you need as well as someone with knowledge of things like SQL DBs. Theres also a pretty massive community out there, similar to the modding community in some games, who all work together in perfecting structures, providing dev tools, and getting ahold of the most recent files. Sure there are those that are all secretive like and want to keep certain things for themselves since it will make their servers unique, but for the most part you can find devs and owners of various servers from all over the world working together to get things perfected
Any how back to the OP i would assume it has 2 major reasons.
1) People from the west wanting to play Asian games that will not be released, supported, or even playable outside of Asia.
2) Asian companies that will not release said games in the west can't really peruse them legally since they do not have a local publisher/representative, the game and other assets are not registered trade marks/IP's in those regions, etc`.
Are you being in tentionally obtuse here? There is a difference between coding a client based on your own personal criteria and choice of assets, and coding a client to use existing assets, existing communication, existing animation and existing UI to function properly with an existing server.
There isn't a "right" or "wrong" way to play, if you want to use a screwdriver to put nails into wood, have at it, simply don't complain when the guy next to you with the hammer is doing it much better and easier. - Allein
"Graphics are often supplied by Engines that (some) MMORPG's are built in" - Spuffyre
Server side doesnt have as much to do witht hose things as you think it does. For example assets, animation, and UI are pretty much irellevant when it comes to server side. Server side tells you things like which animation should be used, but that animation can be replaced with just about anything, wether it already exists or you created it yourself. Same goes for assets. You can replace the assets client side with something completely different, and as long as things are named properly, the server side doesnt know the difference. The files for assets, animations, and UI do not even exist on the server in most cases. Its all client side.
Replacing those things requires no work whatsoever on the server side, and patches for such things can be pushed out directly to the client side without even requiring a server restart, etc.
We're talking about the client, not the server. I'm well aware of what goes into both.
There isn't a "right" or "wrong" way to play, if you want to use a screwdriver to put nails into wood, have at it, simply don't complain when the guy next to you with the hammer is doing it much better and easier. - Allein
"Graphics are often supplied by Engines that (some) MMORPG's are built in" - Spuffyre
I suppose that I'm thinking mainly of a project that I've been messing with. I haven't seen the internal workings of any commercial game, but I know the source code that I've written.
The way that I do it is that I have a quasirandom number generator, which randomly places trees and rocks and so forth in the game world. There aren't any mobs yet, but there will be, and they'll likewise be placed randomly.
The server will never need to tell the client where various terrain is, nor will the client need to tell the server. Rather, when the game world is created, the server will have to tell the client the random seed, and then they both generate exactly the same game world in exactly the same manner. The server will have to tell the client about mobs moving around and attacking. But even that will just be something to the effect of "mob ID #16400965 is at (39.3948539, 741.9864393) in region #16 facing at angle 9.43854935".
AI will be handled on the server, and in order for it to make sense, the client and server will have to agree on where the obstacles are, so that mobs don't appear to run right through obstacles on the client. They'll have to agree on what the mobs are, or else the client won't know what mob #16400965 is.
So how does the server know where the client thinks everything is? If you know the exact quasirandom number generator, and the exact order in which it is applied to various objects, then it's pretty easy. But if all you have is the compiled client (not source code) and you want to reverse-engineer it, I'd have no clue how to do so--and I wrote the source code.
I know the quasirandom number generator (I wrote my own both so that I'd know it has the exact properties I need and also because Java's built-in ones are way too slow for my needs), but making it work requires knowing the exact order in which objects are generated, how many times it is called for each object, and what is done with it each time it is generated. Some objects will choose a location first and then an orientation, while some will go the other way around. When choosing an orientation, I'm not consistent in which angles get picked first. Sometimes the angles are picked from arbitrary intervals that you'd have to know. In some cases, it randomly generates an orientation, then tests to see if it likes it, and if not, discards it and rerolls for the same object. Sometimes there are really arbitrary-looking numbers hard-coded in, such as that a number of railroads tracks cross a zone boundary at an angle of .0107576645 radians.
And getting most of the steps right isn't good enough. If just one step is wrong, then the random seed used for subsequent ones will probably also be wrong, and the entire rest of the game world is wrong. To write your own server without being able to copy and paste the client source code, you'd have to reverse engineer millions of calls to the quasirandom number generator, and get every single one right. That's trivial if you've got the source code. But if you don't, it's hard enough that it would be easier to write your own game from scratch.
Do some games have server-side code that is easier to reverse engineer than that? Probably. But I'd think that at least some would have some things that are trivial to do on the server-side if you have the client source code, and basically impossible if you don't.