Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.org/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 2024-11-18 00:00 and 2024-11-19 00:00
Avatar
what're you trying to do
00:31
i assume you're trying to create some new textures.cpp file?
Avatar
Voxel: you might opt to instead make a separate array of constant strings containing filenames at the indices of their enum values
00:44
so you can iterate instead on ranges within that enum and do m_aEmoticonTextures[i] = Graphics()->LoadTexture(m_aEmoticonFilePaths[i], IStorage::TYPE_ALL);
00:45
this could be a 2d char array or a std array of constexpr std string_views
00:46
that looks fine though, just lots of boilerplate
Avatar
Avatar
Voxel
class IGraphics *CComponent::Graphics() const { return m_pClient->Graphics(); }
Vocel: regarding your exception thrown, i believe i ran into this same thing when making the multithreaded assets thing, you need to wait to use client object request stuff like Graphics() and the like until after the module is initialized, not constructed. move it to onInit or whatever they call it, you should be able to find it in CComponent
00:48
i cant spell
00:48
oh sell
Avatar
Good idea, I'll try that.
Avatar
Maybe there's a way where I could efficiently do something like this. Where, I can make an enil containing all the segments, and then create other enums using the same sort of info?
01:15
Like, every enum except for the emoticons are in its own enum (for example: m_GuiTextures), which incidates IDs for every image that's in the array m_aGuiTextures
01:15
If I were to store in filepaths too, it'd just be sort of redundant, don't you think?
Avatar
any more redundant than this?
01:30
you can do like this (not having tested it) // or extern constexpr const static std::array<std::string_view, EMOTICON_SIZE> s_aEmoticonTexturePaths = { // template params might be switched [EMOTICON_OOP] = “images/emoticons/oop.png”, … } (edited)
01:30
and then just iterate on it with the enum constants
01:31
this is no more redundant than what’s in your screenshot, because i believe those all have to be distinct function calls in binary now due to the way they’re defined sequentially, and all of the index information & known filenames are still stored in the same place (the constant “data” section of the executable”)
01:31
im typing a little sloppy on phone but hopefuly you get the gist of why this is better
Avatar
I guess so.
Avatar
ChillerDragon Thank fuck thanks for the demo pistol bullet fix 😘😘😘😘😘
Avatar
This goes inside the .cpp file or the .h file?
04:24
Ewan
04:24
(idk how to ping in irc)
Avatar
alright thats it
Avatar
im in the discord
04:35
and i am ONLY here for development purposes
04:35
@Ewan Something like this?
04:35
Currently set in the .cpp file
Avatar
Avatar
Voxel
Maybe there's a way where I could efficiently do something like this. Where, I can make an enil containing all the segments, and then create other enums using the same sort of info?
Recently found out that you can't get enum names in c++, so that's a bummer.
04:38
Really feeling hopeless about this project, but if I can somehow make it work, that'd be huge for adding and sharing around.
Avatar
Avatar
Swarfey
used to work for me when i did cmake .. -DMYSQL=ON -DMYSQL_CONFIG:FILEPATH="C:\Program Files\MariaDB 11.3\bin\mysql_config.pl" -DMYSQL_INCLUDEDIR:PATH="C:\Program Files\MariaDB 11.3\include\mysql" -DMYSQL_LIBRARY:FILEPATH="C:\Program Files\MariaDB 11.3\lib\libmariadb.lib"
That's pretty much how I tried it.)
Avatar
Avatar
louis
what're you trying to do
I'm trying to remove texture atlases from DDNet. My goal is to make it easier to add in content without awkwardly having to shove new things into the texture atlases, and having to completely rework already existing atlases for the most updated version. The cons are that it'll be more expensive on the io side of things, and the code is going to be extremely messy because of its dependence on the sprites I removed. But I think the endgoals and potentials would be much greater, and it would give the ability for custom servers to send over custom weapons and particles easier, since there's no big texture atlas.
04:42
I know for a fact Jupstar already has a better way of doing this, but I think this would be fun, since it gives me hope on making things for this game again!
Avatar
yeah, good feature to take on
04:43
i was moreso asking what you weretrying to do in that specific screenshot
Avatar
Just trying to make it actually work, honestly.
Avatar
i'd imagine if we want sending of textures over network, then how we store textures might need to be a lil more fleshed then how it is right now (i have no knowledge of the code though)
Avatar
I guess right now I'm trying to rearrange the heirarchy of sprites and making it actually, render.
04:46
The next step is to write a program that takes what atlases we have now, and then spits out the respective folders, so that we don't have to have ppl complaining about their gameskins.
04:46
The step after that is figuring out if we need a ZIP file for easier sharing.
04:47
My take is that we do something like this: default.weapons.twtp default.particles.twtp Voxels Fun Particles.particles.twtp Where .twtp is just Teeworlds Texture Pack (edited)
04:48
and the middle is what type of pack it is
Avatar
Avatar
Voxel
@Ewan Something like this?
Yes but you probably shouldn't need s_aEmoticonTexturePaths before every single [], and you should be able to replace the string view ctor with the ""sv string literal
04:48
also double check ddnet naming conventions
04:48
s might not be right
Avatar
Avatar
Ewan
s might not be right
i just followed what you wrote down tbh
04:48
it's from memory
Avatar
Avatar
Voxel
and the middle is what type of pack it is
Why not just have one generic type of pack that can override whatever specific parts it pleases? Or is this only for converting existing textures to the new format?
Avatar
Avatar
Voxel
My take is that we do something like this: default.weapons.twtp default.particles.twtp Voxels Fun Particles.particles.twtp Where .twtp is just Teeworlds Texture Pack (edited)
hm i dont think non-standard file extensions is the move (edited)
Avatar
and yeah if it's a .zip just call it a .zip
Avatar
idk i think just having it be .ZIP feels a bit off
Avatar
i still dont know why it should really be a zip if we can use a tar instead
04:51
uncompressed zip is somewhat nonstandard
04:51
windows wont be able to make them
Avatar
You could include an extra file in the zip for metadata, for stuff like info about the author and maybe info about textures for content that doesn't exist in the base game, if that ever becomes a thing
Avatar
maybe
Avatar
can't people just extract the zip and have it as a directory anyways
Avatar
unless you discard all the software representations after loading into vram then you need to store the entire thing twice
Avatar
zip files must be kinda clonky to handle in code
Avatar
this whole thing is extremely hard, because it's basically rewriting how the entire game treats its graphics outside of actually rendering them
Avatar
Avatar
risu
You could include an extra file in the zip for metadata, for stuff like info about the author and maybe info about textures for content that doesn't exist in the base game, if that ever becomes a thing
if you have a single custom texture (lets say a laser) i feel like the client should get all of the information needed just thru the png
Avatar
i know voxel i wrote a pr that overhauled all of the skins loading logic
04:52
it's delicate stuff
04:52
but still a question that needs to be asked
04:52
why zip
Avatar
time to rewrite all of asset handling and implement full on resource packs that include textures, sounds, hell maybe UI layouts and animations too :D
04:54
surely not a huge pain in the ass :)
04:54
omw to rewrite half the game
Avatar
Avatar
Ewan
why zip
because its what everyone else keeps saying
04:54
#6753
Avatar
DDNet should switch from texture atlasses to individual textures for each sprite. This will allow us to fall back to default textures if a game asset doesn't contain a new sprite. old text #672...
Avatar
probably because zips are easy for everyone to manage
Avatar
i guess it did say to use .tar here but oh well
Avatar
then again, everyone should be expected capable of installing and using an archive manager application no matter how non-technical they are
04:57
so no real significant downside to a tarball, and they'd be significantly more based :p
Avatar
Avatar
risu
then again, everyone should be expected capable of installing and using an archive manager application no matter how non-technical they are
eeeh
04:57
the average player shouldn't have to worry about much
04:57
skin pack creators, sure
Avatar
these assets stand to gain very little from zip compression because png is already a very high compression ratio format
Avatar
Avatar
louis
skin pack creators, sure
yeah I was thinking about artists
Avatar
they dont need compression and tar aligns more with the in memory representation aspect
Avatar
okayyy this doesn't seem right
Avatar
load the thing and copy out easily identifiable chunks
04:58
instead of deflating the entire thing and then copying
Avatar
Avatar
Voxel
okayyy this doesn't seem right
does it error?
04:58
that might be a fairly new feature
Avatar
lets see what vs code has to say about this
Avatar
do u not have LSP
Avatar
idk what that is
05:00
language server protocol?
05:00
are u on windows
Avatar
windows 10 yea
Avatar
open the vscode workspace for ddnet
05:00
and install the extensions
05:00
your life will be so easy
05:00
it's in the repo somewhere extra
Avatar
wait why did i say vscode LOL
05:01
what i showed you was just vs
Avatar
okay so what does intellisense say
05:01
you might have to include string view if you havent already
05:01
std array might be out of the picture which is perfectly fine u just cant iterate on it the same way
05:01
because it's not a primitive array initializer or something
Avatar
Avatar
Ewan
okay so what does intellisense say
Avatar
did you incluide string view
05:04
ddnet is on c++17 right..?
05:04
or newer
Avatar
lemme look
Avatar
it may have to look more like constexpr static const std::string_view s_aEmoticonTexturePaths[NUM_EMOTICONS] = { [EMOTICON_OOP] = "skjandasijkn"sv, ... }
Avatar
right lemme try that
Avatar
voxuis
Avatar
headbot
Avatar
Avatar
Voxel
right lemme try that
internet is down so i gotta type here using mobile
05:06
nvm LOL
Avatar
Avatar
Voxel
I'm trying to remove texture atlases from DDNet. My goal is to make it easier to add in content without awkwardly having to shove new things into the texture atlases, and having to completely rework already existing atlases for the most updated version. The cons are that it'll be more expensive on the io side of things, and the code is going to be extremely messy because of its dependence on the sprites I removed. But I think the endgoals and potentials would be much greater, and it would give the ability for custom servers to send over custom weapons and particles easier, since there's no big texture atlas.
as in remove them entirely, or construct them on init
05:09
because i dont think either is that good of an idea
Avatar
Just splitting all the main gameskins into separate images
Avatar
gameskins?
Avatar
game.png particles.png extras.png pepeW
Avatar
atlases are used for performance reasons aswell as cuz less files to worry abt
05:12
you would (or should) stitch them back together on init
05:12
like mc does
05:12
which is why it takes so god damn long to load
05:12
90% my ass x-x
Avatar
oh i didn't know that mc stitched them together
Avatar
have u never seen those graphical bugs where you can see the atlas
Avatar
in minecraft? no
Avatar
its a very easy bug to make
05:13
you just have a logical error in your tex coords then boom
05:13
you can see the atlas
Avatar
honestly i should let someone who actually knows what they're doing be behind the wheel like i think it'd be cool to actually be able to add more things easier, but at the same time it really does feel like there's 1000 better ways for what i'm trying to achieve
Avatar
the problem with trying to make things more "expandable" is your kinda doing the thing you do at the end at the start
05:14
there are ideas and proposals for making the entities side of teeworlds (that is tile config and all that) more customizable
05:15
that is too allow 1. more tiles 2. easily added tiles 3. tuning on tiles (see the ice pr)
05:15
and i assume particles would be goign down the same route
05:16
as has been discussed at length, "modding support" that is refactoring ddnet to make it to add things is not a main priority
05:16
and issues / prs relating to modded support wont be accepted
05:16
which is a huge shame
Avatar
Avatar
Solly
and issues / prs relating to modded support wont be accepted
well then they're going to have to remove the big, fat "feature accepted" tag on the zip handling request
Avatar
thats not modding support
Avatar
then what is it what do you need zip files for in ddnet
Avatar
modding support is to make adding things easier, that is tiles, custom behaviour, custom gamemodes, and anything else
05:18
thats just to make downloading maps faster
05:18
which is a good feature as ddnet map downloads are normally capped at 500kib/s
05:18
or less
Avatar
that's not what the feature said
05:18
but oh well
Avatar
gimme link
Avatar
Avatar
Solly
and issues / prs relating to modded support wont be accepted
not true
05:20
ddnet maintainers seem to not support prs that support modding just for the sake of supporting modding, but a lot of prs that are related to modding support get merged
👍 1
Avatar
sorry im high on kaffine talking at me about their lost dreams x-x
Avatar
Avatar
Voxel
that's not what the feature said
i thought u meant zip map downloads
Avatar
no i was talking about gameskins
05:21
like the feature said
05:21
it's been accepted for a while, its just nobody except juppey is doing jackshit about it
Avatar
ah fair
Avatar
its like all the good features ( coughcoughtunelockcough ) is just sitting out to dry
Avatar
Avatar
Solly
as has been discussed at length, "modding support" that is refactoring ddnet to make it to add things is not a main priority
i think that because of <msg im replying to> no one can be bothered since its not really needed for ddnet
Avatar
tune lock is quite a heavy feature so i don't blame them too much. but it's true that maintenance is not active enough to keep up with all the PRs and issues
Avatar
i wish u luck @Voxel :D
Avatar
i dont think im going to continue this
05:25
again someone else with more knowledge should do it
05:25
like juppey
05:25
they already have a better heirarchy
05:26
i will stay in this development chat to hand out spitball ideas and whatnot, because i still think ddnet needs someone in the creativity department
Avatar
🍞fill🍞 2024-11-18 06:36
салам
06:37
heartw
Avatar
ws-client BOT 2024-11-18 06:37
<ChillerDragon> @Pathos :) tbh you uploading videos with the bug is what motivated me to do it
Avatar
https://github.com/ddnet/ddnet/issues/9229 anyone have an idea of what causes this?
Avatar
🍞fill🍞 2024-11-18 07:10
чаго
Avatar
seems to not work whether cl_predict 0 is on or not
Avatar
🍞fill🍞 2024-11-18 07:11
тут есть русские
Avatar
Avatar
🍞fill🍞
тут есть русские
MilkeeyCat 2024-11-18 07:11
go to #off-topic to write in russian (edited)
Avatar
ws-client BOT 2024-11-18 07:19
<ChillerDragon> @louis I assume somewhere in the clients laser render code there is a check for the laser owner. Maybe some prediction stuff or ddnet extension. I did not look at the code but i assume something like if(!laser.owner) return;
Avatar
ChillerDragon: i was taking a look and it seemed much deeper than that pepeW
07:20
unless its just too late here and i missed smth obvious
Avatar
Avatar
ByFox
That's pretty much how I tried it.)
Have you tried using mariadb 11.3? Because your screenshots indicate you are using some different connector Otherwise Look at what exactly your building Arguments were. Your errors Show it is expecting a File path instead of the lib64 directory path you gave it (edited)
Avatar
Avatar
Voxel
Click to see attachment 🖼️
The components are not initialized yet in the constructor, you need to load textures in OnInit
Avatar
Can I compile my ddnet client where on a local server I can reduce the server tick speed?
Avatar
Avatar
Evelyn
Can I compile my ddnet client where on a local server I can reduce the server tick speed?
Avolicious 2024-11-18 08:46
You can, but you would need to distribute this client to all players & it will break some stuff
Avatar
no, I'm talking about using it on a local server.
Avatar
(╯°□°)╯︵ ┻━┻
08:55
don't worry I just read some comments (not here) (edited)
Avatar
Avolicious 2024-11-18 09:10
I dont get the question then, sorry
09:10
Maybe Chiller knows pepeH
💀 1
Avatar
ws-client BOT 2024-11-18 09:50
<ChillerDragon> @Evelyn yea probably idk im not into TAS ask teero and the boys who like to mess with that kind of stuff
Avatar
Avatar
louis
https://github.com/ddnet/ddnet/issues/9229 anyone have an idea of what causes this?
Team based rendering
Avatar
Avatar
louis
https://github.com/ddnet/ddnet/issues/9229 anyone have an idea of what causes this?
  • the moment you shoot the laser entitiy is spawned with the ownerID, which is your player ID
  • Every Snap the laser checks if the owner has a player character
  • if the owner has no player character, it's not rendered
  • after a teamchange there might be teammask shenanigans
(edited)
10:12
After a git blame the code for this is 14 years old with the description "I think i fixed the crash" lol
10:13
This is honestly spaghetti there 🍝
Avatar
chillerdragon: did you make evelyn rq ddpp?
greenthing 1
Avatar
What?
Avatar
PSA: Do not share your private TAS clients. Do not use them on anything but local servers. They are bots and you will get banned for it
Avatar
@Kero also lets move over here, as
12:35
*as #questions is for ddnet client stuff ^^
Avatar
Avatar
Patiga
@Kero also lets move over here, as
could be windows specific errors not sure. I didnt saved the master branch errors :/ Just wanted to try the preview map locally. But after step 5 not sure how to go forward. i have localhost:8000/?map=default but doesnt do anything for me. Console throws a error which I send in question channel. I assume i have wrong folder structure? In which directory should start the server ( does that even matter?) (edited)
Avatar
Avatar
ws-client
<ChillerDragon> @Pathos :) tbh you uploading videos with the bug is what motivated me to do it
:(
Avatar
@Kero you need to start the server in the map-inspect-web directory all directories that you should create according to the readme should also be inside of the map-inspect-web directory
Avatar
Avatar
Assa
  • the moment you shoot the laser entitiy is spawned with the ownerID, which is your player ID
  • Every Snap the laser checks if the owner has a player character
  • if the owner has no player character, it's not rendered
  • after a teamchange there might be teammask shenanigans
(edited)
hm
15:11
so if the laser is not snapped on serverside it still exists?
15:11
does snap just prepare everything to be sent to client
Avatar
Avatar
Learath2
PSA: Do not share your private TAS clients. Do not use them on anything but local servers. They are bots and you will get banned for it
no fun
Avatar
Avatar
louis
so if the laser is not snapped on serverside it still exists?
yes, snap just sends updates over the network (for example sprite position), but tick() is doing the calculations
15:57
if you set sv_destroy_laser_on_death this bug won't happen, because then the tick() also resets the laser
Avatar
ah okay makes sense
16:02
annoying bug
16:03
why does snap re check what's already in the ticks 😹
Avatar
snap and tick can be out of sync
Avatar
on the server side?
Avatar
A snapshot is quite literally a "snapshot" of the current gameworld to be sent to a client, something being snapped means it's in the current state being sent to the client
16:06
Snaps don't have to accurately represent the gameworld at all times, many mods (including ddnet) use this to do some trickery. Like the teams implementation, all tees exist in the same gameworld but for you only the ones within your team are snapped
16:08
Fokkonauts 128p mod snaps players as other entities if there are more than 64 in the view
Avatar
i guess in this case it'd just be spaghetti code -- since it doesnt make sense to check if(!pOwnerChar) return; inside the claser::snap if it's already checked in tick
Avatar
Avatar
Learath2
Fokkonauts 128p mod snaps players as other entities if there are more than 64 in the view
and "hacks" different client IDs, but yes
Avatar
Avatar
louis
i guess in this case it'd just be spaghetti code -- since it doesnt make sense to check if(!pOwnerChar) return; inside the claser::snap if it's already checked in tick
https://github.com/ddnet/ddnet/commit/0a0e1df557da4f2b8d7a149dbbf16cfa2ff124df removing that would scare me a little on account of it being added by this commit
Avatar
14 years ago, the rest of the code grew there
16:12
also this should be the wrong place of the crash
Avatar
Surely nothing will go wrong 🙃
Avatar
don't worry, there is a character check right behind this xD
16:14
that commit looks so different to the actual code today
Avatar
Actually that code does look absurd, how did these changes even make it past review and into the code
16:14
Do stuff with pOwnerChar discard it, do it again
Avatar
From reading it, it does seem like dead code. There are lots of m_Owner >= 0 checks which should always be true because //m_Owner = -1; was commented out and the owner is never set to -1 when the CLaser object is constructed
Avatar
Yeah, removing the 5 lines makes sense
Avatar
i guess from a generic point of view, is there anything incorrect about just sending info from the previous tick thru the snap (along with removing any unnecessary information etc.)
16:16
how would a snap and tick desync
Avatar
on client side? network issues
Avatar
Someone knows how to compile their ddnet client, where the server tick speed will be changed on the LOCAL server
Avatar
Avatar
Assa
on client side? network issues
yes but doesn't the server still send the correct information from the corresponding tick
Avatar
Avatar
louis
i guess from a generic point of view, is there anything incorrect about just sending info from the previous tick thru the snap (along with removing any unnecessary information etc.)
I do not quite understand what you mean, you tick, then you snap the current tick. Why would you re-use the previous tick?
Avatar
Avatar
louis
how would a snap and tick desync
It's not unintentionally de-sync'ing. Calling it de-sync is a bit of a misnomer there. The snap is very intentionally not accurately representing the current state of the gameworld
Avatar
i guess i'm asking: was that 'i think i fixed the crash' because of spaghetti code or because snaps inherently need be re-checked
Avatar
Oh, this is from the olden days where we just guessed at stuff. That commit doesn't look like it fixes any crash
Avatar
as in can something ever happen between the tick and the snap-from-tick that would make the server error if attributes aren't re-checked
16:20
okay
Avatar
Avatar
louis
as in can something ever happen between the tick and the snap-from-tick that would make the server error if attributes aren't re-checked
During OnSnap() (and therefore during the Snap()s called by that) the state of the entities has already settled, nothing will change until the snapping is done
16:23
So technically, if the laser did have an alive owner during the tick it'll still have an alive owner during snap. However, that's not information we store, thus the owners condition needs to be checked again
16:24
You'd need to add a new bool to laser, something like, m_OwnerAlive, but that helps nothing, it maybe avoids one pointer dereference on a condition that probably gets branch predicted insanely well since most owners of projectiles are usually alive
16:25
well if the laser still exists it must either have an alive owner or there must be sv_destroy_lasers_on_death 0 i think
Avatar
Is that something worth bothering to risk missing an edge case though? It should result in no difference in performance, nor is the logic clearer
16:29
e.g. what happens on the exact tick that the owner died? I don't know for sure if we already looped through the entities and removed their projectiles yet
Avatar
GitHub BOT 2024-11-18 16:38
Closes #9229 I tested a little with sv_kill_delay 0 and tune laser_fire_delay 0 but would appreciate if someone more experienced can confirm it won't break anything

Checklist

  • [x] Tested the change ingame
  • [ ] 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 exist...
Avatar
Avatar
GitHub
Click to see attachment 🖼️
Please don't be broken 🙏
Avatar
change sv_tick_rate_multiplier
17:43
its very buggy when u change it
17:44
very wip x-x
Avatar
Avatar
GitHub
Click to see attachment 🖼️
LGTM
17:54
albeit terrifying 😄 (edited)
Avatar
i was talking abt this earlier before i got banished for saying voldermort
17:57
but would tassing tools be accepted?
Avatar
Solly
Avatar
Original message was deleted or could not be loaded.
that is slowdown, frame step forwards and backwards (probably adding a command to set player state), and prediction showing
Avatar
Avatar
Evelyn
Solly
Evelyn (edited)
Avatar
Original message was deleted or could not be loaded.
How to install this
Avatar
you gotta compile it youreslf
Avatar
Clone and then make?
Avatar
And it will appear on my online server?
Avatar
git clone -b custom_tickrate --depth 1 https://github.com/sollybunny/ddnet cd ddnet mkdir -p build cd build cmake .. make ./DDNet-Server (edited)
18:00
the client has to support the lower tickrate or its really buggy
18:00
so should only be used on ur own server
Avatar
local?
Avatar
and if I run the server on my hosting, with this modification?
Avatar
it will work fine, but prediction will make every non supporting client really buggy
18:01
the client also has to be around when the tick rate is changed otherwise it wont get it
Avatar
Avatar
Solly
but would tassing tools be accepted?
What do you mean "accepted"? They are not allowed on any official server. Releasing one whether source or binary will get you the bot author treatment
Avatar
Avatar
Learath2
What do you mean "accepted"? They are not allowed on any official server. Releasing one whether source or binary will get you the bot author treatment
tassing tools would have to be supported by the server, similar to how /tc doesnt work unless the server lets you
18:02
and could similarly be allowed only in /practice
Avatar
Nothing stopping you from creating the tas on your local server then replaying it on an official server
Avatar
Original message was deleted or could not be loaded.
And how can I compile it on windows in order to run it normally?
Avatar
Avatar
Learath2
Nothing stopping you from creating the tas on your local server then replaying it on an official server
o thats true
18:03
darned stupid people who use cool tools for malicious intent
Avatar
Avatar
Solly
i was talking abt this earlier before i got banished for saying voldermort
you were warned twice greenthing
Avatar
Avatar
Evelyn
And how can I compile it on windows in order to run it normally?
im not sure how to compile for windows, read the README
Avatar
Okay
Avatar
Avatar
meloƞ
you were warned twice greenthing
once, first time was intentional when i said it, second time was out of shock (that the client had ads) (edited)
Avatar
Avatar
Solly
that is slowdown, frame step forwards and backwards (probably adding a command to set player state), and prediction showing
I mean isn't this a TAS tool you are just making public right here?
Avatar
i mean its not that much of a tas tool
Avatar
publicly available tas tools before gta 6 - damn it.
Avatar
and can be done by censored (edited)
Avatar
Avatar
meloƞ
publicly available tas tools before gta 6 - damn it.
voldermort has proper tas tools
Avatar
Every day I'm feeling more and more like heinrich was right with saying we should just ban all mention and discussions of TAS
Avatar
yeah if people are this buggy with the mention of it im better of not
18:05
xd
Avatar
Avatar
Solly
and can be done by censored (edited)
please dont mention how to do this kind of stuff - in fact, any kind of help within obvious bot client development isn't really tolerated on this discord.
18:06
its not a rule stated anywhere, but just dont try to do it - you dont really want the i'm a person involved in bot client development stamp
Avatar
censored by the oppressive ddrace network administration, damn
kek 1
Avatar
ikr ):
Avatar
Avatar
meloƞ
its not a rule stated anywhere, but just dont try to do it - you dont really want the i'm a person involved in bot client development stamp
the stamp gets you the prestigious "none of us will ever answer your questions ever again reward" (edited)
justatest 1
Avatar
damn but when you see obviously not real runs a human could never pull off
18:07
its so cool and i want to see more of them
Avatar
youtube has a ton
Avatar
yeah but i want more
Avatar
Avatar
Solly
its so cool and i want to see more of them
me too, that's why I told heinrich I didn't really want to ban the mention/videos of TAS runs
Avatar
also replaying a demo on a sever wouldnt work?
18:07
cuz lag
Avatar
Avatar
Solly
also replaying a demo on a sever wouldnt work?
I'm not telling you how but you definitely can make it work
Avatar
yeah i realised
18:08
but im not gonna
18:08
complete
18:08
;---;
18:08
it
18:08
x-x
Avatar
As evidenced by the dozens of replaybotters we are dealing with right now
Avatar
really?
18:08
damn
18:08
cmon people cant we just
18:08
not hack
Avatar
people hacked pong man...
Avatar
Also TAS doesn't immediately imply tick-perfect runs, the tools can be used to create just regular looking runs too with basically /r enabled
18:11
is there not some way to fug up replayed runs
Avatar
So yeah, I'm in a weird position where I think TAS runs are very cool and fun to watch but I also see how the tools becoming public would just destroy the leaderboards beyond fixing
Avatar
by having something on ddnet servers which is slightly different
18:11
which is not noticable to normal players
18:12
because a single wrong input = cascading effect
Avatar
Avatar
Learath2
So yeah, I'm in a weird position where I think TAS runs are very cool and fun to watch but I also see how the tools becoming public would just destroy the leaderboards beyond fixing
Excuse me, but when will the rules for communities be ready?
Avatar
like randomly add some y velocity down every so often but only a smidge x-x
Avatar
Avatar
Evelyn
Excuse me, but when will the rules for communities be ready?
Any ruleset will probably include "Your community needs to exist for X days" where X is larger than 90, so probably not all that important when we put it out
Avatar
Anyway, I'm curious, I want to see
Avatar
Avatar
Solly
like randomly add some y velocity down every so often but only a smidge x-x
The players are very very sensitive to this kind of stuff and for any tiny physics change you can imagine there is some weird map that uses it. So it's really hard to get something like this in
Avatar
Avatar
Learath2
The players are very very sensitive to this kind of stuff and for any tiny physics change you can imagine there is some weird map that uses it. So it's really hard to get something like this in
yeah ):
Avatar
Avatar
Evelyn
Anyway, I'm curious, I want to see
  • All communities must obey masterserver rules at all times
  • Communities must on average have X players in the last Y days
  • Communities must have existed for longer than Z days
  • Communities must be moderated These are some rules that I think we all agree on, there are a couple more and the masterserver rules are also being discussed right now, so it'll happen at the same time probably
(edited)
Avatar
the master server has rules?
Avatar
Avatar
Solly
the master server has rules?
https://teeworlds.com/?page=docs&wiki=rules/server_rules this is the ruleset we inherit + we also remove servers from hosters that are abusive (ddosers, etc...) + we remove hosters hosting illegal/nsfw content
18:18
The latter 2 rules aren't really documented, we just applied common sense for our additions until now, but we want to codify it so morons like that one person advertising a bot client openly and expecting not to get banned don't show up and rules lawyer for hours (edited)
👍 1
18:18
people
18:19
i was realy excited to make tassing for ddnet ):
Avatar
@Learath2 What about the fact that cheat is allowed on block servers in TeeSports?
Avatar
Avatar
Solly
i was realy excited to make tassing for ddnet ):
You can make your own client and put your runs up on youtube, we don't mind that
Avatar
the thought didnt even cross my mind to use it maliciously
Avatar
Avatar
Learath2
You can make your own client and put your runs up on youtube, we don't mind that
im not skilled enough to do tas runs
18:20
im sure uve seen the shenanagans tas's pull (edited)
Avatar
Avatar
Evelyn
@Learath2 What about the fact that cheat is allowed on block servers in TeeSports?
Not something we decided on yet
Avatar
Avatar
Learath2
So yeah, I'm in a weird position where I think TAS runs are very cool and fun to watch but I also see how the tools becoming public would just destroy the leaderboards beyond fixing
accounts^{tm}
Avatar
oh yeah accounts would help so much
18:21
xd
Avatar
it wouldn't help people cheating, but you could have some level of verification
Avatar
Avatar
louis
accounts^{tm}
Accounts would make it easier to clean up after the fact, but detecting such runs is the time consuming process
18:21
but yes, if random new account has top of the leaderboard it's immediately sus 😄
Avatar
do staff still manually have to search thru all the runs
Avatar
and how the heck do u detect cheating in demos?
Avatar
Avatar
louis
do staff still manually have to search thru all the runs
currently, yes, we have to watch every sus run
Avatar
Avatar
Solly
and how the heck do u detect cheating in demos?
looking at it reaaaaaally carefully 😄
Avatar
we need the csgo overwatch system 😹
Avatar
but if someone is, as u said, splicing so they basically have /r, if they just make a client scroll back the demo recording perfectly theres no way its detectbale
18:23
because its not illegal to stop moving
Avatar
No comment
Avatar
new leaderboard rule: must always be moving or youre hacking
Avatar
that wouldn't hlep
Avatar
yeah but it would be afunny rule
18:24
YOU CAN HAMMER THRU 2 BLOCKS OF FREEZE??
Avatar
Avatar
Learath2
The latter 2 rules aren't really documented, we just applied common sense for our additions until now, but we want to codify it so morons like that one person advertising a bot client openly and expecting not to get banned don't show up and rules lawyer for hours (edited)
like that one person advertising a bot client openly and expecting not to get banned don't show up and rules lawyer for hours
ah.. good times kekw
Avatar
Thankfully the people that have been TASing so far have been mostly responsible with their tools
Avatar
Avatar
Solly
YOU CAN HAMMER THRU 2 BLOCKS OF FREEZE??
this has been done in real runs btw
Avatar
Avatar
meloƞ
this has been done in real runs btw
wow
Avatar
Avatar
meloƞ
like that one person advertising a bot client openly and expecting not to get banned don't show up and rules lawyer for hours
ah.. good times kekw
"but the rules don't explicitly say that you can't advertise a bot client openly, wtf"
Avatar
Avatar
Learath2
"but the rules don't explicitly say that you can't advertise a bot client openly, wtf"
kekw funny af
Avatar
Avatar
Learath2
Thankfully the people that have been TASing so far have been mostly responsible with their tools
changes with me
Avatar
Most of the TAS runs on officials servers are probably from paid cheats who are very aware that it's cheating
Avatar
guh so many people making videos on the 40x speedup of linux, but its really just a memory optimization which has not that much of an effect on day to day
Avatar
Avatar
Learath2
The players are very very sensitive to this kind of stuff and for any tiny physics change you can imagine there is some weird map that uses it. So it's really hard to get something like this in
More importantly this causes prediction desyncs so even if you adjust them by 0.01 units, if they have high ping they might experience a correction of many tiles which makes it unplayable (edited)
18:37
I guess if we add some sort of "I'm going to adjust you by 0.01 units in 2 seconds" message to the client this strategy would work actually against replay clients
Avatar
it's probably too sensitive for high-level players unfortunately
Avatar
I think it's more about certain maps being too sensitive
Avatar
It's impossible to know when you'll do something that makes the map break
Avatar
yeah true
18:40
i'd also bet you could measure a difference with double nades / hard gores / edgehooks
18:40
like if the tee getting edge-hooked moves 0.01 units right before the hook comes out 💀
Avatar
You can be more subtle than adjusting position, a small difference in acceleration or velocity would be better (edited)
18:42
Those don't get quantized I think
Avatar
Avatar
Solly
YOU CAN HAMMER THRU 2 BLOCKS OF FREEZE??
You can hammer through 187 blocks at max speed xd
justatest 3
🦈 1
Avatar
Avatar
Teero
You can hammer through 187 blocks at max speed xd
how does one find this out? or did you just math
Avatar
I don't think it's true?
Avatar
Max vel is 6000
19:16
and you freeze 1 tick late
19:16
So you can hammer through 187 blocks of freeze (edited)
Avatar
Avatar
Robyt3
The components are not initialized yet in the constructor, you need to load textures in OnInit
yea i moved it there if i were to continue id have to figure out why everything is a white square
Avatar
Did you confirm (e.g. with dbg_msg) that your OnInit function is getting called?
Avatar
yea, i remember having a log saying the emotes were loaded in
19:20
hold on let me retry to build it and see how i can work from there
19:21
clearly the string array is causing troubles right now
Avatar
Avatar
Tater
I guess if we add some sort of "I'm going to adjust you by 0.01 units in 2 seconds" message to the client this strategy would work actually against replay clients
what if they had 2000 ping
19:30
????
Avatar
2000 ping is the limit
19:30
but you could use 10 seconds
Avatar
Avatar
Robyt3
Did you confirm (e.g. with dbg_msg) that your OnInit function is getting called?
okay the oninit() isn't even running
Avatar
Avatar
Voxel
okay the oninit() isn't even running
You need to add your component to the list in gameclient.cpp: m_vpAll.insert(m_vpAll.end(), {&m_Skins, ... Probably as the first element so the texture are loaded last (components are initialized in reverse order).
Avatar
i can't believe that was literally all i needed to do
19:41
justatest
19:43
i set the hook textures to something different for debugging purposes
19:44
the next step is to find out why the particles are pure white
Avatar
i didnt like yellow so i repainted them
Avatar
bro what kinda hook 😭
Avatar
Avatar
Voxel
i set the hook textures to something different for debugging purposes
It looks great
Avatar
Avatar
Souly
bro what kinda hook 😭
noby kind
Avatar
Avatar
Voxel
i set the hook textures to something different for debugging purposes
LGTM
Avatar
Avatar
Voxel
i set the hook textures to something different for debugging purposes
Push! Lgtm
Avatar
yea yea hold on lemme fix a few other bugs
Avatar
DDraceNetwork, a cooperative racing mod of Teeworlds, now with experimental features - GitHub - VoxelDoesCode/ddnet at asset_rework
21:12
I didn't completely remove content.py dependancy yet, but I think I made enough progress where I can send this
21:12
You guys can look over it before I move onto the next step
21:13
not sending this as a PR just yet because it feels too aimless to even consider to be a draft
Avatar
Avatar
Voxel
whats this
Looks like you moved a font entry in CMakeLists, the CI should also tell you that
21:23
for some reason, sorting alphabettically in VSCode has different rules than CMake sorting
Avatar
vscode clang extention also incorrectly formats stuff, its probably not reading the formatting thing, but the only difference between what i pressume to be default and ddnet is that default restricts char/lines to 80 (edited)
Avatar
fixed!
Avatar
I assume the next step would to figure out how to make assets adjustable again? Some things I noticed from reading it:
  • Replace the enums in textures.h with enum class then replace all GameClient()->m_Textures.EParticleTextures::PARTICLE_AIR_JUMP etc. with CTextures::EParticle::AIR_JUMP. You shouldn't need the member variable to access the enum definition. That way you can also shorten the enum and enum item names so it's easier to read and write.
  • Eventually all the CTextures member variables should be private and only getters should be used to access them.
  • We don't use exceptions anywhere, so trying to catch any is pointless. If you want to check for errors, loop over all textures handles and check if any are invalid.
  • No need to check if texture handles are valid before calling UnloadTexture.
(edited)
👍 1
Avatar
i reset my config for testing
22:52
and
22:52
communities disaperaed?
22:53
if((g_Config.m_UiPage == PAGE_INTERNET || g_Config.m_UiPage == PAGE_FAVORITES) && !ServerBrowser()->Communities().empty()) { CUIRect CommunityFilter; ToolBox.HSplitTop(19.0f + 4.0f * 17.0f + CScrollRegion::HEIGHT_MAGIC_FIX, &CommunityFilter, &ToolBox); ToolBox.HSplitTop(8.0f, nullptr, &ToolBox); RenderServerbrowserCommunitiesFilter(CommunityFilter); }
22:53
so why aint it rendering x-x
Avatar
GitHub BOT 2024-11-18 22:57
The dummy is considered connected by the engine client (IClient::DummyConnected function returns true) after receiving NETMSG_CON_READY, which also causes cl_dummy to be set to 1. However, the game client does not have the dummy's client ID until a snapshot is received, which means m_aLocalIds[1] (i.e. m_aLocalIds[g_Config.m_ClDummy]) is still set to -1 (or an old value from when the dummy was last connected on the server) for a moment when connecting the dummy. This was no...
Avatar
Avatar
Solly
communities disaperaed?
You are on the DDNet tab by default
22:59
x-x
22:59
silly me
23:00
@Robyt3 about the collapsable serverinfo/communtiies and then my counter-pr of sticking communities at the top of filters because either solution is a solution to it taking up space, but no solution is not good obviously i think putting it in filters is better (since i made the counter pr) but which one is going to be ... merged? (It doesnt actually affect me ill change it in my fork) (edited)
Avatar
Avatar
Solly
@Robyt3 about the collapsable serverinfo/communtiies and then my counter-pr of sticking communities at the top of filters because either solution is a solution to it taking up space, but no solution is not good obviously i think putting it in filters is better (since i made the counter pr) but which one is going to be ... merged? (It doesnt actually affect me ill change it in my fork) (edited)
So far, neither of them seem like they would get merged, at least by me
Avatar
do you not think that its in the way?
Avatar
No, it's supposed to be highly visible
Avatar
but it is a filter?
23:03
and not ... that importnat
23:03
ddnet will be at the top anyway just due to player count
23:03
and kog
Avatar
And it's not visible on the individual community tabs so it doesn't take up space there
Avatar
i dont use them i generally just filter
23:04
(but thats me)
23:04
if u switch back and forth there is layout shift (edited)
Avatar
Avatar
Solly
and not ... that importnat
It's up there instead of on the filter tab because it was previously not clear for players
Avatar
there was previously a community filter?
23:05
i didnt notice evidently
23:05
i thought it was added at the same time communities got got their icons
Avatar
It went through some iterations in nightly or maybe one release version, not sure
Avatar
i kinda skipped from no communities / verifications to where it is now
23:06
i like the icons
Avatar
the communities definitely feels out of place but i think a better solution involves refactoring the entire filter section (i've never used Server Address, and now we have two selections for Game Types, and i think a lot of these filter boxes can go into a collabsible 'advanced features' tab)
23:22
as of now the communities box feels a little small and hard to navigate
Avatar
i like them all being in one place w/o dropdowns or extra menus i think the first type selection shgould be removed
Avatar
Avatar
Solly
i like them all being in one place w/o dropdowns or extra menus i think the first type selection shgould be removed
ye, but theres a tradeoff between the space for these filters and the space for the community list
Avatar
as it is rn i dont think things need more space
Avatar
as of now it only shows 4 communities for me without scrolling. I'd rather it show more communities than have some useless boxes I never check
Avatar
do u use more than the top 4 communities?
23:24
idea
Avatar
i use communities outside of the top 4 and there's no way to sort them
Avatar
the type search box is to string search the type field right
23:25
but then the type list is a preset sort of thing (and also some special behaviour)
23:25
why not merge them
23:25
such that the type search box searches the types (in server list) and also the preset types (where if you click on one its updated in the search box)
23:25
same can be done with communities
23:26
oh no doesnt work u can select multiple types
Avatar
can you type your whole message before you press enter pepeW
23:28
because i dont think my whole sentance at once, it comes to me in parts
23:28
if i had done so the whole sentnace wouldve had to be different, since i realised my idea was a bit silly. but i still think that the whole combining string search and presets is a thing to consider
23:28
and thats too much effort
23:29
also some people like multiple short messages, so.. im not changing. you should just acept me 4 who i am 😊 (edited)
23:29
(that concludes my ted talk)
23:29
#off-topic
23:30
(my fingers go faster than my mind woaaw)
Avatar
when you type a bunch of short messages then go back on what you said it makes it harder to read and it means I'm less likely to understand the point you're trying to make. i probably type faster than you but i still type out my entire message before i hit enter justatest
Avatar
Avatar
louis
when you type a bunch of short messages then go back on what you said it makes it harder to read and it means I'm less likely to understand the point you're trying to make. i probably type faster than you but i still type out my entire message before i hit enter justatest
holdon
Avatar
the game types search box can probably be moved inside the types box at the top anyways (and be scrollable along with the type box)
Avatar
i have an image of me doing 150wpm which im really proud of (i cant reproduce it) (edited)
23:32
and i did it on a school keyboard
Avatar
Avatar
louis
the game types search box can probably be moved inside the types box at the top anyways (and be scrollable along with the type box)
"oh no doesnt work u can select multiple types" - me (edited)
Avatar
ye, it'd need a button to toggle
23:33
might be ugly
Avatar
any1 know how to fix cmake errors
23:38
😢
23:39
or warnings which make tests fail
23:44
i figured it out
23:44
i justhad to read a bit harder
23:50
[ 5%] Building CXX object CMakeFiles/rust-bridge-shared.dir/src/rust-bridge/engine/shared/rust_version.cpp.o <command-line>: error: macro names must be identifiers <command-line>: error: macro names must be identifiers <command-line>: error: macro names must be identifiers <command-line>: error: macro names must be identifiers <command-line>: error: macro names must be identifiers <command-line>: error: macro names must be identifiers
23:50
uhhh
Avatar
google broke firefox everyone responsible deserves capital punishment
Avatar
Avatar
Learath2
google broke firefox everyone responsible deserves capital punishment
google helped firefox stay alive firefox was mismanaged was my understanding
Avatar
or atleast permajail
23:55
google services keep breaking on firefox (obviously to push people to chromelikes)
Avatar
ah yes
23:55
they do that
23:57
the cmakefile is so poorly formatted jesus
23:57
4 space indent, 2 space indent 1 space indent 8 space indent?
23:57
space imbetween Not and If? idk man
23:58
turns out my cmake formatter also sucks
23:58
and unindenting things breaks stuff
23:58
dman i didnt know cmakefiles were indent sensative x-x
Exported 505 message(s)
Timezone: UTC+0