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-13 00:00:00Z and 2022-12-14 00:00:00Z
Avatar
not supported on all machines
Avatar
Avatar
deen
Anyone has good ideas how to make DDNet more noob-friendly? See https://steamcommunity.com/id/sancarn/recommended/412220/
after the tutorial players need to be guided through the GUI - this can be done by making the GUI more intuitive (more elegant solution, but less likely to happen any time soon), or some kind of animated tutorial that highlights a button with a small explanation popping up. there are a lot of things to be explained, so i dont know yet how to make it not too boring. in particular the things you wrote in your reply to the review should be explained: how to join a server how to filter by difficulty and region how to filter by empty how to call a vote to change the map how to call a vote to change the map to some 1-2 star novice map how to join a team (also how to join it without it dissolving after you die) how to call a vote to kick a blocker how to use practice mode how to connect a dummy also, it would be good it we could somehow set the expectation, that it is hard to complete a map and it takes time and failing a lot. also it is not lethal to be left behind by one group - the next group that is more your speed might save you and take you with them. (edited)
❤️ 1
Avatar
de9ce7d M Teeish Mine, M Teetrader, A AiP-Bores, A 23shots - ddnet-maps
Avatar
Avatar
heinrich5991
they were just completely forgotten
So basically like now. It's good that u finally understand the problem
Avatar
Avatar
Robyt3
You can exclude the labels "to-reproduce" and "discussion" when searching for issues, to find the useful ones (edited)
And if they wouldn't even be there i still could filter them, even without doing something for it
Avatar
Avatar
Chairn
not supported on all machines
That's not the reason
Avatar
Pretty good reason for me
08:39
What is the even better reason
08:39
justatest
08:40
That it is worse than OpenGl?
Avatar
Avatar
Jupstar ✪
Add more tutorials
Tutorials should be designed with enough hints so that almost anyone can do it. By explaining very basic things like "how to drag another tee through freeze, so that it can help you in turn" we are not allowing the newbie to start feeling like they "solved the riddle on their own" and feel excited. The more tutorials we have, the more things that could have been cool little riddles for new players we make into skills they are required to learn to play the real game. however, there are quite some things that are very unintuitive about the game, but are commonly used in novice maps, so not understanding those aspects would make people frustrated (i am talking about hammerfly, the fact that you can press buttons while frozen but being hammered, the fact that it makes a difference to align at tiles, in particular sometimes you have to hook someone to be able to hammer them through the wall even though it doesnt look like it, the fact that it makes a difference which direction you are looking in while hammering, ... [i have a list]). it would be nice to have a tutorial for those things - however many of them are a lot harder to explain to player+dummy instead of 2 players.
❤️ 1
Avatar
Avatar
default
Pretty good reason for me
It will fall back to OpenGL if Vulkan is not supported. So no, this is not the reason
Avatar
THEN NAME THE REASON! harold (edited)
Avatar
The reason is simply that we haven't tried it yet
Avatar
Also please don't default it for the sake of NVIDIA users
Avatar
With the new error messages work fine, we can try it maybe
Avatar
Avatar
default
Also please don't default it for the sake of NVIDIA users
?
Avatar
Isn't Vulkan only a good alternative for amd?
Avatar
No
Avatar
You keep hearing that tho
Avatar
No
Avatar
Any source for your claim?
Avatar
Interesting. No. I only was told that. Or maybe it was only good for Linux users and performed worse on Windows. Dunno. NVIDIA designs hardware to provide the fastest Vulkan performance for your games and applications. For example, NVIDIA GPUs perform up over 30 percent faster than the nearest competition on games such as Doom Eternal with advanced rendering techniques such as ray tracing. (edited)
Avatar
Vulkan is better for every modern hardware
08:57
Even for your Android phone
Avatar
Avatar
default
Isn't Vulkan only a good alternative for amd?
Lmao
09:13
Stupir windows marketint
09:13
Marketing
09:13
Such a bad conpany with their stupid directx fud
Avatar
Avatar
Alisa
Tutorials should be designed with enough hints so that almost anyone can do it. By explaining very basic things like "how to drag another tee through freeze, so that it can help you in turn" we are not allowing the newbie to start feeling like they "solved the riddle on their own" and feel excited. The more tutorials we have, the more things that could have been cool little riddles for new players we make into skills they are required to learn to play the real game. however, there are quite some things that are very unintuitive about the game, but are commonly used in novice maps, so not understanding those aspects would make people frustrated (i am talking about hammerfly, the fact that you can press buttons while frozen but being hammered, the fact that it makes a difference to align at tiles, in particular sometimes you have to hook someone to be able to hammer them through the wall even though it doesnt look like it, the fact that it makes a difference which direction you are looking in while hammering, ... [i have a list]). it would be nice to have a tutorial for those things - however many of them are a lot harder to explain to player+dummy instead of 2 players.
Mh yeah. I think many ppl have many good ideas. One big problem is that we currently solve a lot of problems with the editor we already have, which comes with lot of limitations. Explaining smth like a freeze hammer would be easier if you build up the situation that leads to this. Sadly i doubt any dev is interested into developing a more complex tutorial. Which is more interactive rather than only text based
Avatar
Avatar
Jupstar ✪
It will fall back to OpenGL if Vulkan is not supported. So no, this is not the reason
We don't fall back on crash though
Avatar
Avatar
deen
We don't fall back on crash though
Currently we have more problems with opengl tho. Tab out crash is the only one that currently directly affects a user. Or do you know any other. Too many skins are handled with the error update (edited)
Avatar
Am I the only one getting crashes with the new ddnet rls ?
Avatar
Send dumps
12:15
Or assert logs
Avatar
how to get assert logs?
Avatar
Appdata dumps
Avatar
Avatar
Jupstar ✪
Currently we have more problems with opengl tho. Tab out crash is the only one that currently directly affects a user. Or do you know any other. Too many skins are handled with the error update (edited)
So you think it makes sense to default to Vulkan for next release? Would probably also be a good time to add the vulkan error messages and then I can remove the "default to Vulkan" option in Steam which is annoying some people
Avatar
Avatar
deen
So you think it makes sense to default to Vulkan for next release? Would probably also be a good time to add the vulkan error messages and then I can remove the "default to Vulkan" option in Steam which is annoying some people
I'd say it's worth a try and if it totally falls apart revert
12:22
Will be released in 4-6 weeks then
Avatar
Ok will need to change some hard coded defaults in the source anyway ^^
Avatar
Avatar
Jupstar ✪
Vulkan is better for every modern hardware
it also performs well for me too now xD i get more fps over time with every new mesa update
14:01
@Jupstar ✪ actually it is possible to provide directx backend too now right (with dxvk-native)?
Avatar
Avatar
Alisa
Tutorials should be designed with enough hints so that almost anyone can do it. By explaining very basic things like "how to drag another tee through freeze, so that it can help you in turn" we are not allowing the newbie to start feeling like they "solved the riddle on their own" and feel excited. The more tutorials we have, the more things that could have been cool little riddles for new players we make into skills they are required to learn to play the real game. however, there are quite some things that are very unintuitive about the game, but are commonly used in novice maps, so not understanding those aspects would make people frustrated (i am talking about hammerfly, the fact that you can press buttons while frozen but being hammered, the fact that it makes a difference to align at tiles, in particular sometimes you have to hook someone to be able to hammer them through the wall even though it doesnt look like it, the fact that it makes a difference which direction you are looking in while hammering, ... [i have a list]). it would be nice to have a tutorial for those things - however many of them are a lot harder to explain to player+dummy instead of 2 players.
Maybe this is not the right channel to do it, but I want to support this message with a personal experience, and maybe bring this to the attention of many others. It took me a whole day to figure out how to edge hook (which doesn't sound much, compared to how long I've been playing..but the point still stands). If someone could have told me I'd learn that in like 2 minutes (aim issues aside). I always thought they had some kind of magical powers to hook through that small gap. It's not a "novice skill" but I think it's present in maybe 2-3 novice maps (kobra 3, seasons). But I understand that is not possible to cover everything with just a map or 2..but starting to have them and give useful informations to the players should be a nice start, just like the tutorial
Avatar
Avatar
nori
@Jupstar ✪ actually it is possible to provide directx backend too now right (with dxvk-native)?
Yes. But i won't touch direct 3d. Indeed the first graphics api i learned was dx9. And the interface was really weird since then i never touched it again xd. I guess direct3d 12 is probably relatively close to vulkan. But then again its also useless, as the support between both is probably similar driver wise
Avatar
Avatar
Jupstar ✪
Yes. But i won't touch direct 3d. Indeed the first graphics api i learned was dx9. And the interface was really weird since then i never touched it again xd. I guess direct3d 12 is probably relatively close to vulkan. But then again its also useless, as the support between both is probably similar driver wise
yea i was thinking about providing dx9 or 11 for older gpus make sense more instead opengl since it is rly bad on windows xd
Avatar
Avatar
thekid36
Maybe this is not the right channel to do it, but I want to support this message with a personal experience, and maybe bring this to the attention of many others. It took me a whole day to figure out how to edge hook (which doesn't sound much, compared to how long I've been playing..but the point still stands). If someone could have told me I'd learn that in like 2 minutes (aim issues aside). I always thought they had some kind of magical powers to hook through that small gap. It's not a "novice skill" but I think it's present in maybe 2-3 novice maps (kobra 3, seasons). But I understand that is not possible to cover everything with just a map or 2..but starting to have them and give useful informations to the players should be a nice start, just like the tutorial
I thought I have seen it in Aoe's noob school series, but I haven't found him covering it. there are videos like this though: https://www.youtube.com/watch?v=Ae-k60iOYeM
14:26
I doubt you can explain it well enough in-game, that the hitbox expands through the wall when the tee is hugging the wall (people ignore the hook here drawings on novice maps for example too, making you have to explain to them that they should hook the ground). I think the only way to teach people how to edge hook would be by showing a video or having the possibility to script entities as the map/server (-> spawning dummy, moving it, etc.). Then you could make the dummy jump into an edge after telling them to hold down the s-key, and hook when the line turns yellow or whatever color they selected. Starting with a static position as the dragger. Then including movement for the dragger. And finally dragging a frozen dummy. (edited)
14:27
Allowing to edge hook people (when they are really in the corner - found it the easiest to let off the hook only when I am ready to rehook at the same time, so basically when I already have aimed) and hammer them through walls (when you and your mate/dummy kiss the same 1-tile wide wall/roof - roof hammering, no clue how I would teach someone to stop running so the dummy hits the roof, and the dragger to hammer when you are at around the same x-"height") (edited)
Avatar
But here I am questioning why the game has to offer such tutorials. It should lie in the players' decision to figure out more tricks, ask/watch other people, or googling for a YouTube video. Someone pointed out today or yesterday that the "Novice" maps are too hard. And I have to partially agree. The maps that are easy aren't actively hosted by any servers because people in general won't vote for a beginner map because they already played those through or don't want to play those. ddnet could provide dedicated servers for those maps. But the problem would be that those will be empty, and people rather join servers with people in them. So you possibly have to force actual noobs through a few solo/dummy maps to make their mechanics and game understanding be good enough to start with a harder map. Or you fill servers with ddnet bots, which would have to be coded first. And maybe combine that with some auto-team logic. So you don't block each other. (edited)
Avatar
@Zwelf Do you think it's safe to update official ddnet servers to master branch again?
15:15
in regards to sqlite/sql problems
15:15
I still see lots of ranks in the database twice: MariaDB [teeworlds]> delete record_race from record_race inner join record_race b on record_race.Map = b.Map and record_race.Name = b.Name and record_race.Time = b.Time and record_race.Timestamp != b.Timestamp and DATE_SUB(b.Timestamp, INTERVAL 1 HOUR) = record_race.Timestamp and record_race.Timestamp >= "2022-12-10" and b.Timestamp >= "2022-12-10"; Query OK, 6977 rows affected (16.948 sec)
Avatar
Hm, maybe they are from servers which didn't restart yet
Avatar
I think in general yes. One thing that might be a problem is that we move rows from _backup tables after 1h, but don't consider the time zone. That alone wont explain 6977 duplicate rows (old servers might).
Avatar
'拏 MAhdiyar 2022-12-13 15:41:55Z
CMake Error at CMakeLists.txt:660 (message): You must install Rust and Cargo to compile DDNet What is cargo? how to download this?
Avatar
A language empowering everyone to build reliable and efficient software.
15:43
Are you on Windows?
Avatar
'拏 MAhdiyar 2022-12-13 15:43:08Z
Yes
15:43
my source ddnet 16.6
Avatar
You might be the first to try, tell us if it works, there are some Windows instructions on https://forge.rust-lang.org/infra/other-installation-methods.html
Supplemental documentation for contributing to The Rust Programming Language
15:43
Yes, Rust is a new requirement on DDNet 16.6
Avatar
Avatar
deen
Yes, Rust is a new requirement on DDNet 16.6
'拏 MAhdiyar 2022-12-13 15:44:12Z
Ow, Can i remove it?
15:46
1) Quick install via the Visual Studio Community installer (free for individuals, academic uses, and open source). 2) Manually install the prerequisites (for enterprise and advanced users). 3) Don't install the prerequisites (if you're targetting the GNU ABI). wich one? i used CodeBlock and cmake build
15:46
@deen
Avatar
Avatar
'拏 MAhdiyar
Ow, Can i remove it?
We are planning to add features in Rust in the future, so it's not optional
15:46
This was actually my main concern with adding Rust, that it makes building DDNet even more complex
15:47
Can you try the rustup-init.exe from the site I linked?
Avatar
'拏 MAhdiyar 2022-12-13 15:47:23Z
But it gives me an error
15:47
how to remove Rust?
Avatar
If it's not easy maybe we can also update the instructions we have on how to get DDNet on Visual Studio compiled CC @heinrich5991
Avatar
Avatar
'拏 MAhdiyar
But it gives me an error
what error?
Avatar
'拏 MAhdiyar 2022-12-13 15:48:03Z
CMake Error at CMakeLists.txt:660 (message): You must install Rust and Cargo to compile DDNet
Avatar
Avatar
deen
Can you try the rustup-init.exe from the site I linked?
'拏 MAhdiyar 2022-12-13 15:48:11Z
yes i download it
15:48
i used visual studio community
15:50
but i using CodeBlock
Avatar
Did you run rustup-init.exe and install the stable version already? If that doesn't help try removing the CMakeCache and CMakeLists.txt to get a fresh cmake run. There is some information here: https://learn.microsoft.com/en-us/windows/dev-environment/rust/setup
Setting up your dev environment for beginners interested in developing on Windows with Rust.
Avatar
Avatar
deen
You might be the first to try, tell us if it works, there are some Windows instructions on https://forge.rust-lang.org/infra/other-installation-methods.html
i already did and it worked 🙂
Avatar
Great, now @Chairn is the new Rust+Windows build expert and will assist @'拏 MAhdiyar 😄
Avatar
'拏 MAhdiyar 2022-12-13 15:53:45Z
dennis i not really undtrestand why adding rust XD
Avatar
you need to install the correct host triplet: x86_64-pc-windows-gnu host
15:54
if you use codeblocks provided compiler which is mingw
15:55
gotta go right now, but ill be back in less than an hour 😉
Avatar
'拏 MAhdiyar 2022-12-13 15:55:36Z
oh Charin , Thanks for your help (edited)
15:56
info: profile set to 'default' info: default host triple is x86_64-pc-windows-msvc info: syncing channel updates for 'stable-x86_64-pc-windows-msvc' 714.2 KiB / 714.2 KiB (100 %) 607.4 KiB/s in 1s ETA: 0s info: latest update on 2022-11-03, rust version 1.65.0 (897e37553 2022-11-02) info: downloading component 'cargo' 4.0 MiB / 4.0 MiB (100 %) 284.8 KiB/s in 13s ETA: 0s info: downloading component 'clippy' 2.0 MiB / 2.0 MiB (100 %) 320.7 KiB/s in 7s ETA: 0s info: downloading component 'rust-docs' 14.8 MiB / 18.9 MiB ( 78 %) 166.4 KiB/s in 51s ETA: 25s that's? (edited)
15:56
@deen
Avatar
that is msvc, you need mingw
16:01
See the "info: default host triple is x86_64-pc-windows-msvc"
Avatar
'拏 MAhdiyar 2022-12-13 16:04:31Z
where is mingw ?
16:04
i not see
16:06
"default host triple: x86_64-pc-windows-msvc"
Avatar
I think there should be a way to run rustup-init with a different compiler, maybe rustup toolchain install stable-x86_64-pc-windows-gnu
Avatar
Avatar
'拏 MAhdiyar
dennis i not really undtrestand why adding rust XD
Rust is a programming language offering high performance and memory safety, so it's interesting for games
Avatar
@deen do you happen to know why "Nieme" is the author of AiP-Gores in the database, but it says "zarnexxx" in the map? https://ddnet.org/maps/AiP-45-Gores/
Avatar
zarnexxx is Nieme's old name
Avatar
ah, thanks :)
Avatar
@Jupstar ✪ BIG
17:49
The U.S. Department of Energy (DOE) and DOE’s National Nuclear Security Administration (NNSA) today announced the achievement of fusion ignition at Lawrence Livermore National Laboratory (LLNL)—a major scientific breakthrough decades in the making.
17:49
For the first time ever, US scientists at the National Ignition Facility at the Lawrence Livermore National Laboratory in California successfully produced a nuclear fusion reaction resulting in a net energy gain, a source familiar with the project confirmed to CNN.
17:50
For the first time ever, US scientists at the National Ignition Facility at the Lawrence Livermore National Laboratory in California successfully produced a nuclear fusion reaction resulting in a net energy gain, a source familiar with the project confirmed to CNN.
Avatar
Avatar
Ryozuki
@Jupstar ✪ BIG
i've seen it, but my brother not yet, so i dont wanna judge yet. e.g. is the material really good enough? afaik material is the biggest problem for fusion anyway, e.g. if it holds long enough
Avatar
2.05 MJ in, 3.15 MJ out.
Avatar
i mean defs cool yeah 😄
17:53
would be a game changer
17:53
then my dream of 18ghz intel cpus using 2 gigawatt h finally becomes true
Avatar
the ratio went from 2.2:2.0 ratio to 3.15:2.05 (edited)
17:54
The recent NIF experiments have jumped up in power. The first shot that started this new chain of research was about 1.7 MJ of energy delivered. Now, 2.15 MJ. However, the output has jumped non-linearly, demonstrating the scaling laws at work.
Avatar
dff876d Add Localizable hint - Jupeyy 870ea85 Improve error handling in vulkan - Jupeyy 62f7296 Merge #5853 - bors[bot]
Avatar
Maybe it wouldnt hurt to test it out very soon for nightly players already, since the path is rather small it should not conflict so often Note: i added constexpr to config struct, bcs else i cannot cleanly read the default value for the configs. Any complains e.g. move it to new struct now would be your time.

Checklist

  • [ ] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ...
Avatar
In rust how to read a file line by line? I found this when searching https://doc.rust-lang.org/rust-by-example/std_misc/file/read_lines.html. (btw I am trying to do aoc day 1 part 1)
Avatar
A BufRead is a type of Reader which has an internal buffer, allowing it to perform extra ways of reading.
18:49
note
18:49
always wrap big files in a bufreader
18:49
rust doesnt do buffered reader unless u ask for it
18:50
An object providing access to an open file on the filesystem.
👍 1
Avatar
Avatar
GitHub
Click to see attachment 🖼️
@Jupstar ✪ can you check the checkmarks so we know thay you checked them and did the thing and things and everything is fine saddo
Avatar
i always at least minimally test my changes
18:51
(except i am writing from mobile or smth like that xD)
Avatar
I have no idea why this "works" but it does print all the lines kek use std::io; use std::io::prelude::*; use std::io::BufReader; use std::fs::File; fn main() -> io::Result<()> { let inpfn = "../input"; let f = File::open(inpfn)?; let mut reader = BufReader::new(f); let mut buffer = String::new(); while reader.read_line(&mut buffer).expect("hehe") != 0 { println!("{buffer}"); buffer.clear(); } Ok(()) }
Avatar
Ok(())
19:51
🍻
Avatar
I have no idea what that does either
19:52
would you like some improvements right now or rather nah?
19:53
improvements as in 'a bit cleaner code', not as in 'more correct'
Avatar
sure :D
Avatar
if you are going to read the entire file anyways, you can just read it into a string directly. let mut input = String::new(); File::open(path)?.read_to_string(&mut input)?; a string is usually more flexible to work with, and you read the entire file anyways
19:58
and a string also has .lines(), which you can also just iterate over for line in input.lines() { println!("{line}"); }
19:58
line is of the type &str, so no further allocations are made
19:59
and this way you don't have to do all the buffer operations :)
Avatar
nice I'm trying it out :D
heartw 1
20:02
yeah a lot better thanks :D
Avatar
Avatar
Jupstar ✪
then my dream of 18ghz intel cpus using 2 gigawatt h finally becomes true
will never be possible with silicon based technology
Avatar
Ok first part of day 1 done :D code: use std::io; use std::io::prelude::*; use std::fs::File; use std::str::FromStr; fn main() -> io::Result<()> { let mut elfn = 1; let mut max = 0; let mut cur = 0; let inpfn = "../input"; let mut input = String::new(); File::open(inpfn)?.read_to_string(&mut input)?; for line in input.lines() { println!("{line}"); if line.is_empty() { elfn += 1; if cur > max { println!("{cur} more than {max}"); max = cur; } cur = 0; } else { cur += i32::from_str(line).unwrap(); } } println!("{max}"); Ok(()) }
Avatar
Avatar
Chairn
will never be possible with silicon based technology
never say never, im elon musk, buy what i say
Avatar
you know that current cpus have roughly same power density as nuclear reactor?
Avatar
and now?
Avatar
what do you mean now? current is now?
Avatar
what does that change
20:35
use different materials
20:35
use the sun for raytracing
20:35
whats the problem
Avatar
praise the sun 🌻
Avatar
Avatar
Patiga
and a string also has .lines(), which you can also just iterate over for line in input.lines() { println!("{line}"); }
Or use BufReader
20:42
But ig reading all at once doesn't change anything
20:42
(idk)
Avatar
Avatar
Mr.Gh0s7
I have no idea why this "works" but it does print all the lines kek use std::io; use std::io::prelude::*; use std::io::BufReader; use std::fs::File; fn main() -> io::Result<()> { let inpfn = "../input"; let f = File::open(inpfn)?; let mut reader = BufReader::new(f); let mut buffer = String::new(); while reader.read_line(&mut buffer).expect("hehe") != 0 { println!("{buffer}"); buffer.clear(); } Ok(()) }
Actually you can optimise ur code down to 0 lines, just open that file, same result greenthing (edited)
Avatar
Ah didn't see he used BufReader before, but it has the function lines instead of readline, but ig similar to Patiga's solut
Avatar
Avatar
Chairn
will never be possible with silicon based technology
somewhere in the universe some aliens are spying on this convo thinking "SILICONE lookAtThisDude" (edited)
Avatar
weird aliens
Avatar
In the aliens eyes, we're just some weird little aliens referring to them as aliens (edited)
Avatar
Avatar
Learath2
somewhere in the universe some aliens are spying on this convo thinking "SILICONE lookAtThisDude" (edited)
In Germany it's already funny Silicone=Silikon Silicon=Silizium
22:16
Yes in Germany. The joke only works inside Germany's borders
Avatar
5341fc3 Minimal changes to default to Vulkan - Jupeyy aef3c8b Merge #6130 - bors[bot]
Avatar
Prepare for the deepest, most intricate simulation of a world that has ever been created. Not just generated geometry -- a whole simulated world. Generated rise and fall of civilizations, personalities, creatures, cultures, etc. Infinite hours of gameplay. Now with beautiful pixel graphics! Learn the basics with in-game tutorials A lifetime “l...
Price
$29.99
Recommendations
10926
Metacritic
93
23:13
just figured this got released on steam
23:13
all time classic
Avatar
have you played it?
Avatar
yeah long ago
23:21
not in steam tho
23:21
i think its been 20 years in dev
Exported 173 message(s)