A ramble for Excel nerds (my stillborn attempt creating a GP4 Championship Manager programme)

Posted by RegularJohn 
And here comes the ramble!

So something I've been doing for several years now (since 2019 maybe?) is simulating my own kind of career mode using a mixture of mods and excel spreadsheets to log results and events (race stoppages, injuries and penalties). I'd play a non-championship weekend, save the qualifying and race results and log them into an excel page - I'd then have a excel page that tracks everyone's results and have them displayed not too disimiarly to how they're formatted on Wikipedia, combining that with the TV graphics from that period. (I may have shared earlier version of this on the forum before) Take the below screenshots for instance.



Here's the results of the last race of 1997. I log the results of the Grand Prix, including pole, weather, fastest lap, retirements etc. I then fill out the championship tables you can see below.




I've built upon this with various formulas and tweaks since I started, but as I finished my 1997 season, going into 1998 I wanted to take this to the next level (this was sometime in August 2022 if I recall).

Taking inspiration from the management sims of the time, particularly GPM2 and GPW (and the F1 Manager game we used to have here) and as well as the pro wrestling booking sim Extreme Warfare Revenge (and a little bit of Dungeons and Dragons), I wanted expand this into a real simulation of what effects a Grand Prix, the cars, and the drivers. RPG like stats for each driver, each car, each engine, each track even. All of those stats would work together to create a performance file that I would load up into the game, do a race and log results. What I would do is take into consideration of those results to determine a driver's mood/morale/motivation (if their morale is low, they'd be slower and make more mistakes). I would even have test and practice sessions that would determine how well a car's upgrades or setups are performing and give them a boost or penalty depending on the circumstance.

Allow me to explain this using a few scenarios.

1. Drivers skilled in low grip conditions like Michael Schumacher or Jean Alesi get a performance boost at tracks with poor grip or rainy sessions.
2. Cars that are nimble, but slow like the Arrows perform quick on Monaco but not so good on Hockenheim or tracks with loads of high speed corners like Barcelona.
3. Take a car with poor brake reliability - they'd take an extra performance and reliabilty penalty at tracks with a lot of heavy braking.
4. Teams whose cars are more evenly matched in a practice or test session - in practice this would be a temporary performance boost, in a test session this could help with reliability and/or performance depending on choice of the team or a roll of the dice.

I wanted to do this in excel so I drafted up some setup pages you can see below.





The problem then became this;
*I wasn't confident enough in my mathmatics to create realistic results for Grand Prix 4 (although it's certainly possible)
*I wasn't confident enough in my excel skils to generate a performance file from these results (although it's certainly possibly)

Here's the silly part - I wanted to create a programme that did all this; read from performance files, GP results and times, generate calenders, log penalties and injuries, driver changes, car upgrades, stats for cars and tracks and drivers - make it a neat presentation similar to the games I mentioned above (not to mention with cool background music, I'm a musician after all). I was gonna learn Python or something like that to do this but skill and time escaped me sadly, and I never went anywhere with it.

So yes, I'm very aware that very little of this is gonna be coherent but I'd figure if I do a big forum post about it I'd either find the encouragement to carry through with this or get friendly helpful tips and insights from you fine folks. And truth be told, I'm procastrinating to high heavens right now, so I thought explaining this stuff would be fun. And it was! And hopefully some of you folks will find the material here of some use to you.

I just wanted to get a conversation going more than anything else. I've attached my 1998 championship and setup files (bear in mind this may not display properly on your computer as I use LibreOffice as well as JPGs and fonts you won't necessarily have, but it should function the same), let me know your thoughts on this.

And if someone were to take the mantle or do something crazy like take this idea into a programme of their own for everyone to use, lemme make the graphics and sounds for it will ya?

EDIT: Updated with a more user-friendly link;
[file.io]

FONTS;
1988 - 1991: Helvetica Neue (italics)
1992 - 1993: Helvetica Neue
1994 - 2003: Futura URW Extra Bold
2004 - 2009: Frutiger Neue (although early 2004 races use a weird variation of this that GPx has as Digital 2004)



Edited 4 time(s). Last edit at 01/20/2024 01:35PM by RegularJohn.
I agree that this is an interesting idea and it looks good too.

However, I'm wondering how (or whether) you intend to make use of the real world Q & R lap times?
Noog Wrote:
-------------------------------------------------------
> I agree that this is an interesting idea and it lo
> oks good too.
>
> However, I'm wondering how (or whether) you intend
> to make use of the real world Q & R lap times?

As a reference point, sure - getting it there or there abouts but primarily it's about the malleableness of the performance data, having those outside factors impact the performance ratings in a realistic or at least sensible way (it's still a video game after all so I'm personally not too bothered if it's off by a second or two). My (admittedly limited) understanding that a lot of the realism in terms of laptime has to do with magicdata - speaking of which I imagine it's possible to add a modifier (maybe through GPx or something) that changes the grip of the track depending on a simulated temperature.



Edited 1 time(s). Last edit at 01/19/2024 07:35PM by RegularJohn.
I've updated the OP with a new more user-friendly link and provided details on the fonts used. I'd upload them if I wasn't nervous about the possible legal implications of such but they should be easy enough to find on the web.
Thanks for the files.

I think I should start with the bottom line. You ideas are very appealing, but the truth is, they are more suited to a game like RFactor. Let me explain.

In GP4 we are very limited when it comes to control over individual cars or drivers and our primary tool (really, the ONLY tool we have) is the performance file (PF). With the PF settings for each qualifying session and the race we can adjust the power, grip, variance and likelihood of failure for each car - and we have the lesser tools of Braking Range and Error Chance if we're feeling ambitious - but that's it.

All cars (computer or human controlled) share the same physics and the same torque settings - and while we can adjust the in-game settings for the human driven cars as we wish, (wings, ARBs and gear ratios etc), all the computer cars use the same in-game settings (with the exception of wings, which the game has some ability to vary from car to car, but we don't have that privilege. There's an interesting post somewhere on the forum covering this).

Taken together, these really don't amount to much! I mean, sure we can create a set of PFs to model a GP season fairly closely (and even improve on the original 2001 game defaults quite a bit), but when it comes to the subtle control over the individual cars that you seek we just don't have the tools.

Then, when we look at the control we have over the tracks, we have plenty of scope to tweak them, but we actually have nothing (as far as I'm aware) that is car specific. Everything in the MD file (the magic data file that is used to 'tune' the tracks), relates only to the track itself and affects all cars equally (although again there one small exception, which are the pit stop settings, but again the game has more control over these than we do!).

OK, now if all that makes sense (and if no-one comes along to tell me I'm mistaken; which I don't think they will), you can see that we are working with a VERY limited set of tools that make modeling each car to match a unique set of criteria virtually impossible. In a game like Rfactor, which has car specific physics settings you'd be half way there, but in GP4 we have to do everything with power, grip, variance and failure rate (along with the occasional and sparing use of braking range and error chance) and it's just not enough!

I'll be writing some more later, because I want to suggest some kind of (limited) path forward, but I had to get this out there first because it's important to understand the constraints we are forced to operate under.

Hope that's not too depressing...



Edited 1 time(s). Last edit at 01/20/2024 03:05PM by Noog.
The way forward? Well, for what it's worth, here are my thoughts...

In your spreadsheet you list these car specific characteristics:

Handling
Aero-grip
Mech-grip
Speed
Reliability

If we try to 'translate' these into GP4 controllable factors, we get something like this:

Handling - grip
Aero-grip - grip or power or a combination of the two
Mech-grip - grip
Speed - power
Reliability - failure rate

Tyres - as far as I'm aware these are purely graphical differences. Tyre choice has no in-game impact on performance at all. That said, you could give cars with tyre A a little more or a little less grip than cars with tyre B or C and/or you could give cars with tyre A more or less grip on track X and not track Y, but it would be hard to come up with a foolproof way of assessing this accurately and you would be forced to consider each track (and each event) in turn when you make your PFs, which would take a very long time.

Then, you also have these driver specific characteristics, which are even more difficult to GP4-ize:

Experience
Pace (R)
Speed (Q)
Wet weather
Consistency

Experience: This is a tough one. More power, more grip, less likely to fail, maybe higher variance (but lower grip) for less experienced drivers? Getting the balance right is the main problem here. If we had a simple formula whereby we knew that if we raised the power of car A by X, we could simply reduce the grip by Y to keep his overall performance the same we might be able to get somewhere, but it just doesn't work like that.

Pace and speed: power (and maybe grip). You could also utilize a bit of braking range here too, but it's not something I ever found particularly useful because it tends too often leads to one car crashing into the back of another on the approach to corners.

Wet weather: Technically impossible. In the game you have two choices in relation to weather, realistic (which means use the 'rain chance' entry in the track MD, which is a percentage chance of rain) or probability of rain, which is a percentage applied to all the tracks in a season. The point it, unless the percentage is 0% or 100% there's no way to know in advance whether it's going to rain or not (and that value will be decided by the game AFTER the PF is loaded for the event in any case), which means that there isn't any way to give certain drivers a boost in wet weather conditions. Make sense?

Consistency: This is something we'd all like to be able to control, but it's probably the most difficult of the lot. The most obvious way to do it is with error chance, but it doesn't quite work how we would intuitively expect. We like to think it makes it more likely that a driver will make a mistake from time to time in an unpredictable way, but if you watch a car with an error chance value applied on the track you'll see that it's more that the driver will tend to run a bit wider on corners over and over until he eventually runs off. So it does work, but it's risky to use error chance as a primary tool (ie to use it on many cars). Also, you'll find that a low error chance value (say 10-50) can actually improve a car's performance in the race (because though he pushes hard and runs wider than the others he doesn't actually run off). Thus, it's a very difficult thing to get right. I do use error chance myself, but I only ever apply it to one or two cars if they consistently do better than the real world results dictate that they should (which in terms of my PFs means that they recorded some very fast RW lap times which were less often translated into race results than the norm in relation to the other drivers, ie in other words, they really WERE inconsistent drivers).

OK, that's my position in relation to your project and I hope it's been useful for you to read it, because I enjoyed writing it and hopefully what I have said here will give you a greater insight into what is and what is not possible with the game. The truth is, while we do have a few tools in our toolbox they are woefully blunt when you get right down to it.

I don't want you to think that I'm being dismissive though, because I'm not; but your ideas really would be better suited to a game like RFactor where you can tweak the physics of EACH car, because that's what you need. However, that then begs to question as to whether you can tolerate the weaker AI in RF: because ultimately it's that little gem in GP4 that keeps me here!
I very much appreciate your input Noog - lot of interesting and useful information in there. To be quite honest I haven't experimented much with the extra PF settings introduced by the later GPx patches so it's good to hear from someone who has.

Personally rFactor's always been a no go for me because it's never been nearly as fun as GP4 is despite its customisation capabilities. GP4 is just a better and more interesting depiction of F1 racing. When I was coming up with this I knew I was going to be working with loose approximations which I was perfectly okay with - I just wanted to simulate variations from race to race.

One thing I wanted to ask about is the weather - is the weather not controlled by some sort of generated seed? If I remember correctly (and I could very much be wrong, I haven't played GP4 for more than a year) there's an option in GPx to record and use a seed from a given session. I was imagining it working like this;

*Do a non-championship weekend
*Start up each session and record the seed
*Adjust performances accordingly
*Play each session indepedently in-game from the NC weekend

That's not far off the process of how I'd do it when I would give performance boosts based on practice results.

On to tyres - I think you got it on the latter part of that sentence, it's very much a gamey way of creating variation and I'm sure it would have its own set of problems; things being a little bit off from reality isn't too much of a big deal for me personally if it makes the game more fun.

Those are all the thoughts I have at the moment, I may have more in the next few days since I think I'm getting that GP4 itch again. Thanks again for you input Noog!
This was a very interesting thread to read. I run an F1 management series using GP4 on Discord and YouTube and I use Excel in the same sort of way to create performance files and simulate different factors like testing/development. Basically using Excel to add complexity that GP4 isnt designed for and cannot do itself.

I've found that it takes a lot of practice and trial and error to balance things outside the game. And because of random seeds etc you cant just rely on just one run to tune your performances, you need to really do them over a season or multiple races at the same track to get a solid understanding of where things are. (Particularly with things like random error chance, on some slower circuits you'll barely notice even a high value, and then on some faster circuits cars will fly all over the place with a small one).

I'm interested to see where you take this.
Ajayrious Wrote:
-------------------------------------------------------
> This was a very interesting thread to read. I run
> an F1 management series using GP4 on Discord and Y
> ouTube and I use Excel in the same sort of way to
> create performance files and simulate different fa
> ctors like testing/development. Basically using Ex
> cel to add complexity that GP4 isnt designed for a
> nd cannot do itself.
>
> I've found that it takes a lot of practice and tri
> al and error to balance things outside the game. A
> nd because of random seeds etc you cant just rely
> on just one run to tune your performances, you nee
> d to really do them over a season or multiple race
> s at the same track to get a solid understanding o
> f where things are. (Particularly with things like
> random error chance, on some slower circuits you'l
> l barely notice even a high value, and then on som
> e faster circuits cars will fly all over the place
> with a small one).
>
> I'm interested to see where you take this.


That's very cool, pretty much the exact thing I'm looking of doing. Would you mind sharing your method and sheets? I'd love to see how you make it work.
Ajayrious Wrote:
-------------------------------------------------------
> ... with things like random error chance, on some slower circuits you'l
> l barely notice even a high value, and then on some faster circuits cars will fly all over the place
> with a small one).

An interesting observation I'll be making use of in future. Thanks.
I don't want to share the sheets as it could give a team unfair advantage if they knew how everything worked (and I know some of the managers check here haha).

I'm an MMO player, and so i've kind of created my series in the form of an MMO, using Final Fantasy XIV to kind of guide how i go about things. (In previous era's of the series (the series started on GP3 many years ago) I've also used games like Championship Manager or Civ to guide me on how it could work)

Basically how it works in my series is that each element of the car (Chassis, Tyre, Drivers, Engine) has a performance value and on a simple level I add them up in Excel and use macros to produce performance files. The team bosses use testing and practice sessions to develop these values.

For drivers i basically use how Football Manager games treat players, in that they have a current performance value and a potential performance value... and for my series the difference between the two values is what i use as the random chance variable. Drivers will generally start 1000 performance points below their potential and then will earn EXP through testing/feeder series races etc. to improve their current performance.

Tyres work in a similar way, for each compound (S/M/H) there is a maximum grip value, and a current grip value and the difference between the two influences random performance and also random error chance.

For engines, each engine type has a qualifying, race and reliability value, and these are also developed through testing and also by laps completed during a race. Teams earn points through completing laps and spend them to develop the engine in those three areas, and the closer they get to a set maximum value the effectiveness of spending the points decreases.

For the chassis, I split the output into aero grip and aero effiency. Aero Grip values affect the overall grip whilst the Effiency affects the power.

And when creating the performance files i add up the grip values from the drivers, tyres and chassis, and add up the power values for the chassis and engine.

Thats kind of a basic overview of how it works, we also have other race-to-race testing areas that teams can do to get buffs and other improvements which only affect one specific race. Like for example doing Set up work.



Edited 1 time(s). Last edit at 02/03/2024 03:55PM by Ajayrious.
Very useful information - thanks!
Just a little bit of an update;

I found a way to do some of the things I'd like using AUS_Doug's Perf Gen program. I've a copy of the spreadsheets provided with the files I've just called "CALIB".

For drivers, the values are linked to their defaults plus a 1000 penalty during testing for variation, an adjustment depending on how much their HP has been changed from their default (as a lot of performance files have all the teams with the same HP for balance reasons I would suppose) and then a random tyre choice for each driver.

For teams, they're linked to their defaults, a 10000 reliability penalty during testing, and respective upgrades for reliability and horsepower which works depending on testing results.

Each test (3 days lets say) are judged on the following for each value

Reliability: Number of laps completed by a team overall
Race BHP: The overall difference between each team's drivers' best lap times (so you'll need to run at least two different drivers)
Qualifying BHP: The improvement from day 1 to 3 of the team's best time.

They're adjusted based on their ranking of each criteria listed above (percentage for reliability, integer for BHP). Test sessions are run as a 120 minute practice session for each day. I run them, log the results and paste the values into the CSVs.

Check out the templates I made along with an updated template for results;

[file.io]
Sorry, only registered users may post in this forum.

Click here to login

Maintainer: mortal, stephan | Design: stephan, Lo2k | Moderatoren: mortal, TomMK, Noog, stephan | Downloads: Lo2k | Supported by: Atlassian Experts Berlin | Forum Rules | Policy