Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.tw/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories — IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2021-03-31 00:00:00Z and 2021-04-01 00:00:00Z
Avatar
[freenode] kamillentee[m] BOT 2021-03-31 08:27:21Z
What is the reason why one cannot bug through killls sideways?
08:27
Except for ninja
08:36
e59bcaf Fix link in 2birthday - def-
Avatar
you need to be as fast as around 50 tiles per second
08:45
with killtiles even more, bcs bigger hitbox
Avatar
97669ef Fix mapper name on Tournament #13 - def-
Avatar
[freenode] kamillentee[m] BOT 2021-03-31 08:52:31Z
Sideways speed is limited I remember. If you are too fast you slow down again. So you cannot exceed the speed that is needed to bug through kills
Avatar
i think the clamp is around 180 tiles per second
08:53
have u tried to just give you that acceleration? 😄
Avatar
[freenode] kamillentee[m] BOT 2021-03-31 08:55:59Z
That speed is fast enough to get through 52,5% of all kills when falling down but sideways it always killed me
Avatar
ok
Avatar
I thought we settled that it depends on where the movement starts whether you skip thru a skippable tile or not
Avatar
that also
09:00
anyway, the ground movement glitch with speedups is probs the same
09:00
it starts to glitch when you are too fast
09:01
e.g. it does only m_Vel.x = m_Vel.x * RampValue; for the x value
09:01
i guess thats the problem
Avatar
744dfe7 Remove tournaments static page (dynamic now) - def-
Avatar
Avatar
Deleted User
anyway, the ground movement glitch with speedups is probs the same
you mean the player not moving when going too fast?
Avatar
Avatar
Learath2
you mean the player not moving when going too fast?
yeah 😄
Avatar
that's a result of the chosen ramp curve approaching 0 as v_x -> infinity
Avatar
yeah and that happens before you get the speed to skip
Avatar
hm, we should check sometime the actual amount of speed required and the speed cap
09:12
you just need to be moving faster than 1 tile per tick
Avatar
with 50 tiles p second you can skip 1 tile, and kill tiles are more than 1 tile, but less than 2 (edited)
Avatar
mh I think kill tiles are less than a tile
Avatar
freeze is exactly 1 tile
09:13
and kill tiles are bigger
Avatar
I guess we have different definitions of "tile"
Avatar
i mean the mid of the tee
09:13
if the mid moved 1 tile
09:14
and thats exactly happening in freeze
Avatar
Yeah I see what you mean
Avatar
Avatar
Deleted User
it starts to glitch when you are too fast
When velramp*speed hits 75 and you keep adding velocity to it (e.g. by continuing to use jetpack on the x axis) that value will go down slowly again until reaching 0
Avatar
Avatar
Learath2
mh I think kill tiles are less than a tile
kill tiles have extra range to avoid skipping them
Avatar
Avatar
fokkonaut
kill tiles have extra range to avoid skipping them
only for characters*
Avatar
Iirc the extra range was just a compatibility thing
Avatar
the problem is, it depends on how you look at it: e.g. do you say the tee has extra hitbox when hitting a kill tile, then the kill tile is just 1 tile as freeze
09:35
or do you say, i just choose the mid, and assume its always the visual distance
Avatar
ye the tee has a larger hitbox for killtiles
09:35
Thats probably the best way to say it
09:35
And matches the code
Avatar
So the reason kill tiles are so damn hard to edge is because they're designed to prevent skipping 😄 ... I did wonder if it was just because edging a kill tile should be somehow seen as harder or if there was another reason!
Avatar
i think it was just random coding
11:00
like most of teeworlds xD
11:00
since kill tiles also exists in vanilla
Avatar
Lol, its very interesting, i hope it doesn't change because i think kill tiles should be harder to edge... more to lose 🙂
Avatar
i doubt old tiles ever get changed, its more likely someone adds a new kill tile, if ever needed :D, but i guess that also wont be the case so fast 😄
Avatar
Yeah I don't see a need for it... A kill tile that has the same hitbox as the freeze tile, but then could be exploited if used incorrectly
11:02
Unless thats the purpose of it loool
11:02
The end of the map is just a line of kill tiles and a jetpack gun 😄
11:03
I suppose that transcends beyond Insane 5 stars, lol
Avatar
If I recall correctly vanilla had fat kill tiles, then they changed collision on them. DDRace wanted to keep them fat
Avatar
oh really? i used the kill tile collision code for fng and it looks to be the same as ddnet kill tiles
11:33
but didnt check 0.7 if they changed it there
Avatar
can a discord admin mention https://wiki.ddnet.tw/wiki/FAQ in #questions , even if its uncomplete and probably nobody reads the channel description anyway xD
Avatar
Added
👌 1
Avatar
@Learath2 are u Learath2 on the wiki?
Avatar
he is Learath3, Learath2 was already in use
Avatar
0e4bece Update settings&commands - def-
Avatar
4cf107d Add donation by szaro - def- 4848abb Add UAE, TUR2, ZAF2 - def-
Avatar
95736cd Add 64 € donation by Konsti - def-
15:33
lel discord is cool now
15:49
254 bytes
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 16:46:25Z
oh yikes what happend to envelopes? Is there documentation on that?
Avatar
ChillerDragon ah forgot to ping if you havent seen yet i rlsed a new twmap version 1 week ago or so, not backwards compatible tho
saddo 1
18:29
now the parser will now note the version (0.6-ddnet/0.7-teeworlds) that the map was in, so that it can save the map in the original version again
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 18:40:17Z
awesome thanks for the note @Patiga i should probably email sub ur repo and cool that u keep pushing updates
18:40
so when i try to move my quads it does some enevelops magic :/ i dont want to downgrade my client pls send brain on how to use the map editor
Avatar
Avatar
gerdoe
just notice us where are they :D
ah, oopsie
18:48
@Ryozuki i rlsed a new version of twmap btw ^^
Avatar
now it has some documentation
Avatar
@Patiga clippy still returns a shitload of warnings pepe_straight
18:58
.map_err(|err| InfoError::LicenseLength(err))?; cannbe .map_err(InfoError::LicenseLength)?;
18:58
and if u have to map so many errors u can always use thiserror
Avatar
anyway cargo clippy will help u make better code
Avatar
Avatar
Ryozuki
.map_err(|err| InfoError::LicenseLength(err))?; cannbe .map_err(InfoError::LicenseLength)?;
thats nice, didnt know that
18:59
@Patiga just do "cargo clean && cargo clippy"
18:59
and u will see all the suggestions
Avatar
i think it didn't like some formatting decision which i liked
Avatar
afaik clippy doesnt format anything and i rarely see it say something about formatting
19:01
btrw u can selectively disable warnings
Avatar
i also still think that Vec<_> makes sense in that context, i don't wan't someone to get weird ideas in that process
Avatar
u rly should use &[T]
Avatar
why is that?
Avatar
its the common practice
19:01
the vec also involves 1 more reference
19:01
as it says
19:02
Requiring the argument to be of the specific size makes the function less useful for no benefit; slices in the form of &[T] or &str usually suffice and can be obtained from other types, too.
Avatar
but that assumes you want the function to be more useful
Avatar
i suppose common practice is a valid argument, the speed is rly insignificant, even if it has to follow one more pointer
Avatar
Avatar
Learath2
but that assumes you want the function to be more useful
it has no drawbacks
Avatar
it makes the interface more ambiguous no?
Avatar
i don't wan't someone to get weird ideas in that process
Avatar
nobody gets weird ideas
Avatar
yea, that was my point
Avatar
This way it'd only work with Vec based slices, what if you only want it to work as such?
19:04
the vec derefs to &[T]
Avatar
you are kinda avoiding our point here
19:04
it is really not more ambiguous
Avatar
Atleast in most other languages there is usually some benefit to having more specific interfaces
19:05
anyway, idk enough about this kind of rust technicalities so I'm not so sure
Avatar
u are forcing the use of a owned value for no reason
19:06
imagine i have the items on a stack, they would be &[T]
19:06
now u are forcing me to put them on the heap
19:07
just because u think of "dont want weird ideas" and there is simply no weird ideas possible here
Avatar
really? I thought it would just point to the stack?
Avatar
why are u limiting others creativity
19:07
vec is owned
19:07
it will always be on the heap
Avatar
ahh, I see what you mean I guess
Avatar
The top part is the Vec struct, it contains a pointer to the head of the allocation in the heap, length and capacity.
Avatar
Avatar
Ryozuki
it is really not more ambiguous
ambiguous means that it gives more options
Avatar
and there is nothing but
19:08
but it has no meaning here
19:08
constricting to a vec is not beneficial
19:08
in any way
Avatar
nah, my point is that i do want to limit creativity, i don't want anyone to pass just a slice there, it should be owned. Such stuff should be done in the map editing phase, not the map saving phase
Avatar
that way of thinking "weird ideas" may be good in python were u can pass whathever shit u want
Avatar
Avatar
Ryozuki
constricting to a vec is not beneficial
Well that idk, but there are times you want to limit creativity, e.g. critical code where an untested code path getting called could have badbad results
Avatar
but i think in rust u shouldnt be that worried
Avatar
Avatar
Learath2
Well that idk, but there are times you want to limit creativity, e.g. critical code where an untested code path getting called could have badbad results
&[T] is totally safe
19:10
and rust makes sure that in any way u get this slice
19:10
u wont be able to modify it when its inside the function
Avatar
Avatar
Patiga
nah, my point is that i do want to limit creativity, i don't want anyone to pass just a slice there, it should be owned. Such stuff should be done in the map editing phase, not the map saving phase
I'm curious about your response on this statement @Ryozuki
Avatar
my statement is that it is stupid
19:11
idk what to say here
19:12
but well u do u
Avatar
That's not a good response. my statement was that this code restricts something that i don't want someone to do there. if someone would do stuff like that there, then they are doing smth wrong.
Avatar
what you dont want someone to do??
19:15
not use their own container type??? well they can u just add the hassle of going from my type to a vector
19:15
it literally does nothing
19:15
its a bad practice
Avatar
Avatar
Ryozuki
my statement is that it is stupid
why are you like this man, your argument can stand on it's own, no need to call the other one stupid 😛
Avatar
@Learath2 i feel no matter what i say nothing will changeh ere
19:15
brb
Avatar
@Patiga well would the function be useful for doing something else?
Avatar
stuff such as partially saving a map would be possible, note however that it is not in the public interface
19:20
why i don't want that to be possible is because such changes should be done before invoking the save method in the current design of the interface
Avatar
im back
19:23
you are adding overhead for no reason thats all i have to say
19:23
have a good night
Avatar
the overhead is = 0 since it does much more complex stuff like zlib compression/decompression
Avatar
overhead to the programmer
Avatar
wish it didn't break anything i had done justatest
Avatar
well it does break your code, but it hopefully makes the interface more comfortable
19:28
you dont need to pass the version everywhere
19:28
does it also break something else?
19:31
This is a set of recommendations on how to design and present APIs for the Rust programming language.
Avatar
let's not get back to the same arguments over and over again. more links don't convince more, if the counter argument works against the intent of the original one
19:35
The existence of libraries with nice, user-friendly interfaces is one of the most important factors when choosing a programming language. Here are some tips on how to write libraries with nice APIs in Rust. (Many of the points also apply to other languages.)
19:36
ur counter argument doesnt work
19:36
since its meaningless
19:36
you are not forcing anything here, you are just adding annoyiances
Avatar
Avatar
Ryozuki
constricting to a vec is not beneficial
1.
19:37
2. this right now is not contributing anything to the conversation
Avatar
0.2.1 is last one?
Avatar
yeah i can see this is meaningless
19:37
its a bit sad
Avatar
looks like i used 0.2.1 for it
19:38
so no breaks xd
Avatar
i dont know where i am being rude
Avatar
Avatar
Ryozuki
yeah i can see this is meaningless
ah, you are right, i misread this one
19:38
sorry
Avatar
Avatar
gerdoe
looks like i used 0.2.1 for it
nice ^^
Avatar
yeah, thanks for contributing
heartw 1
20:24
will do more clippy fixes later
20:26
will go to sleep for today though
Avatar
what made u change ur mind?
Avatar
maybe he got scared of you 😛
Avatar
boo, ryozoozki is coming
Avatar
@Patiga i can see you also use dynamic dispatch here (https://gitlab.com/Patiga/twmap/-/blob/4f5f03cc27f47e1a1ed43a2b0e718e092d3069e3/src/datafile_save.rs#L98) generally rust favors static dispatch
20:34
This has a great upside: static dispatch allows function calls to be inlined because the callee is known at compile time, and inlining is the key to good optimization. Static dispatch is fast, but it comes at a tradeoff: ‘code bloat’, due to many copies of the same function existing in the binary, one for each type.
20:34
this is how i did it in one of my libraries: https://github.com/edg-l/sitewriter/blob/master/src/lib.rs#L127
Avatar
but well this doesnt matter much
20:50
pepeH
20:50
@Learath2 i found something interesting reading reddit
20:50
dynamic dispatch in rust is better than in c++
20:51
since in c++ it does sequential dereferencing and rust does parallel
20:51
20:52
People often miss this incredibly important nuance. The reason why it matters so much is that CPUs tend to be pretty good at predicting a pointer dereference (and thus prefetching the data before it's needed) when they see it coming up, but they can't predict a two-layer deref nowhere near as well. So the way Rust does it is great for perf.
20:52
aPES2_Insane
Avatar
I'm not very familiar with dynamic dispatch at all, I don't use it often
Avatar
ryo is rust wizard
Avatar
Avatar
Learath2
I'm not very familiar with dynamic dispatch at all, I don't use it often
i think its the equivalent of c++ vtable stuff
20:55
“A virtual method table (VMT),…, is a mechanism used in a programming language to support dynamic dispatch.”
20:55
xd
Avatar
Yeah I know but I don't use it much, not enough to know different mechanisms of dynamic dispatch
20:56
@Learath2 i read somewhere that the linux kernel implements their own vtable stuff xd https://lwn.net/Articles/444910/
Despite the fact that the Linux Kernel is mostly written in C, it makes broad use of some techniques from the field of object-oriented programming. Developers wanting to use these object-oriented techniques receive little support or guidance from the language and so are left to fend for themselves. As is often the case, this is a double-edged s...
20:56
in C
20:56
PepeA
Avatar
Avatar
gerdoe
ryo is rust wizard
im not there yet, there is stuff that i even have trouble understanding
Avatar
heinrich isn't as active as he was before feelsbadman
20:58
on discord i mean
Avatar
he must be busy
20:58
ah man
20:58
there was a rly good blog post
20:58
cant find it rn
Avatar
Avatar
Ryozuki
@Learath2 i read somewhere that the linux kernel implements their own vtable stuff xd https://lwn.net/Articles/444910/
yeah, I've done similar things too for a entity system prototype
Avatar
Do you want to use Higher Kinded Types (HKT) in Rust? Are you tired of waiting for GAT? Well, this is the place to be.
21:00
advanced stuff
21:00
monkalaugh
21:01
21:01
xd
Avatar
functional programming in rust spectrum (edited)
Avatar
generic programming is quite tough to get right, I've seen so many bugs with mis-specialized templates in C++
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:04:15Z
aaaaarrg shit i still havent found out how to exit the envelops edit mode
21:04
it randomy activates
21:04
somebody has to know how this works
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:04:33Z
ChillerDragon hi u are alive
21:04
ChillerDragon btw i prefer actually irc over matrix
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:05:03Z
i prefer matrix but im used to irc
21:05
and not all irc channels i have i could get on my matrix
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:05:17Z
why u prefer it
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:05:35Z
its not terminal
21:05
i mean i like terminal and all
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:05:44Z
terminal best
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:05:46Z
but pictures and stuff
21:05
clicking with mouse
21:05
can be cool
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:05:54Z
u can click with mouse in weechat
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:06:05Z
not on chats
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:06:11Z
btw modern terminals can display images
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:06:15Z
yea
21:06
but u know
Avatar
ASCII images
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:06:31Z
i think element is pleasing to use
21:06
also device share and mobile stuff
21:06
i am looking forward to use element as my main chat tool
21:06
currently its not :/
21:07
so but arg
21:07
i looked through prs
21:07
i didnt map in a while
21:07
but thats a big change
21:07
somebody has to know this big ass new feature
21:07
who r u?
21:07
where r u?
21:08
how can i move my quads
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:11:01Z
Avatar
[freenode] chillerdragon[m] BOT 2021-03-31 21:11:15Z
I FOUND IT
21:11
its ctrl+i
21:11
aka info mode
21:11
for how long has this stuff been there
21:11
dont tell me its vanilal xd
21:12
nice pictures u view in ur terminal
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:13:03Z
xd
21:14
ChillerDragon i found it due to this https://github.com/ranger/ranger
A VIM-inspired filemanager for the console. Contribute to ranger/ranger development by creating an account on GitHub.
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:25:43Z
@Patiga btw due to this editor feature i messed up envelopes and thanks to ur tool i got get a git diff and properly revert all enevlope changes :)
21:25
"got get" can someone please kill me xd
21:26
t
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:45:31Z
yo Ryozuki how do i build a static rust release again? one that is ready to ship?
21:45
I tried cargo build --target x86_64-unknown-linux-musl --release
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:53:11Z
ChillerDragon that compiles against the musl libc
21:53
which is good if u are compiling from a rly new linux
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:53:43Z
i cant get it to compile tho i miss some musl tool
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:53:54Z
where do u plan to use ur program
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:53:55Z
error occurred: Failed to find tool. Is musl-gcc installed?
21:54
on the github ci
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:54:06Z
bruh
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:54:14Z
?
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:54:21Z
Unofficial GitHub Actions for Rust programming language - actions-rs
21:54
📦 GitHub Action for Rust cargo command. Contribute to actions-rs/cargo development by creating an account on GitHub.
21:54
check this
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:54:43Z
so i should build from src?
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:54:44Z
this installs everything you need
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:54:55Z
id prefer a binary release
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:54:57Z
can you build it from water?
21:55
idk what u mean here
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:55:10Z
the ci is slow enough already
21:55
i just want to create a release of twmap
21:55
that i can wget in my ci
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:55:25Z
dude then do it urself
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:55:26Z
or everywhere actually
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:55:28Z
compile it urself nobo
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:55:34Z
yes
21:55
thats what i ask how do i compile it? :D
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:55:47Z
if tw map has some tools
21:55
u can d o cargo install twmap
21:55
iirc
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:56:14Z
well i mean cargo build --release builds a rls binary just fine
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:56:19Z
omg
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:56:20Z
but its not really portable
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:56:22Z
but if u wantto install it
21:56
use
21:56
"cargo install twmap"
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:56:35Z
whats the differenece?
21:56
install sounds like adding it to PATH
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:56:49Z
it builds it in release mode and adds it to ur path
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:56:52Z
ah ye
21:57
the thing is that release mode is still dynamically linked and might fail on other systems than mine
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:57:25Z
no it is not
21:57
rust is statically linked
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:57:34Z
ah ok cool
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:57:37Z
but
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:57:39Z
then i rememberd it wrong
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:57:39Z
it may fail
21:57
if the libc is older
21:57
than the one u compiled with
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:57:57Z
hrm
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:58:22Z
are u planning on distributing it?
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:58:26Z
@Patiga when do a proper official binary rls
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:58:27Z
u shouldnt care about this
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:58:41Z
Ryozuki: i just slap it on my vps and use it for ci now
21:58
if it werks it werks i guess
21:58
lemme give it a try
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:58:50Z
compile it from ur vps
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:58:57Z
the vps doesnt run it
21:59
its github actions
21:59
oh but u mean cuz my vps has old libc?
Avatar
[quakenet] Ryozuki BOT 2021-03-31 21:59:20Z
omg
21:59
compile it where u want to use it
21:59
its the easiest way
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 21:59:43Z
hmm i see
22:00
last time i had some flag on build and it worked just fine i just forgot what it aws
Avatar
[quakenet] Ryozuki BOT 2021-03-31 22:00:40Z
ChillerDragon why does helping u make me so infuriated
22:00
xddd
Avatar
[quakenet] ChillerDragon BOT 2021-03-31 22:00:51Z
chill
Avatar
[quakenet] Ryozuki BOT 2021-03-31 22:01:00Z
i cant help it
Avatar
[quakenet] Izanagi BOT 2021-03-31 22:24:56Z
wtf is this
Avatar
ddnet suggestionddnet Add an option to arrange them from highest points to lowest
f3 3
f4 8
22:32
hussain
Avatar
why f4ww
Avatar
points =/= skill
Avatar
^ that's what a person without skill would say
Avatar
Avatar
Iza
^ that's what a person without skill would say
that's what a person without points would say
Avatar
Avatar
hussainx3
that's what a person without points would say
that's what a person without points would say
Avatar
Avatar
louis
points =/= skill
true
22:36
so we need quick way to know who have skills
Exported 353 message(s)