059 (02-28-2017),cxydsaewq (03-28-2016),Fucking Moron (03-28-2016),ImNotMakdoon (03-28-2016),Jankos (03-28-2016),Kushala Daora (12-07-2017),Lxys (04-03-2016),sacredmike (03-28-2016)
i looked at a few sources, and i noticed that a lot of private servers just query the database directly for all their resources, at the expense of query overhead and data vulnerabilities in their servers.
but since the game is written to redundantly access high-activity nodes of data for quick-saving characters and ensuring fast load-ins, why not have a structure in the source built to store account/character data as a "data synchronization buffer"?
the buffer could be stored in a separate process from server.exe and wServer.exe to prevent sudden data loss due to possible failure of either system, and it could periodically flush its data to the database or retrieve data for players that aren't stored in the sync buffer.
without a data sync buffer, the server will do this:
1.) client enters portal
2.) server saves client data to memory
3.) server queries database to save data, near-instant travel time as the database is on the same host as the server
4.) database runs a search query to find the player rows, causing the database to scan the entire table for one singular operation
5.) database updates data
6.) client reconnects to new world
7.) server queries database to find data
8.) database runs another search to find the player row
9.) database returns data to server
10.) server enters client in
with a data sync buffer, the load can significantly decrease for the same situation
1.) client enters portal
2.) server saves client data to memory
3.) server updates referenced buffer data (buffer data can contain a pointer to a client processor which will nullify a scan procedure)
4.) client reconnects to new world
5.) server retrieves referenced buffer data (near instant travel time because same host)
6.) server enters client in
the buffer can be better because it works with less data than the whole database because it only contains data of users that are logged in and active!
most pservers work with 10 to 150 players so imagine the performance benefit when you only have to run quick data queries on an organized accessible buffer of 10-150 players! most databases by that point will be reaching hundreds to thousands, and being able to query a small kernel of data for server needs can really improve scalability!
please leave your thoughts!
Last edited by JadeRue; 03-27-2016 at 07:34 PM. Reason: added something too :)
059 (02-28-2017),cxydsaewq (03-28-2016),Fucking Moron (03-28-2016),ImNotMakdoon (03-28-2016),Jankos (03-28-2016),Kushala Daora (12-07-2017),Lxys (04-03-2016),sacredmike (03-28-2016)
You seem to be new to this section, so I'll be quick.
Most people having a private server are not into coding, at all, they learn as they proceed.
That being said, only about 1% or even less of the people having a private server could do that.
Anyways, that sounds like a good idea, if you have more improvements why not join a private server dev team like Phoenix 2?
You could also release a tutorial and watch people use it without giving credit, your choice
Anyways, welcome!
[Vouched] Filehost l VPN l Music l Streaming l Gaming l Education l Security l Torrent l Others [All Accounts Shop]
Educational Account Store [Chegg l Coursehero l Grammarly l Pluarsight l Udemy l Ect]
VPN Store [ExpressVPN l IPVanish l HideMyAss l VyerVPN l NordVPN l StrongVPN l Others]
90% of Torrent - Trackers Accounts l Invites l Service l Warranty
Looks like someone new knows what they're doing.
[Vouched] Filehost l VPN l Music l Streaming l Gaming l Education l Security l Torrent l Others [All Accounts Shop]
Educational Account Store [Chegg l Coursehero l Grammarly l Pluarsight l Udemy l Ect]
VPN Store [ExpressVPN l IPVanish l HideMyAss l VyerVPN l NordVPN l StrongVPN l Others]
90% of Torrent - Trackers Accounts l Invites l Service l Warranty
Well you seem to be very unaware of current server programmers active on this forum. To make a great server you neccessary don't have to know c# like beast to make something unique that makes a server specific and attractive. This guy is very helpfull. The statement you make about "1% of this community knows how to code" is pretty wrong. I actually find it important to be exact if you really wonna calculate the ammount of active coders and leechers. But. If you have counted every registerd active user on this community, divided with the ammount of users familiar with c#, or any other programming language, and at last multiplied with 100 then, fair enough. Gj. Otherwise don't say such things. Its not really true anymore. Its a bad excuse for helping other people who's just here to achieve hosting their own server and might earning some bits of money.
Tell me unique servers?
Phoenix, doomed, mmoe and that's bout it
Most people release servers with some new items and maybe a dungeon, not really unique to me.
Phoenix hat alot of classes, mini games, custom ui etc
Doomed has a shitload of content
Mmoe used to be the most actual realm experiance
Correct me if I'm wrong, just my own opinion mate
[Vouched] Filehost l VPN l Music l Streaming l Gaming l Education l Security l Torrent l Others [All Accounts Shop]
Educational Account Store [Chegg l Coursehero l Grammarly l Pluarsight l Udemy l Ect]
VPN Store [ExpressVPN l IPVanish l HideMyAss l VyerVPN l NordVPN l StrongVPN l Others]
90% of Torrent - Trackers Accounts l Invites l Service l Warranty
Sure sure, i see np but unique is from person to person, servers can't be judged in general by a single person ^^ Also i think Regnum was unique not cuz its mine, but it was the first source released with that new type of guis and design ( a design people have not seen before and wanted to explore furthere)
i could release a tutorial on how to find and fix common memory leaks
at least then people won't need to restart their servers as often ^.^
there are a looot of testing/deployment tools offered by microsoft and other developer networks that really help improve stuff, like memory profilers
puppies! <3
Kushala Daora (04-11-2016)
I dont know if you've looked into this yet, but you should try to add IDisposable to some classes as well as removing worlds after they arent used anymore.
YEP cock
yeah!
mainly to to the classes that have a non-static lifetime in the software design, which is nearly everything besides things like static definitions or base objects like ticker threads and loggers.
i've also already wrote up an automatic world disposing system with time-based tolerance.
puppies! <3