Jump to content

hyperion

WFG Programming Team
  • Posts

    1.186
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by hyperion

  1. 2 hours ago, Obelix said:

    I'm thinking about how much bigger the installation file would be if we were to add all these audio files-or a tts model. Does anyone have a clue?

    A tts model is typically less than 100MB but likely is limited to a single language, so one might not be enough. The output could be generated and bundled while creating the mod if performance requires it. Size generated content depends on total text spoken obviously and the quality/bitrate of the encoding, might come at another 100Mb per hour. Splitting into addon-mods is possible.

    However, this would be a larger project (not just tts but the whole integration of speech) and I don't think it would be coming anytime soon, tho for immersion this would be a nice to have.

    Waiting for video support :)

     

     

    • Thanks 1
  2. 2 hours ago, vladislavbelov said:

    It seems kind of fatal, as SDL can't figure out the WM backend and setup cursors. We can workaround it but in theory it might lead to UB.

    4 hours ago, hyperion said:

    Maybe the OP should clarify if they can run 0ad at all without trying to install a mod but as I read between the lines they can. If this shall be considered fatal then and error should be thrown for arb and a message stating "no graphics backend could be initialized, shutting down ..." should be printed.

  3. On 21/01/2024 at 3:04 AM, Laythe206 said:

    ERROR: Failed to query SDL WM info: That operation is not supported
    ERROR: Unable to create device for GL backend, switching to ARB.
    ERROR: Failed to query SDL WM info: That operation is not supported
    ERROR: SetVideoMode failed in backend device creation: 1024x768:24 1
    ERROR: Can't create cursor: Cursors are not currently supported

    This error should have nothing to do with the mod or installing it, isn't fatal but would be nice to sort out as it prevents you from using a decent graphics backend but let's focus on the main issue going by topic.

    Can you install other mods this way?

    Are you able to download and install the mod via mod.io and just not via terminal install?

    What happens if you rename the zh-lang-0.0.26.pyromod to zh-lang.zip and place it in your mods folder and restart the game?

    https://trac.wildfiregames.com/wiki/GameDataPaths lists the various default paths. Also the game logs to stdout, if an error message can't be seen there you won't find it in log files either.

     

  4. On 15/01/2024 at 11:25 AM, Stan` said:

    This video explains it well https://youtu.be/C8YtdC8mxTU?t=976

    Fantastic video!

    Well, still I can't find the relevant portion in the code by skimming, all I found was the use of normal maps in the fragment shader (sure might have missed it tho). This would also give some level of perceived smoothness but is not what I have in mind for smooth shading, still the term flat shading isn't entirely appropriate either. Maybe normal map shading?

  5. Hard to tell even with a crafted example but noticeably different than in blender. Much weaker effect which might come down to a much cheaper algorithm. Could some tweaking get us closer to blender without ramping up computation time?

  6. 2 hours ago, Stan` said:

    Of course we have smooth shading Oo. Else barrels would look much worse. Units too.

    shot-2024-01-14_17-04-09.jpg.d2e89a5bf6daac560da84527cc333a05.jpg

    What would I have to change to make it work as this doesn't look like smooth shading at all.

  7. 1.) Smooth shading interpolates geometry during render, which isn't free and so the game engine doesn't do it as far as I'm aware, at least I never stumbled over code that would indicate otherwise. What you get is basically the same as flat shading in blender.

    2.) While baking you have to set metallic to 0 from what I remember when experimenting a year or two ago, don't know why tho. Could well have been a bug in blender.

  8. 29 minutes ago, Stan` said:

    Oh really ? That's sad :/

    The argument is it can't reasonably be discovered and to a lesser extent the means to distributing units across fields are lacking. If those issues can be fixed diminishing returns doesn't sound bad but coming up with a decent proposal seems non trivial.

    • Like 1
  9. 4 hours ago, guerringuerrin said:

    Then I guess that we agree that without some criteria and mechanisms that limit the use of some types of mod in a competitive environment it's really difficult to create a sense of fairness. Are we?

    Wild west is also fair but I don't mind either way. I see why people would want such a CoC and think it won't hurt at all. I'm fine with rules as long as they are written rules well thought out.

     

    4 hours ago, guerringuerrin said:

    And thank goodness it is not exposed, since it clearly provides a visual advantage.

    It's exposed in the config file which I consider perfectly legitimate to edit. Beside a possible advantage it might also help with performance. There are quite a few config options that people tweak that are not exposed in the UI. "gui.scale" for example only got exposed in the UI in svn but anyone with a 4k monitor probably wants to tweak it already.

    • Like 1
  10. On 03/01/2024 at 9:41 PM, guerringuerrin said:

    Of course. I just followed your proposal and wrote down open to any modification

    And I suggest to go trough with the polishing if you are serious about creating a CoC for ladder games. Get others interested in such involved where possible.

     

    On 03/01/2024 at 9:41 PM, guerringuerrin said:

    I mean things like this. The photo is not of good quality and perhaps cannot be appreciated, but by modifying the trees in this way the visibility of enemy units is greatly facilitated.

    I see. Well, I'd say this isn't that straight forward. First of all there is an option in the base game to not render decorative actors but isn't exposed in the UI (set renderactors=false if memory serves me right). Small trees mod is standard in the AoE competitive scene. Lastly there might be made an argument that color blind people need texture tweaking.

     

     

  11. 13 hours ago, guerringuerrin said:

    I would write the following: no mods that modify aspects of the game such as: moving units automatically; or modify the attacking behavior of units to auto-snipe or similar techniques that grant an advantage in battle; or automatically produce units, technology or phases according to available resources; or automate other aspects of the economy, for example, automatically building houses in a given space; or modify the graphics in such a way as to allow units to be seen under trees or mountains; or that allows the player to see the number of units garrisoned in buildings or ships; or modify unit graphics to highlight certain units so you can attack them and take advantage of it; or that allows automatic sharing of resources; or reveal the map; or notifying about other team events such as obtaining technology, changing phase, population and resources should be allowed in a competitive game unless all parties agree to allow them

    Overall reasonable but would need quite some polishing. What I don't get are units visible behind trees, the base game has unit silhouettes except maybe for the ARB shaders. Also number garrisoned can usually be inferred from arrow count.

     

    13 hours ago, guerringuerrin said:

    And in this sense, I would start by applying these criteria to the mods that are signed on mod.io

    To what end?

     

    13 hours ago, guerringuerrin said:

    And if that, in addition, is legitimized by the game itself, then there is no valid accusation of "cheat"/

    Legitimization only comes from writing the supposed rules down black on white, publishing a CoC for ladder games on the wiki or even better in-game. Some users making up rules on the go definitely lack legitimization.

     

    13 hours ago, guerringuerrin said:

    At least it would be nice if hosts had tools to detect the mods that others are using in the same way that the host's mods are seen in the lobby.

    Well, you can't detect it ever, technically outright impossible. It's entirely voluntary to share what mods you use. Atrik earlier in this tread also stated it would be nice to see others mods in the UI and as we are all curious creature I see why people would want it, but bare in mind this can be faked at will with no means of enforcing.

     

    13 hours ago, guerringuerrin said:

    Perhaps, like in Age of Empires 2, there could be a list of mods allowed for "ranked mode" and as many for a non-ranked mode.

    In AoE it mostly works because there is a healthy e-sport scene and no one will want to train with mods that can't be used in tournaments, 0ad is far from there.

     

    13 hours ago, guerringuerrin said:

    After all, most players are not super software developers and, even if they are devs, not everyone will have enough incentive to study the code and develop a cheat. But, if the game itself offers the possibility of using available mods with the features I am naming, then it becomes much easier for anyone to access those resources.

    The barrier isn't that high but I concur it exists. But a tutorial is written fast and we have seen quite a few proof of concept mods for such. I think I remember a mod that allows you to read enemy chat was posted not long ago ;)

    Maybe ChatGPT can also tell you how to :P

  12. 11 hours ago, s0600204 said:

    It would be a lot easier, I'd imagine/hope, to patch SM102.

    I somewhat doubt it as the python 3.12 porting only really started with SM120, if you want me to try on a different distro feel free to share your patch. I also realized we could just pre apply the binary patches as we repackage the tarball anyway, so blatantly updating bundled virtualenv to a recent version via binary patch (18M) could be avoided.

     

    @Stan` I played a match with SM91 vs SM102 and no OOS occurred, my guess the same would be the case for some more esr branches in both directions as we are no longer in the age of netscape where javascript was more like a toy. About we heavily patching SM, compared to distros we are close to vanilla :). The reason for giving up is more likely that requiring a different SM minor than the one provided by the distro leads to "slot conflicts", ie a user needs two versions of SM with the same major which can't be installed at the same time. For a packager it's hard to tell if the header check for minor is meaningful, so if in doubt do as upstream insists.

  13. 3 minutes ago, Stan` said:

    but the major check has to stay

    The major we ensure with pkgconfig already. So the the check in the header is redundant.

     

    5 minutes ago, Stan` said:

    In the current situation given the missing parts I'd say we're not ready for 102.

    I tried fixing sm91 for python 3.12, that one looks really tricky, needs more than linked patch  in the bug and I ended up with binary patches for virtualenv before stopping for now. If we can't add git to the build deps I fear we won't add support for python 3.12 either.

  14. On 28/12/2023 at 9:26 PM, Stan` said:

    Spidermonkey also breaks API in minor versions sometimes (happened for 78). Another issue was the ICU problem where you need to have the same version between spidermonkey and 0ad else it will fail to link, but they do not pick it from the same place.

    That incident with 78 affected at least a few distributions, so they must have used system spidermonkey at that time. Also that we are aware that some distros package sm wrt ICU in a way that causes issues is due to them using (or trying to use) system sm. Looking at the spec file linked by Norse we also see support for system sm.

    So if they can they really would prefer that option any day, but the rigid check makes this somewhat tricky for packagers.

  15. 1 hour ago, Norse_Harold said:

    We need more information, such as the versions of python, python3 and python3-six that you have installed, in order to help you with troubleshooting building alpha 27.

    It's a python-3.12 issue, I created a trac ticket with a link to the upstream patch, no need for more info or experiments, it's easy enough to reproduce.

     

    1 hour ago, Norse_Harold said:

    I would like to know which distributions specifically do that for their official binary package releases.

    Gentoo did for the longest time, then stopped because the restrictive header check became annoying for packaging, not because it could lead to OOS. Pretty sure once upon a time Ubuntu did the system mozjs thingy as well. The header test I consider a remnant of the sm-1.8 days. The pc file already ensures same major version.

    • Thanks 1
  16. 16 minutes ago, Norse_Harold said:

    If SolarEagle wants to play 0ad multiplayer then he shouldn't be using anything other than the bundled mozjs, right? Otherwise, even a small difference in how the JavaScript engine functions, such as serialization and deserialization, could cause  an out-of-sync condition during multiplayer gameplay.

    Nah, if it builds it should be fine, quite a few distribution actually do this for the package 0ad. The last time runtime changes to the language happened should be well over a decade ago, tho don't take that as the ultimate truth, it's just what I remember. What we see more often is breakage in how we interface with the engine from C++, therefore we stick to EOL LTS releases. Ofc a distribution can patch it so it wont work but that is exceedingly unlikely.

  17. Not sure which package manager you use, there seems to be rpm yum and dnf for fedora, each having there own way to list installed files for packages. If https://packages.fedoraproject.org/pkgs/mozjs91/mozjs91/fedora-rawhide.html#files is correct then it doesn't install a pkgconfig file which I consider a packaging bug. Maybe file a bug against mozjs on the fedora bugtracker to get this rectified.

    Also looking at the same page it looks like you are using python3.12, is that correct?

  18. If it's not Fedora specific it might be related to python version. Could you post the version, so maybe others can try to reproduce it.

    As for the system mozjs91 package, do you have it actually installed? I'm asking as the configure step (premake) can't find it in the first place and as a result the build error is fully expected. Premake / uptdate-workspace.sh not aborting early and creating broken makefiles seems a bug on it's own. If mozjs91 is installed, does it also install a pkgconfig file or just the shared library?

  19. 1 hour ago, Stan` said:

    Define Vanilla ? How do you review it? What prevents you from dumping 5 mods in the public mod? Cause to me it's assuming people play fair and that' apparently not the case

    Guess you know what vanilla refers to code wise, so in this context I define it as the shared vision of the game while modifications as approximation of an individuals vision of the game. By review I mean a patch reviewed by the formal process on phab and finally committed to svn.

    Generally I'd say it's not a big deal but lets assume I host a tournament with a prize pool significantly larger than a bar of chocolate for the winner, then in the spirit of e-sport some measures need be taken to ensure the rules I set. Ofc a lan tournament would be ideal but often unrealistic. So next best is to require a screen recording of the game and optionally a face cam to be analyzed. You can also run heuristics on the replay (network commands). The latter is possible for random ladder games as well. Still you can only assume no one is cheating if you don't catch anyone.

    I can't stress enough that any and all attempts to prevent users from cheating by code on the users machine I deem utterly futile. So the question of what prevents people dumping stuff into public I can only answer with nothing and nothing ever will.

    We still haven't established what fair even means, more to that further down. But if there are no downsides to be honest about your modifications why would you hide it. So the environment needs to be pretty bad already for this to be a concern.

     

    10 hours ago, Stan` said:

    So far all the discussions ended in disagreement with regards to what is cheating :) But I suppose that's normal considering everyone has their opinion

    Perfectly normal, that's why I called imaginary evil. We know there is cheating but don't know what it is. We only know It's something out there that threatens us, which could jump us any moment and has the potential to utterly threaten our existence. So it's imperative that we start gear up with stage props and ostracize people we suspect have fallen to the dark side of force. I guess you can smell some cynicism here.

    If you want to entitle a group of people to define what cheating is then their first task would be to write it down, not in terms of named mods but what type of modification they don't want to see on the ladder, then we can see if we can develop heuristic to scan game data transmitted during the game for suspicious activity. But before we have such an approved list cheating simply doesn't exist as far as I'm concerned.

    • Like 1
  20. On 24/12/2023 at 12:45 PM, Stan` said:

    That is where the ignoreincompatibility check comes in play (i wonder if a small countermeasure would be to make that flag work only with signed mods).

    Let's assume it's desirable that people can play together without being required to run with the exact same mods in the exact same order so you can find players to play against even if you play with a couple mods. There is fundamentally no issue with this as long as those mods don't affect the result of the simulation. This was done through code in the mod and later a metadata key was introduced to simplify this.

    So a player using a mod outside of mod.io doesn't deserve to find players to play against or has to convince everyone else to also load that mod in the exact same order as everyone else. I'm thinking about my mute sound on pause patch I carry for a few years (1), which would make me a cheater if I read the intent of your suggestion correctly.

    What we need is a formal definition of cheating, not some trick in the code that as we have established above is trivial to sidestep for anyone wanting to cheat. Worse impacts conceivably legitimate uses left and right.

    We could define it as everything goes and there is no cheating. Or what I suggested, everything in vanilla was reviewed by our formal process and as such by definition corresponds to our vision of the game, you can mod the game and as long as you don't hide it it's fine for rated games in the official lobby, we won't get involved into discussions of what modifications are appropriate and which not as every individual has a different take anyway (2).

    For me it currently looks like there is the imaginary evil of cheating and a group with a mission to fight it. Let's call that group The Committee. Then I at least expect The Committee to publish, let's say on the wiki, a list of modifications that they deem harmful and don't wish to be seen used on ladder in the official lobby. The Committee shall not come up with anything that needs recurring involvement of devs and shall not hinder what is considered a legitimate use case for the last decade and one of the aspects that makes this game charming.

     

    (1) Very simple, just download my patch, fetch the sources, apply the patch and build the game, then I'm allowed to play with you again :).

    (2) It would be a good thing in my book if we had pure AI player competing on the ladder as long as they don't lag and are visible as AI players.

    • Like 2
×
×
  • Create New...