Time Nick Message 13:25 Taoki PilzAdam: poke 13:34 BlockMen Taoki, https://github.com/BlockMen/minetest/tree/tpv_taoki 13:34 Taoki BlockMen: Nice. Does that have your 3rd person code with the lua functions for the offsets? 13:35 BlockMen yep 13:35 Taoki Awesome :) 13:35 Taoki I should try it now. What's an example for the function? 13:35 Taoki Ah... I have to checkout a new remote though. Usually having trouble with that 13:35 Taoki *on GIT 13:36 BlockMen player:set_local_animation({x=0, y=79}, {x=168, y=187}, {x=189, y=198}, {x=200, y=219}, 30) for the animations 13:36 BlockMen )player:set_eye_offset({x=10,y=30,z=0},{x=-10,y=-10,z=-5}) for offset 13:37 Taoki Local animation? 13:38 Taoki What's the first one do? 13:38 BlockMen because the animation for your (local) player is done at client to prevent lags 13:38 proller git remote add upstream https://github.com/minetest/minetest.git ; git fetch --all ; git merge upstream/master 13:38 Taoki Aaah. Hmm... need to think well how this will work 13:38 BlockMen but since games can use different models per player the client needs to get the animations frames 13:39 Taoki BlockMen: There are currently no hard-coded animations. I was hoping it could be kept that way. Is that function documented so I can understand how it works? 13:39 Taoki Sure. 13:39 Taoki The idea of having hard coded animations though sounds a bit meh. At the same time, it won't look OK locally without them 13:40 BlockMen https://github.com/BlockMen/minetest/blob/tpv_taoki/doc/lua_api.txt#L1854 13:40 BlockMen its not "that" hardcoded since games, mods, w/e can change the model and the animation, so... 13:41 Taoki Yeah. But I think this creates a somewhat odd situation. Animations for other players are done in Lua, but local player animations are set differently 13:41 Taoki I tend to think this might have to be done differently 13:42 Taoki TBH... I'd be tempted to say we should make a function to set standard animations for all players. While leaving set_animation to trigger custom ones mods might add 13:42 BlockMen Taoki, where is the difference if lua sets the animations just on server or on server AND client? 13:42 Taoki so instead of a set_local_animations, we might have a set_standard_animasions, which does the same thing but for all players 13:42 Taoki well, 13:43 Taoki When I added animations, I made the Lua API inform clients of animation changes only. So you don't for example configure a walk animation... Lua simply detects when the player presses a movement key and triggers an animation on him then 13:43 Taoki Among other things, this also means more packets. It's indeed something I should have done a bit differently 13:44 Taoki The best way would be this: A set_standard_animations function, which sets the frames for walk / stand / dig / die... just like what you mentioned now. But not only for local player... for all players. Such animations are then processed client-side only for every player in view, not only the local one 13:45 BlockMen the animation for the client is only send once (or how often you want call it) 13:45 Taoki This would mean less lag, and quicker animation updates 13:45 Taoki Yes 13:45 Taoki I'm just saying we should do it for all players, not only the local player 13:46 Taoki Because if walk / stand / dig / die animations are handled client-side only, with Lua only sending the frame list once for each player, we have quicker and less laggy and less network costly animations for everyone. 13:46 BlockMen would it save that much bandwidth when its jsut sends the state instead the frames? 13:46 Taoki It's my mistake I didn't do that when I added 3D model support first, I should have thought better actually 13:46 Taoki Yes. Not just bandwidth, but animations on other players would update more quickly. Since the client can detect when the player stops moving 13:47 Taoki Right now, whenever a player in your view starts / stops moving, the server sends a new trigger_animation packet. More bandwidth AND if it doesn't arrive at the same moment as the player's position, you'll see the player moving with the stand animation or standing with the move animation (walking in mid air) 13:48 Taoki However, the current set_animation must remain there as well, and have priority over such local animations... so mods can always animate the player and have him do custom things 13:48 Taoki Only ones that should be client-side should be stand, walk, dig, walk + dig, die (death should be there too) 13:50 BlockMen for some reason i did not die locally (but cant remember right now) 13:50 BlockMen *death 13:50 Taoki BlockMen: So can you try to change player:set_local_animation into player:set_standard_animation and have it act not just for local player but for all players? But while keeping set_animation (the server one) at priority over it, as well as resuming default animations when set_animation stops the custom animation. 13:51 Taoki Sadly this might be tricky, because the client might not know what keys another player in view is pressing. For example you have to guess walk by noticing the velocity of other players 13:51 Taoki Dig I'm not sure how one can tell from the client. Death should be possible to observe because IIRC you know the HP of any player client-side, so you can set death animation when HP is 0 13:53 BlockMen Taoki, i wont start to rewrite the whole player animation now... 13:53 Taoki BlockMen: This offers the opportunity to add another very welcome feature... witch surprisingly enough I was just thinking about 15 minutes ago: The playback speed of the walk animation matched to the speed of walking 13:53 Taoki ok 13:53 Taoki Problem is that if you create a set_local_animations, this might be difficult to do later 13:54 Taoki The function would have to be renamed and re-interpreted 13:54 BlockMen not necessaryly. e.g. could the new function pass the values to the player and set_local_anim would be not useable then 13:54 BlockMen *interpretated 13:55 Taoki BlockMen: For now, I'd suggest simply changing the name. Instead of player:set_local_animation, use player:set_standard_animation or something. You can leave it for local player only, and later on me or someone else can add it for all players. 13:56 BlockMen Taoki, i think this is a worse idea since the stand_animation func must interpret both (old and new). better to leave it like now and let the new function do the job when done 13:57 BlockMen *s/worse/bad 13:57 BlockMen IMO that would be the "cleaner" way 13:57 Taoki Really not sure... we risk having to use two functions that do nearly the same thing then 13:58 Taoki Well, this could be used to have different local animations client-side... not sure what use that would be though 13:59 Taoki BlockMen: Would it be very hard to try and make the function work for other players too though? It's not a big rewrite of the animation system IMO. The only problem at all is detecting when walking / digging without knowing the pressed keys, otherwise it should work the same way 14:00 Taoki I can answer any questions from what I remember about the animation system 14:00 Taoki I'd try it myself, but it's harder for more than one person to work on the same code at once. 14:01 Taoki You can probably just remove if(m_local_player) from the current function, and instead of using movement keys use velocity information... that should be it. 14:01 BlockMen i can try out, but since my patch gets not merged right now we can think about that again and maybe find "the" solution^^ 14:02 Taoki Sure. Not something that should be rushed, but yeah I think this needs to be thought of nicely :) 14:02 Taoki I'll look at your current code and see if I can find more specific suggestions 14:02 BlockMen any comments on set_eye_offset? 14:03 Taoki Its functionality looks good to me 14:03 Taoki I was only wondering one thing though... 14:04 Taoki Would it be better to not make it act as an offset, but as new positions entirely? So it's not applied on top of the default player's head position, but from the center of the entity to specify new positions entirely 14:04 Taoki I'm not sure which would be best, so rather asking than suggesting 14:06 BlockMen i dont think it should be done by pos for player, since the camera is attached to the player (and should be) 14:06 Taoki Yeah. The default one has a position or offset too however. I wasn't sure where and if that should be changed 14:06 Taoki Perhaps offset is better yeah 14:07 Taoki Other than this (which isn't very important) it looks good to me yes :) 14:08 Taoki set_eye_offset helps fix the ability to have any shape or form of model which is great 14:08 BlockMen i suggest to add a max negative offset for y for first person view too (to prevent moving under the players pos) 14:10 Taoki Eh... that's the modder's responsability I think. Anyone would probably test where the camera goes and not add it under the ground or something 14:11 BlockMen ok, then it stays as is 14:11 Taoki For now I'm looking at the code here https://github.com/BlockMen/minetest/compare/tpv_taoki#diff-722710b5ecd9db42e7dd785dd517e186R1082 Trying to figure out how at least movement animation can be done for local player. And actually, if the function can even be allowed on entities... for mobs to benefit of it too 14:12 Taoki Don't worry I'm looking for a simple and clear solution :P Don't wanna push you into a huge rewrite of animations 14:12 Taoki Just that if this will be there, I'd be happy to see it be right and complete 14:13 BlockMen the movement is already detected in step() float moved = lastpos.getDistanceFrom(pos_translator.vect_show); 14:14 BlockMen so yeah, in general it should work. but you still need to send a value if player is digging or not 14:14 Taoki BlockMen: if(controls.up || controls.down || controls.left || controls.right) Might there be a way to instead use something like if(velocity.X != 0 || velocity.Z ~= 0)? That would make it work for any player or entity 14:14 Taoki That should be all that's needed to have movement detected for anything 14:14 Taoki Yeah, digging remains the only problem then 14:19 BlockMen Taoki, what when a player is riding (a cart for examlpe)? then the velocity is > 0 and the walking anim would be shown 14:20 Taoki We might need to send a boolean to the client to let it know when another player is diffing. And I'm not sure if it can be made to work for entities too, so hostile mobs who attack the player can do the same for better animation 14:20 Taoki Ah. We can detect if the player is attached to something 14:20 Taoki That's certainly possible... I think you can check if parent is null 14:21 Taoki Examples should be around in content_cao.cpp 14:21 BlockMen lets concentrate on players first 14:21 Taoki yeah 14:21 Taoki Actually, I think digging can work only on players. Movement animation however can be allowed for all entities... won't require anything 14:22 Taoki Since you can check velocity on anything... just don't put an if_player check on movement anim and only put it on dig anim. Sounds about right 14:23 Taoki Also, you're right... death animation doesn't need to be client side. Because it's triggered very rarely and something the server can be in full control of 14:27 Taoki BlockMen, so plan would be: if(m_is_local_player) goes away. if(controls.up || controls.down || controls.left || controls.right) becomes if(parent == NULL && (velocity.X != 0 || velocity.Y != 0)). Digging needs to become a boolean which the server sends to clients... should be possible to add in the player information update package. if(controls.LMB || controls.RMB) would be replaced by if(bool) 14:28 Taoki I think that would do everything right, and animations would all be better as well :) 14:30 BlockMen Taoki, guess that should work ;) 14:30 Taoki It doesn't need to be necessarily called "digging" also, but rather using. Since it seems to be for both LMB and RMB. And the dig animation represendt all actions well... such as mining / shoveling, clicking a button, fighting another player, or even placing nodes on the ground when building 14:31 BlockMen maybe you could even "abuse" the digging anim for entities as "attack" anim 14:31 Taoki So dig_animation should perhaps be called use_animation everywhere. And this boolean sent whenever a player preforms any action with an item. This can be done later for something other than digging though 14:31 Taoki Yeah :) 14:32 Taoki BlockMen: However, I'd suggest removing any check whether the entity is a local player or a player at all. Run the code on any entity. Velocity for movement animation works the same on anything. Digging... well the server sets the boolean, if it's there the animation plays if not no. If someone else later adds this on entities too the code will automatically see it 14:33 Taoki Currently it will only set it on players. Later someone might find a use on entities too, and the local digging animation would then work on mobs too. This should work very nicely :) 14:34 BlockMen m_velocity is set by update position command, but somehow i have 0 :\ 14:34 Taoki That's strange 14:34 BlockMen *s/have/get 14:35 Taoki Will check too. Certainly there's a way to get velocity... otherwise the client wouldn't see anything ever moving 14:36 BlockMen i will try to catch the value before step 14:40 Taoki Yes. I put errorstream< bool touching_ground; 14:51 Taoki So IMO, the best way to handle sneak animation is by later making the walk animation depend on walking speed. Later though, I think it's not urgent but will be needed 14:51 Taoki Nice 14:51 BlockMen well, then we need the velocity value :P 14:52 Taoki It can be obtained by seeing how big the distance between positions is 14:52 Taoki Hmm... but then it needs to be accurately converted, based on the server's sneak / walk / run speed 14:54 Taoki I'd say don't worry about it now though. Might look at the code myself and think of ideas here... can even be done in a separate branch after this is in 14:57 Taoki BlockMen: But yeah, it would probably be something like this for the walk animation: m_animation_speed = specified_animation_speed * (((pos_last.X - pos_current.X) + (pos_last.Z - pos_current.Z)) / 2) * how_much_speed_affects_movement; 15:00 BlockMen how_much_speed_affects_movement? 15:01 Taoki Well there would probably need to be a value which specifies how much the velocity should influence animation speed 15:01 Taoki Right... that's what I meant, dumb wording on my end :P 15:02 BlockMen ic ;) 15:02 Taoki Ideally, that formula should return 1 when the player is at walking velocity, so the animation then plays at specified_animation_speed. When sneaking it would be 0.5 or 0.666 or whatever it will be. When springing it would be 1.5 or 2 or something. So it would always be in the right place 15:03 Taoki Just need to understand how to scale it properly so the feet always move across the ground at any speed the player might ever have 15:04 BlockMen the sounds are player if the diff > 1.5*BS 15:04 Taoki BlockMen: Oh... and use bool touching_ground too, now that you mentioned it. So the walk animation doesn't play when the player / entity is in mid air either... can keep having the stand animation there. Depends if that looks best when jumping and such 15:06 Taoki Not SAYING what to do BTW... just coming up with suggestions to help make this as good as possible :) 15:06 BlockMen i would prefer a walking if moving x or z and a stand anim when just y 15:06 Taoki Yes, that sounds correct 15:06 BlockMen and im making a break right now since i broke mt now :D 15:07 Taoki Hehe 15:07 Taoki Although if the walk animation if only played while the player is touching the ground, Y speed doesn't matter. Since you can't touch the ground and have Y valocity too... this means it's always 0 15:08 Taoki So if you add ground touching detection, you can just take the speed / position vectors and use them as a whole 15:08 Taoki eg: No need to extract X and Z specifically, since we know Y is zero 15:14 BlockMen but then you have no walk anim if the player is walking AND jumping 15:14 Taoki Yeah, while the player is in mid air. In real life, you usually don't swing your legs while in air after you jump. But it depends on how it will look like here 15:14 Taoki It might look better or worse 15:17 BlockMen but you are always moving somehow when jumping 15:17 BlockMen maybe not walking but better than nothing IMO 15:19 Taoki True. Maybe try both ways and see which looks better. Personally I don't mind either way 16:12 Jordach_ suggestion, a falling animation doesn't often appear in first person games as others are already vertical when falling 16:12 Jordach_ maybe arms flailing after x speed downwards 16:14 proller or rotate head down when speed very fast 16:14 Jordach_ proller, you assume gravity is always -9.82m^2 16:14 Jordach_ some games it may be the opposite 16:15 Jordach never assume the direction of gravity -- in cases such as directional based movement (and assume the ground is a plane) 16:21 rubenwardy The log in for the main website is blocked by McAffee: https://www.siteadvisor.com/sites/http://minetest.net/start%3fdo%3dlogin%26sectok%3d081ea0a2e64ab209c7ac040a1f3834b0?pip=false&premium=false&client_uid=3695886712&client_ver=3.6.5.135&client_type=IEPlugin&suite=true&aff_id=691&locale=en_gb&ui=1&os_ver=6.1.1.0 16:23 BlockMen lol 17:05 proller i want to start make multipoint gravity for paramat maps 17:05 proller but in miner 17:42 sfan5 can we have this merged? https://github.com/minetest/minetest/pull/1210 17:53 BlockMen Taoki, well, feel free to switch to the new animations. for me it always crashes when trying to join multiplayer server... 17:54 BlockMen i wont do this in near time 17:56 sfan5 sapier: comment/opinion about #1210 ? 17:56 ShadowBot https://github.com/minetest/minetest/issues/1210 -- Add redis database backend by sfan5 17:57 sapier one second please I'm looking for a message from iqualfragile right now 17:57 sfan5 I have time ^.^ 17:57 sapier hashes aren't very usefull in shadowbot messages 17:58 proller Poll: Rename minetest to sapiertest [y/n] 17:58 sapier poll: force kick everyone only compaining but not helping 17:59 iqualfragile sapier: not even quite sure anymore, could just have been a stupid mod 17:59 proller sapier, i can help if you ca stop commit shitcode 18:00 sapier vanessaE had this patch running for 2 months on her servers by now i'd be surprised by a bug that severe ... but of course there still might be issues 18:00 sapier proller I'm sorry but your code, especially considering the commit messages is way more close to shitcode then mine ;-P 18:01 sapier argh I fed the troll ... damn 18:01 proller code or commit messages? 18:01 sapier BOTH 18:02 proller show my shit code 18:02 sapier and your code isn't better then mine at all ... hardcoding numbers to fix performance issues is crap as it's gonna work at only a couple of machines having exactly same performance then yours 18:03 proller where it is? 18:03 sfan5 apparently nobody wants to comment to pull 1210 18:03 sapier but this discussion is useless as it's not about technical reasons but about violated proud 18:03 sapier slow sfan5 18:07 sapier I'd not be as strict as xyzz but using a macro to do native coding in c++ (despite some text shortening) feels wrong to me too 18:08 sfan5 Usage of macros is not discouraged at all, just don't overdo it like X.org. 18:08 sfan5 http://dev.minetest.net/Code_style_guidelines 18:08 sfan5 do you suggest to duplicate the code instead? 18:09 sapier I didn't say "don't use macros" just it feels wrong ... meaning "if there's a better way to do it it should be used" 18:09 sfan5 I don't see a better way, do you? 18:10 sapier I'm still looking at it 18:10 sapier I'd not consider removing this macro as code duplication just normal coding 18:11 sapier I use macros myself e.g. in scriptapi but there's same code 10 times per file every line 18:13 sapier and please check for code style consistency 18:14 sapier hmmm actually checking this is ShadowNinja's task not mine ;-) ... Shadow! :-) 18:16 sapier what "g_settings->getBool("ignore_world_load_errors")" do we really hava this setting? 18:16 sfan5 yes 18:17 sfan5 the same code is in database-sqlite3.cpp and database-leveldb.cpp too 18:17 sapier try to use "if () {" ... "void func(param) {" more consistent then you did by now 18:17 sapier I didn't check but assume sqlite & co had this setting too 18:18 sapier did you do benchmarks yet sfan5? 18:18 sfan5 no 18:18 sfan5 that is not something we need to merge this pull 18:19 sapier I suggest doing those too ... I don't expect this but if it's 100 times slower there's no chance to merge 18:19 sfan5 redis is not slower 18:19 sfan5 I would bet some money on that 18:19 sfan5 redis has most of the DB always in RAM 18:19 sfan5 and only saves when told to 18:20 sfan5 how should I do benchmarks? 18:20 sapier that's a good question ... didn't someone add scripted movement lately? 18:20 sapier at least as patch 18:20 sfan5 I did 18:21 sfan5 https://github.com/sfan5/minetest/tree/lua_inputhandler 18:21 Taoki BlockMen: Did you add the code and put it anywhere on GIT? I can try it and check it 18:21 sapier don't know if this works but e.g. walking around in a scripted way and checking cpu load could be a test 18:22 sapier another one might be creating new world (from fixed seed) teleporting multiple players to somewhere else (or using forceload) and calc time till cpu settles down 18:23 sfan5 you mean using this? https://gist.github.com/sfan5/9586533 18:23 sapier not sure if those will give valid results but as always for benchmarks without trying no chance to tell for sure 18:23 sapier but if you did design those tests maybe add create a pull reques so we don't have to create them again for next db 18:24 sapier -add 18:24 sapier I'm sure you've got other good ideas for benchmarking too 18:26 sfan5 I'll use the gist thing I linked 18:33 BlockMen Taoki, nope sry. 18:34 Taoki ok 18:35 Taoki BlockMen: If you want to make more additions to the branch them, best to make them before. This likely means I have to copy your branch and make my own version, to work on the code separately... 18:37 BlockMen Taoki, go ahead. the 3rd pv is done so far, so i dont know what i should add before 18:38 Taoki ok 18:39 BlockMen except...renaming the set_local_anim() func and change just its behavior later 18:40 BlockMen sapier, whats your thought on? 18:44 sapier well I'm not the only core dev, I'm just the one most active right now, I'd prefere to have some other opinion especialy on design/graphic things as this isn't what I'm that good 18:45 sfan5 sapier: my test does not seem to be very representative 18:45 sfan5 about 19 secs for leveldb & redis 18:46 sapier adding a loop sometimes helps ... if it doesn't help back to draft and try another idea ... sorry but that's common risk of creating new benchmarks 18:47 sapier and maybe ask some of the guys having written the other implementations maybe they already know where the bottlenecks are 18:55 Taoki BlockMen: Your branch fails to compile it seems 18:55 Taoki error: ‘class LocalPlayer’ has no member named ‘eye_offset_first’ 18:55 Taoki error: ‘class LocalPlayer’ has no member named ‘eye_offset_third’ 18:55 Taoki I assume I don't need to run cmake again 19:01 BlockMen Taoki, oh i forgot to add localplayer.h and localplayer.cpp to the branch 19:01 BlockMen one sec 19:02 Taoki ok. Already forked your branch... I hope a rebase will do the trick 19:08 BlockMen Taoki, should work now. and its no big change ;) 19:17 Taoki Just to be safe: void step(float dtime, ClientEnvironment *env) runs for EVERY client entity, right? Including other players and all Lua entities, like mobs or items or anything at all 19:18 Taoki In content_cao.cpp I mean 19:18 sapier only for active ones 19:20 Taoki Sure... only matters if it runs for those which are visible 19:20 Taoki sapier: BTW... me and BlockMen found a stopper for what we're trying to do there. m_velocity always seems to be 0,0,0 when checked in that function. Any idea why and how we can get the velocity of an entity there? 19:21 sapier it shouldn't be 0 there 19:22 sapier hmm maybe it should ... can you give me the codeline? 19:22 Taoki Tried it and it is. Put errorstream<velocity 19:25 Taoki sapier: content_cao.cpp line 1080. Add the following line at the beginning in that function: errorstream<get_pos() and last_pos was added manually by me (and just for testing updated in step()) 19:33 Taoki I see 19:34 Taoki v3f lastpos = pos_translator.vect_show; 19:34 BlockMen ^ didnt work for me (dont know why) 19:34 Taoki Strange 19:35 BlockMen indeed 19:35 Taoki Prolly needs to be done a bit further down in the step function 19:38 Taoki Works for me 19:38 Taoki float x = pos_translator.vect_show.X - player->getPosition().X; 19:38 Taoki errorstream<getPosition(). What would I use if it's a different entity? 19:41 Taoki Is there actually a getPosition that works for any type of entity? 19:42 sapier 1210 is still lacking benchmarks. 19:42 BlockMen done 19:43 sfan5 oh hey 19:43 sfan5 windows build is broken 19:44 Taoki m_position seems to do the trick 19:44 BlockMen sapier, you had just 3 minutes to wait ;) 19:44 sapier and as I said I'm more at xyzz's side for this usage of a macro so I wont agree 19:46 sapier fixed win32 build 19:54 sfan5 sapier: added lines: 15 removed lines: 10 total lines: 5 | so far for code duplication 19:55 sfan5 (result of removing use of macro) 19:57 sapier well that's not a big difference (in total values) ;-) but quite more readable 19:57 sapier still adding a new database isn't something I wanna decide on my own this is sort of issues demaning opinion of more then 2 developers 20:04 sfan5 sapier: I changed some macro stuff 20:05 sfan5 is it better like this? 20:05 sfan5 or does everyone want me to remove macros completly 20:05 seolfor Hello everyone ;] 20:06 sapier I guess removing it is way less work for you to do then trying to save it by some obscure constructs ;-) 20:07 seolfor I would like to make some contribution for game core and because of that i have few questions 20:07 sapier it's only called a couply of times, benefit of text saving is minimal in this special case, if you did call it hundreds of times that'd be different 20:07 sapier just ask seolfor 20:09 seolfor hmy.. should i expect some problems with deverloping it on windows and Visual Studio IDE or should i use linux and copile it for win ? 20:10 sapier something completely different, can we drop winxp support ? :-) 20:11 sfan5 we can 20:11 sfan5 XP is no longer officially supported 20:11 sapier you can do it on windows too. You're most likely be the one discovering windows bugs first but that's quite apreciated 20:11 seolfor ;D but im talking about win 7 20:13 sfan5 sapier: ok, I removed all macros 20:14 seolfor all right then i will try my best to compile it on windows first, but form experience I can tell it can be tricky 20:16 sapier well depends on your build env. Minetest already does support windows 20:17 sapier http://dev.minetest.net/Build_Win32_minetest_including_all_required_libraries this will help you quite a lot 20:17 sapier seolfor: http://dev.minetest.net/Build_Win32_minetest_including_all_required_libraries 20:19 seolfor thx a lot it should help 20:19 sapier I don't use vs2012 on regular base but I know this did work not long ago (I've written it myself) 20:20 seolfor and sory for dissconnects but im still fighting with configuration of my irc client ;( 20:20 seolfor that's great 20:20 sapier windows developers are always welcome, there aren't many guys willing to fight windows issues ;-) 20:21 sapier usually a broken windows build is detected days after it's been broken while linux build ... couple of minutes ... if ever 20:21 Taoki Mmm... doesn't seem like it will be very possible to detect sneaking for client-side animations :/ 20:21 seolfor ye I known i hate issues on win in bissnes projects ;D 20:21 Taoki There's no way to get stable position updates. All I can do is tell that a certain player is walking 20:22 Taoki sapier: Do players at least have a velocity server-side, which can be sent to clients? 20:23 sapier yes that's good and bad same time taoki ... good thing, players wont continue to walk "forever" in bad lag situations ... bad they get jumpy in medium lag situation 20:23 sapier no they don't 20:23 Taoki sapier: I can't find any way to generate a stable velocity in step() from positions. Any ideas at all? 20:24 sapier player positions are calculated by client and server only checks those "new" positions for validity 20:24 Taoki Problem is that if I walk at a constant speed, I get random values. Sometimes it says 0.5, at other times 2 20:24 Taoki I don't understand why it does this exactly 20:24 sapier because of step jitter 20:25 Taoki I see. Any other way I could go? 20:26 sapier client could provide a sneak flag combined with positions sent 20:26 BlockMen then add the dig flag too 20:27 sapier I suggest state enums ... would allow more then 32 states ;-) 20:28 Taoki I wanted to match animation speed to velocity tho 20:28 sapier taoki do you regularly rewrite patches already provided as pull requests? 20:29 Taoki So the aim is to get it very accurately 20:29 Taoki No, this is something I discussed with BlockMen to do 20:29 Taoki BlockMen: You might want to temporarily close that pull, not sure. Till we see exactly how and what. Can be re-opened later 20:30 sapier https://github.com/minetest/minetest/pull/774 this is what you wanna implement 20:30 sapier does only work for entities of course 20:30 Taoki sapier: Yes, into the client-side animation system the new branch adds. Which is needed for local player 20:30 Taoki Yeah, mine needs to work for entities and players 20:31 sapier imho you shouldn't create a parallel feature but improve the existing ones ;-) 20:31 sapier I'm starting to believe you always rewrite patches already provided by someone else ;-) 20:32 Taoki sapier: Problem is that BlockMen's third person view code requires local animations. He initially did them only for the local player, but this is bad and changing it later would be hard 20:32 Taoki No, this is actually the first time i work on someone else's code 20:32 BlockMen wut? why should that be hard to change? 20:32 Taoki New function would still remain and it would be a duplicate 20:33 BlockMen new function would replace the old one, no problem at all 20:33 sapier :-) the attach thingy was suggested by me about a year prior your variant got merged too ;-) 20:33 sapier there's even a patch that never got merged 20:33 Taoki Didn't know about it 20:34 BlockMen i would say we should decide about it when we know when next release is 20:34 sapier don't bother, important thing is it got merged 20:34 Taoki I added attachments as part of the 3D model system... because Irrlicht supported per-bone attachments and the like too 20:34 BlockMen if the new animation system is done until then we can choose that 20:34 BlockMen otherwise the current patch 20:34 Taoki sapier: But regarding the animation system... I only see one sane choice: Sending the pressed keys of a player to all clients whenever they change. Would that be a sane thing to do? 20:35 Taoki OR, only some of them 20:35 sapier I believe doing entity and player animation different ways would be most easy way to go but it's not best way of course 20:35 Taoki Like is_walking, is_mining, is_sneaking, is_sprinting, is_running 20:36 sapier that's not sane at all as there's a arbitrary number of keys and position updates are most frequent packets, if you increase this packet you're gonna have a big impact on latency and performance 20:36 Taoki True too :( 20:36 BlockMen if we send this flags its not that much better than current sending of key frames 20:37 Taoki Yeah not sure how to do this any more, it's weirder than I thought 20:38 sapier guess we should step back and think about it for some days prior deciding maybe others have good ideas how to do it too ... we're not in a hurry about this 20:38 Taoki yeah 20:39 Taoki It would seem that client animations for the local player only are the easiest thing to stick with. But that by itself isn't such a good idea... if local player can be animated locally so should other things. But for other players we don't know pressed keys client-side 20:39 Taoki There's not any easy good choice 20:39 BlockMen Taoki, in general yes. but imo is even a small improvement better than no improvement 20:40 BlockMen and just local player local animated is better than lagging local player 20:40 sapier right now I don't see a way to completely fix this issue, maybe some of the options we believe to be bad aren't that bad in practice 20:41 Taoki Problem is the current non-local player animation system is bad and laggy. It also uses more bandwidth, because we sent a new set_animation package in lua whenever player starts or stops moving. This would have been a way to fix the issue 20:43 Taoki BlockMen: There's also a big problem with the set_local_animations in your latest branch too: Can the existing set_animation override it? What if for example the Lua API will set the death animation when someone lays in a bed? The local player won't see it in action if in third-person view 20:43 BlockMen hmm...well, the walking animation should work (locally) 20:44 BlockMen so when we use flags only for sneak and dig then it should reduce network traffic indeed 20:44 BlockMen Taoki, yes. it checks if the send animation is locally defined. if not is shows the send animation ;) 20:45 BlockMen *s/is/it is 20:45 BlockMen *shown 20:45 Taoki Ah, ok. So set_animation still works for local player too then 20:46 BlockMen yea 20:47 Taoki Sadly I'm out of ideas. Sounds like the best option is to keep things as they are in your latest code, and only handle local player animation client-side 20:47 Taoki Just no way of knowing velocity and digging for other players and entities x.x 20:50 Taoki sapier: Why isn't your pull 774 in yet though? That would fix the lag on other players too if I understand right, and I support it 20:50 BlockMen Taoki, did the code worked for u in multiplayer mode (your changes) 20:50 Taoki BlockMen: I didn't get to do any changes, if you mean what I've been trying in the last hour 20:51 Taoki If you mean my Lua camera last night, it only affected the local player, so should have 20:51 BlockMen Taoki, ok ic. i meant your work of last hour(s) 20:51 Taoki BlockMen: Pointless to test since I couldn't get good velocity information even for the local player in SinglePlayer :P 20:52 Taoki In that step() function\ 20:52 sapier for what I remember 774 isn#t related to player lag but a improvement for mobs only 20:53 Taoki Ah, I see. Thought it solves what I couldn't tonight 20:53 sapier no it's entities only 20:55 Taoki So yeah. Only way to make this work for all players is if any client knows the keys every other player is pressing. If it's too laggy to update pressed keys this much, the current code is the best way 20:55 Taoki And I assume that's not acceptable even if we use a byte 20:56 Taoki Or not pressed keys necessarily, but have each player contain flags sent to all other clients, such as is_walking, is_running, is_sneaking, is_mining 20:56 Taoki Would those 4 flags be too much to update and cause too much traffic? 20:56 Taoki They would be booleans 20:57 BlockMen would be those 4 lags be really less traffic than 2 frames(v2f) and 2 loats? 20:57 sapier #1214 bug fixed within a day ... anyone wanna beat me? ;-) ... and no it's not been a bug written by myself 20:57 ShadowBot https://github.com/minetest/minetest/issues/1214 -- IP addressing under Windows 20:57 sapier lol ... that's timing kahrl 20:58 Taoki BlockMen: A bit yeah. And problem is it wouldn't be less laggy than sending an animation function for each action like right now 20:58 kahrl hmm? 20:59 sapier oh ... sorry thought this bug was added by your ip fixes ... but I just realized it's been added by the one calling my code "shitcode" some hours ago 20:59 BlockMen Taoki, i think the only way to improve is to send only 2 flags (mining, sneaking) and trigger the walking anim locally 20:59 kahrl haha 21:00 sapier saving a 32 bit value to 8 bit variable isn't best idea 21:00 kahrl btw about the macro conflict... I don't understand why this couldn't simply be a private function/method? 21:01 sapier for what I know it's already settled ... isn't it ? :-) 21:01 kahrl yeah just curious 21:01 sapier I guess that'd be to obvious 21:02 BlockMen kahrl, since you are a good code read (IMO). any comments on #1114 21:02 ShadowBot https://github.com/minetest/minetest/issues/1114 -- Add third person view by BlockMen 21:02 Taoki BlockMen: We could sand only one (mining), if we could just detect speed properly for all entities in the client code 21:02 Taoki But I've tried for over an hour and don't see any way 21:03 Taoki Well, I did find a way... but the velocity it generates creates a lot of jitter. Sometimes when walking constantly you get 0.5, at other times 1.5 21:04 sapier can someone commit a patch please? I don't wanna be the only one commiting for the whole month 21:05 Taoki Maybe... this is accutrate enough... 21:05 sapier aaah wait there's blockmens patch :-) 21:06 BlockMen Taoki, hmm. i wouldnt focus that much on sneaking right now. if you get walking animations done for all players it would be improvement already 21:06 BlockMen sapier, isnt a small fix enough? :P 21:07 Taoki BlockMen: To detect if a player is moving at all or now I can do locally. But getting the velocity accurately is impossible 21:07 Taoki And if I don't get the velocity, sneaking and running can't be animated properly. But I can look into that later... perhaps put a TODO note 21:07 BlockMen Taoki, yes that is easy. i mean to really do it (the animation). that was the problem for me 21:08 Taoki So I'll give it one last try. I'll only try to detect if there's movement at all, and offer a yes / no choice 21:08 kahrl BlockMen: don't see anything obviously bad right now 21:08 kahrl enum CameraModes should go into camera.h instead of game.h probably 21:08 BlockMen moving yes or no is easy :P 21:08 Taoki Then I'll try that 21:09 BlockMen kahrl, IIRC camera.h is lager than game.h and since i was using it first in game.cpp i have chosen that. 21:09 Taoki BlockMen: Can you add the digging flag afterward? If I succeed with this and push my change 21:09 sapier any comments on #1198 21:09 BlockMen but if you say its better to move to camera.h i will switch 21:09 ShadowBot https://github.com/minetest/minetest/issues/1198 -- Add support for dpi based HUD scaling by sapier 21:09 kahrl BlockMen: well it's clearly camera related, and game.cpp includes camera.h anyway 21:10 sapier it's a requirement for android port 21:10 BlockMen kahrl, but game.h not. but fine, i will sitch it 21:10 kahrl I don't think you use it in game.h 21:10 BlockMen Taoki, afterward what? your changes? 21:11 Taoki BlockMen: Yeah. If I manage to get movement properly done and issue a commit 21:11 Taoki Which should be possible maybe even tonight 21:12 BlockMen well, if you get this done, sure 21:12 kahrl BlockMen: typo "ilde" (idle) in a couple places 21:12 Taoki Heh... there is a player->getPlayerControl() But I assume it only works for local player 21:12 BlockMen damn...typos 21:17 BlockMen oh, i asked you to take a look at an outdated version kahrl... 21:17 BlockMen https://github.com/BlockMen/minetest/tree/tpv_taoki (but also with typos) :P 21:19 kahrl is there a nice squashed version of that? (like when you click on "Files changed" in a pull request) 21:20 kahrl oh duh, just click Compare :) 21:20 Taoki kahrl: Note that I'm still working on that right now :P So don't merge it yet, just mention opinion I assume 21:21 kahrl okay 21:22 kahrl there's an unused global variable is_third_person in game.cpp 21:23 sapier unused and global in one sentence? :-) who wants to be punished? :-) 21:25 Taoki BlockMen, sapier: Local animations are currently stored in player.h. Where should I put them so they apply to all entities, not just players? 21:25 kahrl sapier: better than a used global variable ;) 21:25 Taoki Like what's the player.h variant for players AND entities... basically anything with a model 21:25 sapier what animations do entities have?? 21:26 Taoki They can have animations too. I want mobs to use the same system 21:26 Taoki Actually I think I define the globals in content_cao.cpp directly 21:26 sapier I'm not sure about it, no matter what set of animationy sou define they wont match mobs 21:27 sapier I'm against defining animations for entities, if there shall be any they have to be configurable by lua 21:27 Taoki My intent is to have set_local_animations renamed to set_default_animations and have it work for all entities. Movement would work the same way for players and mobs... digging however is a player only property 21:28 Taoki They would be. Lua issues the animation set 21:28 sapier so you don't add defined animations? 21:28 Taoki In this case however, Lua would simply specify what the stand and move animations are, and the client simply applies one or the other if it detects the mob is moving 21:28 BlockMen yay, git client is freezing whole time -.- 21:28 Taoki But you define the animations themselves via Lua yes 21:29 sapier no taoki imho that's wrong way to go. lua should be able to define if there's a stand default animation or not 21:29 Taoki sapier: It would be, that's what I'm saying 21:29 sapier this shouldn't be hardcoded in c++ code 21:30 Taoki It wouldn't The only hard-coded part would be applying the stand animation Lua sends over the walk animation it does 21:30 sapier I still believe we're talking about different things 21:30 Taoki Possibly... might not be understanding sorry 21:30 sapier do you wanna add a enum, define list or something else containing something like { stand, walk, sneak ... }? 21:31 Taoki The function would be something like entity:set_default_animations({stand}, {walk}, ...) - Where entity is either player or mob 21:31 Taoki Yeah 21:31 sapier I feared this way 21:31 sapier don't do it 21:31 Taoki ok 21:31 sapier make something like minetes.register_animation("stand") 21:32 BlockMen sapier, and how you define it for the specific entity then? 21:32 sapier and then entity:set_default_animation("stand"..{whatever is defined}) 21:32 BlockMen entity:register_animation makes more then sence IMO 21:33 sapier the names are just examples 21:33 Taoki OK, truth is I don't know how to add even that. I give up. If no one else figures it out, I agree with BlockMen's latest code (in taoki_tpv) 21:33 BlockMen no no, i ment: why the step over minetest.register_anim(stand)? 21:33 BlockMen since there may be really much differen stand frames to register 21:33 sapier you're giving up to fast taoki ;-) 21:34 Taoki sapier: Looked in the code for almost 2 hours I think... nothing seems to work well 21:34 sapier because if you hardcode those types you're gonna miss a type for sure 21:34 sapier if you don't mods can define additional types 21:35 sapier and if you provide mods to add types why hardcode? builtin can use same mechanism to add them 21:35 Taoki BlockMen: Only thing of importance I did was to replace "if(controls.up || controls.down || controls.left || controls.right)" with "if((m_is_local_player && (controls.up || controls.down || controls.left || controls.right)) || m_is_moving)". m_is_moving is a new boolean which is true when old and new position aren't the same. It's laggier so only for non-local players 21:35 Taoki I can tell you how I added that too. I didn't do enough for it to be worth pushing on GIT, it's only a few lines 21:36 Taoki But it seems the function is only sent to local player to begin with. So more changes need to be done... I don't know what approach to use at all 21:36 BlockMen wait, what? it laggier but should be added? 21:38 Taoki No... 21:38 Taoki It's laggier because it relies on positions sent by the server, since that's of course how we know another player's movement in the client 21:38 Taoki Using keys for local player only is faster because we don't wait for server response 21:41 Taoki I mean, this does detect velocity by interpolating positions sent by the server for OTHER entities. But for local, it can keep detecting keys for quickest result 21:42 Taoki But yeah, I'm deleting my own branch... I can't do any better, there are limitations I have to agree to 21:42 BlockMen but if you change the animation because of m_moving = true and maybe delayed the set_anim() arrives you produce a new lag 21:42 Taoki BlockMen: If you can't find a better system either, the latest code in taoki_tpv on your GIT remote looks good to me, and I approve of it as-is 21:43 Taoki Yeah, I dunno... very tangled and also hard to even test in multiplayer by myself 21:44 Taoki set_anim would no longer be needed for walkig any more now. 21:46 BlockMen Taoki, i will take a look at if my git is working again 21:46 Taoki BlockMen: I only suggest adding one more thing for local player animation overrides: When the sneak button is also pressed, use animation_speed*0.5 so the walk animation plays twice slower. When run privilege is present and run key is pressed, animation_speed*1.5 21:46 Taoki ok 21:46 Taoki I didn't do anything so nothing on GIT from me on this. 21:46 Taoki Just the ideas and suggestions I put here 21:47 BlockMen sneaking is implemented, running? you mean fast? 21:47 Taoki Oh, nice. And yeah... opposite of sneak for when running fast 21:48 Taoki if(fast_privilege&& key_fast) 21:49 BlockMen k 21:52 Taoki sapier: After BlockMen adds a speed modifier for running too, I'm ok with the code as is. You can merge it anytime 21:52 BlockMen Taoki, i can merge myself ;P 21:52 Taoki Third-person camera is a nice feature, eager to see it in :) Especially since the eye offsets were done 21:52 Taoki Oh... sorry 21:53 BlockMen *with ok of other dev ofc^^ 21:53 Taoki Didn't know you have merge access :P 21:53 Taoki sure 21:53 BlockMen since im core dev, yes 21:53 Taoki Not sure how officially I'm considered a dev myself, but to me everything looks ok 21:54 Taoki BTW... I think you nicely use the third-person eye offset in the Lua function for both the back and front view. For front the same offset is used but mirrored... it looks good 21:56 BlockMen you mean the min and max values or in my example? 21:57 Taoki Tried your latest code for a little 21:57 Taoki Just noticed it in practice 21:57 BlockMen ah ok, thx ;) 22:02 sapier I'd like to hear a opinion of one of our graphics guys/users first ;-) e.g. rba, vanessae 22:05 BlockMen Taoki, double anim speed for fast? 22:05 Taoki Don't think this is an artistic change as much... like artwork / sounds / models would be. Except maybe the default 3rd person camera distance 22:06 Taoki BlockMen: That or halfway or something, whichever works best. *1.5 might look good too, if not *2 22:09 kahrl BlockMen: enum localPlayerAnimations <-- this should be capitalized 22:11 kahrl there's some weird indentation in ObjectRef::l_set_eye_offset 22:13 luizrpgluiz hi devs :) 22:14 BlockMen kahrl, indentation? what do you mean? 22:16 kahrl BlockMen: like, the line after an "if" is indented by 3 tabs, while the "if" itself is indented by 1 tab 22:17 luizrpgluiz ? 22:19 BlockMen ah, you ment here for example if(!lua_isnil(L, 2)) 22:20 luizrpgluiz I think in future I will try to make a mod 22:28 Taoki Is there any reason why we don't default dedicated_server_step to something a bit lower than 0.1... like maybe 0.05? Player position updates are still kinda rare and player movement looks ugly due to it. 22:40 seolfor sapier, do i realy need to download all dependencies manualy? 22:40 seolfor listed here : dependencies 22:40 seolfor http://dev.minetest.net/Compiling_Minetest#Full_windows_minetest_build * sory 22:40 CiaranG Taoki: I have mine at 0.05 and it's fine, but that's on a lan with usually 5 player max 22:40 sapier nope taoki you're increasing load for no reason ... basicaly settingh from 0.1 to 0.05 increases load by factor 2 (in worst case) ... in realistic scenarios it's gonna be way less but still signinficant 22:40 CiaranG Might be a different story on the internet with more players 22:40 Taoki I see 22:41 CiaranG (I don't have mine at 0.05 "for no reason") 22:41 Taoki sapier: I assume it makes no sense to have the position send interval lower than the server step... since the server needs to send it 22:41 PilzAdam sapier, no reason? what about smoother animations, faster response times 22:41 sapier http://dev.minetest.net/Build_Win32_minetest_including_all_required_libraries seolfor that's what is recommended don't mix up those two guides 22:41 * Taoki agrees with PilzAdam here, though high load can be a problem at times 22:41 sapier either follow one or the other 22:42 seolfor sapier, thx god i thought i have to install them all 22:43 sapier PilzAdam: animation isn't a server task fixing this by increasing network and server load is worst possible solution 22:43 PilzAdam it depends on the server the way animation works currently 22:43 Taoki BTW. Asking because I wanted to work on adding a little tweak. I'm thinking of scaling this value based on the number of players or entities on the server. This can allow more players with less load, at the cost of slower animation updates 22:43 Taoki Would that be a really dumb idea? It makes sense to me 22:43 sapier which is a design flaw 22:44 PilzAdam sapier, also I count position updates as "animation" too 22:44 Taoki It can be 0.05 by default. But 10 players would take it to 0.1. 20 players would increase the value to 0.15... so on 22:44 Taoki This would allow servers with few players to have very quick updates, and servers with more players to sacrifice update rates for less load 22:44 sapier I don't do :-) but I don't use position updates in my mods like you do so we obviously have quite different thought patterns about this 22:45 PilzAdam Im not talking about mods 22:45 PilzAdam Im talking about players only 22:45 Taoki I'm likely going to code this since I think it's a good idea... 22:45 sapier taoki I've not improved networking code for you to eat up all improvement for fixing a design flaw by adding an additional one 22:46 Taoki What's the design flaw, and why would it be an additional one? 22:46 PilzAdam Taoki, why do you want to make the server slower on purpose when more players are on it? 22:46 sapier animation "smoothness" depending on server is a design flaw 22:46 Taoki Usually more players and sometimes more entities cause server load. If more players / entities could increase the server tick rate (slow it down), it could reduce load and allow more players 22:47 Taoki PilzAdam: ^ 22:47 PilzAdam sapier, "animation" as in player position / movement 22:47 Taoki Was thinking that doing this could allow servers with a LOT of players and mobs without causing big server loads 22:47 PilzAdam Taoki, decreasing server load by sleeping instead of handling stuff isnt a good idea 22:47 Taoki Truth be told, I've been inspired by someone who told me a server took hostile mobs down due to server load 22:48 sapier and it wont work anyway for servers with more then a few players 22:48 Taoki ok. Just an idea, will abort it then 22:48 PilzAdam Taoki, you have to handle the same stuff, doing it slower isnt a solution 22:48 sapier you're wrong pilzadam ... our design isn't built uppon events so server always has work to do no matter how fast step is 22:48 Taoki Problem is the current player position updates are very little IMO 22:49 sapier if we had a event based system you'd be right 22:49 PilzAdam sapier, whats the step interval for then? 22:49 Taoki I used to think send interval is independednt of server stepping 22:49 sapier running cyclic updates 22:49 sapier e.g. entity step 22:49 sapier you can always step entities 22:50 PilzAdam its also send to clients to tell them how often to send pos updates 22:50 sapier I didn't say entity step only 22:51 seolfor sapier, do i also need directX sdk ? 22:51 sapier there are a couple of things done but a single one always ready to run is enough to increase server load 22:51 Taoki Here's another idea instead: Could the code somehow analyze free resources and load, and increase / decrease the server step based on how stressful it's being? 22:51 sapier if you wanna build for directx yes 22:52 sapier how to handle server load if someone has multiple servers on a single machine like vanessae 22:52 Taoki If CPU usage goes past a certain value, the step slowly increases to slow it down 22:52 Taoki Ah... I was thinking per-process 22:52 sapier that'd only work for single server systems 22:53 Taoki We can add a setting which is a CPU percentage limit, and is per server. If the server detects it's using more CPU than that, it steps the value up 22:53 Taoki An admin can then configure it and judge how many servers it's ok to have 22:53 sapier multithreaded multicore ... I doubt there's a way to do this portable 22:54 sapier and you'll never get a reasonable good result on pushing animation from server 22:54 PilzAdam sapier, a way to fix the animation design flaw is to add client side API 22:54 sapier this problem can't be solved by raw cpu power but only by thinking and finding a smart solution 22:54 PilzAdam *Lua 22:55 sapier for example pa 22:55 sapier there might be other options too 22:55 Taoki Oh... when I said animation I didn't mean model animation (which is a problem too). Problem I'm seeing is position updates are kinda being too slow 22:55 Taoki For players and such 22:55 Taoki Position send intervals. 22:55 sapier you've got network latency too 22:56 sapier for my experience on trying to update animation speed server side the only situation for this to work is localhost 22:57 BlockMen ok, #1114 is rebase and ready to merge now 22:57 ShadowBot https://github.com/minetest/minetest/issues/1114 -- Add third person view by BlockMen 22:57 BlockMen *from my side 22:57 Taoki PilzAdam: About that. We discussed client-side animations for player with BlockMen's new third-person view patch for several hours. The animation issue will likely be nearly impossible to fix until players have a velocity that can be read in the client 22:58 Taoki I mean model animations here of course 22:58 sapier players will have a velocity only if up down right left key handling is completely changed 22:58 sapier as long as player movement is done by position updates any "calculated" velocity will depend on network jitter 22:58 sapier and packet loss 22:59 Taoki Problem is that the way player animations are animated now (server-side Lua sending a set_animation package every time a player presses or un-presses a movement key) is both a little costly and with very laggy results client-side sometimes 22:59 Taoki I see 23:00 Taoki I hope this system can be changed someday, to use acceleration rather than calculating positions like this 23:00 sapier acceleration based movement causes other artefacts to handle 23:03 Taoki Well there is acceleration and deceleration... but I guess handled through a different system 23:03 BrandonReese Does anybody know how other multiplayer games handle model animation? Just curious if looking at some of those would help any. 23:03 Taoki I know what we need... BulletX physics B) 23:04 Taoki BrandonReese: Usually locally. Here it needed to be server side because I wanted the Lua API to be able to trigger an animation on any player / entity at any given moment 23:04 Taoki Still, that includes basic stant / walk / dig animations 23:04 Taoki **stand 23:05 BrandonReese Taoki, so does minetest send a packet for every frame to the client? 23:06 sapier no 23:06 Taoki BrandonReese: Not every frame. Only when a new key is pressed or unpressed 23:06 Taoki For example, when a player presses the first movement key or unpresses the last, set_animation sends "stand" or "walk" 23:06 sapier problem isn't animation itself but framerate of animation 23:06 Taoki Which I guess shouldn't consume a lot of network at all. But the results client-side might be slower than if it were local 23:07 Taoki Yes... and we can't have speed-based animations. Though that can be solved with either method... if we only could detect player velocity 23:07 sapier it's fine for entities as they do have a speed ... as long as mods handle it this way... but players don't have a speed 23:08 Taoki sapier: BTW. The problem could still be fixed for players which don't use the velocity system, if there was only a way inside (step) to get reliable old and new positions. 23:08 Taoki As in, getting rid of that jitter 23:08 sapier that jitter is basic "feature" of ethernet ;-P 23:09 Taoki Ah... it's caused by the random order of packet arrivals 23:09 Taoki Right 23:10 Taoki I used to think it's a client side problem 23:10 sapier that's one of the reasons yes 23:10 Taoki We could still calculate position changes server-side and make up a velocity that way, then send it to clients. It might not be worth it though 23:11 sapier that one wouln't be exact too ... it'd be a little bit better as it's got only one way but on the other hand the velocity packet would have jitter itself 23:12 sapier it's a basic problem of distributed systems, best way is do find a way to not need synchronization ... or at least as less as possible 23:13 Taoki Yeah. Would be nice, though I'm not sure how possible at this stage to add 23:17 Taoki BlockMen: Looked at all of your code, looks very good to me. 23:17 Taoki Any chance we might see it in master tonight, given all problems on what to do for now were solved? 23:18 sapier I wont merge it this night so if there's noone else to merge I don't believe so 23:18 sapier -so 23:18 BlockMen sapier, lets test 23:18 BlockMen PilzAdam, kahrl, sfan5?^ 23:20 Taoki BlockMen can merge it himself, he probably needs more opinions though 23:20 Taoki I can test it now also 23:20 BlockMen at least two core dev must agree, Taoki 23:20 sapier lets first give it some time for others to test, I don't have time to test now as it's time to sleep 23:21 Taoki ok. Might call it a night too for Minetest things so far 23:21 BlockMen sapier, the older version (with settings for animations) is running on two server for some time 23:21 sapier that's good to know 23:21 BlockMen so the visual code part seems fine :P 23:22 sapier time to sleep good night 23:22 BlockMen n8t 23:54 seolfor can anybody expalin me what "vs2012 deverloper console" mean ? 23:54 seolfor i trying my best to falow this guid: http://dev.minetest.net/Build_Win32_minetest_including_all_required_libraries#VS2012_Build