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 2022-12-14 00:00:00Z and 2022-12-15 00:00:00Z
Avatar
is there a way to create a vertex buffer or something similar in ddnet code for rendering my own list of triangle vertices? (like doing glBindBuffer and then glBufferData & glBufferSubData for updating, in opengl) (edited)
Avatar
Generally you can add it to the backend. But ddnet is 2d don't expect any helper functions for projection matrices or similar.
06:53
Graphics threaded should have vertex buffer object. But eg index buffer is backend only So u defs have to write own logic
07:00
thanks anyway
Avatar
matrix bloat kek
Avatar
You can't.
12:04
@noby wrote an antibot functionality for his FNG server, together with DDNet devs they factored that out into a shared library so it can be loaded in official DDNet server too. In order not to tell bot authors how we detect their bots the source code and binary for antibot are not available
12:05
You would have to implement the interface at https://github.com/ddnet/ddnet/tree/master/src/antibot to implement your own antibot solution
12:06
or ask noby nicely if you have a server you want to use it for
12:06
Basically you can use the incoming information to try and detect suspicious looking patterns of movement/actions
12:08
yeah, by default we ship the "null" implementation of antibot, which does nothing
12:08
and should be optimized away by your compiler
👍 1
Avatar
Avatar
deen
@noby wrote an antibot functionality for his FNG server, together with DDNet devs they factored that out into a shared library so it can be loaded in official DDNet server too. In order not to tell bot authors how we detect their bots the source code and binary for antibot are not available
>drag it into IDA Pro and look at eyported functions
12:19
No one will know how it works. Yes. That's how this world works.
Avatar
Avatar
default
>drag it into IDA Pro and look at eyported functions
You don't have the binary though 😄
Avatar
Never say never. We have talented people around this community. I'm sure some of them could figure out how it works
Avatar
Uhm actually, they didnt say never🤓
🤓 3
Avatar
Avatar
Learath2
Never say never. We have talented people around this community. I'm sure some of them could figure out how it works
i would try for the luls
12:43
but probs wouldnt have results xd
Avatar
the C code is already unreadable
12:43
best approach would be blackbox testing
Avatar
its noby C
12:43
xD
12:44
im still learning erlang and i kinda have mixed feeling about functional programming
12:44
i think i prefer to think iteratively and imperatively tbh
12:44
too much brain usage
Avatar
Some problems are easier to think about in a functional way. Some aren't. Which is why I'm not a fan of overly ideological languages
12:45
rust takes best from both
12:45
🤓
Avatar
Gimme the tools for both and I'll pick the one that fits my situation
Avatar
Avatar
Learath2
Some problems are easier to think about in a functional way. Some aren't. Which is why I'm not a fan of overly ideological languages
a RPN calculator
12:52
xd
12:52
-module(calc). -export([rpn/1]). rpn(L) when is_list(L) -> [Res] = lists:foldl(fun rpn/2, [], string:tokens(L, " ")), Res. to_num(N) -> case string:to_float(N) of {error, no_float} -> list_to_integer(N); {F,_} -> F end. rpn("+", [A,B|S]) -> [A + B|S]; rpn("-", [A,B|S]) -> [A - B|S]; rpn("*", [A,B|S]) -> [A * B|S]; rpn("/", [A,B|S]) -> [A / B|S]; rpn(X, Stack) -> [to_num(X)|Stack].
12:53
fits stack perfectly
Avatar
Data oriented programming fits functional programming well too. E.g. ECS
Avatar
Avatar
Learath2
Never say never. We have talented people around this community. I'm sure some of them could figure out how it works
I mean you guys use sqllite, demos could be stored in the database (who knows). and if 80%+ of the position matches someones else's movement. -> sus
Avatar
  • TILEFLAG_VFLIP -> TILEFLAG_FLIP_HORIZONTAL
  • TILEFLAG_HFLIP -> TILEFLAG_FLIP_VERTICAL
According to the native editor, the "Tiled" editor and image search, a horizontal flip should be associated with switching left and right, modifying the x coordinate. I did not just switch the letters H and V to create compiler errors where the original constants are used. Whenever I was working with tileflags, the naming caused me to have no idea what I was doing. I mostly had to res...
Avatar
ur clueless
12:55
also sqlite is rly powerful
Avatar
Avatar
Ryozuki
ur clueless
isn't that intended?
12:55
should I know how your anticheat works?
Avatar
ddnet can use mysql or sqlite
Avatar
I could try to break it if you want. Always needed a gore bot. (edited)
12:56
u just wanna be a hackermans or show off
12:56
the worst kind of guy
Avatar
nah I just need games to fuck around with (edited)
Avatar
cool and i dont care
Avatar
Avatar
default
I mean you guys use sqllite, demos could be stored in the database (who knows). and if 80%+ of the position matches someones else's movement. -> sus
This sort of detection is actually surprisingly hard to implement. We store multiple terabytes of race data. It's not so easy to match 😄
Avatar
People do it for Trackmania
12:57
and they aren't even the devs of the game
12:57
but just part of the community
Avatar
I didn't say it's impossible. I said it's surprisingly hard
Avatar
Osu got the same stuff to detect replay bots
Avatar
way less inputs
Avatar
inputs don't matter at first glance for me in the case of teeworlds
12:58
I would go for position
12:58
and then input
Avatar
You first need to come up with a way to index the data. An efficient tree like structure where you can look for substrings of "gamestates"
Avatar
current demo time/tick? (edited)
Avatar
Which is actually a huge issue. You can't recreate the gamestate at a given point without running through all previous ticks
Avatar
then how do you play the ghost data while a player plays a map
12:59
isn't it the exact same thing
12:59
just that you now look at the position difference factor throughout the run (some math guy probably can come up with the same stuff they use for chess anticheats - how far away you are from the "best" move, or also called "accuracy"). but I believe you that it is hard to index the database. (edited)
Avatar
Avatar
Learath2
You first need to come up with a way to index the data. An efficient tree like structure where you can look for substrings of "gamestates"
quad tree?
13:03
achtually
13:03
in chess its defined by centipawn loss
13:03
🤓
Avatar
Avatar
default
just that you now look at the position difference factor throughout the run (some math guy probably can come up with the same stuff they use for chess anticheats - how far away you are from the "best" move, or also called "accuracy"). but I believe you that it is hard to index the database. (edited)
we don't know the "best" move so far
Avatar
If you only want to match position it is a bit more doable. We store entire server sessions. So no demo per individual run. Therefore the first objective would be to split those into sequences of positions per run. After that you need to find a data structure that can efficiently look for substrings
Avatar
achtually we got someone that watched the leeman debate
13:03
called ryo
Avatar
Avatar
Learath2
If you only want to match position it is a bit more doable. We store entire server sessions. So no demo per individual run. Therefore the first objective would be to split those into sequences of positions per run. After that you need to find a data structure that can efficiently look for substrings
Something like ropes maybe
Avatar
and we probably don't want to produce software to do it I guess ^^
Avatar
Avatar
default
achtually we got someone that watched the leeman debate
idk what debate is actually xd
Avatar
oh I mean hans niemann
13:04
don't know how I got to leeman (teeman) (edited)
Avatar
ah lol
13:04
well i actually play chess from time to time
13:04
so i know before this drama
Avatar
I'm not even sure a sane best move could even be defined for a teeworlds run. Especially non-solo runs
Avatar
I mean how it turned out
13:04
he didn't even cheat over the board
13:04
so magnus is just salty, like you, ryo
Avatar
Avatar
Learath2
I'm not even sure a sane best move could even be defined for a teeworlds run. Especially non-solo runs
but usually bot runs replay something that have been played before?
13:05
or how do they work
13:05
haven't hacked around with teeworlds yet
Avatar
Avatar
Learath2
I'm not even sure a sane best move could even be defined for a teeworlds run. Especially non-solo runs
I can easily define it 😉 but calculating it is another story
Avatar
just with an idea of using the hook function to stay at the same place in the air
Avatar
okay, that's enough
13:06
please continue your cheat discussion in DMs
13:06
or stop them entirely, if possible
Avatar
Anyway, problem with position only matching is map constraints. There are a lot maps that force a sequence of positions, so you need to discard any matches that are due to those. Which is where I start to not have anymore ideas on what to do
Avatar
Avatar
Learath2
Anyway, problem with position only matching is map constraints. There are a lot maps that force a sequence of positions, so you need to discard any matches that are due to those. Which is where I start to not have anymore ideas on what to do
90% match throughout the whole map would be insane
Avatar
You could keep track of most common n-grams of symbols like they do in natural language processing, I think there are algorithms that do that
Avatar
even with such meta paths to take, your height won't match, you are a bit faster or slower here and there (edited)
Avatar
lets ask doctor Chairn for a research paper
Avatar
Avatar
heinrich5991
or stop them entirely, if possible
are you a Discord ToS fanatic? they changed how that works btw.
13:08
you can have talks about it now (edited)
Avatar
I'm a "don't develop cheats for ddnet" fanatic
Avatar
fair enough
Avatar
or preferably for any multiplayer game
Avatar
we wouldn't be a good match imo (edited)
Avatar
Avatar
default
even with such meta paths to take, your height won't match, you are a bit faster or slower here and there (edited)
There are truly constrained movements in some maps. E.g. hold d and jump when you hit the wall or speeder tunnels in freeze
Avatar
yea but that still won't explain a 90% accuracy with anothers replay
Avatar
Avatar
default
we wouldn't be a good match imo (edited)
do you realize that some people derive more fun from a game when there are no cheats?
Avatar
Anyway, it's hardly an unsolvable problem. It's just a hard problem 🙃
Avatar
Avatar
heinrich5991
do you realize that some people derive more fun from a game when there are no cheats?
like me playing ddnet just because it is fun together with friends? can't imagine. but then there are people that do break games to then report stuff to the game devs, or that do break games just to get better at it, or that break the game to profit off of it -> selling, boosting ego, etc. (edited)
Avatar
Much harder when you consider the multiple terabytes of data you need to navigate through efficiently
13:10
Checking how much one run matches another is relatively easy in comparison
Avatar
Avatar
Ryozuki
lets ask doctor Chairn for a research paper
Chairn would probably know a data structure or two that might help 😄
Avatar
I assume Chairn wrote the anticheat then?
13:12
or is he just a known math/dev guy in this community? (edited)
Avatar
Avatar
default
like me playing ddnet just because it is fun together with friends? can't imagine. but then there are people that do break games to then report stuff to the game devs, or that do break games just to get better at it, or that break the game to profit off of it -> selling, boosting ego, etc. (edited)
I see that breaking games can be fun. in order to not destroy the fun of others, it'd be nice to make sure not to spread the resulting cheat
Avatar
Monte Carlo
Avatar
Avatar
default
or is he just a known math/dev guy in this community? (edited)
Just a guy known to be good at this sort of theoretical stuff
Avatar
Avatar
heinrich5991
I see that breaking games can be fun. in order to not destroy the fun of others, it'd be nice to make sure not to spread the resulting cheat
https://secret.club/ doesn't do that though
Blog about reverse-engineering, hacking and breaking your software in every way imaginable.
Avatar
Avatar
Learath2
Just a guy known to be good at this sort of theoretical stuff
very cool, is he still active?
f3 1
Avatar
secret.club does not publish cheats that you can just use to destroy the fun of others
Avatar
Avatar
default
https://secret.club/ doesn't do that though
I don't see them peddling ready cheats. Messing around with intrusive anticheats and drm is a whole different thing
Avatar
I also read that blog, it's very cool
13:14
in fact, I'd guess most people from there would agree that breaking multiplayer games is not cool. I know at least one person writing blog posts there
Avatar
I mean obviously. Daax is helping anticheat solutions.
13:15
He is obsessed with Byfron. Maybe even works for them atm.
13:15
And surely had one or both hands taking part in or on Vanguard. (edited)
Avatar
Besides, our flavor of anticheat is a different approach anyway. Most of these people are interested in clientside anticheat solutions, which is a losing battle anyway 😄
Avatar
Train ai with bad and good gameplay
Avatar
Jupstar has been banned for 5 minutes (bad play)
Avatar
unclear if "AI" would be good at this
13:17
it's good at distinguishing known classes from one another
Avatar
Avatar
heinrich5991
unclear if "AI" would be good at this
not in realtime, but letting it go through the whole dataset you got could be worthwhile (edited)
Avatar
I'd bet it's one of the best fits for ai
Avatar
Anyway, fun discussion. I need to get back to studying the most mind numbing topic known to mankind
Avatar
Avatar
Jupstar ✪
I'd bet it's one of the best fits for ai
my bachelor thesis was about using AI and related methods for intrusion detection
13:18
it's not a good fit
Avatar
You want to tell me you are not at work right now chatting in the ddnet discord server?
Avatar
I'm indeed not at work
Avatar
Avatar
Ryozuki
i think i prefer to think iteratively and imperatively tbh
I was a functional programming fanboy with Haskell, then imperative with Nim. In the end they are just tools with different tradeoffs, none offer magic bullets.
13:19
And offering all kinds of paradigms and features also causes problems with huge complexity and teams not understanding the shared code base they are working on 😄
Avatar
a4867d2 Make tileflag names consistent and intuitive - Patiga 609178d Merge #6132 - bors[bot]
Avatar
Avatar
heinrich5991
it's not a good fit
Vacnet cries
Avatar
it's probably okay for detecting known cheat patterns, like spinbotting, etc.
13:24
but it's not good for detecting things you haven't thought of
Avatar
That's for all cheats xd
Avatar
Avatar
heinrich5991
but it's not good for detecting things you haven't thought of
The story of AI so far, in other areas too I guess
Avatar
Are humans good at it?
13:27
At least the potential of ai
Avatar
Avatar
Jupstar ✪
Are humans good at it?
human brain is amazing
Avatar
Avatar
Ryozuki
human brain is amazing
Team machine
13:38
It's the logical step in nature. It built us to built something better (edited)
Avatar
a human can optimize the algorithm a computer uses and cut lot of computation time, but a computer can only do computations fast
13:39
erlang rly do be ugly
13:39
but luckily there is elixir
13:39
which ill check sooner than later
13:39
uses the same VM BEAM
13:40
oh yesterday i saw this
13:40
its a serious project btw
13:40
maybe safer than rust
Avatar
Avatar
heinrich5991
but it's not good for detecting things you haven't thought of
Have you asked the AI how to detect something you say an AI can't detect? If you describe your problem good enough, it could deliver results. (edited)
Avatar
@Ryozuki do u think humans are the peak? ^^
13:42
well right now
13:42
on earth yes
13:43
as in the most developed creature
13:43
being aware of ones own death
Avatar
Without bacteria we would die
13:43
a human to me involves all the microcosmos needed for a human to be
13:43
xd
13:43
without the cell the human would die
13:43
🤓
Avatar
and without the human the bacteria would be dead
13:44
ironic
Avatar
Avatar
default
and without the human the bacteria would be dead
?
13:45
How so
Avatar
i think some bacteria are only found in humans
13:45
stomach
13:45
or mammals
13:45
idk
Avatar
Yes
13:46
Have u tried stop to eat?
Avatar
the fact u can discuss this
13:46
proves we are the peak
13:46
kek
Avatar
I mean it is impressive how this world works innit bruv
13:47
the world is basically (whatever) black (really is) without our eyes and only reflects light (edited)
Avatar
and "this" is being discussed using a advanced tech (edited)
Avatar
So the tech is the impressive thing?
Avatar
well to me the fact we able to do the tech is ye
Avatar
But we were only able to be born by bacteria
Avatar
AI is just automating automation
13:48
its still made by us
13:48
i think so
Avatar
So it's ultimately made by whatever was before humans
Avatar
i wonder
13:48
gotta know if big bang is true
13:49
what was truly there
13:49
before the big bang
13:49
since big bang is the making of "things"
13:49
itself
Avatar
world 1.0 from our perspective
13:50
and that world was world 2.0 of some other world
13:50
or that one egg-theory is true, and we all are the same person, evolving into a god once we lived through every life
Avatar
kurzgesagt
Avatar
it is a serious thing
13:51
they just animated it
Avatar
i know the story
13:51
the animation is dope
Avatar
We will never know, because we are nothing to this timeline
13:52
Whatever time even is.
Avatar
relevant and epic video
Avatar
I find it plausible though that you can't create any power, nor destroy it
13:53
and that this one dude that explained that an apple would recreate itself in a closed chamber with only its own particles given long enough time hopefully says the truth, based on that thesis (edited)
13:54
i am happy to relive this life in the future after an incredible big time window in world 2.0 (from our perspective) (edited)
Avatar
u wont remember this
Avatar
I know
Avatar
so this will only be your "only" life
Avatar
that's the fancy stuff
Avatar
hence why ppl turn to religion
14:01
nothingness after death is scary
Avatar
relgion is only mankinds invention
14:02
but you shall let the people believe in whatever they want
Avatar
i mean lot of stuff is mankind invention
14:03
but i guess u wanted to mean its not real
Avatar
nah that would be an insult
14:03
maybe there is something because us typing here wouldn't be logical
Avatar
im not religious btw
14:03
xd
Avatar
because out of nothing, not everything can exist. but then you can ask again what created whatever was before it. so maybe life is just illogical. (edited)
Avatar
i do believe stuff that happens is bound to happen
14:04
hard to explain
14:05
but everything is fixed on the timeline
14:05
since its based on previous inputs
14:05
Chaos theory is an interdisciplinary area of scientific study and branch of mathematics focused on underlying patterns and deterministic laws of dynamical systems that are highly sensitive to initial conditions, and were once thought to have completely random states of disorder and irregularities. Chaos theory states that within the apparent ran...
14:06
Chaos theory states that within the apparent randomness of chaotic complex systems, there are underlying patterns, interconnection, constant feedback loops, repetition, self-similarity, fractals, and self-organization.[2] The butterfly effect, an underlying principle of chaos, describes how a small change in one state of a deterministic nonlinear system can result in large differences in a later state (meaning that there is sensitive dependence on initial conditions).[3] A metaphor for this behavior is that a butterfly flapping its wings in Brazil can cause a tornado in Texas
14:06
Small differences in initial conditions, such as those due to errors in measurements or due to rounding errors in numerical computation, can yield widely diverging outcomes for such dynamical systems, rendering long-term prediction of their behavior impossible in general.[7] This can happen even though these systems are deterministic, meaning that their future behavior follows a unique evolution[8] and is fully determined by their initial conditions, with no random elements involved.[9] In other words, the deterministic nature of these systems does not make them predictable.[10][11] This behavior is known as deterministic chaos, or simply chaos. The theory was summarized by Edward Lorenz as:[12]
14:06
interesting stuff kek
Avatar
yea you insulting me before will cause huge events chaos theory proves explains it. it's the little things that matter. (edited)
14:07
Ray
14:09
u already blended to the #developer
14:09
it was always about discussing metaphysics
14:09
than programming
14:09
TOOBASED
14:10
talking about interesting stuff
14:10
enter here
14:10
and zoom out
14:10
beautiful
14:10
but dont just zoom out a little
14:10
keep zooming out
14:10
and keep
14:11
infinitely
14:11
mesmerizing
14:13
it uses this btw
Avatar
yea if this is game of life, all that little logic zoomed out will just create the same game again, first whole pixels, then those ships, reappearing logic, etc. (edited)
Avatar
In the beginning I didn't think it was possible without cheating something but finally found a way to "build everything perfectly" Due to the inifinite recursion, each level is aperiodic for both space and time, and you'll never see the same pattern no matter how much you scroll
Avatar
Avatar
Ryozuki
but everything is fixed on the timeline
not quantum mechanically 🤓
Avatar
Avatar
Ryozuki
lets ask doctor Chairn for a research paper
definition is easy, move that grants you on the overall race (not just the part) the best time
Avatar
yea but that isn't enough
14:30
people can pick the replay of their friend
14:31
and stuff like that should get detected as well, if not already
Avatar
now, it's just a probably NP hard problem as the sum of optimal moves for each parts isn't probably the best time for the whole map
Avatar
Avatar
default
very cool, is he still active?
hello there 🙂
Avatar
Avatar
Chairn
now, it's just a probably NP hard problem as the sum of optimal moves for each parts isn't probably the best time for the whole map
don't give bot devs ideas to break world records
14:31
kek
14:32
The Gleam programming language
14:32
The power of a type system, the expressiveness of functional programming, and the reliability of the highly concurrent, fault tolerant Erlang runtime, with a familiar and modern syntax.
14:32
this might be more for me xd
14:32
i love types
Avatar
then you will love object oriented programming languages (edited)
14:32
if you are only stuck in web dev languages (edited)
14:33
implemented in rust even
14:33
⭐️ A friendly language for building type-safe, scalable systems! - GitHub - gleam-lang/gleam: ⭐️ A friendly language for building type-safe, scalable systems!
Avatar
Avatar
default
don't give bot devs ideas to break world records
well, if they can solve this problem, they can probably help to more important business
Avatar
I mean someone probably does it already
14:34
selfhost a server so data doesn't get sent to ddnet
14:34
let some AI figure out the fastest strat for every challenge
Avatar
@Mr.Gh0s7
justatest 2
Avatar
but the fastest strat for each challenge is not the whole map best time. example: when there's a cut 🙂
Avatar
Avatar
Ryozuki
i love types
Try typescript troll
Avatar
Avatar
Chairn
but the fastest strat for each challenge is not the whole map best time. example: when there's a cut 🙂
Yea. You are right. Then make it go through all the open spots and see if it finds some cheese. Or let the pathfinder find potential shortcuts. By not eliminating freezes by default. Shouldn't it find an even faster way through thousands of generations eventually? If you are not limiting it to a set path (through all the challenges in a row). That isn't a problem I want to deal with though. I would just improve upon the best existent time. Possibly by replay editors. Similar to the one I made for Trackmania. But reusing other players' plays should be detected already. This is why I thought I was smart when I decided to improve my own replay (unsent to the server) with my own plays (for another game). (edited)
Avatar
Avatar
noby
@Mr.Gh0s7
I'm waiting for xmas vacation to continue working on it :D
Avatar
Avatar
default
if you are only stuck in web dev languages (edited)
bruv
Avatar
Avatar
default
then you will love object oriented programming languages (edited)
and more bruv
Avatar
isn't it one?
14:42
all that bs sweet talk sounds like any for web dev developed language
Avatar
you mean gleam?
Avatar
for example
14:43
before that you had one starting with l or i
Avatar
i mean there is only one web lang and its js
14:43
but i guess u dont like high level perfomance languages?
Avatar
which people made typescript for, for example which was worth using until js got type-safe themself, recently (edited)
Avatar
gleam is a functional language that runs on BEAM, the erlang VM
14:44
and types are not just"object oriented programming"
14:44
actually OOP gets many things wrong
14:44
composition over inheritance
14:44
rust gets it right imho
Avatar
how bad is C# then
Avatar
i try to avoid it whenever i can
14:45
but sometimes i gotta use it to mod ff14
14:45
sadge
Avatar
sadge indeed
14:45
that you don't like it besides that (edited)
Avatar
trash kek
14:45
why would i use that when i have my beloved rust
Avatar
wdym, it can get compiled to native now
Avatar
its only famous cuz m$$ is behind it
Avatar
which allows me to write internals
14:45
in fucking c# did you imagine that a few years ago (edited)
14:46
c# unsafe code is unsafe
14:46
i can do the same in safe rust code
Avatar
Avatar
Ryozuki
c# unsafe code is unsafe
same with C++
Avatar
not same with rust
Avatar
you don't know that something is messed up until you run it
Avatar
i never mentioend c++
Avatar
yea but that's hand holding
Avatar
lmfao?
14:46
XD
14:47
i need to tone myself down
14:47
i get too heated
14:47
brb
Avatar
Avatar
Ryozuki
i never mentioend c++
I did now. Because Rust was something a lot of C++ devs moved to.
14:47
and them not allowing you to code unsafe stuff is hand holding for me
Avatar
u definitly dont know shit about rust
14:48
cuz what u said isnt true
14:48
i recommend u learn rust
14:48
it will teach you a lot
14:48
its incredible
Avatar
bad mentality
14:48
dont say stuff about it then
Avatar
I won't mate with that crab crap
Avatar
and arguing with people who havent even tried it is the worst
Avatar
its like a profesional doctor talking with a person who heard x on the streed about some medicine
Avatar
on the topic of rust is there a more elegant way to do this? cur += i32::from_str(line).unwrap();
Avatar
street*
14:49
cur += 32 line.parse().unwrap();
14:49
if ur parent function returns a result
14:49
u can change unwrap() for ?
14:50
cur += line.parse()?; (edited)
Avatar
is that possible by default
14:50
or do you have to write extension functions in rust? (edited)
14:50
to use functions on an object
Avatar
in rust u only have structs
14:50
and you "implement them"
14:50
its half like oop but without the bad stuff
Avatar
so whatever line is you had to implement yourself?
Avatar
line here is a &str
14:51
a string
Avatar
then how do you write a function for that struct if it is not yours
Avatar
.parse() is a function you get if your struct implemented the trait From
14:51
you make a trait with that function
14:51
and implement the trait for the struct
Avatar
a trait is like a interface
14:52
for example, this is my trait for api endpoints
14:52
14:52
and implement it like this
14:53
14:53
and my api client can execute any struct implementing Endpoint
Avatar
and you think this is better than for example BetterEndpoint : Endpoint or some function in a class that got a this parameter? (edited)
Avatar
composition is the best
14:54
it falls in place so well
14:54
try rust
Avatar
i get the first being worse. but the second is nothing else. from the outside. (edited)
Avatar
and u will know why
14:54
the rust book has a chapter on OOP programming
14:54
ur style
14:54
good read
14:55
rust type system is rly powerful
14:56
and more everyday
14:56
since it takes stuff from functional languages
14:57
but the best is the fearless concurrency and safety
14:57
kek
14:57
thanks for coming to my ted talk again
Avatar
thanks for teaching me how to read rust code, but won't gonna code in it
Avatar
u should learn it
14:58
if ur passionate about programming
14:58
u can only get positives
14:58
learning never bad
Avatar
I rather code in asm than learn rust and code the same thing in it (edited)
14:59
clown_gang
15:01
I will use Rust actively when Microsoft starts to use it
15:02
But for me, it is nothing different than other programming theories combined into a language that its users think is better than some other language that the people using that language think is good enough for their needs. Under Windows, C-family code will return the same thing as Rust. I hope. Otherwise, Rust creates tons of overhead, or even worse, runs in a VM. (edited)
Avatar
Avatar
default
I will use Rust actively when Microsoft starts to use it
they do
Avatar
They part of rust foundation
Avatar
that, maybe
Avatar
What's ur primary language?
Avatar
any C language goes
Avatar
C#?
Avatar
pure C, never
15:07
C#/C++ works for me
Avatar
If u ever encounter using c# use rust instead
Avatar
C# for external stuff until they introduced native compiling since NET 7.0. C++ for whatever C# can't do. Which is hard to find something for nowadays. Because C# can even go Kernel using a Wrapper VollRagm introduced in our community. (edited)
Avatar
Microsoft build a os in c# that does not directly use a kernel. But c# too much bloat
Avatar
What type of bloat
Avatar
Well garbage collection is bloat for example
Avatar
that is an issue when you run C# in its little JIT VM
15:12
and I never had issues with Garbage Collection. Only when it comes to graphics stuff. Because graphics stuff gets excluded by it.
15:12
Which makes you have to set everything to null to force it onto those objects. Or otherwise you will leak memory most likely, as soon as you reinitialize something graphical. (edited)
Avatar
U had no issues bcs it's made for easy use
15:13
It eats ram and is slower in most cases than normal allocation deallocation tho
Avatar
thing is, you don't have to use GC. you can use it. (edited)
15:15
if that is a nightmare for every memory management freak
Avatar
What are u even developing
Avatar
home or at work?
Avatar
Wherever u have to use it
Avatar
Avatar
default
sauce
i think they use it in some kernel parts, they also made the windows crate
15:20
a crate is a library
Avatar
Yea you know why
Avatar
@Jupstar ✪ he is a c# user
15:21
no point in talking
15:21
cant convince em
Avatar
because Rust wouldn't be able to communicate with the OS like at all
Avatar
they usually are m$ bootlickers
Avatar
that's why Linux had to create a crate too
Avatar
not at all xD
15:21
by that i mean that microsoft themselves made the crate
15:21
previously it was a user made one
15:22
as in a random person made the library
Avatar
Avatar
default
that's why Linux had to create a crate too
nevermind. but they actively added support for it in the kernel in version 6.1.
15:22
it wouldn't be able to do it by itself
15:23
u are rly confused
15:23
what they added in the kernel 6.1 is support to use rust in the kernel itself
15:23
to help make drivers with it
15:23
u can use and call linux apis before 6.1 lol
15:24
anyway no wonder you have that actitude
Avatar
Remember ryos words. C is just a protocol xd
Avatar
unwilling to learn
15:24
its pretty common in c# devs
15:24
i found this on the ff community
15:24
there is a marketboard website
15:24
they used c#
15:25
and its slow
15:25
so im making my own in rust
15:25
to flex
Avatar
yea but it's not slow because of C#
15:25
it's slow because of wrong use of C#
Avatar
nah its slow cuz they do wrong db management xD
15:25
but anyway its slow
15:25
and i will dab on them
15:26
altho ultimately
15:26
rust is way easier to paralelize
15:26
and do concurrent
15:26
simply because u dont need to be worried about race conditions
15:26
only deadlocks
15:26
and its as perf as C
Avatar
@default even if i don't care what u use. Doesnt it suck that, no matter how hard u try, your code will execute at least twice as slow than the same code in a system level language.
15:27
i would use c++ before c#
Avatar
again, I compile it into native machine code since C# 7.0
Avatar
@default can u do runtime reflection in compiled c#?
Avatar
I would have to do research on the terminology here first
Avatar
Nice but how does that solve the bottlenecks that come with the design
Avatar
I know what reflection is
15:28
but runtime reflection got me all dizzy
Avatar
Avatar
Jupstar ✪
Nice but how does that solve the bottlenecks that come with the design
name me a bottleneck
Avatar
i mean reflection itself is runtime mostly i would say xd
Avatar
Yea so probably no. Though you can call the API for that. I just never tried.
Avatar
u can do compile time reflection in rust
15:29
Compile-time reflection API for developing robust procedural macros (proof of concept) - GitHub - dtolnay/reflect: Compile-time reflection API for developing robust procedural macros (proof of conc...
Avatar
I dereference an address to a function if I want to use a function from a game now Did you mention you hate unsafe code? Yea. That's peek performance unsafe code. (edited)
15:30
You crash if you don't get the types correct that the function expects from you
Avatar
well ur mostly describing some kind of FFI
15:31
15:31
csharp 7 is slower
15:31
with AOT
15:31
i think its ur thing
15:31
native
15:31
@Jupstar ✪
15:32
looks like AOT uses less memory
15:32
but its slower
15:32
15:32
peak mem 1mb for rust
15:32
xd
Avatar
Yeah look at that ram
Avatar
benchmarks,benchmark,performance,fasta,helloworld,mandelbrot,nbody,spectral-norm,binarytrees,coro-prime-sieve,edigits,fannkuch-redux,http-server,json-serde,knucleotide,lru,merkletrees,nsieve,pidigits,regex-redux,secp256k1,Rust,Rust lang,C#,C# lang
15:34
a thing GC is good at is binary trees
15:34
but they still use shitload of memory
15:34
15:35
kek
15:35
Avatar
ItS tHe ImPlEmEnTaTiOn
Avatar
lol there is a thesis
Avatar
Avatar
default
ItS tHe ImPlEmEnTaTiOn
i can tell u they did their best efforts
15:37
u can submit ur solution
15:37
btw
Avatar
Gc is simply big problem sometimes.
Avatar
its only good when dealing with trees
Avatar
Most times xd
Avatar
and even so its mostly not noticable
15:38
but they use more memory always
15:38
like 400% more
Avatar
But in the end u can still use a gc in system level languages too
Avatar
So i could imagine u can beat c sharp
Avatar
i wonder if they used a arena allocator for the tree problems
Avatar
If it really comes from this
Avatar
why do you keep mentioning GC
Avatar
Does it also beat c here?
Avatar
when you don't even have to use it
15:39
what if there is no GC
Avatar
@default but the non GC c# is slower
15:39
as u have seen
15:39
xD
Avatar
Avatar
default
what if there is no GC
rust is like a safe C++ without GC
15:40
its a game changer
Avatar
Not sure actually if you can see it even from your sweet tables
15:40
because compiling AOT doesn't automatically mean GC is disabled
Avatar
in fact people still use GC for the native stuff for whatever reason
Avatar
What do u use?
15:41
I didn't read all
15:41
Win api?
Avatar
yes pretty much
Avatar
The compiler probs not allowed to optimize them away
15:42
Can u access the stack for objects?
Avatar
explain
Avatar
Else this could be a place where compiler can optimize gc away
15:43
Bcs the lifetime is known potentially
15:43
Store objects on stack instead of heap
Avatar
never done that
15:44
no experience
Avatar
But with winapi calls it might not do that
15:44
Bcs of side effects
Avatar
@Jupstar ✪ i think its mostly heap based
15:44
unless its a non boxed primitve
15:44
primitive
Avatar
Avatar
default
never done that
another reasonn to learn C or Rust
15:45
not knowing what the stack or heap is
Avatar
i know what a stack is
15:45
just not if my program uses it or the other one
Avatar
most of the time if u type new in c# its heap
15:45
iirc
Avatar
^^
Avatar
yea but then you could force use stack
Avatar
MyStupidOOPClass x = new MyStupidOOPCLAS()
Avatar
surely
15:46
oops
15:46
capslock
Avatar
Avatar
default
yea but then you could force use stack
hard on a language such as c# or java
Avatar
i mean give me an example in your language
15:47
i then can think if I can implement it in my language
Avatar
MyStupidOOPCLAS a;
15:47
No new
Avatar
yea that is possible
Avatar
@Jupstar ✪ a string being on the heap or stack in c# is an implementation detaiñl
15:47
detail
Avatar
but it will scream that it was never intitialized
Avatar
thats how much they care about perf
Avatar
so it is null or the default object
Avatar
If I execute this line I create a string which is a reference. string mystring = "Hello World" Is variable mystring in the same context as the object I declare it? And the data "Hello World" on ...
Avatar
Avatar
Ryozuki
thats how much they care about perf
It's the fastest high level language
15:48
But still shower than rust cpp and c^^
Avatar
Avatar
Jupstar ✪
It's the fastest high level language
is it?
15:48
what about golang
15:48
kek
Avatar
@Jupstar ✪ also modern java might outcompete c# iirc
15:48
with the new GC impls
Avatar
Avatar
Ryozuki
is it?
Maybe Julia if that's even considered high level it some less known. But pretty fast
15:48
Or
Avatar
Avatar
Ryozuki
@Jupstar ✪ also modern java might outcompete c# iirc
No java even bigger bloat xd
15:49
i like how u deleted ur comment
15:49
before i posted this
15:49
kek
15:49
modern java got optimized a lot
Avatar
yea there is the program
15:50
and then the runtime
15:50
that is like 800mb
15:50
llook the ram on AOT
15:50
they clearly dont use GC
15:50
yet slower
Avatar
peak mem for aot
15:50
impressive
15:51
well not really
15:51
was obvious
Avatar
doesnt beat rust tho
15:51
more control = easier to optimize
15:51
u cant win with a gc
15:51
its simple
15:51
but u dont have to worry about losing ur job
15:51
since m$ is behind c#
Avatar
do you want me to tell you that rust is indeed better
Avatar
it would be good but not required
15:52
cuz i already know
15:52
BASED
Avatar
yea but you lied to yourself
Avatar
you actually kept the discussion about something you knew going
15:52
with someone who never used rust
15:52
check mate
Avatar
oh cuz i love discussing about this
15:52
@Jupstar ✪ knows
15:52
blobwhistle
Avatar
Rust is indeed better than C#. You proved it with various code tests.
Avatar
Xd
Avatar
now u have to learn rust
15:54
and u will join the club with @ReiTW
Avatar
My parents house is strict. No Rust.
Avatar
u mean work?
15:55
dont limit urself cuz work
15:55
learn it cuz u want
Avatar
not work
15:55
who cares about work
Avatar
then what
Avatar
family tree
Avatar
does ur parent beat u
15:55
if u dont use c#
Avatar
if I would use Rust
15:55
maybe
Avatar
is he a microsoft employee?
Avatar
nah but Siemens
Avatar
boring corpo
15:56
i recommend this read
15:56
to get the right mindset
15:57
note that hacker is not used in the kids sense
15:57
as u may know
Avatar
Maybe I know
15:58
Though Mr.Robot was a rather realistic TV show.
Avatar
There is another group of people who loudly call themselves hackers, but aren't. These are people (mainly adolescent males) who get a kick out of breaking into computers and phreaking the phone system. Real hackers call these people ‘crackers’ and want nothing to do with them. Real hackers mostly think crackers are lazy, irresponsible, and not very bright, and object that being able to break security doesn't make you a hacker any more than being able to hotwire cars makes you an automotive engineer. Unfortunately, many journalists and writers have been fooled into using the word ‘hacker’ to describe crackers; this irritates real hackers no end.
>
The basic difference is this: hackers build things, crackers break them.
15:59
hackers are for example, people who contribute to ddnet
15:59
literally
Avatar
Avatar
default
Though Mr.Robot was a rather realistic TV show.
it isnt, but the serie is rly good
15:59
i watched it all xD
15:59
love the actor
15:59
dead stare
Avatar
Avatar
Ryozuki
it isnt, but the serie is rly good
it isn't?
Avatar
realistic
Avatar
like the end. yes.
16:00
unrealistic.
Avatar
It's completely realistic when it comes to the techniques and the technology, but it's very fictional when it comes to stuff like two people planning and executing a huge hack in a matter of days. So no, in practice it's not possible for someone to be as good as Elliot, although with enough time, people, skill, managing and luck it's possible to a group of hackers to execute most of the stuff he and the rest of fsociety does.
16:02
actually NSA did more amazing stuff than what this series shows
16:02
they hacked air gapped turbines in a nuclear facility to not operate correctly in iran iirc
16:02
i can recommend u a rly good pdocast
Avatar
darknet stories?
16:02
best onen tbh
Avatar
i used to listen to it at the gym xd
Avatar
i listened it through once
16:03
stopped for whatever reason
16:03
couldn't wait anymore for the next episode
Avatar
the thing is we only know about their failures
16:03
an they are still amazing
16:03
the successes will never be known
16:03
cuz by becoming known they failed
Avatar
thats a good quote
16:03
i should become a writer
16:03
ezpepe
Avatar
that's their quote probably
16:04
i heard or read it somewhere (edited)
Avatar
in case there is probably lurkers reading this
16:04
A podcast featuring true stories from the dark side of the Internet.
16:04
here is the podcast
16:06
and what i mentioned is
16:06
Stuxnet
16:06
Stuxnet was the most sophisticated virus ever discovered. Its target was a nuclear enrichment facility in Iran. This virus was successfully able to destroy numerous centrifuges. Hear who did it and...
16:06
Stuxnet is a malicious computer worm first uncovered in 2010 and thought to have been in development since at least 2005. Stuxnet targets supervisory control and data acquisition (SCADA) systems and is believed to be responsible for causing substantial damage to the nuclear program of Iran. Although neither country has openly admitted responsibi...
Avatar
Is there an option to disable this, if not, can it be removed? It's not really useful at all
Avatar
oh god, not again
Avatar
nothing interesting
16:19
just a talk about the universe, something game related, and then two people rambling with me why Rust is good.
Avatar
yup, just flew over, most of it was just you with Ryo or Jupstar on languages
Avatar
could have gone into #off-topic. but some devs aren't that strict.
Avatar
#developer is also #off-topic but reserved for developers 😄
Avatar

Checklist

  • [ ] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test (especially base/) or added coverage to integration test
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-ad...
Avatar
Avatar
Skeith
Is there an option to disable this, if not, can it be removed? It's not really useful at all
done ^
Avatar
Thank you
Avatar
It's kinda annoying when there's a tune zone and you don't know what it does. I think we could render the tune settings when using entities mode in a not too annoying way rather than having to open the editor.
Avatar
On macOS 13.1 different command line tools are mixed, leading to a compilation failure: ``` [...] -- Found ZLIB: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk/usr/lib/libz.tbd (found version "1.2.11") -- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR) -- Could NOT find Crypto (missing: CRYPTO_LIBRARY CRYPTO_INCLUDEDIR) -- C...
17:09
See https://www.sqlite.org/tempfiles.html

Checklist

  • [ ] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test (especially base/) or added coverage to integration test
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](htt...
Avatar
d5cf363 Remove spammy log (thanks Skeith) - def- 75d0735 Merge #6133 - bors[bot]
Avatar
Fixes #6105 This change does some more stuff:
  • change the filename to include the time with seconds to be able to run the script easier more often
  • Fix that _backup tables are only moved after 1h and not immidiately in UTC+1
  • Add a parameter to configure the number of minutes the backup
  • Add parameter to change timestamps to be in localtime
  • consider the timeout in num_transfer calculation
  • remove rows in _backup tables to not print in them in the log
  • rename tables to TABL...
17:41
i was using this on some projects
17:41
poggers
17:41
bye reactjs
Avatar
6581958 Also ignore sqlite-shm and sqlite-wal files - def- 601ebb5 Merge #6136 - bors[bot]
18:50
Lmao
Avatar
it escalates xd
19:03
i send that here
19:03
some day ago
19:03
sent
Avatar
yes u always fastest
19:05
i dont even read news anymore, they slower than u
Avatar
I wonder how they check if it is from ChatGPT. When it is complete bs?
Avatar
maybe they simply ask it
Avatar
I think it's to prevent question such as: "Why would AI write this code to do X when it could simply do Y?"
Avatar
They nerfed openai too much
19:35
Before i could ask it to act as a browser console but now it cries out "im not a browser im an ai i cant do that"
19:36
"i was not trained for thaaat"
Avatar
60b4708 Improve move_sqlite script to adapt timezone - Zwelf 31fa4f4 Merge #6137 - bors[bot]
Avatar
how do i check if a packet is actually being sent?
Avatar
Test on local server (edited)
Avatar
Avatar
Alexander
"i was not trained for thaaat"
Easy bypass
Avatar
Avatar
Anime.pdf
Test on local server (edited)
But actually if you dont care if it was received you can do it with some tool like wireshark
Avatar
Avatar
GitHub
Click to see attachment 🖼️
@Chairn well wouldnt that defeat the point of oco map
Avatar
well, a small sacrifice
Avatar
there should also be a way to toggle some tiles in entities since on some maps switches, speed up tiles and other things cover freeze tiles or tps
Avatar
Most notably in minigames like Xpanic, which have unique tunes for grenade or shotgun bullet speeds, if you were to replay the video in editor, the objects would fire "normally", causing the bullets to fly off screen if they weren't even moving in game. An example of this is, if I set tune grenade_speed from 1000 to just 100. They fly off, and through the wall, but explode where they should explode in-game. https://user-images.githubusercontent.com/95713843/207716576-eeca55db-53fa-49...
Avatar
Avatar
Chairn
well, a small sacrifice
Maps with math challenges/pick a path had to die this death a long time ago kek (edited)
Avatar
First tee joins /team 1 and use /practice Second tee joins /team 1 and is stuck there because of practice Practice should probably act as if the team started
Exported 744 message(s)