00:09 < Dune> accidentally typed matricks instead of matrix while writing gtihub's build.yaml :D 00:09 <@heinrich5991> ^^ 00:15 < bridge> [teeworlds] this is love 😮 00:15 < bridge> [teeworlds] x) 00:15 < bridge> [teeworlds] I swear to god, that globbing stuff with assets and not source files is annoying ... 00:17 < bridge> [teeworlds] I don't see much either other than you commenting out globbing and adding your few files to the cmake. 00:18 < bridge> [teeworlds] assets aren't globbed either 00:18 < bridge> [teeworlds] it just doesn't fail the build if they don't exist 00:21 < bridge> [teeworlds] startig gamer from console works 00:21 < bridge> [teeworlds] starting 00:21 < bridge> [teeworlds] packaging fail ._. 00:21 < bridge> [teeworlds] probably the files aren't listed properly in cmakefiles for osx packaging 00:22 < bridge> [teeworlds] different binary name etc :/ 00:25 < Dune> i made bam produce artifacts 00:26 < bridge> [teeworlds] weird 00:26 < bridge> [teeworlds] works 00:26 < bridge> [teeworlds] xD 00:30 < bridge> [teeworlds] remove CONFIGURE_DEPENDS in those three lines 00:30 < bridge> [teeworlds] and then it will build 00:32 < bridge> [teeworlds] removing `CONFIGURE_DEPENDS` sounds like a sure way to break the build in unexplainable ways 00:32 < bridge> [teeworlds] where do you want to remove that? 00:32 < bridge> [teeworlds] it's at the end of a file(glob "..." here) 00:32 < bridge> [teeworlds] without a glob expression behind it, that's what I'm getting in vs code 00:33 < bridge> [teeworlds] file(GLOB ENGINE_CLIENT "src/engine/client/*.cpp" "src/engine/client/*.h" CONFIGURE_DEPENDS) 00:33 < bridge> [teeworlds] file(GLOB GAME_CLIENT "src/game/client/*.cpp" "src/game/client/*.h" "src/game/client/components/*.cpp" "src/game/client/components/*.h" CONFIGURE_DEPENDS) 00:33 < bridge> [teeworlds] file(GLOB GAME_EDITOR "src/game/editor/*.cpp" "src/game/editor/*.h" CONFIGURE_DEPENDS) 00:33 < Dune> @jxsl13 https://github.com/Dune-jr/teeworlds/suites/395881445/artifacts/1071063 00:33 < bridge> [teeworlds] ` for code blocks, then it will not do formatting 00:33 < bridge> [teeworlds] please don't, on bridge 00:33 < bridge> [teeworlds] for his one line 00:33 < bridge> [teeworlds] yeah, that wa slike the biggest I'd paste in here 00:33 < bridge> [teeworlds] ah sorry :) 00:34 < bridge> [teeworlds] oh, it was three lines 00:34 < bridge> [teeworlds] yeah 00:34 < bridge> [teeworlds] @jxsl13 if you remove CONFIGURE_DEPENDS, it will not recheck the source files when you add/remove some 00:35 < bridge> [teeworlds] https://cdn.discordapp.com/attachments/490150878934990850/665700224987299841/Bildschirmfoto_2020-01-12_um_00.34.41.png 00:35 < bridge> [teeworlds] is that intendex? 00:35 < bridge> [teeworlds] itended 00:35 < bridge> [teeworlds] intended! 00:35 < bridge> [teeworlds] icon dead, maybe 00:36 < bridge> [teeworlds] the file doesn't open 00:36 < bridge> [teeworlds] the app 00:37 < Dune> which? 00:37 < Dune> the one built by github? 00:38 < bridge> [teeworlds] yeah 00:38 < bridge> [teeworlds] you need to edit pinfolist 00:38 < bridge> [teeworlds] or how the file is called 00:38 < bridge> [teeworlds] and tell macos to open not teeworlds but teeworlds_gamer 00:39 < bridge> [teeworlds] "Info.plist" 00:39 < bridge> [teeworlds] is the file 00:39 < bridge> [teeworlds] xml file 00:39 < bridge> [teeworlds] after that 00:39 < bridge> [teeworlds] the program crashes on startup, seemingly 00:40 < bridge> [teeworlds] /Applications/Teeworlds 3.app/Contents/MacOS/../Frameworks/libSDL2-2.0.0.dylib (which was built for Mac OS X 10.15) 00:40 < bridge> [teeworlds] Expected in: /usr/lib/libobjc.A.dylib 00:40 < bridge> [teeworlds] I highly suspect that I might not run it, because I'm on macOS 10.14 00:40 < bridge> [teeworlds] but I'm not sure 00:41 < bridge> [teeworlds] I don't like paying with fire, so I'm not updating for at least another year 00:41 < bridge> [teeworlds] x) 00:41 < bridge> [teeworlds] dyld: lazy symbol binding failed: Symbol not found: _objc_opt_respondsToSelector 00:44 < bridge> [teeworlds] I think the client would need like the server the ./teeworlds shutdown command 00:44 < bridge> [teeworlds] in order to see, whether it crashes after startup and closing it gracefully 00:50 < bridge> [teeworlds] http://www.mediafire.com/file/sxic29mpws5pmmr/teeworlds-gamer-0.7.4-osx.dmg.zip/file 00:50 < bridge> [teeworlds] this should work 00:50 < bridge> [teeworlds] at least it did on my machine 01:01 <@heinrich5991> Oy: I'd like to introduce c++11 dependence with some patch, so we can get some thread safety into teeworlds. is that okay? 01:02 <@heinrich5991> it would get us e.g. std::shared_ptr and atomic variables 01:02 < Dune> huuh :( 01:02 < Dune> it would get us a lot of bad practices too 01:02 < Dune> that's a controversial one :p 01:03 <@heinrich5991> currently the code around threads is bad 01:04 < Dune> I don't deny that, but a lot of cpp11 additions are undesirable in a project with the philosophy of Teeworlds. Once you accept cpp11, it's harder to say no to people for using auto, abusing lambdas etc. 01:04 <@heinrich5991> e.g. the m_Shutdown variable in CJobPool is (according to the standard) undefined behavior 01:04 < Dune> is there no way around that in c++03? 01:05 <@heinrich5991> c++03 doesn't have a threading model 01:05 <@heinrich5991> it pretends threading does not exist 01:05 < bridge> [teeworlds] pls add threadsafty.. 01:05 < Dune> Teeworlds benefit(ed) from a simple, easy code base 01:05 < bridge> [teeworlds] 😄 01:05 <@heinrich5991> no, there is no way around it in c++03 01:05 < Dune> so you can't thread properly in C? 01:06 < bridge> [teeworlds] rip c 😄 01:06 <@heinrich5991> C11 also brings thread support 01:06 < Dune> ah I see :) 01:06 <@heinrich5991> but it is less widely supported than C++11 IIRC (e.g. msvc++) 01:06 < Dune> C11 is not supported by msvc? 01:07 <@heinrich5991> at least not until very recently. let me check 01:07 < bridge> [teeworlds] @heinrich5991 i found another way now, but still thanks! 01:07 < Dune> we don't have extern C code anymore in Teeworlds right 01:07 <@heinrich5991> we have some 01:07 < bridge> [teeworlds] btw, discords working again 01:08 <@heinrich5991> some of our own code, and our dependencies 01:08 < Dune> grep "extern C" returned no result 01:08 <@heinrich5991> grep "extern \"C\"" 01:09 < Dune> ah, mi bad :) 01:10 <@heinrich5991> https://developercommunity.visualstudio.com/idea/387315/add-c11-support.html 01:10 <@heinrich5991> so no, not supported 01:10 < Dune> ugh :( 01:10 <@heinrich5991> (but that's different from C++11, which is supported) 01:11 <@heinrich5991> C++11 can work together with C90/C99 with no problems 01:11 < Dune> yeah I know 01:11 < bridge> [teeworlds] access to sockets should be threadsafe, I'd guess 01:11 < bridge> [teeworlds] printing to console maybe as well ._.? 01:11 < bridge> [teeworlds] no, printing to console is not 01:12 < bridge> [teeworlds] I don't see Teeworlds having performance issue with those things anyway 01:14 < bridge> [teeworlds] I'm running db access in separate threads and the main thread, which is tries to aquire mutexes and if it fails, the main thread's not blocked, if it succeeds it simply processes message queues :o, so threads make sense, if one would like to access e.g. current worldinformation, train his bot detection, etc in a different thread 01:16 < Oy> would rather stick to c++03, if it's not really necessary 01:16 <@heinrich5991> hm ok 01:20 <@heinrich5991> the problem with the current CJob interface is that you must guarantee that your CJob struct does not move (or is deallocated) until the job finishes 01:21 <@heinrich5991> that means that if you cannot have a CJob in a structure which is freed before program termination 01:21 <@heinrich5991> -if 01:22 < bridge> [teeworlds] that means I need to know the exact amount of requests I want to make a the same time at compile time 01:32 < Oy> that's not a problem for teeworlds currently right? 01:33 <@heinrich5991> I checked all the usages of CJob, they look safe 01:34 <@heinrich5991> the favorites name lookup could benefit from parallelism, which isn't really possible right now 01:34 < bridge> [teeworlds] why favorites in particular? 01:35 <@heinrich5991> the three things that use engine jobs right now are: 1) master server name lookup 2) favorite name lookup 3) sound loading 01:35 <@heinrich5991> master server name lookup and sound loading use one CJob per task 01:35 <@heinrich5991> favorite name lookup uses one CJob for all favorites 01:38 < bridge> [teeworlds] right now the jobpool is only using one thread anyway 😄 10:29 < day> Dune: no, i only own one xbox360 controller 14:51 < bridge> [teeworlds] do you consider practices like 'auto' undesirable? 14:52 < bridge> [teeworlds] `std::vector>::iterator it` vs `auto it` 14:53 < bridge> [teeworlds] in some cases, they're fine imo. iterators especially, because of nested templates like that 14:53 < bridge> [teeworlds] exactly, i think iterators are the most common use case 14:53 < bridge> [teeworlds] don't need it for iterators I think because you have for loop sugar in c++11? 14:54 < bridge> [teeworlds] ? 14:54 < bridge> [teeworlds] I don't see it being used very often for some reason I don't know 14:54 < bridge> [teeworlds] for(auto it : vector) 14:54 < bridge> [teeworlds] `for(const int &i : v)` 14:55 < bridge> [teeworlds] no need for an explicit iterator there 14:55 < bridge> [teeworlds] uh, i didn't know that, that's nice 14:56 < bridge> [teeworlds] `std::for_each()` for the java people i guess <.< 14:57 < bridge> [teeworlds] for (String item : someList) { System.out.println(item); } 14:57 < bridge> [teeworlds] java had it before c++ 14:57 < bridge> [teeworlds] i know, c++ has it since c++11 14:57 < bridge> [teeworlds] yes, but we don't use c++11 14:58 < bridge> [teeworlds] dunno what you mean with `std::for_each()` for the java people 14:58 < bridge> [teeworlds] I usually only need C++ features like map (or hashmap), iterators, shared pointers and (unfortunately) vectors 14:58 < bridge> [teeworlds] why unfortunately vectors? 14:58 < bridge> [teeworlds] https://en.cppreference.com/w/cpp/algorithm/for_each 14:59 < bridge> [teeworlds] those sound better than c++'s hash map support 14:59 < bridge> [teeworlds] vectors are like a standard container 15:00 < bridge> [teeworlds] Maybe lets dump c++ and recode teeworlds on lolcode 15:00 < bridge> [teeworlds] you can often optimize by using another container 15:00 < bridge> [teeworlds] https://en.wikipedia.org/wiki/LOLCODE 15:00 < bridge> [teeworlds] riir! 15:00 < bridge> [teeworlds] I'd say vectors are still the most needed container 15:01 < bridge> [teeworlds] and the least flawed, saved for the string :p 15:02 < bridge> [teeworlds] instead of using an array for all the Entities, you could use a quadtree and optimize all collision loops, but I always wondered if teeworlds would benefit 15:04 < bridge> [teeworlds] this would require some benchmarks, too 15:05 < bridge> [teeworlds] to be more on topic: I think a greater benefit would be better string rendering xD 17:14 < bridge> [teeworlds] for the c++17 people for(auto&[key value]: map) 17:40 < bridge> [teeworlds] where is the masterserver requests located? retrieving server list etc? 17:40 < bridge> [teeworlds] are 17:42 < bridge> [teeworlds] @jxsl13 the requests are located in src/engine/client/serverbrowser.cpp, the response parsing is done in src/engine/client/client.cpp 17:43 < bridge> [teeworlds] thx 17:57 < bridge> [teeworlds] does someone remember when I complained about the Dynamic Camera, that it feels like laging when I spin around with it? seems like Fullscreen is the reason for it, Borderless or even window mode fixed my problem but still dont know why it's so "laggy" with fullscreen 18:04 < bridge> [teeworlds] does someone remember when I complained about the Dynamic Camera, that it feels like laging when I spin around with it? seems like Fullscreen is the reason for it, window mode fixed my problem but still dont know why it's so "laggy" with fullscreen 18:05 < bridge> [teeworlds] @ShootXen disable vsync 18:05 < bridge> [teeworlds] it's already 18:05 < bridge> [teeworlds] enable then 18:05 < bridge> [teeworlds] can't game itself runs like 30fps for me then 18:24 < Oy> a script that fixes style issues would be nice 18:32 < bridge> [teeworlds] yeah 18:32 < bridge> [teeworlds] it's not that easy, unfortunately 18:33 < bridge> [teeworlds] I tried writing a script that detects style issues, and even that was quite hard 18:41 < bridge> [teeworlds] C++ is notoriously hard to parse :/ 18:44 < bridge> [teeworlds] I did it with libclang 18:45 < bridge> [teeworlds] C++ is undecidable to parse 18:46 < Oy> yeah, lots of cases you have to consider 18:48 < Oy> could do it step by step 18:50 < bridge> [teeworlds] https://gist.github.com/heinrich5991/2ad5bdd9c7013b31ee1759858bec6c8a 18:50 < bridge> [teeworlds] this extracts all identifiers from the teeworlds source code 18:50 < bridge> [teeworlds] I think Learath2 wrote something to parse its output 18:52 < bridge> [teeworlds] clang-format does a good job... but it forces spaces after and before most operators, which basically means reformatting the entire codebase =\ 18:53 < bridge> [teeworlds] I thought it was about identifiers 😮 18:53 < bridge> [teeworlds] Just detection would be fine imo 18:53 < bridge> [teeworlds] oh didn't read that... that's another thing 😄 18:53 < Oy> cool that would help with BE or AE