Jump to content

hyperion

WFG Programming Team
  • Posts

    1.047
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by hyperion

  1. Ha, creative use of github Quick notes looking at the yml: 0ad tarballs don't get checked for checksum mismatch No checksum generated for the app image ActorEditor doesn't look accessible 0ad.appdata.xml belongs into /usr/share/metainfo/ instead
  2. Maybe use "go to work on resources" or similar for now even if a somewhat poor fit, so there is a slim chance it makes it into a26 still and file a bug on trac with the commands needed to cover Chinese properly.
  3. Thanks, I probably have a rough idea now. on commit to trunk: for each builder in freebsd windows-v2015 linux-gcc7 linux-clang7 macos: restore snapshot ${builder}:trunk do partial build on success: run tests on failure: go boink update snapshot ${builder}:trunk on failure: go boink keep logs Well, except macos, hurray to MacStadium Should be possible to use worktrees if careful, but clones are robuster. Another hack to save another 30+ GB $ git checkout $(git commit-tree -p HEAD $(git hash-object -t tree /dev/null) < /dev/null) save/restore snapshot $ git checkout HEAD^ The combination would shrink your repo to a couple kB and the snapshot to basically only build artifacts. PS: windows-v2015 has c++17 support?
  4. https://trac.wildfiregames.com/wiki/JenkinsSetup isn't really helpful in understanding the current setup or what you want to do, neither zfs, docker, phab integration, full/partial builds, machines nor test runs are mentioned. Anyway I thought worktree support was added a few years back, whether this might be of use here I don't know
  5. Well, if you can't figure out the right path, worst case you could patch ColladaManager to not dlopen but to link directly to collada, then it would behave like the other deps.
  6. libCollada.so is dynamically loaded by 0ad and not via linker, so location must match 0ad-libdir for it to be found. I never dealt with app images, but your --libdir and --bindir settings look wrong (libdir in particular). I'd assume you can use the default values just fine. Edit: fix hard to parse typo
  7. Using entityid as order is just one possibility, straight forward and easy to understand. Nothing inherent. Basically you have two types of events, those that have or might have side effects and those who don't (at least wrt simulation). The removal of a corpse for instance is a case of the latter. For events with side effects you must guarantee the same order of execution every single time, however you do it.
  8. It was removed. The main reason might have been it being deemed sexist.
  9. Cloned, loaded and crashed Tried with A25, see below for the errors: ERROR: JavaScript error: globalscripts/Templates.js line 21 simulation/data/civs/east.json doesn't contain Name loadCivFiles@globalscripts/Templates.js:21:11 loadCivData@gui/common/functions_utility.js:37:28 @gui/gamesetup/gamesetup.js:13:30 onPress@gui/pregame/MainMenuItems.js:90:13 performButtonAction@gui/pregame/MainMenuItemHandler.js:77:9 pressButton@gui/pregame/MainMenuItemHandler.js:63:10 ERROR: JavaScript error: gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/RelicCount.js line 51 can't access lexical declaration 'g_CivData' before initialization @gui/gamesetup/Pages/GameSetupPage/GameSettings/Single/Sliders/RelicCount.js:51:1 onPress@gui/pregame/MainMenuItems.js:90:13 performButtonAction@gui/pregame/MainMenuItemHandler.js:77:9 pressButton@gui/pregame/MainMenuItemHandler.js:63:10 TIMER| gamesetup/gamesetup.xml: 61.2914 ms TIMER| common/global.xml: 271.786 us ERROR: JavaScript error: globalscripts/Templates.js line 21 simulation/data/civs/east.json doesn't contain Name loadCivFiles@globalscripts/Templates.js:21:11 loadCivData@gui/common/functions_utility.js:37:28 init@gui/gamesettings/GameSettings.js:24:13 SetupWindow@gui/gamesetup/SetupWindow.js:29:39 init@gui/gamesetup/gamesetup.js:47:18 onPress@gui/pregame/MainMenuItems.js:90:13 performButtonAction@gui/pregame/MainMenuItemHandler.js:77:9 pressButton@gui/pregame/MainMenuItemHandler.js:63:10 ERROR: GUI page 'page_gamesetup.xml': Failed to call init() function
  10. Quick notes only header sorting: changing sort order might cause changes. IIRC curl on at least on windows isn't safe and we can't assume the code base to be free of "order hacks" loops: std::ranges::iota is c++23
  11. Human reaction time is around 200ms, some gamer are even faster. 50ms with 150ms net delay sound like a very nice target indeed.
  12. Just because teams aren't locked doesn't mean there can't be defaults. Looks like a bug.
  13. c-style ps_stringutils_stringFromDouble as for str, I don't like this as a namespace name, I'd prefer a proper name. If it's to long in certain TU due to heavy use just use using or alias.
  14. When logging in there there should be a checkbox for staying logged in, otherwise after a certain timeout you will be automatically log out.
  15. Changing CC always has it's price and shouldn't be done lightly. The c++ core guidelines linked by @vladislavbelov earlier would otherwise be an ideal basis to start with as a parent for CC. auto: I like where the CC speaks of using auto in moderation. old style for loops: well, one could theoretically argue anyone with any coding experience in any language knows how they work at a glance which might be of minor help in maintenance but personally I don't mind. misc: moving lib/* to ps/* is fine with me, this is a historic curiosity that could stay but if someone wants to do all the cleanup, review, testing and committing - sure. The alternative is to split lib/* into an own repo and depend on it, so as to align with the original intent but I see this as the lesser approach here. I also have a preference for free functions over the CStr approach.
  16. Parsing xml isn't very fast, also you have a whole inheritance chain of xml files for a template. Once you have done all work you have an in memory representation which you could just dump bit by bit to disk and read back which is much faster. Well, it's not exactly as easy but explains the basic idea quite well. The code is open, for the gory details I suggest you start digging into it.
  17. This was changed at some point so you can't hide 200 units in a fort.
  18. I think there is bug where if water height is much different to terrain height the view rect in the minimap gets rendered out of proportion.
  19. Agreed, just changing the default isn't the best way. Some UI changes to properly promote forwarding without confusing users certainly would be better. Rewarding hosts with a "first class host badge" is probably already a good incentive. But we shouldn't assume people to be stupid and properly tell them the drawbacks of each method. There simply doesn't exist a just works solution without wfg hosting the games or proxying all traffic. So implicitly pretending otherwise wont help casting a good light on 0ad. I faintly recall @Langbart having written a guide somewhere ... Forwarding requires you to have sufficient rights to configure your router. Stun is a technique which allows you in some cases to bypass this limitation. So quick'n dirty solution only in the sense that it's easily abused as a one trick pony. The biggest problem is only some people will be able to connect to you while others can't depending on their ISP, this giving the illusion of all is well when it's not.
  20. Just delete the metadata.json, it's not needed at all. Don't even try manually fixing it.
  21. Teaching people on how to setup forwarding is not the goal but to let them know they are using a problematic setup. If stun is the only thing they get working, so be it. The main problem I see is they don't even know that there is an issue, which is always the biggest hurdle to address.
  22. Not sure what you are up to, before even creating a game one could pop up a message "Warning: stun enabled, random success, please consider forwarding, read more ...". Connection testing can also be done by the lobby, upon creation of a game or otherwise, which I consider a low traffic solution. The important bit is to educate game hosts that stun is a poor solution in general, the indicator is mostly for people to learn if they aren't able to connect to stun hosts so as to get rid of the impression that it's 0ad fault.
  23. One could indicate whether it's a properly reachable host (forwarding) or randomly reachable host (stun), if people believe stun is a full solution they won't care about a better setup. Also ip6 support could help. Sure there are other reason than stun, but I guess it's the reason in a vast majority of cases.
×
×
  • Create New...