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-09-12 00:00:00Z and 2022-09-13 00:00:00Z
Avatar
Was actually searching a good game engine Yesterday and found bevy
Avatar
there was another one, forgot the name
07:22
I think it started by Fox.... smth
07:22
it has an editor
07:25
Fyrox
Avatar
I can't seem to settle on how to make the new global bans thing. I want to make something generic enough that we stop having to bolt on different ways of interacting with the outside from the gameserver
Avatar
Inter server comms
Avatar
I was originally thinking a new protocol, but it made me feel like I was re-inventing the wheel
Avatar
Imagine a server sharing the entire team state to another
09:14
And switching
09:14
When a ddos happens
Avatar
I'm currently considering HTTP + SSE. With HTTP/2 persistent connections it wouldn't be too bad when I eventually want to hook the other direction up allowing servers to communicate with the hub
Avatar
Avatar
Ryozuki
Imagine a server sharing the entire team state to another
this makes another kind of DoS possible. You could hog the entire inter-server bus by just ddosing the servers as teams are switched one to the other
Avatar
Why not ipc (edited)
Avatar
Sadly the state is large enough that this isn't feasible
Avatar
Or grpc
Avatar
Avatar
Ryozuki
Why not ipc (edited)
I considered ipc too even directly shared memory, but with tiny amount of traffic on that bus I really didn't think it'd be worth it
Avatar
Maybe just make the servers so a http request
09:17
On a json file
09:17
Every x mins
09:18
Most simple solution imho
Avatar
On the leaf servers I'm thinking http over unix domain sockets, the spoke proxies and the hubs would communicate over http over tcp like normally
Avatar
And then a post request to add a ban
Avatar
Avatar
Ryozuki
Most simple solution imho
Most simple but it's too slow, bans should go through immediately. And it also suffers from waste as the file is usually unchanged
09:19
I'm mostly unsure about the http part honestly
Avatar
Http bloat
09:19
BASED
Avatar
Should I bother with devising a proper protocol or is http good enough with the relatively small amount of traffic?
09:20
If it wasn't for http/2 persistent connections I think it'd be very wasteful given the server will want to communicate backwards too, but with persistent connections I think it's feasible enough
Avatar
If you ask me whats most fun, a protocol, if you want to just get things done then http
09:20
I would go with fun
Avatar
What is grpc btw?
09:22
I'm guessing it's rpc over some exotic protocol well suited for it?
Avatar
gRPC is a modern open source high performance Remote Procedure Call (RPC) framework that can run in any environment.
09:23
it uses http2
09:23
and doesnt work on browsers
09:23
its for apps
09:23
also uses protobuf
09:23
A high-performance, open source universal RPC framework
Avatar
ah they decided abusing http2 persistent connections were good enough for them
09:23
who am I to challange that 😄
09:24
yeah
Avatar
Funnily enough this really looks like the final design I'm considering. So maybe I'm not that far off from a good solution
09:24
They just used protobuf instead of the json I'm thinking about
Avatar
A native gRPC client & server implementation with async/await support. - GitHub - hyperium/tonic: A native gRPC client & server implementation with async/await support.
09:24
for rust
09:25
protobuf is probs more perf
Avatar
And I guess they do the streaming data better than the sse I'm thinking of
09:28
Seems they support json too. I might just use grpc instead of making it from scratch. Thanks, I was sure someone else solved this problem before
Avatar
Would be cool to do this as a rust module @Learath2
09:33
BASED
09:33
And you have the lib i sent
09:33
Im sure in c++ u need to pull a big lib
09:33
greenthing
Avatar
Avatar
Ryozuki
Would be cool to do this as a rust module @Learath2
I think we need this quicker than @heinrich5991's rust stuff can be added to the client
09:35
I'm considering just using grpc-json though. With that I think I hope I can just use curl on gameservers
Avatar
I'm still in general pretty skeptical about generic async programming. It just feels so wrong to let some scheduler handle my threading 😄
Avatar
Just make ur async runtime 4head
Avatar
The problem isnt that the runtimes arent good enough. The problem is that when it gets to the runtime a lot of information is already lost
09:58
Maybe a runtime with task tagging could be nice. E.g. tasks with same tags run on the same thread pinned on one core e.g.
10:54
Why you want such fine grained control?
10:54
Maybe then dont use a async runtime
10:54
But an actor system
10:55
I think runtimes are p good at managing tasks
10:57
Well idk if an actor system can give more control
11:00
Highly-available Distributed Fault-tolerant Runtime - GitHub - bastion-rs/bastion: Highly-available Distributed Fault-tolerant Runtime
Avatar
Avatar
Ryozuki
Why you want such fine grained control?
Idk, sometimes you just know better than the runtime. The runtime can only know what is happening right now, you can also make predictions about the whole running duration of the program. Say you do a calculation that'll be necessary in a couple ms. If the result of that calculation and the task it's necessary for happens on different cores now you've lost locality which'll be slower
11:04
Maybe this helps?
Avatar
Avatar
Learath2
Idk, sometimes you just know better than the runtime. The runtime can only know what is happening right now, you can also make predictions about the whole running duration of the program. Say you do a calculation that'll be necessary in a couple ms. If the result of that calculation and the task it's necessary for happens on different cores now you've lost locality which'll be slower
I guess at some point runtimes have to do tradeoffs (edited)
11:11
The reality is that often you dont need such control imho
11:11
And i think tokio is rly perfomant rn
Avatar
I guess the idea with runtimes is that you usually don't care for that much optimization
11:13
Which is true, unless you are doing some highly computational stuff you'll be bound by other things before you are bound by how efficiently you are using your cpu
Avatar
I mean, im sure the tokio devs care
11:13
But i guess its more "general optimization" than a specific usecase one
Avatar
Avatar
Ryozuki
I mean, im sure the tokio devs care
Yeah, but they can only optimize for the generic case, it's hard to do general optimizations for a specific usecase
Avatar
Especially when it can be insanely architecture dependent. Like the fact that on some architectures some cores have more FPUs and some cores share some amount of cache
Avatar
If you use a modern linux, for example there is tokio-uring
11:16
ye
Avatar
@Learath2 there is also this
12:38
16:03
good reads
Avatar
@noby found smth better than your obfuscation
19:29
🙏 2
Avatar
left-to-right arabic smh xd
Avatar
[quakenet] ChillerDragon BOT 2022-09-12 19:49:26Z
xd
Avatar
when arabic binary
Avatar
I need help with this
Avatar
read pinned message in #bugs
Avatar
3D Tee Clones still long way to go. I just thought it was cool (in active development with godot) (edited)
20:59
21:00
Easter Egg Guess the map ;D
Avatar
Avatar
sone
3D Tee Clones still long way to go. I just thought it was cool (in active development with godot) (edited)
godot dev pog
21:01
do you use premade assets (classes and such) to make the movement like this?
Avatar
all manual, damn
21:02
anywhere to see the code if you allow?
Avatar
sure lemme upload it to github in 10-15mins
Avatar
TeeClones is inspired by Teeworlds fng/ctf/ddrace and CloneArmies - GitHub - osnesone/TeeClones: TeeClones is inspired by Teeworlds fng/ctf/ddrace and CloneArmies
Avatar
Avatar
sone
Click to see attachment 🖼️
I tried to do something similar, but it turned out that the control of the camera in 3d is too complicated to do basic movements like hammer hit or drag
Avatar
I'll clean up the code tommor
21:17
Yes I remember you. It was pretty cool ngl but I am going in another direction. Not so much ddnet/ddrace style as fng/ctf style
🥰 1
Avatar
the second looks a bit annoying to read due to spelling mistakes. still worth it despite this?
Exported 115 message(s)