ID:133489
 
Well, it seems that my game has really hit a road block when trying to make walking delay in my game.

The max. level is going to be level 400, and I wanted to make the speed increase every level, but with the system how it is now, I would only be able to do it every few levels.

If I did so with the current system, at level 1, you would have to wait 40 seconds before moving one square, and level 400 would get to regular movement speed. This is when I increase it by only 1/10th a second each level, which is the lowest amount I can add.

I want them to get fast EVERY level they gain, and not just every few, so as you can see, with my intended functionality of more speed EVERY level, then you would go way too slow at level 1, and at level 400, you would go too fast, since it gets all the way back to default speed (no delay) when they were to get to level 400.

If it were 100 ticks per second though instead of 10, then I would be able to tweak it a bit more, and MAYBE make it work right.

If the creators of BYOND here would change it so that I would be able to do delays of 1/100th of a second that would be great. I would like it to do a tick every 1/1,000th of a second, but I think that is highly more unlikely than 1/100th of a second being added.
You can set tick_lag to 0.1. Sleep() also allows decimals, I think. But if you're delaying someone's movement for under a tenth of a second, there's not really going to be that much of a difference anyways.
In response to Nickr5
well, after you get far up there, it will be a huge difference. I know each level it wont be a huge different, but the accumulative of levels will, and I want to reward them after each level, no matter how minor the difference.

also, i also posted this since byond isnt made for FPS games, and well, it would help them as well if it went so in more than only 1/10th of a second in the making of better FPS's.

BYOND to move forward with everything they can, its what everyone wants. The BYOND community is by no strech big... It has the least member's than even the worst of games, and it has quite an assortment of games.

Anyways, just hoping that some time it will move forward and make it so ticks will go in 1/100th of a second or even 1/1,000th of a second to make FPS game's easier, and make it easier on the developers of the games on this website. If it werent for those developers, byond wouldnt have any games at all.

EDIT:Fixed spelling errors.
You can lower world.tick_lag already, though sleep() naturally doesn't support decimals IIRC.
In response to Superbike32
Did you read my whole post? To make a tick equal 1/100th of a second, you set world/tick_lag to 0.1
In response to Nickr5
Nickr5 wrote:
Did you read my whole post? To make a tick equal 1/100th of a second, you set world/tick_lag to 0.1

Are you reading? Why in the world would anyone want to lower the tick of the entire world? Clearly, you see how useless that is unless you're making a one player game.

Anyway, this has already been answered, Post [link].
In response to Hulio-G
He wants to be able to control delays down to the 100th of a second. The only way you can currently do this is by lowering tick_lag. It's not always the best choice, as the server can't always handle it, however I doubt if what the OP is asking for was implemented it would turn out much better.

Kaioken offered the same suggestion, so I have no idea what you're talking about.

Why in the world would anyone want to lower the tick of the entire world?
On the other hand, if you have a very fast network, you may wish to decrease tick_lag to speed up the response time to player commands. - DM Reference
In response to Nickr5
It's fine to share your knowledge but I just don't understand why you insist on suggesting something thats useless to him. Yes, useless to him. "Clearly, you see how useless that is unless you're making a one player game." You know the server won't handle it well, why do you think he ignored those replies?

He's making a fps shooter and he's wanting client animation speed in which the quantity changes and varies between each unique individual. He doesn't want the whole world changing speeds (in which you're aware of the consequences).

I've already made this suggestion so I'm not entirely clueless about the topic.
In response to Hulio-G
Hulio-G wrote:
It's fine to share your knowledge but I just don't understand why you insist on suggesting something thats useless to him. Yes, useless to him. "Clearly, you see how useless that is unless you're making a one player game." You know the server won't handle it well, why do you think he ignored those replies?

I don't know that he can't handle it - a good internet connection with efficient code and he should be fine.

He's making a fps shooter and he's wanting client animation speed in which the quantity changes and varies between each unique individual.

Unlike your post, this isn't about changing the animation speed. He simply wants more control over the time it takes a mob to move from one square to the next (not the time between frames in an animation).

He doesn't want the whole world changing speeds (in which you're aware of the consequences).
The whole world wouldn't change speeds. He just needs to be aware of the change when writing his game.

I've already made this suggestion so I'm not entirely clueless about the topic.
Your suggestion wasn't quite the same as his.
In response to Hulio-G
You're clueless about it, because you don't even know what the topic is. Indeed you should follow your own advice: don't be stubborn and instead simply read the topic. This is not about the animation delay; this is not what you suggested.
In response to Kaioken
Kaioken wrote:
You can lower world.tick_lag already, though sleep() naturally doesn't support decimals IIRC.

It does!

sleep(world.tick_lag) will always sleep one tick, even with fractional world.tick_lags.
In response to Superbike32
Superbike32 wrote:
Anyways, just hoping that some time it will move forward and make it so ticks will go in 1/100th of a second or even 1/1,000th of a second to make FPS game's easier, and make it easier on the developers of the games on this website. If it werent for those developers, byond wouldnt have any games at all.

Some magic code:

var/const/FRAMES_PER_SECOND = 24

world.tick_lag = 10 / FRAMES_PER_SECOND

proc/framesleep(frames)
sleep(frames * world.tick_lag)


However, if you want to make an FPS game in BYOND, I advise you to cancel that ambition right now. BYOND is not designed to allow large-scale drawing on the screen nor is it designed to allow rapid redrawing of the screen. It likewise has no way of doing rendering on the client end instead of the server end.

Such a project would be better suited to DarkBasic or 3D RAD, or maybe even Game Maker if you're very very good at it. All of these game engines have a significant paradigm shift compared to DM (client-oriented instead of server-oriented), however, and none of them are free for the purpose you want. =)
Superbike32 wrote:
Well, it seems that my game has really hit a road block when trying to make walking delay in my game.

The max. level is going to be level 400, and I wanted to make the speed increase every level, but with the system how it is now, I would only be able to do it every few levels.

If I did so with the current system, at level 1, you would have to wait 40 seconds before moving one square, and level 400 would get to regular movement speed. This is when I increase it by only 1/10th a second each level, which is the lowest amount I can add.

I want them to get fast EVERY level they gain, and not just every few, so as you can see, with my intended functionality of more speed EVERY level, then you would go way too slow at level 1, and at level 400, you would go too fast, since it gets all the way back to default speed (no delay) when they were to get to level 400.

If your design won't work because BYOND does not provide the functionality required to do it, doesn't that warrant a reason to change your design to compensate?

If it were 100 ticks per second though instead of 10, then I would be able to tweak it a bit more, and MAYBE make it work right.

No, because if your player has a high enough level they will eventually exceed the speed which their frail human eyes can keep up with. I am however siding with you on the basis that you are making a game for androids rather than humans.

If the creators of BYOND here would change it so that I would be able to do delays of 1/100th of a second that would be great. I would like it to do a tick every 1/1,000th of a second, but I think that is highly more unlikely than 1/100th of a second being added.

You can already do delays of of a millisecond by setting world.tick_lag to 0, but that will constantly spam your game with network traffic if even one client is logged in -- let alone a dozen of them.

You need to start thinking about alternatives over your "faster moving per level" idea if you want humans to play your game.
Perhaps in the spirit of backwards compatibility with the older race of beings that control this planet, you could allow human players to click a tile within range and allow them to teleport to it if their level allows it, perhaps costing more stamina if their level is low and increasing the range per level, although that would require some sort of minimap in the long run.
In response to Superbike32
Superbike32 wrote:
Anyways, just hoping that some time it will move forward and make it so ticks will go in 1/100th of a second or even 1/1,000th of a second to make FPS game's easier, and make it easier on the developers of the games on this website.

A tick is 1/10th of a second, and that's a fact. It's physically impossible to alter this unless you're going to change the meaning of the word "tick" or you're going to mess with the space/time vortex, the latter which I really wouldn't recommend.

In your original post you were talking about faster movement, and now you're talking about FPS games -- those games are not possible in BYOND right now, and probably never will be, because BYOND is not designed to support any 3D b(e)yond "Wolfenstein 3D"-esque graphics.

If you want to make a 3D game, you could look into that "3D BYOND" thing that seemed to be all popular for a second a couple of weeks ago. I believe DerDragon had something to do with it but my head is feeling soggy.

If it werent for those developers, byond wouldnt have any games at all.

That is not a good reason for BYOND Staff to dedicate their lives to implement your idea over all the other ideas that have been suggested and the major things on the todo list that still need to be done.
Not to mention that if it weren't for the developers of BYOND itself, there wouldn't be any developers around to make any games or request any features in the first place.
In response to Android Data
Android Data wrote:
A tick is 1/10th of a second, and that's a fact. It's physically impossible to alter this unless you're going to change the meaning of the word "tick" or you're going to mess with the space/time vortex, the latter which I really wouldn't recommend.

I disagree with that definition, myself, by merit that I define a tick to be "the rate at which the server updates its clients". sleep() is expressly given a delay in 1/10 seconds, not ticks, for this very reason: using a lower world.tick_lag increases the frequency of ticks but does not affect the number of real seconds a sleep() statement requires.
In response to Jtgibson
Jtgibson wrote:
I disagree with that definition, myself, by merit that I define a tick to be "the rate at which the server updates its clients".

Oops; I was under the impression that "tick" was in the dictionary and defined as "1/10th of a second" next to second, nanoseconds etc.

:(
In response to Jtgibson
Wow, really? I always thought it slept the number in ticks. This explains all those problems I had with a small pixel movement project I had before!

It looks like some good did come out of this topic.
For lower/upper bound problems such as this, I sometimes like to use the "every few levels" method you mentioned and then add a random chance to get the bonus from the next tier. The closer the person is to the next tier, the more likely they are to get the bonus.

That said, I don't think people are likely to notice such small movement differences and network lag will camouflage them even more.
In response to ACWraith
Well, I want some kind of FPS game, and it will have levels and stuff as well. It will be mutiplayer, but I have already a way to make all these things work.

The client on their computer will simply connect to my server, and will communicate player positions back, and what the people are doing and all. All people can move through one another anyways, but monsters will be done on the 'server'. So all damage and all will be handled from the 'server'. All the hp and mp and stuff will be handled via the 'server'. Since it is ran in one player mode, then just communicates with the server in just a way, then it wont lag. Also, all important stuff will be ran from this type of 'server' as well, so it can't be hacked the important stuff, such as location, gold, dmg, health, mp, etc...
In response to Superbike32
Superbike32 wrote:
The client on their computer will simply connect to my server, and will communicate player positions back, and what the people are doing and all.

That's going to cause some significant overhead, since your server has to maintain the game and every client constantly has to spam your server with "OK, where am I?, what is in my view, what are my options?, who is logged in?, is there another player or a monster in view?, if so what are they doing?, ...".

And your graphics will still look like Wolfenstein 3D at best.