Jump to content

Panthers Pounce on Chapel Hill

Tune in this Saturday for an exciting matchup in Chapel Hell where #15 UNC and coach Tryggr and face off against #24 Pitt led by coach TheLiberator.

Kings of the North

Can Gerald Lewis and da bears upset the Packers in Soldier Field or will Joseph Garibay and the Packers further their lead in the NFC North?

Join Here

Need a team?

Firstly... welcome to the SimFBA! If you are new to the site, and need a team, make sure you head over to the new users section and view the available teams list. You will also be able to fill out your job application there! See you on the field, Coach!

Read more

Endless Summer

Congrats to the Lakers for winning the #1 Lottery Pick in this year's upcoming SimNBA Draft!

Join Here

#126 | SimBBA | Offseason Changes


Recommended Posts

Hey everyone,

We're still busy working on changes related to the offseason. With SimNBA extentions wrapping up and progressions later this week I wanted to highlight some of the things we will be focusing on in this dev diary.

Listed below are the following changes that are being made to SimBBA:

  • Gameplan Adjustments
  • New Attributes
  • Engine Changes
  • Stream/Timeslot Changes
  • Croot Generation Changes
  • Realignment
  • ISL Expansion & Youth Development System


Gameplan Adjustments

First and foremost, gameplans will now require that the shot proportion of a player be less than or equal to the number of minutes allocated to the player. This will prevent scenarios where a player with only five minutes allocated could have the maximum shot proportion allocated. We want shot allocation to be proportional to the number of minutes that the player is on the court.


New Attributes

There are two new attributes that we're introducing to SimBBA this season: Discipline and Injury Rating.

Discipline is a rating that represents how often your player will play well on the court -- meaning, how often they aren't fouling. Players with a lower rating are more likely to foul out more than their other teammates.

Injury Rating represents how severe a player receives an injury in the event that they are injured. It does not impact how often a player will be injured.

The Injury Rating and Discipline attributes, unlike the other attributes generated for players, is done using a normalized range from 1-20. Most players will hover around a 10 IR and Discipline attribute, and that's expected to be normal. Players with lower IR or Discipline will likely either be fouling out or having more severe injuries.

In the event that a player is injured, the recovery time will not be measured in weeks but instead on the number of potential game days. Meaning, after every game day (A,B,C, and D), the recovery window of a player will be reduced by 1. Once it's zero, the player is no longer considered to be injured.


Engine Changes - Injuries & Discipline

The first big addition we've accomplished was changing the way that teams load their roster for simulation. The new implementation is decoupled from the previous iteration and allows the engine to reload rosters based on the player minutes allocated and whether a player is injured or not.

The second is injuries. At the end of each event that occurs, the engine will check to see if an injury does occur or not. When an injury does occur, a player will be selected from either lineup (minutes used as a weight) and will have a weighted selection as far as what kind of injury occurred. Using data curated from NBA reports and Kaggle.com (Machine Learning Community), a weighting system for injuries and severity of injury was made. Below are the weights as far as what kind of injury can occur:


In addition to the injury being generated, this injury map is also provided to show how many weeks it will likely take for these injuries to recover:


As far as generating the severity for the injury, an algorithm was written to determine this. Due to how largely weighted Knee injuries are in the current implementation, the odds for generating a severe knee injury were specifically modified as an edge case:


Once an injury and a severity level is determined, the number of weeks selected for recovery is retrieved from the injury_map and randomly selected from the given range. Because more than one game can occur for a team in a season, we adjust the numbers slightly to determine the count not by week, but by games required to recover. This means that in the event of a mild injury, a player can be injured on Monday and can also be ready to play by either the upcoming Friday or Saturday.


 The odds of any injury occurring are 1/10000. In retrospect this is a very small number; but due to the number of games that do occur, I think this is a good starting point for now and can always be lowered if necessary.

On top of injuries now being added, players being fouled are now determined by their Discipline attribute. In addition, events where fouls occurred when a shot was made will now have a fouling player selected. It will also be noted in the play by play.

With injuries and players fouling out, we are introducing scenarios to the engine where players can either a) foul out or b) be injured in the middle of a game. This should add a new dynamic to the basketball sims both from a gameplay and narrative standpoint and should shake up games in the near future. When a player is either fouled out of the game or has an injury, they will leave the team's lineup and will not participate for the remainder of the game. Based on when an injury or foul occurrence was made during the game, the event will have an impact for the remainder of the game.


Engine Changes - Defense

We are changing the way that defense is calculated in the engine. Previously, players taking shots were going against the team's adjusted defense rating. This meant that a team's defense in a shot scenario was dependent on the team's overall defense, not the defensive capabilities of an individual player. Moving forward, shots being made by the offense will find the offensive player pairing against a defending player and will have the logic compared to the player's adjusted defense rating.

This should impact how teams manage and strategize their roster, along with increasing the impact that a defensive player can have in a game.

In addition, rebounding has been adjusted to weighting based on the player's position. With this change, Centers and forwards are more likely to rebound than say, a point guard.

To finalize, we have also looked into end of game logic for both CBB and NBA; based on the amount of possessions remaining and if the game is close, teams that are behind will be more likely to either make attempts to tie the game or shoot a 3 pointer.


Additional Engine Changes - Rebounding & Home Court Advantage

Arena data is now being utilized to determine how strong a team's home court is during a game. In the current iteration, we are using capacity as a modifier to determine how string the HCA is for the home team or not.

We will also be looking into reworking how rebounding is calculated in order to portray accurate numbers on the number of defensive rebounds & offensive rebounds, along with accounting for the height of the player when rebounding


Stream/Timeslot Changes

Currently, there are four possible dates that games can be scheduled. In College Basketball, the matches possible were restricted to A and B days (Monday/Wednesday), while professional games had games on C and D days (Friday/Saturday). At the moment we're not expanding the number of days available but instead are allowing college basketball games to take place on Fridays and Saturdays. This will allow some flexibility in terms of timeslots and will allow certain teams and conferences to play on more engaged time slots.

-- If I have time during the offseason after the engine changes are made, play by play streams have been enhanced to be more like a live broadcast. Meaning, expect some new flavor text this season.


Croot Generation Changes

With the addition of the new attributes and with last season's spec attribute implementaiton, we've taken the opportunity to rewrite the recruit generator. The talent of croots generated show now have a more realistic representation of the talent within the IRL NCAA Basketball league, and have a more realistic distribution in terms of the talent that a freshman class can hold. Here are the guarantees:

  • At least 1000 recruits will be generated each season
  • Anywhere from 22-35 five star recruits will be generated
  • Approximately 100-120 four star recruits are generated
  • Anywhere from 300-400 3 Star
  • Anywhere from 300-400 2 Star recruits are generated
  • Anywhere from 200-300 1 star recruits are generated 

The highest overall possible is guaranteed to be above 70, with the lowest possible being 20. With this information, there's a likelihood of at least more than one 1-And-Done type player that can declare early for the SimNBA draft moving forward.

With this adjustment, the early declarations algorithm was adjusted to accurately check whether a talented player will most likely declare or not. In the event that a player makes an early declaration at the end of the season, users will be able to commit promises to entice them into staying. Depending on the likelihood of their potential success in the next season, users should expect to make a very serious promise in these circumstances.

The final change for recruit generation, which has been teased in some of the meet the croot articles, is that recruits can have new flair when generated. Recruits now have a 1% chance of having a relative upon generation. If the player has a relative, here are the odds on what the relative is:

  • 60% Chance the recruit has a brother whom is a college player in the sim
  • 20% Chance the recruit is the cousin of an existing college player
  • 5% Chance the recruit is a half-brother of an existing college player
  • 5% Chance that the recruit has a twin in this recruiting class
  • 2.5% Chance that the recruit has a best friend in the recruiting class
  • 2.5% Chance that the recruit has a best friend who's currently in the college ranks
  • 3.5% chance that the recruit is the son of a coach. In the event that this is true, the recruit will automatically sign with the coach's team (only on AI teams)
  • 1.5% Chance that the recruit is the nephew of an existing coach, with a 50% chance of automatically signing with that team.


I also want to emphasize that this season the new flair will not have any logical impact in the behavior of AI teams, save for the events that the player is the son or nephew of a coach. There is a possibility that this logic will have a future impact on AI behavior in terms of the transfer portal or where a specific recruit could transfer to.


Progression Changes

Due to feedback received during the progressions for college players, the following rule change has been made:

  • College Players that do not have their minutes made will have their growth stunted. They won't regress, but they won't grow.
  • Professional Players that do not have their minute expectations made will regress as usual, however.


International Players and the ISL

With the recruiting adjustments being made, there is a final change I am making regarding having international players in future SimNBA drafts. Currently the format for ISL teams is that they bring in 8-9 players via free agency, and the rest of the roster is then generated with international players. Moving forward, ISL teams will be a majority of international generated recruits, and allowing at least 2-3 players via free agency each year. At least for generation rosters.

Players generated for an ISL roster are a bit different from generating players for a college roster. For one, none of the SimNBA teams can pick up a generated international player. Second, while the same generation of attributes is used, there is a chance that ISL players can actually be generated at a younger age. This means that there's a small chance that players generated younger than 18 is possible, while having the base floor of a collegiate player. It's not always guaranteed, but this should allow the sim to generate players akin to many generational players in the IRL NBA such as Yao Ming, Dirk Nowitzki, Nikola Jokic, and many others.


The intent is to create a pool of players around the globe for the following purposes if having international players to draft and for an eventual SimBBA World Cup event.


With that said, the number of teams within the ISL has moved up from 40 to 160 teams, with about 84 countries represented. This will likely be the last expansion to the ISL for a very long time. For the full list of all the new teams, please check out the Available Teams page on the interface.

Or just view the spoilers here for the official list of ISL Teams and their new leagues:

BC Andorra Andorra
Oostende Belgium
Nymburk Czech Republic
Opava Czech Republic
London England
Manchester Giants England
AS Monaco France
JL Bourg France
Metropolians 92 France
ALBA Berlin Germany
Bayern Munich Germany
Hamburg Towers Germany
Heroes Den Bosch Netherlands
SL Benfica Portugal
Caledonia Scotland
Barcelona Spain
Cazoo Baskonia Spain
Real Madrid Spain
CB Gran Canaria Spain


Liga Mediterranea  
BC Balcan Bulgaria
Cibona Croatia
AEL Limassol BC Cyprus
APOEL Cyprus
Olympiacos Greece
Panathinaikos Greece
Falco Szombathely Hungary
Hapoel Jerusalem BC Israel
Maccabi Tel Aviv Israel
Aquila Basket Italy
Olimpia Milano Italy
Virtus Bologna Italy
Peja Kosovo
Buducnost Voli Montenegro
Dinamo Bucuresti Romania
Crvena zvezda Serbia
KK Partizan Serbia
KK Cedevita Slovenia
Anadolu Efes Turkey
Fenerbahce Beko Turkey


Asia League  
Beijing Ducks China
Guangdong Southern Tigers China
Guangzhou Loong Lions China
Jilin Northeast Tigers China
Shandong Hi-Speed Kirin China
Shanghai Sharks China
Shenzen Leopards China
Fujian Sturgeons China
South China AA HK
Alvark Tokyo Japan
Hiroshima Dragonflies Japan
Levanga Hokkaido Japan
Nagoya Diamond Dolphins Japan
Ryuku Golden Kings Japan
BC Astana Kazakhstan
Dynamo Vladivostok Russia
Daegu Pegasus South Korea
Goyang Carrot Jumpers South Korea
Seoul Samsung Thunders South Korea
Ulsan Hyundai Mobis Phoebus South Korea


Oceania League  
Adelaide 36ers Australia
Brisbaine Bullets Australia
Melbourne United Australia
Perth Wildcats Australia
Tasmania Jackjumpers Australia
Louvre Surabaya Indonesia
Satria Muda Indonesia
Kuala Lumpur Dragons Malaysia
New Zealand Breakers New Zealand
Whai New Zealand
Ginebra San Miguel Phillipines
San Miguel Beermen Phillipines
Singapore Slingers Singapore
Taipei Fubon Braves Taiwan
Taoyuan Leopards Taiwan
Otago Nuggets New Zealand
Hi-Tech Bangkok City Thailand
Danang Dragons Vietnam
Nha Trang Dolphins Vietnam
Saigon Heat Vietnam


Northern Europa  
Bakken Bears Denmark
Team FOG Naestved Denmark
Pyrinto Finland
Torpan Pojat Finland
Grindavik Iceland
IR Iceland
VEF Riga Latvia
BC Lietkabelis Lithuania
Zalgiris Lithuania
Asker Aliens Norway
Baerum Norway
Slask Wrocklaw Poland
CSKA Moscow Russia
Lokomotiv Kuban Russia
Zenit Saint Petersburg Russia
BC Lulea Sweden
Norrkoping Dolphins Sweden
BC Budivelnyk Ukraine
BC Dnipro Ukraine
Prometey Ukraine


Ligas Das Americas  
Boca Juniors Argentina
Instituto ACC Argentina
Obras Sanitarias Argentina
Quimsa Argentina
San Lorenzo Argentina
Flamengo Basketball Brazil
Franca Basquetebol Clube Brazil
Minas Brazil
Mogi das Cruzes Basquete Brazil
Sao Paulo FC Brazil
CD Valdivia Chile
Universidad de Concepcion Chile
Titanes de Barranquilla Colombia
Capitanes de Ciudad de Mexico Mexico
Fuerza Regia de Monterrey Mexico
Libertadores de Queretaro Mexico
Real Esteli Nicaragua
Caballos de Cocle Panama
Cangrejeros de Santurce Puerto Rico
Aguada Uruguay


MC Alger Algeria
Petro de Luanda Angola
FAP Yaounde Cameroon
BC Espoir Fukash DRC
SLAC Guinea
ABC Fighters Ivory Coast
GNBC Madagascar
AS Police Mali
Stade Malien Mali
AS Sale Morocco
Ferroviario da Beira Mozambique
Ferroviario de Maputo Mozambique
Kwara Falcons Nigeria
Rivers Hoopers Nigeria
REG Rwanda
AS Douanes Senegal
Cape Town South Africa
Cobra Sport South Sudan
US Monastir Tunisia
City Oilers Uganda


The Gulf League  
Sabah BC Azerbaijan
Bahrain SC Bahrain
Manama Bahrain
Beit Sahour Palestine
Al Ahly Egypt
Sporting Alexandria Egypt
Zamalek BC Egypt
Mahram Tehran BC Iran
Petrochimi Bandar Imam BC Iran
Al-Rasheed BC Iraq
Kazma SC Kuwait
Kuwait SC Kuwait
Al Riyadi Beirut Lebanon
Sagesse SC Lebanon
Al Sadd Qatar
Al Nassr BC Saudi Arabia
Al-Hilal BC Saudi Arabia
Al-Ittihad BC Syria
Al-Wahda SC Syria
Shabab Al Ahli BC UAE


Youth Development (ISL)

The ISL Rules will be adjusted slightly to allow some form of Free Agency for ISL teams along with an incentive to develop youth talent around the globe. For the Youth Development system, ISL teams have a unique way of building up local and regional talent while remaining competitive.

ISL teams will be able to identify, scout, and pick up talented players as a means of building their roster in a new system that I would consider  to be a combination of SimCBB's recruiting system and the scouting system used for the SimNBA and SimNFL drafts. Be on the lookout for a dev diary later today explaining the system in detail.


SimBBA World Cup

With the ISL Expansion and the Youth Development system, we are projecting to be able to host a SimBBA World Cup event and we're aiming for 2026. Within the collegiate ranks, we have several international players across every college roster. As more international players graduate into the SimNBA and ISL, the likelihood of hosting a world cup will increase. There will be enough players from non-US countries to be able to sport a team and compete to see who's the best nation when it comes to basketball.



- What are the chances a player who's a coach's son will be a five star?

Well, there's a 1/100 chance of a player having an existing relative in the sim. With the 3.5% chance of that player being a coach's son, we're now looking at 0.035% odds of that exactly happening. With the odds of a player being a five star, we can take the numbers from up top and do some math. If there are 35 five stars in a class of 1000 recruits, that's a 3.5% chance of a player being a five star. So, let's take 0.035% * 3.5%. That's 0.001225% that's happening.

So, if you're worried that a five player won't be crootable to you or to other users, I wouldn't lose sleep over this. It's already a rare chance this will happen.


- Can I have two games on Friday and Saturday for college?

No. If you have a game on either a Friday or Saturday, you will likely have a game on either a Monday or Wednesday.


- How impactful will injuries be during the first season?

Hard to say right now.


- What happens if my star player is out for the year?

Keep playing, wait for them to recover, and get vengeance.


- Why were Guam, Chaminade, and American Samoa added to the sim? Chaminade is a D2 school, Guam isn't even in the NCAA, and American Samoa's only school on the island is a community college?

Lore. But also, I don't like having conferences with an odd number of teams (looking at you, Atlantic 10). Chaminade, I wanted to bring in so that they can, by tradition, participate in the Maui invitational. For Guam, it was a matter of when they would join. To keep the Big West at an even number, I came up with a rival for the school. If there's a problem, just schedule any of these three schools and put it on the court.


- Okay, what about the NEC? Hartford is D3 and St Francis Brooklyn closed their athletics program.

The IRL NEC needs to add new teams to stay at 8 teams. I doubt they add in an existing D1 school via realignment, which means the best bet is through D2/D3. Until those schools join up, Hartford and St. Francis Brooklyn are in, temporarily.


- The ISL has expanded to 160 teams and includes clubs from various nations. What if I have a problem with a specific club being in the league?

This is a league consisting of actual teams and clubs from around the globe in the form of digital data. We would like to consider our sim taking place in an alternative universe where many of the geopolitical events going do not exist. Basically, sim basketball utopia. If there's a club or a nation that's represented that you have a strong opinion on, I'm not here to sway or say anything about it. Rather, I'd suggest taking your attitude to the court and beat them fair and square in this game.


- What if I want another specific club in the ISL?

I'll put up a suggestions thread for SimNBA and the ISL soon enough where teams can propose adding specific clubs and countries to the ISL. The current expansion was a year-long process of finding the right clubs and leagues and making the conference leagues geographically make sense. For adding teams, here are the criteria that I ask for:

  • Name of the basketball club
  • City, Province, Country of the residing basketball club
  • Arena where the team plays + capacity
  • Logo of the club, preferably with a transparent background.

I do have my own additional list of teams that can potentially be added, and I'm all for adding more. It's a bit of work but the submission process will help with expediting this process for future seasons. I can't promise that every team will be added, as I will need to consider the league format and the format for every single conference. This is a small passion project that I do love and I am always happy to expand on it further.


- Can I recruit youth development players for my college basketball team? Will I be able to in the future?

No, and unfortunately, no.


- With the ISL expansion and youth development system, will we finally be able to pick up an ISL team?

Not yet. The Youth Development system is what I want my last addition to be, and it's something I want to complete on the API side first before implementing to the interface.



I really hope that y'all are looking forward to these additions, as I certainly am.



  • Like 4
Link to comment
Share on other sites

8 minutes ago, TuscanSota said:

Engine Changes - Defense

This sounds awesome!  Does the type of defense played have an impact on who the defender would be in a given situation?  For example on an inside shot against a 2-3 zone the defender might be the center vs. a man to man defense it would be whoever is guarding them? 

  • Like 1
Link to comment
Share on other sites

2 minutes ago, smackemz said:

This sounds awesome!  Does the type of defense played have an impact on who the defender would be in a given situation?  For example on an inside shot against a 2-3 zone the defender might be the center vs. a man to man defense it would be whoever is guarding them? 

This is what we’re going to try and aim for.

  • Fire 1
Link to comment
Share on other sites

Join the conversation

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

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...