ID:1956647
 
I have never had more than 30 players on any game I was hosting, but like everybody who is serious, I hope one day I'll have hundreds. I know that when games get somewhere around 100 players they start to lag. Why do they lag? I know it comes down to 4 possible reasons, bandwidth, processor, RAM, and the limitations of BYOND.

My first real question is about the BYOND software. If the host computer had some huge amount of RAM, and 12 processors, with some unbelievable bandwidth, would a BYOND game still start seeing problems with performance at around 100 players? I think this has probably never been tested. In theory is there some reason BYOND can't handle a large player base?

My next question is about the computer being used to host. I'm not an expert on computer hardware, but I can guess what the processor, and RAM are the most important things for a computer that will be used for a game server. There are so many different processors out there, it makes it hard to know what to use. I'm considering something more than the basic computer you buy in the local store, I'll probably get one of Dell's servers. Which is going to be more important in the end, the processor, or the RAM, and about how much of each would guarantee good performance hosting a game with hundreds of players?

I am not sure, but I think the internet connection at the house where I would host from has download, and upload speeds both over 150 MBPS. Is that going to be enough for hundreds of players?
None of this matter other then at least 500 mb RAM and 1 Core CPU and normal bandwidth. BYOND only supports 1 CPU CORE you can have 200 CORES it will only use 1 always. The Reason it lags or freezes its because the more people play the game the more CPU/bandwith the server needs to use on the 1 CORE once it gets past 100% CPU the game will freeze/unfreeze every sec. Only way around it is to optimiza the Game Code to the point it supports large Player Base, This means limiting on stuff that are not necessary for the game to work.
What would I look for in the processor itself? How exactly do you determine which one is best for hosting?
There is no best or worst, BYOND will only use 1 single Core of whatever Proccessor you have.
It sounds like there are some considerations to be made. I don't actually know enough about hardware to know what to actually look for in a processor. I've been looking, and I don't know what actually makes the processor, I know now that I want core power over the number of cores, but I still don't know how to compare processors. Its not as easy as comparing RAM.
lul
Can anybody explain why a game would lag no matter what the developer does?
Because BYOND.
From what I understand, BYOND is run entirely off of an interpreted bytecode (i.e. via emulaton), and is never recompiled to native machine code via dynarec (like Java or C# are), so it's bound to be slower than either of those languages. It also a single-core only, so it doesn't take advantage of multi-processor or multi-core CPUs at all. Careful programming can get around those two things, although the code may still run slower than it would if it were programmed in Java or C#, which are also run via emulation.
If its getting slower every version, that is going to make serious developers look for other software to use. Is there much of a chance of BYOND ever being improved in future versions?
Yut Put wrote:
Pokemonred200 wrote:
From what I understand, BYOND is run entirely off of an interpreted bytecode (i.e. via emulaton), and is never recompiled to native machine code via dynarec (like Java or C# are), so it's bound to be slower than either of those languages. It also a single-core only, so it doesn't take advantage of multi-processor or multi-core CPUs at all. Careful programming can get around those two things, although the code may still run slower than it would if it were programmed in Java or C#, which are also run via emulation.


none of this even matters. open champions of the holy grail and notice the massive fps drop. that fps drop didn't exist one year ago. byond is literally getting slower every version. ter13 has complained about it and says it's getting so bad that switching engines is worth


Dude, your sounding like Falacy now xD. Even though I 100% agree.
ter13 has complained about it and says it's getting so bad that switching engines is worth

I'd prefer you didn't namedrop me like that without the context of the overall conversation.
In response to Ter13
Sex is really good!
In response to WorldWideDuelist
Soo now i confuse. :( I don't know do my game - Quillby
http://www.byond.com/forum/?post=1905822
, has a future... (write lags, etc)
I'd wager to say that most of the lag seen is network latency and byond limitations (or just bad coding practices that produces unnecessary lag).

Another thing to consider is: that the newer PC's get, the more the older technology (old DX9 games, etc) lag and lose compatibility support which causes even more problems.
First of all, yes, your processor does matter, but it is the single-threaded speed that matters.
Second of all, tests show that I could get close to 200 players on my BYOND game that I'm working with now (on a modern laptop with an Intel processor, not even a server PC), and this is with very intensive visibility code. If I removed the visibility code, I could possibly get 200. I'm not even counting the other things that I'm doing that most or no BYOND games ever do. (Bone-based animation, not-so-simple combat logic, etc.). So please consider stopping being negative nancies, because if you can get 100 players on a server, that's good enough. Guess where the multiple cores come in? When you create multiple processes! Instead of multi-threading, you make use of multiple applications. So now you have 100 more players! If world.Export was faster (or your game doesn't require fast visual responses), perhaps we could even use multiple processes to emulate one giant server. If you have 10 BYOND processes running on your server, imagine 1000 players playing at once on the same "server". But for now, there are other ways you could use multiple processes. One way would be to using another BYOND process to do your heavy logic that doesn't need to return quickly or instantly. Another way would be to make "channel servers" or "region servers", you know, like "real MMOs" do? There are plenty of ways to have your game hold more than 100 players if it needs to (on the same machine too, so you don't have to worry about wasting money on multiple servers!). Don't worry about it too much until you get there. As long as your code isn't hideous, you can easily change it later to support more than 100 players, using the method(s) mentioned or just thinking outside the box.

Please don't take this message as negative or an insult, by the way, I'm just trying to inspire. Sorry.

EDIT: Also forgot to mention that my game runs at 60 FPS. Also, it's not guaranteed that older technology (which BYOND shouldn't be considered, it can do many new things [even though it DOES rely on some legacy methods], and the webclient is even better in that regard, once the main issues are ironed out) will get laggier, most of the time it gets less laggy.
In response to Kamuna
And who Exactly will make all that happen for him? There is like only 1 developer that I know of that does this right now, pretty sure 99% of the developers in here don't know how to do the stuff you just described because it's not as easy as just turning a switch. :X
In response to Zasif
This. /|\

Most common "game devs" cannot do commercial scale networking, let alone centralized multi-process server for their Byond game.

It is hard to say that Byond isn't old when some of us here have spent half of our lives on it. Remember that byond is more or less 15 years old, regardless of whatever new tricks it learns. It is still old.
15 years in technology years may as well be 50 or even 150.
In response to Zasif
I'm just saying that it is possible. I'm not saying that he could do it right now. But I'm saying that he could learn how to do it later if he's serious and ever gets to that point. I'm willing to teach him a thing or two if he does get to that point, because if he does, why not? He's helping BYOND grow, so he kinda deserves it. It's not as hard as you might think, by the way.

@AERProductions, yes, BYOND itself is old, but it gets constantly updated. LummoxJR works his butt off to make new features, update old ones, and fix bugs. His work on the webclient might make Dream Seeker completely obsolete, which would me mean that BYOND's client would be using new technology. BYOND's server-side technology works just fine, and constantly gets updated. So really, BYOND is not the most up-to-date software, but you can hardly call all the technology "old". Just some of it. And it fulfills the purpose that it is meant to, and it does it well.
In response to Kamuna
To me if Webclient becomes absolete over the Dream Seeker Exe Client I see that as a big failure because to me real games are played on exe a thing you install and its part of your desktop, to me browser games are a joke and not something people get serious over and not where the Real gamers hang.

But thats just me :X o,o!
Page: 1 2