The average BYOND user's list of fears looks something like this:
4. Death.
3. Talking to girls.
2. A world without anime.
1. Lag.
BYOND users are irrationally afraid of lag. People are quick to shoot down game ideas before they get off the ground because "it would lag". Nonsense! All communication over the internet will have some latency but that doesn't mean lag will be a problem. You'd be surprised at how well BYOND performs.
Here's a video of Deep Dungeon being played over the internet. There were four or five people in the game, almost constantly moving around and killing enemies. Valekor was hosting, I was connected remotely (I have no idea where he lives in relation to me), and lag was not a problem at all - the game ran about as well as it does when I run it locally!
There was no sign of lag at all. Also, I'm pretty sure this game was made before BYOND had native pixel movement, so the movement in this game was taking up more CPU time than it would if the game were re-made now - this means the server could have easily supported many more players.
If you see someone claim that their game wouldn't work because it'd lag too much, call them on it! What they probably mean to say is that their game idea isn't that good or that it wouldn't be much fun, but there's no reason that lag would be a problem.
ID:818336
Jun 16 2012, 8:37 am
|
|
Forum_account wrote:
The average BYOND user's list of fears looks something like this: I Lol'd Either way, that seems to be the truth in most cases. I'm currently testing lag issues out myself with a game in the works that contains music, sound effects, x32+ icons, and a large world (hopefully pixel movement in the near future.) After testing it out on an average server with about 20+ testers, I'll see how the lag goes and show everyone on Byond the results. |
In response to Deathguard
|
|
I like to blame the lag I come across on BYOND. I can't help but push it's limits because they're set so low. It's definitely BYOND's fault that it's so slow, there's no denying that. However, it's fine because it was designed that way from the start.
Games must be designed with the limits in mind, or else it will run slowly, regardless of how optimized everything can possibly get while still using DM. A well-made BYOND game to me is one that is fun and polished (juicy, even), yet simple enough to run smoothly. I'm not saying anything about network lag. I think that's as good as it can get. |
Not only is there barely anything going on in Deep Dungeon, I can see small lag spikes and hitching all throughout that video. It's not unplayable, but it's certainly noticeable. You wouldn't get that sort of jank if you used something besides BYOND with a client/server model which supports client-side processing.
I think it's very good to avoid making anything too technical with BYOND. BYOND is definitely lacking in graphic capability, and even the stuff it does support is stunted by its own chunkiness. If you design your game to be heavily dependent on a stable internet connection, don't be surprised when a little congestion makes your game completely unplayable. If you scaled back just a bit and watered down your design a little to compensate for BYOND's shortcomings it will at least be playable by anyone anytime. |
I don't know if I like calling things limits. I can easily write a computer program that runs out of memory (just allocate a huge array) or maxes out the CPU (make a while(true) loop with nothing in the body) - the program runs into a limitation of my hardware but that's different than saying that I'm pushing my hardware to its limits. In BYOND, the limits come from the tradeoffs you agreed to (whether you realized it or not). You agreed to have almost all processing done on the server so you could use a generic game client and avoid synchronization problems. Saying that you ran into a limit because all processing is done on the server often means you simply weren't aware of that tradeoff. It's still a limitation but it's kind of like saying "why can't I allocate 8 gigs of memory when I only have 1 gig of RAM?" - duh!
I think a lot of people worry about limits because they assume their game has to support a single server with 200 players. The single-server model just isn't feasible. Even in the best case, supporting 200 players is nothing (what successful game only has 200 players?). Having a game with 200 players that runs at 20 fps means that each tick you can spend 0.00025 seconds (250 millionths of a second) of CPU time each tick on each player. Given the tradeoffs you're making by using BYOND, that's just a bad idea. It's no wonder you'll have issues with resource usage. |
In response to SuperAntx
|
|
SuperAntx wrote:
Not only is there barely anything going on in Deep Dungeon, I can see small lag spikes and hitching all throughout that video. That's partially from the video capture software. If I record a video of playing the game when its run locally you'll see "lag spikes" too. Part of it is just a natural consequence of latency. If the server sends 30 updates per second, each one will have a different amount of latency. The client will receive, on average, 30 updates per second but because of how the latency works out there will be some seconds where only 27 or 28 updates are received. This is due to BYOND's server-based model but I wouldn't call it "lag" (this isn't something that happens because BYOND is slow). Avainer1 wrote: i caused this post, didnt i? Not really. This irrational fear of lag already existed and is probably what caused your post. It was a lot more than one post that caused this. Lately I've been seeing a lot of people talk about lag in games and those people just seem to have no idea what they're talking about - of course there's latency and of course games won't run as well over a network. People need to focus on making games instead of worrying that lag might ruin something they haven't made (and probably couldn't make). |
Is "lag" really a fear? I don't really think its a fear.. its more of a concern for the player's game experience. I don't think anyone should say "it's BYOND fault" because they are choosing to use it as a program. If BYOND is that bad and causing lag for their game, which I doubt, they should use another program.
I can see why some games may fall apart in development and stated that "because of lag" it won't be finished. For example, one game that was under development by myself and another, that people were really excited to play. The game was working great until we tried to play it over a network. The system that was created to accurately calculate the player's mouse position on the screen dropped the frame rate by a lot and made game-play almost impossible. The development wasn't canceled due to the fact lag was inevitable it was based on the fact that so much work went into the system and now had to be scrapped for something better. We would have to do a lot more work that would have added onto the already built up stress. So we simple stopped development and stated that lag during game play was the problem. Yeah it could have been finished and maybe it was because we were lazy. It's just an excuse like the rest of them, it shouldn't bother you that much. At least that's my opinion. |
When a project is canceled or something is changed without concrete proof that lag would be a problem, that's the fear of lag at work. I'm not saying this was your experience or rationale, but I think a lot of people expect games to run perfectly over a network. At the slightest sign of lag (or something that might be lag) people throw in the towel. Players will tolerate lag. People have been playing online games for a long time, well before decent internet connections existed. If the game is fun people will tolerate lag.
BYOND game developers often shoot themselves in the foot by making multiplayer-only games with dedicated servers. People would be more likely to tolerate lag in a game if they could run it locally (so it's lag free), see that it's fun, then play with their friends. I think people also make unreasonable or uneducated assumptions about how lag will work. When you run a game over a network it won't perform as well as when you run it locally. Heck, if you run a game through Dream Daemon and connect locally it won't run exactly as well as running it through DS. People assume that this difference in performance is just the amount of "lag" caused by one player being present and that the lag would scale linearly with players and quickly ruin the game. More often this "lag" is just latency and doesn't mean there's a bottleneck. It's likely that you could support many more players before you start to see any decrease in performance. |
Static icons and a small map. Woah....
It still does lag, a full game with your pixel movement is still going to lag. This is just a drop in the ocean compared to what people want to do. |
In response to Oasiscircle
|
|
Oasiscircle wrote:
well, I do plenty fine with women. Those were the fears of the average BYOND user, so this must mean you're not average! |
In response to Red Hall Dev
|
|
Red Hall Dev wrote:
Static icons and a small map. Woah.... Static icons won't make much of a difference. You're already receiving updates about objects when they change position, also receiving a new direction or icon_state wouldn't make any noticeable difference. The game isn't that simple either. It has lots of enemies with AI and many projectiles. If you play the game and try to clear the whole map, you'll realize it's not that small =) It still does lag, a full game with your pixel movement is still going to lag. This is just a drop in the ocean compared to what people want to do. Saying "it lags" doesn't mean anything. What's the "lag" from? Is it because the server can't handle the amount of network traffic? Or is it just because it's a multiplayer game and all communication will have some latency? |
In response to Oasiscircle
|
|
Oasiscircle wrote:
well, I do plenty fine with women. But do you get good grades? |
I would like to know how to have precisely-colliding bullets flying at great speeds without taking too much CPU power. What I've always ended up with is a limit of the number of simultaneous projectiles; one that also limits the number of simultaneous players online, possibly engaged in multiple gunfights simultaneously in different locations on the map.
I like how the news post about native pixel movement says we don't have to worry about projectiles because it detects collisions precisely for big slides. One, I don't really know how to make that work for me. Two, it wouldn't work with vectors because it can only move an axis at a time. |
I agree with this. I was hosting my game a few weeks back and a single player kept complaining about lag.
He's the only one out of the 5 or 6 that were logged in at the time. Sometimes lag isn't created by the host, it's created by the person playing as well (I'm sure this point was mentioned up above, but I didn't read every single post, just the OP) |
If someone really DOES have a lag problem, there's something they need to fix; and it usually isn't 'a new host' or 'BYOND's fault'!
A well-made game should basically never suffer from lag.