Jump to content

Looking back on the balancing strategy


Stan`
 Share

Recommended Posts

On 18/05/2022 at 6:24 AM, LetswaveaBook said:

Both Vali and I (and possibly some others) have created some mods to change the flow of the game, But it is difficult to convince players to try these modification. Even if you get players to play the mod, then it did not have a lasting effect: It still takes considerable effort to find players to join a game with modded settings. 95% of the players in the lobby are unlikely to try any mods. Vali and I have tried to pushed to try some lobby games with mods, but both of us had trouble to find enough people that wanted to try something different. As long as that mentality doesn´t change offering lobby players the option to download a mod won´t result in anything.

I uploaded a mod on mod.io that allows you to research tier 2 forge upgrades in phase 2. Since it is on mod.io, it is super easy to install and can be done when you go to setting>mod selection>download mods in the game menu. As easy as that. No need to go to the forum, download the correct file and unpack it in the right folder. However I failed to get more than a few responses on the mod.

In the end I think it is a bad thing: we don´t know if something is an improvement or not and we don´t get any experiences about what changes would improve the dynamic of the game.

 

If you want the lobby to try changes to the game as @wraitii suggested, then I would say that you would need to create a ¨(semi) progressive mod¨ for A26 that features changes and make it the standard. Then players that do nothing use and test the new changes. Then also give players the option to use a conservative mod that allows people to play A26 in a way that is closer to A25. I think even some minor changes to technologies and templates could improve the flow of the game significantly.

Some games allow you to to download maps from the multiplayer screen. If mods could be applied like this, just like a "use map settings", then I think mods could take off a lot better. One problem with this could be the size.

This problem could be alleviated, maybe, by including more community art that is not yet in the main game but could be referenced by mods and therefore wouldn't require downloading. Some kind of check for identical files would speed things up. I have tons of other ideas for decreasing things like file sizes and numbers, like even using the new "mixin" feature for templates.

  • Like 1
Link to comment
Share on other sites

On 19/05/2022 at 11:42 PM, ChronA said:

@Sevda had a good concrete-suggestion on another thread: Make it easier to play mods by automatically syncing with the host when joining a modded multiplayer game.

Their post implies a host-client simulation architecture that I assume would require completely redesigning the net code (so that is unlikely to happen), but could not the same effect be achieved by just having the players' clients automatically download and install the mod files from the host? (Subject to all parties' affirmative consent obviously.) 

For very large mods like DE this installation method would take a long time, but for small balance changes it ought to be pretty snappy. From a casual user's perspective this would make playing modded multiplayer content more like having custom map rules. It would allow more people to very easily experiment with new gameplay innovations, without effectively forking the project into two separate versions with the attendant doubling of the code-maintenance workload, as discussed previously.

Maybe there are some valid cybersecurity arguments why one would not want to support a feature like that, but this might be a case this requires soberly considering a tradeoff. 0AD is niche entertainment software with an active user base of a few thousands maybe, it's not exactly a prime target for black hats to exploit. Maybe at worst someone with a grudge might think use this nefariously against specific objects of their ire.

On the other side of the scale, I think the discussion on this and other threads demonstrate a pervasive consensus that this project is stuck in a creative crisis... Badly stuck. There are too many objectors coming out of the woodwork any time someone suggests serious design or organizational reforms that might let 0AD get un-mired from its dubiously balanced, half-finished state. The only other option you have is to start removing barriers to independent creatives to realize their own visions of the game's future, and then hope that a new consensus organically coalesces around one of these offerings so that it can become the new roadmap for 0AD:EA proper. 

link to the other thread:

 

I think to have a core Engine that the developers focus on, then synching mods like you suggest, would give tremendous ability for new content and version to be explored. I think it will bring new life to the game and take a burden off the Core team. This would allow "hardcore version" to be implemented by modders without the need for officially endorsing that version. Then, it will be easy to "let the market decide", so to speak :banana:

Edited by myou5e
Link to comment
Share on other sites

On 20/05/2022 at 9:47 AM, Crynux said:

On a side note, with regard to github resistance ... I honestly don't get what the problem is. So like ... it's an open source project, so they can't really steal the code. In addition ... saying "oh what if they close / delete the repo?" well ... that's what having a proper infrastructure (including backups) helps prevent entirely. If we always have multiple sources of the code ... then we really can't lose it.

 

 

Moving to Git, is reasonable, especially as it could become symbolic of a more distributed development culture. Moving to Github, though, has downsides. One of course, is supporting a Microsoft product, but on a practical note, there are some specific Github features that could not be migrated if the project moved away. Gitlab is reasonable(and currently the goal,, if I'm not mistaken), because being self hosted, we can't actually lose any such data except from negligence, which would not even be dangerous as every developer still has a git history.

Link to comment
Share on other sites

26 minutes ago, myou5e said:

Some games allow you to to download maps from the multiplayer screen. If mods could be applied like this, just like a "use map settings", then I think mods could take off a lot better. One problem with this could be the size.

No the issue here is security. The only mods you should be able to download are mods from mod.io.

3 minutes ago, myou5e said:

Moving to Git, is reasonable, especially as it could become symbolic of a more distributed development culture. Moving to Github, though, has downsides. One of course, is supporting a Microsoft product, but on a practical note, there are some specific Github features that could not be migrated if the project moved away. Gitlab is reasonable(and currently the goal,, if I'm not mistaken), because being self hosted, we can't actually lose any such data except from negligence, which would not even be dangerous as every developer still has a git history.

Yeah I'm setupping gitlab.wildfiregames.com. Currently looking at migrating trac there. However there are 1680 accounts (I have to create gitlab users to match) there and I need to downgrade to Gitlab 11 for the migration script to work.

  • Like 1
Link to comment
Share on other sites

4 minutes ago, Stan` said:

No the issue here is security. The only mods you should be able to download are mods from mod.io.

Yeah I'm setupping gitlab.wildfiregames.com. Currently looking at migrating trac there. However there are 1680 accounts (I have to create gitlab users to match) there and I need to downgrade to Gitlab 11 for the migration script to work.

What if you implement this feature, but only for the templates folder? This way no arbitrary code, just XML! As long as you check xml strings for "xml injection".

I think the XML modification allows for custom balancing and the file downloads would also be very small. I think this could free up time for devs so you don't need to have endless discussions about balancing.

Edited by myou5e
Link to comment
Share on other sites

9 minutes ago, myou5e said:

What if you implement this feature, but only for the templates folder? This way no arbitrary code, just XML! As long as you check xml strings for "xml injection".

Well then you need to add art, and maps. And mods should come packaged as archives. No way to enforce that it only contains a template folder. Also zip might be corrupted, contain malicious code etc

 

Link to comment
Share on other sites

Just now, Stan` said:

Well then you need to add art, and maps. And mods should come packaged as archives. No way to enforce that it only contains a template folder. Also zip might be corrupted, contain malicious code etc

You can filter out anything that's not an xml file. If you have a defined, declarative language with only expected strings and a defined file format then everything else can be filtered out. I haven't looked at XML security, but I know the Dhall language is actually designed as a programmable declarative secure configuration language. I'm guessing XML is more secure because it doesn't have things like addition or subtraction(just attributes which tell you to do it which can be type checked).

Link to comment
Share on other sites

1 minute ago, myou5e said:

I think it's worth talking to some cybersec experts about this. I think it can be done if it's limited to XML.

XML files are precached as XMB, and they need to come in a mod preferably in a zip for bandwith. You cannot add new files while the game is running too, only edit existing ones. Exception being maps when generated in atlas, because we force the reloading. You also need to restart the game to load a mod, and you need a mod.json

  • Like 1
Link to comment
Share on other sites

2 minutes ago, Stan` said:

XML files are precached as XMB, and they need to come in a mod preferably in a zip for bandwith. You cannot add new files while the game is running too, only edit existing ones. Exception being maps when generated in atlas, because we force the reloading. You also need to restart the game to load a mod, and you need a mod.json

Sorry to keep badgering about this. I'm not telling you that you should do anything, but all those things seem to have workarounds. Json, HTML, Dhall, Xml, yml all have very similar architectures and can be translatable into each other pretty easily, in some cases with loss of information or type data, but that data can be stored in other variables anyway(like an extra attribute stating a value should be interpreted as a number/integer etc). I'll leave it at this because I don't want to waste your time. But I think it's worth considering due to the fact I think it could be a way to distract the "balancing bros" from the dev team and delegate some responsibility.

Link to comment
Share on other sites

On 22/05/2022 at 9:59 AM, Sevda said:

An idea: make unit stats adjustable during game setup, and all players use the stats stored on the host's computer. This resolves all of the balancing issues on the forum, no need to trouble the developers and players can decide the stats of units for balance. There will be no more balancing conundrum. 

This is equivalent to my suggestion about only allowing the distribution of the template files. Filter out the zip for anything but properly formatted XML.

Link to comment
Share on other sites

7 minutes ago, myou5e said:

Sorry to keep badgering about this. I'm not telling you that you should do anything, but all those things seem to have workarounds. Json, HTML, Dhall, Xml, yml all have very similar architectures and can be translatable into each other pretty easily, in some cases with loss of information or type data, but that data can be stored in other variables anyway(like an extra attribute stating a value should be interpreted as a number/integer etc). I'll leave it at this because I don't want to waste your time. But I think it's worth considering due to the fact I think it could be a way to distract the "balancing bros" from the dev team and delegate some responsibility.

Sure my point is that the easy workaround is a mod.io mod that you download through the mod downloader and update when you need to to match other players :) 

You can have four balancing mods with different gameplay and ask people to download them.

  • Like 1
Link to comment
Share on other sites

Just now, myou5e said:

This is equivalent to my suggestion about only allowing the distribution of the template files. Filter out the zip for anything but properly formatted XML.

Do note that techs and auras are in JSON files and in another folder :) @Freagarach is trying to get rid of that IIRC :P

Also custom stats on the host are not an option due to the fact that all the players must have them.

 

  • Like 1
Link to comment
Share on other sites

30 minutes ago, Stan` said:

Do note that techs and auras are in JSON files and in another folder :) @Freagarach is trying to get rid of that IIRC :P

Also custom stats on the host are not an option due to the fact that all the players must have them.

 

Regardless of which directory it's in, XML, YAML, JSON, Dahl, perhaps with some restrictions, can all be safely loaded.

For a counterpoint against me see these:
https://www.acunetix.com/blog/articles/xml-external-entity-xxe-vulnerabilities/
https://resources.infosecinstitute.com/topic/xml-vulnerabilities-still-attractive-targets-attackers/
 

They are called XXE(XML External Entities), and they are used for user input on the web frequently. They are a security risk, but one that can be controlled. Dahl is a configuration language that has been designed specifically with shareable and secure configuration in mind. But it would require quite a few changes.

Edited by myou5e
Link to comment
Share on other sites

On 22/05/2022 at 12:20 PM, Loki1950 said:

IIRC those stats are in XML files though each civ has a separate file for each unit so it is a tedious process to edit each file in question so a way of dealing with all the files at once is needed not a trivial task basically a macro for a text editor and not many text editors have macro search and replace functions and then they are not available on all the platforms we support.

Enjoy the Choice :)  

On this point, there is a new feature, which I think was implement by @wraitii, on the modding side which allows for "mixins" which makes modding way less time consuming. This feature is not used much in the current Alpha, but I think it is undermentioned and underpraised! It can reduce the effort of adjusting XML files by I think maybe 90% once this feature is properly understood by modders, and implemented more widely in the Alpha. It's something I have been working on, actually, and I plan to release a mod soon which does very little, except use mixins to rearrange template files. The intent is to show modders how easy it can be to mod using this new arrangement.

Link to comment
Share on other sites

On 21/05/2022 at 5:42 AM, Crynux said:

The proposal is ... If you post a problem, post a solution. If you don't have a solution, state how you imagine things would be if the problem was solved; as that would at least give us a destination, but not how to get there.

So to practice what I preach ... here's some possible solutions to the points above:

  1. Further breakdown project milestones/versions (for example A27) into subprojects.
    • There are a couple options here ... we could have an overarching goal for the milestone (for example, "Refactor rendering to remove nvtt and make way for vulkan support"; completely guessing here lol). Then during A27, the majority of work would be on that.
    • Another option could be to have subprojects for the milestone; for example, Art could have a goal, Balance could have a goal, etc, etc. Then once they're all complete, A{n} is complete.
    • Another possibly better option could be to have alternating milestone focus. So for example, in the case of A27. Maybe A27.0 could be focused on getting balance stuff in (maybe it's only a 1 or 2 week sprint). Then after that A27.1 would focus on non-balance related things. This would give time for the devs to do what they want, while also dedicating some time to balance issues.
  2. With solution 1 there ... there are some things that could help this. Alternativelty, if balance is just mostly xml configurations ... there could be some functionality added (idk if it's already there), to allow people to merge balance configurations. So for example, have a balance menu in-game where they could select the xml to load settings from. Then optionally, have an in-game balance vote (for example after a SP or MP game), on what the players thought of the balance.
    • This would give some real feedback on each balance configuration, and differences/implications could be drawn when comparing concrete versions of the settings. It would give balance people and programmers a better technical understanding of what setting influences balance the most, or at least is the most controversial.
  3. Direction can come with the solution in point 1. Honestly ... my thought is that having a stream if tickets isn't the best solution for projects goal-wise. It doesn't give a clear outlook of progress (in my opinion). Having smaller goals would give a better sense of completion. Seeing those goals accumulate will give a better sense of success.
    • One idea here would be to adopt something with some kind of project-based progress bars. The visual feedback of it is amazing in my mind.
    • For example, there's this https://github.com/opf/openproject
      • With it you can do progress bars like these: Bulk editing progress
      • Of course, this is just an example, there's probably other software out there that does the same.
    • Maybe gitlab does this? (just checked, it does, here's a screenshot)
      • New milestone
    • Ultimately, if we can have something like this on the homepage, that could be cool too! It could be a point-of-interest for anyone looking at the project ... if they're interested in helping, having current workings, or areas of real need posted publicly would be a benefit; and I think would draw in more people.

 

1. and 3. are already present in the milestones listed at https://trac.wildfiregames.com/roadmap. Perhaps there is an issue of marketing so it's obvious :-p . Maybe social media is a good idea after all :-p

I support 2 and will defend adding something like in game balancing or loading of third party balancing. More so, I want to be involved with it. I'm doing things with templates now to try to make them more user friendly. It's not the same as editing in game. I don't know enough to do that now, but maybe in the future.

On 21/05/2022 at 5:42 AM, Crynux said:

To some degree, yes. Too much openness is bad, especially when no-one is declared the final decision maker. This is true in many cases. One that comes to mind (I've been watching a lot of Gordon Ramsay lately lol), is in businesses like hotels, restaurants. With a group of "owners", if there's no-one who has a final say, decisions rot. Part of what Ramsay does is instill a position of power in a single person ... that changes the entire organization, and how it runs as a whole.

Maybe having a elected "official" would help the project. Alternatively ... we could also adopt a voting system of sorts, where solutions are presented, and voted on with a deadline within the community. Of course, there's a ton of ways about this. We could also make the project configurable by default. So like ... at any point if there's something that's a core concern, or clear divide in the community ... make a checkbox for it ... then we get BOTH those sides remaining interested, while also satisfying their personal needs/opinions.

 


People talk about FOSS principles of openness. I actually don't think that means no leaders. FOSS makes code accessible to others, but doesn't give those others write access to the developers PC. That means FOSS is free to be forked. It doesn't mean there is no decision making at the top. If you don't like the King, start your own kingdom. But there is nothing wrong with kings.

Edited by myou5e
Link to comment
Share on other sites

  • 1 month later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...