you could compare the old ss13 with the new build, the old version is so much simpler, but lags almost as much as the new one, this is a prime example of wat forum is trying to get through
The irony in the Space Station 13 case, is the old codebase used to be heralded as a feat of handling 'complex programming' with 'little lag' before it was released, and many quickly realised it wasn't as complex as thought, and was a lot more naively implemented than thought, making up most of the game's lag. The 50 player servers you can commonly see now were unthinkable back then, and they have so many more features now too.
In response to Kaiochao
Kaiochao wrote:
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've found that Move()'s performance isn't that great. I've replaced the pixel_move() proc with something like this to see what the performance difference is and there's hardly any (usually it's better to not use Move()):

mob/pixel_move(dpx, dpy)
Move(loc, dir, step_x + dpx, step_y)
Move(loc, dir, step_x, step_y + dpy)

You can also use Move() to move along both axes, but I'm not sure what the performance difference is there. There's probably a lot of potential for manual checking of obstacles to beat BYOND's built-in checking.

If you're using small projectiles you can treat them as a point and treat every move as a line segment, then see if it touches any mobs. If the bullet moves up 17 pixels and over 13 pixels you'd have to use obounds() to get a 13x17 bounding box and check all mobs inside that to see if the segment hits any of them.

If turfs are relatively static you might be able to gain something by tracing a ray that only checks turfs. That way you find out what turf the bullet will hit first and as it moves, you just check for mobs. I'm not sure how much this would buy you. It might cost more if you trace the ray a long way just to have the bullet hit a mob close to the player. You could also cache the results of tracing a ray. That could help if you expect the player will often be shooting while standing still (ex: so you can clear the cache every time they move).
In response to SuperAntx
SuperAntx wrote:
Oasiscircle wrote:
well, I do plenty fine with women.

But do you get good grades?

I do, actually. ;) So I don't know why I even care.
In response to Oasiscircle
Oasiscircle wrote:
SuperAntx wrote:
Oasiscircle wrote:
well, I do plenty fine with women.

But do you get good grades?

I do, actually. ;) So I don't know why I even care.

I believe the cool thing to say would be -nay?
In response to Truseeker
Truseeker wrote:
I believe the cool thing to say would be -nay?

-nay went out of style with the blogs :)
Yut Put wrote:
Silly BYONDlings and your naying.

Enough horsing around.

At any rate. It does seem as though a lot of developers constantly b- and cry about "lag" in games. If you're so worried about lag, you do have options to solve the problem.

1. Program more efficiently to ease the load on server processors.
2. Move to, or create a better game engine. The downfall to this is that you have to be skilled in another programming language.
3. Make simpler games. People enjoy small arcade style or simple one player games.
4. Buy a processor with a higher IPS.
5. Post about your lag on the forums.
6. Extend my membership.
7. Scream at and smack your computer.
8. Go outside.
9. Climb to the top of any tall building and make bird calls while holding your computer above your head. Shout your penance as loud as you can and jump. Your tribute to the CPU Gods will please them an allow your server to preform better in the future.

Just to name a few suggestions.
In response to Solomn Architect
Solomn Architect wrote:
Yut Put wrote:
Silly BYONDlings and your naying.

Enough horsing around.

I smile upon your pun. :)

At any rate. It does seem as though a lot of developers constantly b- and cry about "lag" in games. If you're so worried about lag, you do have options to solve the problem.

1. Program more efficiently to ease the load on server processors.
2. Move to, or create a better game engine. The downfall to this is that you have to be skilled in another programming language.
3. Make simpler games. People enjoy small arcade style or simple one player games.
4. Buy a processor with a higher IPS.
5. Post about your lag on the forums.
The five above I totally agree with.

6. Extend my membership.

Is this a subliminal message?

7. Scream at and smack your computer.

Been there, done that.

8. Go outside.

This one worries me.

9. Climb to the top of any tall building and make bird calls while holding your computer above your head. Shout your penance as loud as you can and jump. Your tribute to the CPU Gods will please them an allow your server to preform better in the future.

...I thought everyone did that.


I do that, except I make frog calls instead.
Forum_account wrote:
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.

Yeah #1 is pretty much spot on. My current BYOND Project, Faction Wars 2, is plagued by network performance problems. :(
I'm certain it's not because of poor code, but rather because of how overly ambitious I tend to get with my BYOND projects.
Only like one or two VPS services out there can run it properly. Namely, ATHK's performs very well compared to the alternatives.
In response to D4RK3 54B3R
D4RK3 54B3R wrote:
I'm certain it's not because of poor code, but rather because of how overly ambitious I tend to get with my BYOND projects.
In response to Kaiochao
Kaiochao wrote:
D4RK3 54B3R wrote:
I'm certain it's not because of poor code, but rather because of how overly ambitious I tend to get with my BYOND projects.

True story :P

byond://173.254.234.207:1337
If you're interested in seeing what I mean
I see what you did there with the 1337.
In response to D4RK3 54B3R
D4RK3 54B3R wrote:
Forum_account wrote:
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.

Yeah #1 is pretty much spot on. My current BYOND Project, Faction Wars 2, is plagued by network performance problems. :(
I'm certain it's not because of poor code, but rather because of how overly ambitious I tend to get with my BYOND projects.
Only like one or two VPS services out there can run it properly. Namely, ATHK's performs very well compared to the alternatives.

Having "poor code" isn't completely up to you, it also depends on how BYOND handles things. You might use sleep() or spawn() in a way that's not bad conceptually but have too many delayed procs for BYOND to handle. You might generate an icon using an efficient algorithm but have it perform poorly because of slow icon operations. If you're doing something BYOND isn't good at and you're running into these kinds of problems, you do have bad code.

What'd be most ambitious is to try to make a complete game. Trying to do things that BYOND will knowingly handle poorly isn't ambitious, it's wasting effort.
So you're telling us to not be afraid of lag and criticize developers for shooting down their own ideas because they know it will lag...
And then you go on to say that trying to do things that will cause BYOND games to lag is a waste of effort.

What an excellent non-contradictory and convincing point you have going on here, Forum_account. It's good to know that you're facilitating discussion because you actually have a point and not because you get off from giving condescending advice to others.

This thread was off to a good start but now it's just a waste of forum space.
The thing to do now is give up trying to make non-BYOND games with BYOND, and focus on making games that BYOND can actually run. For example, slow-paced RPGs and board games are more feasible than Super Smash Bros or Counter Strike 2D.

Forum_account is saying that there is a difference between efficiency and speed with BYOND. Code can be written as cleanly and efficiently and optimized as possible, but that doesn't mean it will run smoothly.

I think someone needs to write a new DM Guide. One that explains better what you can and can't do with BYOND. (It can't be too hard to list all the things it can do.) It's no longer what you should and shouldn't do with it.

Build your own net dream before writing any code. If you make a list of things you'd like to have in your game to make it fun for everyone, it should be easier to simplify your ideas or pick the things that won't slow down the game. Otherwise, you'll probably be adding features as you think of them before knowing whether they're feasible and fit in with the rest of the game.

I think of BYOND's slowness as a limitation, but it's really just a factor you have to account for when designing your games and picking features.
In response to D4RK3 54B3R
D4RK3 54B3R wrote:
So you're telling us to not be afraid of lag and criticize developers for shooting down their own ideas because they know it will lag...
And then you go on to say that trying to do things that will cause BYOND games to lag is a waste of effort.

There's a difference between the expected amount of latency/lag that any game will experience and the problems caused by a developer using BYOND for something it's ill-suited for. The problem is not that I contradicted myself, but that this contradicts a lot of projects that people work on.

Kaiochao wrote:
I think of BYOND's slowness as a limitation, but it's really just a factor you have to account for when designing your games and picking features.

It's partially that BYOND is slow, but more than anything running over a network (the way BYOND handles it) will be slow. Most people give up when they see a little hiccup in performance, but if you've got a fun game people won't mind at all.

A lot of people have problems because they expect their game will be an MMORPG with a single dedicated server that contains all of the players. Most BYOND users make games so they can have control over players and love the dedicated server model. If you design your game to be hosted by anyone, anyone can play offline or with a small group of people and can help to avoid many of the sacrifices you'd have to make if you wanted to have a server with 200 players.
In response to Forum_account
Forum_account wrote:
A lot of people have problems because they expect their game will be an MMORPG with a single dedicated server that contains all of the players. Most BYOND users make games so they can have control over players and love the dedicated server model. If you design your game to be hosted by anyone, anyone can play offline or with a small group of people and can help to avoid many of the sacrifices you'd have to make if you wanted to have a server with 200 players.

Sounds like you're selling a model whereby all players just make servers and connect with people they know. That would be fine but there's one problem. Byond has been developed to appear it's capable of that, it even offers "Play, Join A Game, Host" but the problem is that anyone who clicks the host button needs to know how to portforward. Most users couldn't give a dam if they know how to portforward and so they have the choice of your personal laggy servers or playing it by themselves which is boring. I don't see how your model works. It just means dedicated players will work it out and make a very small number of servers, basically your game with this model will go no where.
In response to Red Hall Dev
You can easily fix that problem by hosting a dedicated server. I suggest using the services of BYONDPanel.
Forum_account, your latest posts sound eerily similar to something I said awhile ago which you still decided to side against.

I can't determine if I actually got through to you or you're just flip-flopping your opinions for the sake of debating people. Just the other day you refused to acknowledge how some features are effected by lag more than others yet here you are saying it's a developer's own fault for making a game which doesn't run well on BYOND.
Page: 1 2 3 4 5 6 7