Carefully Announcing: Sim Racing Career Manager

Hey guys,

as someone who has been playing racing simulators for nearly a decade now, something has always been missing: (A girlfriend?) A long-term motivation like it was found in the early Gran Turismo games, the feeling of buying and owning cars, racing for a reason, climbing through the stages of motorsport, earning licenses etc. While most modern racing simulator-creators will spend loads of money and weeks on getting the air pressure simulation of the tyres right, none of them really seemed to care about this part of the experience. This ends today! Well... soon! Hopefully! Because I'm working on a free and simple(and ugly) software which simulates this career, embedding all common simulators to buy cars, race championships and ultimately work yourself through the ranks of racing. While this is in a quite early stage, I am at a point where I'm confident to be able to finish it over the course of the next months and release an early version even sooner.

A warning

Just to make it clear from the get go: I'm a Bachelor's student in psychology. My programming experience therefore is limited to one 5 credits "Python"(a high level programming language) course I recently had. While I will be perfectly able to make the program function well, not only will it be quite ugly and unprofessional, it also won't be able to just "read out" the results from your races, you actually have to keep track of the championship standings inside the game(AMS, AC, RRR) or on paper(rf2) and then type in the position you scored in as well as the damage your car had into the software, so it can calculate all the relevant measures. The uglyness as well as the amateurishness might take away a lot of the feeling for some people and therefore make it uninteresting for them, but it's the best I can offer with my limited skills. If there's a more talented programmer out there that is able to implement these things or even port the whole software to C/C++, you're good to go! But all programmers keep in mind that the code will be structured amateurish as well, I'm not even using classes, just functions(although that doesn't make a functional difference, it might make it less appealing for programmers).

What it offers

Racing yourself through the career ladder, signing up for different racing series, going through cycles of seasons. And the best thing: Everything is moddable. The car list as well as the different racing series are saved as csv files, so as tables, which means that you can add your favorite cars and racing series and combine different games. You're not set to just one simulator. So if you prefer the F1 cars in Assetto Corsa over the ones in Automobilista, just use them.

Buying, owning and selling cars

Now, we all know that owning things doesn't make you happy, but getting new things does, it's just that these things wear off after a while. This feeling is replicated by the need to buy cars in one of the 2 car stores: The normal car dealer offers you the possibility to buy any modern race car available at a fixed price, while the historic dealer once per year gets some of the finest old machines at different prices. You then have to decide: Is this a good offer? Should I wait and hope that there will be a better one sometime over the next years? Or might this car not be sold for a while, so I better get it now, because it's just awesome so who cares about it being overpriced?
You can also sell your cars, but each year the value will decrease a bit.

Repairing Cars

Ever needed an incentive not to crash your car? How about: You gotta pay, dude! Parts like engine, suspension, front wing, side pots etc. can be damaged in most games and depending on how damaged they are, you have to pay either for repairing or replacing the part. This works better in some games, in rf2 and AMS for example, two levels of damage are indicated directly, in case of AC it's less clear due to the gradual damage, in case of RRR, there's not enough damage so that this would normally apply. The ugly downside here again: You have to keep track of the damages manually and then indicate it to the software by simply typing it in. Sounds stupid, but on the other side: It's a bit like ordering new parts :)

The career ladder

There are two ways to categorize racing levels here: The "stages", from A to F, represent different amounts of money you have to spend for a season including the money for the car and the sign up for the season as well as races. Normally this also corresponds to: The more expensive the racing series, the higher it is, but ultimately it's up to you to decide which one you regard as the most challenging or interesting one. But there's a second system:

Getting Licenses

Some racing series require you to get a license, some will also give you a license in return if you finish well
. From bronze to platinum, everything is covered, there's even a super license you have to get for Formula one. I might extend this feature later on to include specific tasks and even instructional videos as a requirement to get certain licenses.

The season

For simplicity, the season consists of 12 months with each 4 weeks(so, it will not keep track of the days). I've written an algorithm that customly creates a season every year, based on a list of tracks provided for each series. These include "permanent" races that are there every year, for example "Monaco" in F1, but they also include a set of optional races, that will be drawn newly every year. Some races even have indicated spots in the season, for example: Melbourne will always be the season opener in F1(although the week itself is not set). Every series also has a set timeframe, meaning: From when to when does it race. The algorithm then randomly spreads the races over the months.
Signing up for a season as well as for their individual races costs money, but both also will bring you prize money at the end of the year and the race. While you can generally sign up for as many racing series as you can afford, always bear one thing in mind: You can only race at one venue per weekend! This means that you might have to decide between attending two races in two different series once or twice per season(like Buemi had to last year). Elsewise, just sign up for two series that share a calendar: The Australian Porsche Carrera Cup for example does it's races as part of the V8 Supercars weekends(although it has less races, so it doesn't use ALL the races) so you're always able to attend both.
Ultimately there are also some races for which you don't have to sign up for the whole season, like "Le Mans". So if you're a busy F1 driver fancying a yearly ride at the 24 hours, you don't have to pay for the whole World Endurance Challenge season(but you're also not getting any championship prize money then).

The Racing Weekend

The program doesn't really dictate how the weekends look or what kind of rules apply to the series, you can choose all of it yourself. However, it gives you an indication of the length of the race, e.g. "Short", "Medium", "Long", "Endurance", "12h", "24h". I'd recommend you to set an approximate time to which this shall correspond, e.g. "short" = 20 minutes, "long" = 1h, but that's ultimately up to you. You can also go badshit crazy and actually do the original lengths if you want. Generally, the length of races for a series is mostly the same, but some races might differ (for example all V8 Supercars races are "long", except Bathurst, which counts as "Endurance")

Testing

There's an official test the week before the first race, but you can also go testing once per week wherever you want, well, if you can afford it!

Future Outlook

Possible future components are:
  • Sponsors based on your experience with the cars and in the region you're driving.
  • a categorization algorithm that adjusts the different Ai strengths in Assetto Corsa over time, so you can race the AI on an equal level with vastly different cars.
  • A team championship prize pool, however I'm not sure how to really implement that yet, because the user obviously shouldn't be able to choose his teammate, or elsewise that one will be too good.
  • Implementation of pictures: For the cars and the championships, pictures would give a better feeling, however the time it takes to format them exceeds my available time at this point. Also, it would make modding more difficult, as every added car and series would also need a properly formatted picture with it.
Time for some pictures!

Here you can see how it looks at the moment. I have not payed any attention to design issues yet, merely trying to implement logic and a basic layout structure, which is why the sort and filter buttons on the top are that ugly, this will to a certain degree change, but don't expect a highly modern design. The table itself is more representative though: simple but functional
Picture 1.PNG

This is how the cars look as a table in excel, as you can see, it's quite easy to add new cars.
excelbuy.PNG

Below is a "coding"-example from how a season might look. You can see the venues, the length of the races and the week of the year in which the event occurs.
codezeug.PNG
And for people who wonder how the code of the software itself looks, maybe as an indication of my level of skills, heres a snippet of that as well. Bear in mind that the code so far is quite unstructured and completely undocumented, due to the fact that I'm basically learning programming "on the go" here. Before the release, I will properly format and document the code, so it's easier for other programmers to work on it as well :)
Algorithm.PNG


Tag, you're it!

And now it's your turn! Let me know what you think, what you expect and what you'd like to see. Let me also know whether you're actually interested in this. I'm open to honest criticism. I'm aware of all of the downsides of the product, so don't hold back :)
 
Great idea. Looks like a lot of work though
It is, which is why I'm focusing on functionality so far. I'd say that 50% of the functionality is finished, from now on there's nothing that's much higher complexity, basically just variations of what I've already used, which is why I feel confident enough to say that this is going to be finished in a foreseeable amount of time. It's also why the graphics in the first versions will suck, making a proper layout is a lot of work and secondary anyway, as long as the program itself is functioning :)

Great Project ! Exactly the kind of tools I search for addition of my simracing games. One last thing to say : We want a test version !!! :thumbsup:
Thanks! A very early test version should be finished in a couple of weeks, depending on how much time I have besides uni and social obligations :) Might even be in a shorter amount of time.
 
Maybe you can collaborate with the dev of Content Manager for Assetto Corsa integration
I'm focusing for now on finishing the first working version, from then on we'll see what we can do about it. As my future education seems to involve a lot of programming, including more low-level languages, I'm sure I will be able to optimize and rewrite the code on a more professional level at that point which makes it more realistic to also implement it myself into racing simulators, but all of this is not really a topic at this point until I'm finished with the first version.
Nice one. Like I offered per email we are happy to help you out where we can. Would be great if some talented community coders could support this.
Thanks, that'll surely be helpful, let's see how the first version will look like!
Btw. interesting to see that, like you, there are so many Dutch people involved in the field of racing sims. I'm German, but living in the Netherlands as well :)
 
Love the idea. I thought I would like PC2's career mode more than PC1, but I found I liked having the calendar with set events and having to choose b/w the different events. This programs sounds great. Where's the gofundme page?
 
Love the idea. I thought I would like PC2's career mode more than PC1, but I found I liked having the calendar with set events and having to choose b/w the different events. This programs sounds great. Where's the gofundme page?

Thanks :)
Nah, I don't want funds, I first want to finish the first functional version of the software, then I might simply add a donate-button, so people can decide based on the quality of the work whether they want to support further development or not :).
I'm making good advances, however my time at the moment is limited due to me finishing my Bachelor's degree, but I'm luckily able to always find an hour or two here and there to make some steady progress.
 
Hey,
some screenshots showing advancements that I'm achieving right now. Still ugly, but I'll dive deeper into GUI design as soon as the first functional version is finished :) Gives you some impression on how it will work though.

SeasonSignUp.PNG
Here's where you sign up for seasons, gives you an overlook of all the available series including which stage they are, which region of the world they happen in, how many races they have, what license is required, which game they use(so far mostly focused on AMS, no further reason than straight-forwardness of the series it supplies, will add all other games later on as well :))
SeasonInfo.PNG

Here's where you really sign up. Gives you a deeper overlook on all informations, also which license you can earn and what spot you have to score in the championship to get it. You can change the number of drivers(which influences the prize money key), but there's always a default number supplied. You can check the concrete Prize money key for the season on the respective button. There's also a list of races including the dates for the season(again, this changes every season, even though for the V8's for example, all australian tracks are mandatory and Adelaide as well as Melbourne are always season openers). This also shows you the sign up cost for each race, depending on the length of the race(also increases the prize money for the race, that's why the sign up has to increase)

Calendar.PNG

Calendar is in a very early stage, but will generally be structured this way. All 4 weeks are shown for each month and you can only sign up for one venue per week. You can also sign up for one test per week, well, if you can afford it!
 
I've started my Master's Degree now, as it's Computational Cognitive Neuroscience, I did progress significantly in my coding abilities. Now that I'm settled in at my new place an in my new studies, I'm looking to pick up the project again.
I haven't decided how to advance from here. The version I've created is obviously a total mess, structure wise. As I'm learning to code for webpages on the side right now, I might just rewrite the whole code in JavaScript and html, simply because it's a much better GUI than the Python-GUI I've used. In that case, it will take a while until I'm up to speed again, however the quality would be much higher and further implementation of new modules would be significantly easier.
I might however just continue with what I already have. I'm much more fluent in python and even though the code is very chaotic, it'll most probably always be the language of choice for me, simply due to my career choices.
 
Back
Top