IRC logs of Libera.Chat #BZFlag for Wednesday, 2021-11-03

blast007custom sound files would only be downloaded once per file (unless the cache size limit is exceeded)00:03
blast007once per URL*00:03
SpringTankright00:03
BulletCatcherUse of the spree*.wav files was added in 2005 commit 9966d2d8, disabled in a2fae9c2 ("may" be buggy), and removed ca3f2a8e.02:11
BulletCatcherThose .wav files were never used in a released version so no one should miss them if they go away now.02:11
*** Gort[m] <Gort[m]!~M-gort-ma@2001:470:69fc:105::7ed> has joined #bzflag02:29
SpringTank^ use one of them, but if blast is adding/fixing custom sounds for 2.6 then it doesn't matter.03:02
SpringTankI* use one of them03:02
*** I_Died_Once <I_Died_Once!~I_Died_On@c-73-184-170-223.hsd1.ga.comcast.net> has quit IRC (Ping timeout: 268 seconds)06:40
*** Sgeo_ <Sgeo_!~Sgeo@user/sgeo> has quit IRC (Read error: Connection reset by peer)07:41
*** blast007[m] <blast007[m]!~blast007m@2001:470:69fc:105::7ec> has quit IRC (Quit: You have been kicked for being idle)09:00
*** I_Died_Once <I_Died_Once!~I_Died_On@c-73-184-170-223.hsd1.ga.comcast.net> has joined #bzflag11:34
*** Sgeo <Sgeo!~Sgeo@user/sgeo> has joined #bzflag13:58
*** Harlin <Harlin!~DonQixote@75-163-188-12.clsp.qwest.net> has joined #bzflag14:58
*** DTRemenak <DTRemenak!~DTRemenak@2603-8001-3700-003f-9ca3-b955-530f-8f95.res6.spectrum.com> has quit IRC (Quit: ChatZilla 0.9.97 [SeaMonkey 2.53.8.1/20210717164911])16:44
*** Harlin <Harlin!~DonQixote@75-163-188-12.clsp.qwest.net> has quit IRC (Remote host closed the connection)19:53
*** Harlin <Harlin!~DonQixote@75-163-188-12.clsp.qwest.net> has joined #bzflag21:30
SpringTankwhat's left to do on 2.6? Maybe I can help?21:38
*** blast007[m] <blast007[m]!~blast007m@2001:470:69fc:105::7ec> has joined #bzflag21:38
blast007I don't even recall what's been done to it :)21:44
blast007also, there isn't a plan for what goes into it (yet)21:44
SpringTankwell, don't want it to suffer from feature creep again that's for sure...21:45
SpringTankI have a plan if you want to hear it21:45
SpringTanktake what works in 2.6, and if it hasn't been done already, update the netcode to be easy to add features later on. Then release it as 2.621:52
SpringTankthe server owner can have the option of telling the server to reject older clients if they are using newer features in their maps.21:54
SpringTankbut if they are hosting an older map with older features then it doesn't matter. In this case a newer server version can support older clients and not kick them.21:55
SpringTankthen with each minor release, concentrate on one single feature to add.21:55
SpringTankI think it's similar to what was already being done with 2.421:56
SpringTankand similar to what microsoft is doing with minecraft.21:56
blast007nah, we're not gonna do that22:05
SpringTankso what's the plan?22:07
blast007or at least probably not22:10
SpringTankit would get something out there... and for the next major change in protocol could be in 2.822:12
SpringTanki mean, it's similar to what was done to 2.4 wasn't it?22:13
blast007no22:13
blast0072.4.0 could still connect to the latest 2.4 server22:14
SpringTankin 2.4, wasn't it fixed up enough to be released along with some backported features?22:14
SpringTankright22:14
blast0072.4 was us cancelling the 3.0 release, rolling back to the 2.0 code, backporting specific, low-risk changes from 3.0 and implementing some new stuff (or better versions of stuff from 3.0).  It was also the most organized development cycle we had, as far as I know.22:16
blast007one of the main things I'm slowly working towards for 2.6 is IPv6 support22:18
blast007that requires changes to the websites, or authentication system, the client, and the server22:18
SpringTankWe can build on top of that development cycle. My suggestion: make it so 2.6.0 can connect to a server that is say 2.6.2 unless the server owner chooses to use newer features and has a server option to reject older clients prompting the user to upgrade.22:19
SpringTankand IPv6 support sounds awsome.22:19
blast007do you do any OpenGL coding?22:20
SpringTanki've tried and fell flight on my face. does that count?22:20
SpringTankflat*22:20
blast007heh22:20
SpringTankyeah22:21
SpringTankagatha has been playing with openGL. she has something that works I think.22:21
SpringTankjust some basic stuff22:21
blast007I was interested in replacing our menu UI (and maybe other part of the UI) with either MyGUI or Crazy Eddie's GUI22:21
SpringTanknever heard of those, looking at them now22:22
AgathaI kindof like the old menu system. It takes a bit of getting used to, but that's part of the charm, I think.22:25
blast007Agatha: do you want to update it to support text fields that can scroll left-to-right?  :)22:26
blast007or add dropdowns, or checkboxes, or mouse/joystick support22:26
blast007dropdowns and checkboxes would be nice to haves, but of course not required22:27
blast007even a lot of commercial games don't do that.  they just do left-right selection of on/off or the various options22:27
SpringTankI was, and this was just an idea I had, goning to play with what little mouse support bzflag has to try and get the mouse to work with the existing menu system.22:28
SpringTankalthough that wouldn't be flexible enough for future upgrades22:28
blast007somewhere I do have some code that moves some of our menus layout code into the base class.  right now each menu has custom code to handle how to scale/position everything, even though a lot of it could just be the same or a choose of 2 or 3 layouts22:29
SpringTankMight be easier to spin our own shiny new menu system with room for future upgrades.22:29
blast007we don't *have* to code everything ourselves :)22:29
SpringTanktrue, i just hate using other people's libraries because more often then not it's like learning a whole new language. something I'm not very skilled at.22:33
AgathaI feel like most games probably have their on UI system, like what bz has. This is . . . fine, you ask me. Yes, there are deficiencies, but I think the menu system is functional.22:33
AgathaOne of the reasons I'm . . . extremely reluctant to touch the bz source code myself, to the extent I'd even be able to help, is that it's so complicated and messy that no one really understands it. There are tons of grandfathered bugs, too.22:33
AgathaI know that this horse has been beaten to death, but I still maintain the system needs renovation. If rewrites from scratch haven't worked, then maybe take it more slowly.22:33
SpringTankmore importantly, documenting what we do know and how it works. something that has been worked on a lot22:34
SpringTankblock diagrams, etc.22:34
SpringTankyou can't fix something if you don't know how it works22:34
SpringTankobvious answer is obvious22:35
SpringTankIMO the existing menu is charming in it's own way and I like it, but it needs mouse support and refactoring to make it more flexible for future additions.22:36
SpringTankis 2.6 code based on the current  build of 2.4?22:37
SpringTanka basic in game windowing system might be usefull as well.22:39
SpringTankbut not immediatly nessasary.22:39
blast007"If rewrites from scratch haven't worked, then maybe take it more slowly."  ... such as replacing custom code with wonkyness with mature, well tested libraries?  ;)22:41
blast0072.6 should be pretty close to in-sync with all the 2.4 changes22:41
blast007I merge from time to time22:42
blast007(well, 2.5)22:42
blast0072.6 doesn't exist yet :)22:42
Agathablast007 Yes, exactly! Someone who knows what they're doing needs to focus development there, IMO.22:42
AgathaWhat I see is an API / codebase with sketchy docs that are incorrect in various ways. For example, my own efforts at writing plugins are hobbled because I'll try to do something and there's nonsense data, or something causes a mysterious crash. So I have to come here and beg for people with experience in the codebase to tell me what's wrong! Parameters with weird names, stuff documented nowhere, random cargo cult copypasta that shouldn't work and sometimes 22:42
Agathadoesn't.22:42
AgathaThis kind of stuff eats up most of the time I have to do anything on the project!22:42
AgathaWhile I'm not at all deep in development here, I can't imagine people who know the codebase better are having an easier time maintaining, let alone improving, it.22:42
Agatha. . .22:42
* Agatha sigh22:42
AgathaBut this is all just complaints—and not very useful ones at that.22:43
AgathaI have literally no idea what y'all are actually working on. What is this mystical 2.6? What's different to 2.4? What's blocking 2.6 from becoming the main one people use?22:43
AgathaYes, I've written code before, and I've played with OpenGL . . . but I'm no software engineer, nor a maid. This project needs both, and at the same time :S22:44
blast007heh22:44
blast007yeah, my attempts to add IPv6 support get real complicated because we pass addresses around so many damn places22:45
blast007and there's also some weird stuff randomly shoved into Address.h22:45
blast007maybe I should start pushing partial changes to the fork on my account22:46
SpringTanksounds to me like the netcode needs refactoring. *easier said than done*22:47
AgathaSo for the IP thing, may I suggest something like wrapping some small piece of the code that uses it in an IP class or whatever that abstracts the IPv4 vs. IPv6 distinction, and getting that working. Then gradually refactoring outward until everything is fixed—but with stuff in the meantime still functional.22:47
SpringTank^22:48
SpringTankyeah, one major thing at a time.22:48
blast007I have some functions written to handle IPv4/IPv6 addresses, CIDRs, etc22:48
AgathaWell, less than one major thing at a time, really. You have to break the problem down, as with all problems.22:48
blast007yeah, it's just that our address stuff is used all over the place22:49
SpringTankthen I think the next major thing would be to strip that out and come up with a better netcode library.22:50
Agathablast007 Sure. So fix it in some places, and get that working. Then fix it in more places and get that working. Etc., until you're done. Is what I'm saying.22:50
SpringTankreduce the spagettie code monster22:50
SpringTankdraw it out on a whiteboard22:50
SpringTanklol22:50
Agatha3rd party libraries are okay, I guess, but they are additional work to set up, and building bz is already pretty annoying for a noob like meee22:51
AgathaI have actual notes on how I succeeded the one time, hah22:51
SpringTankwell, i meant come up with our own netcode library22:52
SpringTanksomething on the side that could then be used in bzflag22:52
SpringTankwant me to give it w throw?22:52
blast0072.5 has some improvements to the netcode, IIRC22:52
SpringTankI'm nearing the end of this semester's flight courses, i think i can find some time for it.22:53
blast007for instance, now the world gets sent a lot faster for players with higher lag22:53
SpringTankinteresting22:53
blast007don't need to use fastmap or an HTTP cache for the world file22:53
SpringTanksounds to me like bzflag's netcode is the next biggest monster to eat.22:54
SpringTankprobably the most important22:54
blast007I was recently trying to find some better way to post ideas and have a discussion around them, while still bewing tied in with Github's issues, PRs, etc.22:55
blast007maybe just an issue for that is enough22:55
SpringTanklol22:55
blast007I was hoping for something with a bit more project management features though, like dependent features22:55
SpringTankyeah22:56
blast007here's an idea for improving the poll system by making it part of the network protocol, not just slash commands: https://gist.github.com/blast007/a85fef0bcdb327220b441663cdd8ab0722:56
blast007(with the idea being that there would be some sort of Poll UI, not slash commands)22:57
SpringTanki skimmed through it. sounds great22:58
SpringTankbut doesn't this add more client/server messages?22:58
blast007recent stuff I thought about for 2.6 features: https://gist.github.com/blast007/cc11096ee783e7e44c40ae76fd3be39722:58
blast007yeah22:58
blast007our system supports up to 65535 (or 65536) different messages types - we might as well use more of them them ;)23:00
SpringTankfalls back to bzflag's netcode, which is it's foundation23:01
SpringTanktrue23:02
SpringTankthat's actualy preetty cool23:03
SpringTankso it doesn't need a total refactor like I thought it did. Just maybe needs to be organized and documented better.23:04
SpringTankhow does the client handle undefined server messages? Does it just ignore them?23:04
blast007I think, but that's a part of the code that's pretty easy to look at and follow23:09
blast007playing.cxx handles much of that23:09
blast007we have a big switch statement that covers the message types23:10
SpringTankthat's how I thought it worked.23:12
SpringTankjust had an idea. Is there a script or program that can parse C++ code into graphical block diagrams?23:22
SpringTanki played with IDA pro, maybe it will do it23:23
SpringTankbut it's more of a dissassembler than anything23:24
blast007https://static.bzexcess.com/bzflag_design_diagram.jpg23:27
SpringTanklmao23:35
SpringTanki found a neat little program called Sourcetrail23:35
SpringTanktrying it now23:35
SpringTanklets see if it can handle bzflag. lol23:35
SpringTankhttps://en.wikipedia.org/wiki/Sourcetrail23:36
SpringTankhttps://en.wikipedia.org/wiki/Call_graph#Software23:36
blast007it might end up with the same image as above ;)23:36
SpringTank"12 errors: 7 fatal"23:37
SpringTankso far...23:37
SpringTankbut it's still going.23:37
SpringTankwould be incredibly valuable to us if we could get a functional block diagram of the current system23:37
SpringTankespecially to those of us like myself who are very visually based.23:39
blast007pretty sure I've used this before23:49
blast007I used bear to create a compiliation database and pointed to that23:50
blast007I started with a clean source directory of master and did './autogen.sh && ./configure && bear -- make -j14'  (adjust the 14 as needed depending on how many core you have)23:51
*** Optic_Delusion <Optic_Delusion!~Optic_Del@pool-71-182-231-53.pitbpa.fios.verizon.net> has quit IRC (Quit: Textual IRC Client: www.textualapp.com)23:52
blast007cores/threads23:52
SpringTankinteresting23:53
SpringTankwell mine hit 50%23:53
blast007mine finished with no errors23:53
SpringTankand it's just going by the raw source23:53
SpringTankI pointed mine to all files, so that's probably why I got errors23:53
SpringTankI just wanted to see what it would do23:54
blast007I probably should have disabled plugins, cuz those are in here too now  :)23:54
SpringTanklol23:56
*** Optic_Delusion <Optic_Delusion!~Optic_Del@pool-71-182-231-53.pitbpa.fios.verizon.net> has joined #bzflag23:56

Generated by irclog2html.py 2.17.3.dev0 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!