How Fixtures Are Generated:- Developer Blog

23 Jun 2015

Here in England, all football fans were eagerly awaiting the fixture lists for next season, especially those fans whose team had been promoted. A lot of hard work goes into compiling those fixtures, so we thought you might be interested in hearing how the creator of New Star Soccer went about compiling fixtures for thousands of clubs in hundreds of leagues all over the world. It's quite a lengthy read (pun intended) but it's also a fascinating insight into how the fixtures are generated.

First of all, you need to know that the early versions of New Star Soccer were created over 10 years ago on the PC and creating league fixtures was actually quite a simple process. The games did feature basic promotion and relegation between divisions, and simple cup competitions, but essentially I just had to set up a database with all the divisions and assign teams to those divisions, then write some code to pair up teams against each other in a round-robin format.

It was only after New Star Soccer 3 (2005) that I decided I wanted to include more realistic club and international competitions where teams could qualify from various countries or continents and perhaps proceed through different types of competition phases. For instance the Champions League has automatic qualifying to the group stage for some teams but others have to progress through a qualifying knock-out stage before getting into the group stage. Then after the group stage it returns to a knock-out format! I soon realised I would need a much more sophisticated system that could handle these quirks and the many more that exist in domestic leagues (Scotland, I’m looking at you), cups, continental and international competitions.

The system I came up with was quite a simple one in theory whereby you set up a competition in the database and give it a type (essentially league, knock-out or a group stage, although there are a few special cases) and then assign teams to it if it is a league division or the first round of a cup competition. Leagues and group stage fixtures are still pretty straight forward but it’s how you handle promotion, relegation and qualifications which can be tricky.

I decided to give all competitions elements which I called “promotion places”. These will say something like “the team that finishes in position 1 will get promoted to division x” or “all winning teams in this round get promoted to the next round”. This allows you to shift teams off somewhere after the competition ends. So each stage of a knock-out tournament is essentially its own 1-round competition where all the winning teams are then pointed to the next round which is again an individual entity that in turn will shuffle it’s winners on further up the chain towards the final. The winners of the final could even get “promoted” to a new competition (as is the case with the Europa league winners achieving qualification to the Champions League).

In practice, creating this system took me an awfully long time. I’d hazard a guess that it took me around a year of coding! Fortunately I had a great guy called Nick Grieg who collected all the team and player data, so I was able to focus purely on the programming.

However, had I known how difficult it would be then I doubt I would have embarked on such a difficult project. Indeed, when I launched New Star Soccer 4 in 2008 the game was riddled with bugs and I must have spent another year updating it without ever fully fixing some deep rooted issues. I even had doubts about ever writing another football game after that and turned my hand towards Formula 1, tennis and other things before having the strength to get back to the sport I love the most.

I spent a few weeks overhauling the entire system, simplifying and improving it until I was happy that it worked properly, and then started work on New Star Soccer 5. Everything went a lot smoother this time around and I was much happier working on a 2D game again.

Sales of NSS5 weren’t particularly great but that game provided the basis for the mobile version which proved to be life changing for me and my family. There are some restrictions on mobile devices which makes it difficult to have multiple leagues running concurrently (which is why you can only transfer abroad at the end of the season!) and it is still prone to the odd catastrophe if we make a mistake in the database, but those problems present themselves less often now. Finally I have a system that I will be able to reuse again and again, simply updating the competition and team data on a yearly basis, and it will feature in my next football game.

So I think with thousands of clubs, hundreds of leagues and fully realised continental and international tournaments I can proudly make this rather pithy claim that it is “probably” the 2nd most sophisticated competition engine of any football game in the world (after the magnificent Football Manager games of course). And hey, I did write it all by myself!”

© 2014-2024 copyright New Star Games Ltd   Terms and Conditions  |  Privacy Policy
Powered by DLM