UEFA 2024/25 new format configurations

Forum devoted to country/league/cup/team definition topics. You can also get help here if you have trouble writing or using a definition.
will_the_canuck
Posts: 141
Joined: Tue Jan 16, 2018 5:54 am
Location: Canada

Re: UEFA 2024/25 new format configurations

Post by will_the_canuck »

bygkicker wrote: Fri Mar 01, 2024 10:51 am Hi Will and tstellar,

thank you for your reactions.

Will, I found the UEFA 20/21 definitions on the forum. There were several zips, I'm afraid I missed yours. I didn't know about your Kosovo update, so I included an update of Kosovo (with real names, but only one playable layer) in my zip. Thank you for your attachment, I'll look into it.
Oh well. If you missed it, you missed it. Whether or not it would be better or worse for you at the time that I posted it, who knows, although that particular post did have the updated European cup competitions for all the European teams at the time. :) Though this is not to say that using the older Champions League and UEFA Cup files were a step down from not using the newer cup files. The old ones worked and they still work, although yes, they are outdated. I posted the updates in that manner as really, as the older definitions that came with version 2.3.2 included the older Champions League and UEFA Cup, they weren't really able to handle the updated Champions League and Europa League with the additional countries required as part of the definitions. So instead of updating the international cup files individually and posting them as such, it required a complete update to the European definitions, all at once. Although yes, I did still use the older country definitions, I just updated the country_sid.xml files to represent the newer international cups used. It will have to be the same way for any further updates, especially if not all countries are currently included in the European definitions.

When you do try or look at the Kosovo definitions, if you feel like giving any feedback, feel free.
For now I'll stay with version 2.3.2, I prefer the readable definitions. Updated and tested versions of germany, switzerland and liechtenstein (playable!) are included in my zip.

Tstellar, these cup_uefa2024* files are generated, from three template xml's (CL, EL, ECL resp.). 55 European countries, so there are 165 files, created with a click. :)
These templates are quite close to the UEFA definitions, with tags not known to bygfoot. Example:

<!-- 16 domestic cup winners from associations 40–55 -->
<choose_team>
<qualified_as>CW</qualified_as>
<choose_team_rank_lower>55</choose_team_rank_lower>
<choose_team_rank_upper>40</choose_team_rank_upper>
<number_of_teams>1</number_of_teams>
<randomly>1</randomly>
<generate>1</generate>
</choose_team>

CW means cup winner of the national cup. This is Liechtensteins special entry...
Hmm. bygkicker, it almost sounds like you are running a modified version of 2.3.2. Am I right? Maybe one that you modified and compiled yourself? If so, on what operating system are you running it? As for myself, I'm still with version 2.3.2 because it is what is available through the Ubuntu repositories. Yes, I would LOVE an update to bygfoot's engine, but I maybe am not sold on the definitions used, as like you implied, they lack good enough names to use and differentiate the teams. Also, when looking at some statistics, it does appear as if version 2.3.2 is still being downloaded and used, so that's another thing. If I create and test my definitions on version 2.3.2, at least those users can update their definitions without issue, whereas if I was using a newer version like tstellar was making, and used some of those newer tags, it would not allow those people using the older version the opportunity to use those newer definitions. But yes, I can understand that it would then allow those users the choice and opportunity to update their version of bygfoot that they are using. Maybe some people aren't comfortable downloading files and installing updates that way when compared to using a medium like the Ubuntu Software Repositories and all.

Just a note that I did check through sourceforge.net and when I checked how many times bygfoot was downloaded from 01-jan-2024 through to 01-mar-2024, there were 200 downloads, of which 150 were for a Windows version. So that's just for 2 months worth. The files are still being downloaded. Now I don't know if the multi-threading works in the compiled windows version, but I surely know that the zip files used are older and don't quite like rather large files, if I recall correctly. The zip files can use an update for sure to accommodate the larger definition files and the more files that are included in a country definition. At least that's a good thing about the linux versions is that the zip files are at least updated by the operating system so they can keep up to date and handle the larger file sizes. Maybe tstellar and gunnar can talk it over and maybe the updated engine can be used with the older but updated definitions and be used for the different versions out there, so that when people go to download a version of bygfoot, they will get a newer and more powerful engine, but with the reliable definitions that have been there for so long. And it would be nice if a stable version of bygfoot could be made and submitted to the Ubuntu Software Repositories so we could get an updated version that way also. We don't have to use the new definitions as the old ones would suffice, but it is mainly the engine I'd enjoy. Know what I mean? A working multi-threaded bygfoot would DEFINITELY be worth it, especially when working with those very large country definitions.

Anyways, looking at the number of files you are using for the new international cups for the European cups, that surely seems like a lot to me. When I finalized the updates for the European cup competitions for the 2020-2021 season, I had 7 files (templates) for them, which one of them was for the Super Cup. I used 3 for the Champions League and 3 for the Europa League. In total, including the Super Cup, I only used 33 files for all 55 countries. It is similar to how the original Champions League and UEFA Cup files were created in the older definitions. As for the newer series of cups, for 2024 to 2027, I foresee needing 4 files per tournament (Champions League, Europa League, and Conference League), plus a Super Cup, if I recall correctly. And of those, 2 each of those 4 would not really change from country definition to country definition.
Thank you for the link to the python script. I'll take a look, too. Maybe you should update the old readme, and talk about your latest changes/achievements .

Topic "Tokens and Cups": For now the code can handle LEAGUE1 and CUP1, which refer to the domestic Premier League winner / FA cup winner of the last season, respectively.

Most of the last season is wiped out at the beginning of a new season. Some remnants are preserved in the misc.xml file (in the save zip). It only contains useful stuff in the last week of the season, and includes the cup winners of the season. Introducing new tokens (CL1, EL1, ECL1) to the code, the international cup definitions could refer to the CL winner of the last season, when the teams of the new seasons are selected, and the fixtures are (partially) written.
The same way as now CUP1 and LEAGUE1 are used.
When I look at the above written comment, it would be something that could work in favour of tstellar's view for the European international cups in how to select a team for the title holders. Though the code he used can only work with the newer versions (version 2.3.3/4 and higher). The way I code it is to use random teams, which will work with version 2.3.2. But I'm also thinking about what if someone is playing a definition that isn't even part of the European definitions, like some country in South America, North America, or Asia? Of course there are definitions for African teams but not Oceania. In the version 2.3.2 definitions, only Europe and South America had definitions really, with North America having 2 country definitions (Mexico and USA) as well as Asia having 2 country definitions (Japan and Australia), although Asia's countries weren't really contained under the "Asia" label/directory. Although now with the higher versions (2.3.3+), at least each continent has more playable counties, except for Oceania. I started on an Oceania definition but put it on pause some time ago to work on something else or fix something, and just haven't gotten back to it yet. Oh well.

But getting back to the point of introducing new tokens like "CL1", "EL1", and "ECL1", they may not work when someone is not playing a country definition from Europe. I guess that is something that you have to look at and consider when introducing new tokens like you were thinking. But then another point could be if in the future, the tournament's name changes and the initials selected no longer apply, then what?

I did write the following, before I feel like I truly understood what you were trying to say:
Though I understand where you are wanting to come from, maybe the names of the tokens should change, like "europe1", "europe2", and "europe3". Heck, if you think there might even be a fourth european tournament, adding "europe4" could work. And just because the tokens are available to use, it doesn't mean they have to be used. You could use tokens for other continents like "asia#", "africa#", "namerica#" (for north america), "samerica#" (for south america), and potentially "oceania#" for oceania. But again, these changes would only be for future versions of bygfoot (version 2.3.5+) and be for definitions that would only work with those versions.
Now that I reread what you wrote, I think I have a better understanding of what you are trying to say. You talk or mention tokens and then reference "league#" and "cup#". In this regard, league# and cup# are the tokens. I don't believe you need to change anything but then it also depends on how high the numbers are allowed to go. For example, could you use "league20" or "cup20" for a tournament reference? Or does it only go from 1 to 9? I ask this since within the reference of the definition, you could in essence reference a cup number as the team you would like to select for a titleholder, and if that titleholder is not available, then give an option to select a random team or another team perhaps.

In my 6 tier definition for England, the cups section looks like the following:

Code: Select all

<cups>
	<cup>england_fa</cup>
	<cup>england_league</cup>
	<cup>england_league_trophy</cup>
	<cup>england_fa_trophy</cup>

        <cup>uefa_el_r3-ENG</cup>
	<cup>uefa_el_cp</cup>
	<cup>uefa_europa_league_final</cup>
	<cup>uefa_cl_r4</cup>
	<cup>uefa_cl_cp_r0</cup>
	<cup>uefa_champions_league_final</cup>
	<cup>uefa_supercup</cup>

	<cup>conmebol_copa_libertadores_fifa</cup>
	<cup>fifa_cwc</cup>
	<cup>uefa_european_championship_friendly</cup>

	<cup>england_league_vs_cup</cup>
	<cup>england_prom_games2</cup>
	<cup>england_prom_games3</cup>
	<cup>england_prom_games4</cup>
	<cup>england_prom_games5</cup>
	<cup>england_prom_games6a</cup>
	<cup>england_prom_games6b</cup>
</cups>
The winners of the Champions League and Europa League would be found or stored in the cup files of "cup10" and "cup7" respectively.

Now when I look at the master file for the Champions League definition for the selecting of the titleholders for the Champions League and Europa league, it looks like the following:

Code: Select all

<!-- UEFA Champions League Title Holder spot -->
<choose_team>
	<choose_team_sid>spain1 england1 italy1 germany1 france1 russia1 portugal1 belgium1 ukraine1 turkey1 netherlands1 austria1 czech1 greece1 croatia1 denmark1 switzerland1 cyprus1 serbia1 scotland1 belarus1 sweden1 norway1 kazakhstan1 poland1 azerbaijan1 israel1 bulgaria1 romania1 slovakia1 slovenia1 hungary1 n_macedonia1 moldova1 albania1 ireland1 finland1 iceland1 bosnia_herzegovina1 lithuania1 latvia1 luxembourg1 armenia1 malta1 estonia1 georgia1 wales1 montenegro1 faroe_islands1 n_ireland1 andorra1 san_marino1 liechtenstein1 gibraltar1 kosovo1
	</choose_team_sid>
	<number_of_teams>1</number_of_teams>
	<randomly>1</randomly>
	<generate>1</generate>
</choose_team>

<!-- UEFA Europa League Title Holder spot -->
<choose_team>
	<choose_team_sid>spain1 england1 italy1 germany1 france1 russia1 portugal1 belgium1 ukraine1 turkey1 netherlands1 austria1 czech1 greece1 croatia1 denmark1 switzerland1 cyprus1 serbia1 scotland1 belarus1 sweden1 norway1 kazakhstan1 poland1 azerbaijan1 israel1 bulgaria1 romania1 slovakia1 slovenia1 hungary1 n_macedonia1 moldova1 albania1 ireland1 finland1 iceland1 bosnia_herzegovina1 lithuania1 latvia1 luxembourg1 armenia1 malta1 estonia1 georgia1 wales1 montenegro1 faroe_islands1 n_ireland1 andorra1 san_marino1 liechtenstein1 gibraltar1 kosovo1
	</choose_team_sid>
	<number_of_teams>1</number_of_teams>
	<randomly>1</randomly>
	<generate>1</generate>
</choose_team>
So if we go with the idea that the token number can be in the double digits, what is stopping us from rewriting the titleholder selection spots as the following:

Code: Select all

<!-- UEFA Champions League Title Holder spot -->
<choose_team>
	<choose_team_sid>CUP10</choose_team_sid>
	<number_of_teams>1</number_of_teams>
	<start_idx>1</start_idx>
	<end_idx>1</end_idx>
</choose_team>

<!-- UEFA Europa League Title Holder spot -->
<choose_team>
	<choose_team_sid>CUP7</choose_team_sid>
	<number_of_teams>1</number_of_teams>
	<start_idx>1</start_idx>
	<end_idx>1</end_idx>
</choose_team>
Of course, you'll have to add either the "optional" or "alternatives" tag that tstellar created, just in case the respective teams that would be selected from those cups were already chosen, but I think you get the idea. But all in all, this idea may seem nice but it could be doomed to fail as not all definitions may have as many cups and all. Maybe another alternative would be to create another classification like "league" and "cup" and maybe call it something like "icup" or "cupi" for international cups wherein it will have its own section within the country_sid.xml file? I don't know. I'm just guessing or giving some ideas out there. But if you are truly wanting to use a champion from a previous season for the same or higher cup of the current season, this could be one way and depending on how you choose to proceed, it could apply to all definitions created, not just ones within Europe. But then too, it all depends on who creates the cups in the first place and whether or not they include those tags in the files. But it wouldn't stop anyone else from taking those same files and modifying them on how they wish to have them.
I must concede, I think, it really is no fun to dive into 20 year old C code. So I don't expect any actions. But, thumbs up tstellar, there are now glade files included in the latest version! Maybe the code handling CUP1 and LEAGUE1 is expandable.

Best Regards

bygkicker

N.B. The bygfoot xml reader is really, really forgiving. ;)
Agreed. tstellar is doing great work by updating the code and even doing improvements and other things. Anyways, I've written a lot for now so I'll wrap it up and say good bye for now,

Will aka will_the_canuck
tstellar
Posts: 52
Joined: Mon Aug 31, 2020 5:46 pm

Re: UEFA 2024/25 new format configurations

Post by tstellar »

As for myself, I'm still with version 2.3.2 because it is what is available through the Ubuntu repositories. Yes, I would LOVE an update to bygfoot's engine, but I maybe am not sold on the definitions used, as like you implied, they lack good enough names to use and differentiate the teams.
The releases page on gitlab has packages for Ubuntu for the latest version (2.3.5). You can also find packages with the latest experimental code directly from the main branch. On Fedora, the 2.3.5 release is in the official repositories, so you can install it directly from there if you want.
bygkicker
Posts: 10
Joined: Tue Nov 03, 2020 9:37 am

Re: UEFA 2024/25 new format configurations

Post by bygkicker »

Hey Will,

your Kosovo version is great. I will merge both, and push it to the bygfoot-data repository on github.

The definitions generator is a small Java tool, nothing special. But the Java xml readers are strict, e.g. only

Code: Select all

<!-- ## Flamurtari --> 
is a valid xml comment. But no xml reader has to preserve the order of cup or league entries. So using an implicit token like CUP7 is a very brittle setup.
... but it is mainly the engine I'd enjoy. Know what I mean? A working multi-threaded bygfoot would DEFINITELY be worth it, especially when working with those very large country definitions.
I'm with you here, the 10-layer england version isn't playable imho, some multithread/multicore support is needed.

Re tokens for international cups: you got my point. It is all about replacing the ugly

Code: Select all

 <!-- UEFA Champions League Title Holder spot -->
<choose_team>
	<choose_team_sid>spain1 england1 italy1 germany1 france1 russia1 portugal1 belgium1 ukraine1 turkey1 netherlands1 austria1 czech1 greece1 croatia1 denmark1 switzerland1 cyprus1 serbia1 scotland1 belarus1 sweden1 norway1 kazakhstan1 poland1 azerbaijan1 israel1 bulgaria1 romania1 slovakia1 slovenia1 hungary1 n_macedonia1 moldova1 albania1 ireland1 finland1 iceland1 bosnia_herzegovina1 lithuania1 latvia1 luxembourg1 armenia1 malta1 estonia1 georgia1 wales1 montenegro1 faroe_islands1 n_ireland1 andorra1 san_marino1 liechtenstein1 gibraltar1 kosovo1
	</choose_team_sid>
	<number_of_teams>1</number_of_teams>
	<randomly>1</randomly>
	<generate>1</generate>
</choose_team> 
with the real title holder:

Code: Select all

 <!-- UEFA Champions League Title Holder spot -->
<choose_team>
	<choose_team_sid>CUPINT1</choose_team_sid>
	<number_of_teams>1</number_of_teams>
	<start_idx>1</start_idx>
	<end_idx>1</end_idx>
</choose_team> 
The first season would still need a generated entry, obviously. (<alternatives> does the trick, great addition. But what effect has <optional> = 1 ?)

The naming could be CUPINT1, CUPINT2, ... , and <cup token=CUPINT1">cupsid</cup> would bind the token to a cup sid, independent from the number of cups defined in the country.xml, and independent from the continent .

There is a <group> tag, and for all intl. cups in this defined group bygfoot checks for double team entries. Sadly, only the played country is checked, not the countries with generated entries. Maybe this is already fixed.

Debian separated code and data into two packages: bygfoot and bygfoot-data. Latest version is 2.3.2. It would be nice to see this split also for the latest version. You could grab the new code, but keep the old data.

@tstellar: maybe no cup-sid binding is needed, with your additions . Does your solution depend on separate sids for cl and cl-final ?

Thanks to both of you.

bygkicker
tstellar
Posts: 52
Joined: Mon Aug 31, 2020 5:46 pm

Re: UEFA 2024/25 new format configurations

Post by tstellar »

I'm with you here, the 10-layer england version isn't playable imho, some multithread/multicore support is needed.
In version 2.3.5 this is playable. There were a number of inefficient things the code was doing so I was able to improve the performance a lot even without multi-threading.

Code: Select all

 <!-- UEFA Champions League Title Holder spot -->
<choose_team>
	<choose_team_sid>CUPINT1</choose_team_sid>
	<number_of_teams>1</number_of_teams>
	<start_idx>1</start_idx>
	<end_idx>1</end_idx>
</choose_team> 
If you are using version 2.3.5, just replace CPUINT1 with the sid of the cup and it will work.
Debian separated code and data into two packages: bygfoot and bygfoot-data. Latest version is 2.3.2. It would be nice to see this split also for the latest version. You could grab the new code, but keep the old data.
If thought about having a separate repository with just the definitions, so that when a new year of definition is added the old is still available. The only problem with this is that sometimes it's hard to make improvements to the code if you have to keep the old definitions working.
@tstellar: maybe no cup-sid binding is needed, with your additions . Does your solution depend on separate sids for cl and cl-final ?
I believe you still need the split, but it's been a while since I've looked at it.
bygkicker
Posts: 10
Joined: Tue Nov 03, 2020 9:37 am

Re: UEFA 2024/25 new format configurations

Post by bygkicker »

Hey ,

There is a Bugfix update available for the UEFA2024 configurations. There was an issue with multiply qualified teams. Please check out the latest version at https://github.com/Xorejing/bygfoot-data .

Included are a lot of African country stubs, and CAF cup stubs. Work in progress, Benin is playable.


Tstellar, this International cup group tag does not seem to work complete properly . The missing CW (cup winner) in the first season is replaced randomly - and that can be one already chosen. Additionally, I'd really appreciate, if the randomly generated teams also get the group check. Maybe you find a simple solution based on the existing code.
I believe you still need the split, but it's been a while since I've looked at it.
I will give it a try.

Best Regards

bygkicker
will_the_canuck
Posts: 141
Joined: Tue Jan 16, 2018 5:54 am
Location: Canada

Re: UEFA 2024/25 new format configurations

Post by will_the_canuck »

bygkicker wrote: Sat Mar 02, 2024 10:52 am There is a <group> tag, and for all intl. cups in this defined group bygfoot checks for double team entries. Sadly, only the played country is checked, not the countries with generated entries. Maybe this is already fixed.
Hello bygkicker.

About the <group> tag...it works but not the way we wish it to work. :) You said that sadly, only the played country is checked, with regards to the <group> check. And you felt that the countries with generated entries are not checked. That is rather wrong. If you ever get to a point where you are starting a fresh game or at the end of a season and about to change into a new season, make sure you start bygfoot with the following command in a terminal window: "bygfoot -d 500 >> bygfoot.log". When you do that, you will see a pop-up come up. Don't close it, just minimize it. And after that, play like normal. After it loads up the new season, save your game and log out of bygfoot. You can then look at the log file created. bygfoot.log should be in your /home directory or whichever directory you were in at the time of running the command, in a terminal window. If you have any international cups loaded, you'll see how it checks the international teams and sees if there are any duplicate names or not. And by names, I'm just referring to names like "Liverpool" and "Chelsea". The country they originate from doesn't matter. It all depends on which <group> number they are associated with.

And mentioning the <group> number, this relates to the file you have in your github site, https://github.com/Xorejing/bygfoot-data. The file you have, cup_conmebol_copa_libertadores_fifa.xml, has a <group> value of "1". You should change that to another number, like "2". I'll explain why. If you play a European country definition with that file loaded, it can create an interesting outcome, depending on how the international cups are coded. In the South American definitions that came with version 2.3.2, there are 4 references that have names that are shared with European team names. They are: Arsenal in argentina1.xml; Everton in chile1.xml; Barcelona in ecuador1.xml; and Liverpool in uruguay1.xml. So if you were playing as Barcelona in Spain and qualified for an international cup, or were playing as either Arsenal, Everton, or Liverpool in England and also qualified for an international cup, depending on which one loaded up first, the cup_conmebol_copa_libertadores_fifa.xml file or the European international cups, the name could be taken by the South American team and when it came time to load your team up in the international cup, depending on how it was coded, it could spit out an error and crash the game. Though at the least, it won't let you play in the international cups. This is dependent on whether or not those respective teams have that name within the European definitions or whether or not they have different names for them. Also, this is of course if you have the <group> value set within the cup_conmebol_copa_libertadores_fifa.xml file as the same value that you have <group> set for in the European international cups. I found this out the hard way. :) I've since changed it for my own files but I don't think I changed it in the version I posted. I'll have to check. Well, I did check and it seems that I likely updated the files that I have posted online so they appear to have the value of "2" for the <group> tag within cup_conmebol_copa_libertadores_fifa.xml.

So getting back to the South American definitions, I checked out the top level tiers in the 10 countries and there were at least 7 team names that had duplicates in other countries within South America. They are: (1) Racing in argentina1 and uruguay1; (2) S. Martín in argentina1 and peru1; (3) Universitario in bolivia1, ecuador1, and peru1; (4) Portuguesa in brazil1 and venezuela1; (5) U. Católica in chile1 and ecuador1; (6) Nacional in columbia1, ecuador1, paraguay1, and uruguay1; and (7) Cerro in paraguay1 and uruguay1. So if you were to play as one of these teams and then also qualify for an international cup, you could also have a problem. :) Like I said, it all depends on how the international cups are coded and who gets loaded up first. But the point of this is that it is dependent upon the definition makers to be aware of this and to have unique names for all the teams, even for teams that are outside of the current country definition that they may be making. It can be hard to have a unique name for EVERY SINGLE team within bygfoot, but it doesn't hurt for us to try at least.

So anyways, the point of this post is that the <group> tag does work for all teams, even the international generated ones, but you just may not see it. And again, it all depends on how the international cups are coded. If they are coded to have random teams, that can be of a benefit. If they are asking for specific teams and those team names have the potential to match another team name, then there can be a problem. Hope this helps.

Bye for now,

Will aka will_the_canuck
Post Reply