Jump to content

TuscanSota

Administrators
  • Posts

    1,602
  • Joined

  • Last visited

  • Days Won

    245
  • Points

    15,556 [ Donate ]

Other groups

Members PAC-12 Coaches

TuscanSota last won the day on July 17

TuscanSota had the most liked content!

3 Followers

About TuscanSota

  • Birthday 04/06/1993

Converted

  • Discord
    TuscanSota#1458
  • Twitch
    TuscanSota

Coached Team Flairs (not for fan affiliation)

  • NFL:

    SEA

  • NBA:

    0

  • MLB:

    0

  • CFB:

    WAST

  • CBB:

    WAST

Recent Profile Visitors

605 profile views

TuscanSota's Achievements

All-Pro

All-Pro (11/14)

  • Dedicated
  • Very Popular
  • First Post
  • Collaborator
  • Posting Machine Rare

Recent Badges

2.2k

Reputation

  1. Players in the G-League will be claimable in the same way that practice squad players are in SimNFL. As for G-League minutes, they don't exist. We don't have things setup for an actual g-league schedule
  2. No, but up to 10 players can be placed in a team's GLeague
  3. Hi everyone, Today we're going to go over some adjustments we're making to SimNBA free agency. This update is being implemented to help balance free agency and to keep the market competitive. Minimum Value Requirements Since the inception of SimNBA the minimum value for players has been at 0.7M, or 700K. Last season with the highly-talented outlier draft class, we noticed that teams were able to sign undrafted free agents to contract deals that were lower than their drafted counterparts, while being slightly less talented. While some teams did offer competitive contracts, we wanted to set a standard on what the minimum value of a contract should be for a free agent. Here are the new standards on calculating a player's minimum value: All players with 100+ overall will be requesting a max contract All players between 95-99 overall will be requesting at least $25M All players between 90-94 overall will be requesting at least $20M All players between 85-89 overall will be requesting at least $5M (There must be a 1M increase for every year of the contract) All players between 80-84 overall will be requesting at least $3M (There must be a 1M increase for every year of the contract) All remaining players will be requesting at least $1M (There must be a 1M increase for every year of the contract) 1M Increase requirement If a player's overall is less than 90, every sequential year of a contract offer must be 1M greater than the preceding year. This adjustment will be seen in the Rule 5 logic of the SimNBA Free Agency Contract modal. Contract Length - For players that have been in the league for 0-3 years, the max number of years assignable is 3 years. Once a player hits year 4, any team can propose a 4 or 5 year contract offer to the player. Intent There are several teams that are able to bolster a talented roster with as little spending as possible. This update should help move the sim to having more realistic contracts and to allow more realistic teambuilding. Teams will be impacted by this free agency update, my own included. I'm hoping this update will allow players the opportunity to be more strategic in how they want to build their rosters. What happens to contracts that were proposed before this update? Because this update is made, there are several contracts created before this update which did not meet the requirements. All invalid offers have been removed, and we encourage everyone to re-submit contract offers that meet the new requirements. When does FA start? Because of the update and the removed contracts, Free Agency starts today, with the next sync occurring next Tuesday. Hope y'all have a great day. ~Tuscan
  4. Due to internal discussions with the SimBBA team, we are pushing back the start of FA to next week in order to work out some issues with minimum contract value and provide balancing to this cycle. Thank you for understanding.
  5. Hi everyone, I realize that I haven't done an update on Free Agency but here is what I can confirm for both this season's SimNBA off-season free agency cycle AND for SimFBA's offseason Free Agency cycle. High Level Overview Off-season FA period has been shortened to 8 weeks from 10 weeks. Once a player enters the negotiation phase, competing teams will have one week to update their existing offers. Players in the negotiation phase will NOT display the dollar value of their current offers, nor will the official list be visible. Players that would enter the negotiation phase but DON'T have any offers on them will instead remain open to receiving any offers. Once an offer is placed and the next sync occurs, will they then enter negotiations. Players minimum values will have a base minimum of $1M and will adjust based on the contracts they sign The Details Taking in feedback from previous cycles, we're making a few changes in order to expedite Free Agency and make a more competitive and fair experience. To start, we're shortening the off-season FA period from 10 weeks to 8 weeks. The accepting offers period will remain the same, the biggest change will be to the negotiation phase. Once a player goes from accepting offers to the negotiation phase, they will only look at the current offers that are on the table. ALONG WITH THIS, all existing offers on the player will not be visible from the FA screen. Teams will still be able to view their current offer on the player and update their offer as needed; they will not be able to view any of their opponent's existing offers. Additionally, teams will only have one week to make any changes on their existing offer in negotiation. On the next FA sync, the player will look at their existing offers and then make a decision. Negotiation phase will no longer be on the player's set schedule as it was in previous cycles and will now be an expedited process. Once a player makes a decision, they will sign with the team that they choose. Minimum Value Due to last off-season where a number of very talented UDFA players signed for the base minimum of 0.7 and lower, we're adjusting the rules on base minimum. To start, there were a number of invalid contracts where teams were able to offer players for less than the base minimum required for a contract in the league. To resolve this, all invalid contracts were updated to have a yearly value of at least 0.7 if the corresponding salary of that year was less than 0.7. Moving forward, how we treat minimum value will be based on a new set of criteria which will be added to the dev diary once the team has made an agreement. Additionally, along with base minimum, a player's minimum value will update to the offer's contract value and a multiplier based on the age of the player. This is intended to keep FA competitive and ensure that players that re-enter free agency or go into negotiations will not be stuck with the base minimum value which for the past two seasons has been 0.7. Here is what the formula will look like Minimum Value = Contract Value * (Age / Base Age) The Base Age for the current season will be set to 30. We will look into adjusting this based on how FA goes this season. Regarding players asking for Max and Super-Max contracts, their minimum value will still be based on a percentage of the current year salary cap, and not their minimum value. So, the above formula will not apply to these players. G-League rosters Each team is allowed up to 10 players on their team's respective G-League team. This is taken from this source on the NBA's official website. https://www.nba.com/wizards/nba-g-league-faqs In order for a player to be placed in the G-League for a team, the following must be true: The player is in the league for 3 or less seasons The player has two years or less remaining on their contract The player has a year total less than or equal to $2M When will FA begin? The Free Agency cycle begins next week. We are currently still ironing out some details regarding the minimum value of players in the current FA period. Thanks, Tuscan
  6. Approved for new mexico state. Please register on the interface and request the New Mexico State Aggies.
  7. The text has been updated to keep the information concise and straightforward to those who are reading it and want to be informed on how SimBBA works. It’s been a rough past couple of days, and how I handled the matter regarding the progression system yesterday and this morning was unprofessional. I don’t want to go into details with what’s going but I am exhausted, and I shouldn’t take it out on the community. This doesn’t excuse my behavior, I just want to apologize to everyone and be transparent that I will be working on how poorly I handled things.
  8. Hey team, I just want to take the time to thank the admin and staff here for their work on SimFBA. I know that we may converse and debate on the state of the sim on ways we can improve the experience for both our players and for the admin team. I appreciate everyone for the work they’ve dedicated here and that I see the effort that everyone has put in here. This is a project that began over five years ago with the purpose of making a sports simulation community that is transparent, competitive, and fun. And despite the bugs and frustrations that we may encounter every now and then, I do think we’ve achieved that. I also want to take the time to let everyone know that I plan on adding the last major changes to the interface by the end of this month. Once these changes are added, I am stepping down as an Admin for SimFBA. The SimFBA staff were informed of my decision at the beginning of May, and so I wanted to let everyone else now know. The following additions I will be making are listed below: - QoL for the depth chart pipeline related to the discussion a few days ago ✅ - QoL change for formations on the FB Gameplan pages ✅ - Transfer portal page for CFB - End of season pipeline for CFB/NFL season - Basketball Engine adjustments - SimNBA draft page update ✅ - Free agency update for both SimNFL and SimNBA leagues ✅ - Trading logic update to reflect the discussions made earlier in SimNFL (this one will probably be after the 2 season mark. I just need to know the requirements, and I can add this onto the backend in an hour's time). - Re-enabling RES for CFB - Cap sheet pages for both professional leagues and revamping the admin pages ✅ Once all of these items are complete, the manual work that will be required prior to new seasons will be uploading schedules and adjusting to IRL conference realignment. Thanks to work done recently for college basketball, we have templates in place that can help the admins with generating conference schedules for basketball conferences; which may also be usable for college football. That and the admins will have all the tools at their disposal to manage their respective leagues. As for the work on interface 2.0, I have a prototype in place that can be added on and is 100% easier to work in than the existing interface. If there are any requested revamps that need to be done, I suggest building there rather than the existing framework. I may add onto it occasionally, though I am more open to being in an advisory role on this project and giving someone the opportunity to develop the interface and build up their own experience. Similar how I used this project for my own programming experience. I’m hoping with the final changes that it's in a place where if someone else takes up the mantle to add something, that they have everything at their disposal. Should the case of a critical bug that threatens the interface, I will still be there to help on the dev-ops side. I joined onto this project five years ago after completing a web-dev bootcamp, and this has been some of my favorite years as a member of this community and into an extension, when I found this community on the other site. I still intend to be active here, but that my capacity as a developer will be limited as I work on other projects not sim-related. I will leave it to the rest of the admins to decide what my future discord role will be once my work is complete. Will new features ever be added to the existing interface? Outside of the above list, the only thing I will consider adding is the Youth Development System for ISL and opening up the ISL to users who are interested. What about X,Y, and Z things that I posted in the feedback thread? Any bugs that are still existing I will take care of eventually. If you run into issues, please keep posting in the feedback thread. Thank you for letting me be a part of this team and for building this alongside all of you. ~ Tuscan TL,DR: - Interface is almost done, I will be stepping down as admin at the end of the month - I am not leaving, I will still be in the sim, I just want to have fun with everyone else - Just read the above.
  9. Hi everyone, Today's dev diary is an explanation of how SimBBA's attribute and progression system work and why it is the way that it is. I think there's a disconnect between what people are expecting from progression based on our football sims and how it actually works in our basketball sims. This dev diary should hopefully bridge that gap and provide an explanation on how the progression system works in better detail. Below is a link to the previous dev diary that went over how progressions worked in the first place. It is provided here to be used as a reference: What are the attributes in SimBBA? Here is each attribute that is used in the basketball sim: Finishing - How well your player shoots in the paint. Shooting 2 - How well your player shoots outside the paint but before the 3pt line Shooting 3 - How well your player shoots at the 3pt line and outside of it. Free Throw - How well your player can free throw Ballwork - How well your player handles the ball. This involves stealing the ball, holding onto the ball, and the ability for the player to assist. Rebounding - How well your player can rebound the ball after a shot Interior Defense - How well your player can defend the paint Perimeter Defense - How well your player can defend outside the paint Injury Rating - How severe an injury will get, in the event a player gets injured. Does not impact how likely a player will be injured, only when they are. Discipline - The likelihood the player will foul another player. How is overall calculated? Overall = (int((Shooting2 + Shooting3 + FreeThrow) / 3)) + Finishing + Ballwork + Rebounding + int((InteriorDefense+PerimeterDefense)/2) The above formula is from the initial version of the SimBBA simulation leagues and is a cumulative sum of every attribute within their respective categories. When we added free throwing, we added that as part of the offensive shooting ability equation; when we split defense into interior and perimeter defense, we kept the defensive calculation the same, just had to average out the defensive attribute values. What is the numerical range of each attribute? When SimBBA (SimCBB and SimNBA) began years ago, the range of each attribute was between 1-20. When we migrated SimBBA over to the interface, we initially ran the progressions of these players based on the algorithm that was used for our football sims. The problem that occurred with doing this was that the progression algorithm for football is designed for an attribute system with a range between 1-100, not 1-20. So, players had attributes that jumped beyond the 20 range. Due to this data issue, the team behind SimBBA decided to do two things: Increase the range of attributes from 1-40. More on that in a moment. By increasing the bounds from 20-40, we gave a reason on why attributes went beyond 20, rather than having several players set at 20 attributes for each. There can be players that can specialize in attributes that go beyond 20, which can make them a specialty player in that specific attribute category. The new outer bound of 40 is the ceiling, but it's a ceiling that was designed to only be reached in the given circumstances of a very good player. Players such as Ray Allen and his 3pt shooting ability in games is an example, or perhaps even Michael Jordan and Lebron James would have attributes between the 30-40 range. Create a new progression algorithm that fits the scale of attributes in SimBBA. We had no access to a progression algorithm from the initial version of the SimBBA simulations, so we had to build something new from the ground up. Because of the initial 1-20 range, we had to come up with a way to give players a chance to grow in attributes, but not too much because of how significant each point would be in an attribute. We also wanted players to grow uniquely regardless of their position, meaning that while Point Guards are likely to be good at ball-handling at the very least, we also recognize that there are other PGs in the current NBA that specialize outside of that. To reflect how unique players can be in the NBA and globally, we came up with the Attribute Specialization system. What is the Attribute Specialization System? Attribute Specializations (Specs) can be best described as the specific attributes that a player is talented in. Not every player by position will have the same specs, but this will allow players the potential to progress further in certain attributes at a greater rate. When players are generated via crooting and the youth development system, they have dice rolls determined on which of their attributes are specialties of theirs. The only time position is taken into account for a player's attributes is in attribute specialization. Specs were generated using the following method: - For each attribute (Shooting 2, Shooting 3, Free Throw, Finishing, Ballwork, Rebound, Interior Defense, Perimeter Defense), the computer does a dice roll between 1 through 20. If the dice roll is higher than 14, the spec is added to player. For each specific attribute, the position is checked to add a small modifier of 2, giving a boost to the player to attain certain specs that would be normal for their position. Below is the following code on how specialties are decided upon: func GetSpecialties(pos string) []string { chance := GenerateIntFromRange(0, 9) if chance < 1 { return []string{} } list := []string{} mod := 0 diceRoll := 0 // S2 diceRoll = GenerateIntFromRange(1, 20) if pos == "SG" || pos == "SF" || pos == "PG" { mod = 2 } if diceRoll+mod > 13 { list = append(list, "SpecShooting2") } // S3 diceRoll = GenerateIntFromRange(1, 20) if pos == "PG" || pos == "SG" { mod = 2 } if diceRoll+mod > 13 { list = append(list, "SpecShooting3") } // FT diceRoll = GenerateIntFromRange(1, 20) if pos == "SG" || pos == "SF" || pos == "PF" { mod = 2 } else { mod = -1 } if diceRoll+mod > 13 { list = append(list, "SpecFreeThrow") } // FN diceRoll = GenerateIntFromRange(1, 20) if pos == "SF" || pos == "C" || pos == "SG" { mod = 2 } if diceRoll > 13 { list = append(list, "SpecFinishing") } // BW diceRoll = GenerateIntFromRange(1, 20) if pos == "PG" || pos == "SG" { mod = 2 } if diceRoll+mod > 13 { list = append(list, "SpecBallwork") } // RB diceRoll = GenerateIntFromRange(1, 20) if pos == "C" || pos == "PF" { mod = 2 } if diceRoll+mod > 13 { list = append(list, "SpecRebounding") } // ID diceRoll = GenerateIntFromRange(1, 20) if pos == "C" || pos == "PF" { mod = 2 } if diceRoll+mod > 13 { list = append(list, "SpecInteriorDefense") } // PD diceRoll = GenerateIntFromRange(1, 20) if pos == "SG" || pos == "SF" { mod = 2 } if diceRoll+mod > 13 { list = append(list, "SpecPerimeterDefense") } return list } There are players that can specialize in a couple of attributes, all of them, and even none. Specs are used in the progression algorithm to help determine which attributes are more likely to grow. It also guarantees that the attribute that is specialized will at least have a chance to grow or regress. What is Prime Age? Why is it important? Prime age is the age which the player has theoretically reached their peak. Meaning, their highest chance of growth has been met at that age. For every year past the prime age, the likelihood that the player will regress increases. The range of prime age can be anywhere from 22 to 34. The likelihood of a player getting a number from either minimum or maximum range is very low. As far as why prime age is different between each player, it's because every player is different. Some can play well and phase out of their career early; some can be in the league for over a decade. Here is the algorithm: func GeneratePrimeAge() int { chance := GenerateIntFromRange(1, 100) if chance < 5 { return 22 } else if chance < 10 { return 23 } else if chance < 15 { return 24 } else if chance < 35 { return 25 } else if chance < 50 { return 26 } else if chance < 55 { return 27 } else if chance < 65 { return 28 } else if chance < 75 { return 29 } else if chance < 80 { return 30 } else if chance < 85 { return 31 } else if chance < 90 { return 32 } else if chance < 95 { return 33 } return 34 } What is Potential in SimBBA, and what makes it different from the football sims? Taken from Merriam-Webster's dictionary, potential is the (adj) capability of development into actuality. It is also (Noun) something that can develop or become actual. For SimBBA, we're leaning into the "capability" and "can" in both term definitions. Meaning, Potential is seen as the ceiling for how high a player can grow in any given progression. In SimFBA, potential is guaranteed growth, with potential being emphasized on how talented the player can get during the course of their collegiate and professional careers. In SimBBA, potential is the possibility of growth in a player and how likely they will grow. Where growth is guaranteed in football, in the basketball sim, it is more nuanced. Both of these are very different. As far as why potential in SimBBA is different, please consider the following: The range of attributes is smaller in the basketball sim than it is in the football sim. Growing by even one point in an attribute in basketball has more significance than it does in the football sims because the range is smaller. Because the range is smaller, the progression system has to be designed in a way to allow the chance of growth. If growth was always guaranteed, it would either be too small or insignificant, or eventually every single player would be hitting the 30 and 40 range. Because basketball careers are also arguably longer with certain players than it is for a football player's career, the long-term progression has to be balanced out as well. In addition, we have to allow roster building by bringing in younger players; so the system has to be designed in a way to promote growth, allow balance, and also reward drafting younger players. Can we now talk about how the progression algorithm works? Yes. If you’ve read dev diary #89 already, I'm going to explain it below again because only minimal changes were made since then. An empty list is generated. This list will consist of all the attributes which will be checked for progression. If a player has a spec for a specific attribute, that attribute will be added to the list. Once all specs are checked, a dice roll is then conducted for each attribute again. If the dice roll for the attribute + potential modifier (Potential / 20, so within a range of 1-5) is higher than or equal to 14, the attribute is added to the list. Once step 3 is ran, the list will now consist of attributes that will be progressed, with some attributes appearing more frequently than others. This list is then shuffled randomly to ensure that the order of which attributes were added to the list does not impact which attributes are progressed first. A point limit dependent on the player's potential is created. This point limit is the player's potential / 10, giving a range between 1-10, with any decimal rounding upwards. There's also a small coin flip, particularly for lower potential players, where the range of their point limit increases by 1. This is unaffected by the player's progression and is designed to allow players at a low rating (D, F) the chance to progress in at least more than one attribute. With the point limit set, the algorithm then loops through the list of attributes. On each attribute in the list, until the point limit is reached, a progression between the range of 0-2 is determined for that iterated attribute. With this design, attributes will at least progress by 1, while attributes that appear more than once in the list can still progress by 3 or 4. There is one small caveat in this particular stage: Depending on the player's age and minutes played, a regression can occur. Regarding the age of the player, depending on how old the player is compared to their prime age, the odds of regression increase. When the player has reached their peak, the chance of growth gets smaller until it becomes a regression. Based on my own experience with testing this, players that are even a year or two past their prime can still grow. Once we get to 3+ years above, it is more likely that the player will actually regress. Regarding minutes, the regression is dependent on their expected minutes of play through the season, given the league the player is playing in (College vs Professional). Additionally, depending on the difference between minutes played and minutes expected (10 minutes or higher), there can be a bad regression. In college basketball with the transfer portal system, the chance of regression is near null. If a player doesn't get their minutes and they weren't redshirting, they just won't grow. In SimNBA, if a player doesn't get their minutes expected, they will regress. Once the point limit is met, the new progressions are added on top of the player's current attributes. This progression algorithm is designed to meet the current attribute range for both SimCBB and SimNBA, while preventing players from only progressing in certain attributes based on position. Specs I believe add a layer of strategy in player progression and can be utilized in both gameplanning and roster management in this regard. Why is regression allowed in the progression algorithm? Several reasons, but mainly here are some things to consider: The roster generation of several college teams was initially too high, increasing the bar on what it meant to have a starting caliber player. It also impacted both last year's and this year's drafts. This was all based on the previously used progression algorithm. The number of players that are entering the draft is very high. There are only so many roster spots that are available both in the SimNBA and with each team's respective G-League team. It is also partially one of the reasons why we introduced the international super league (ISL). Minutes expectations is set high at the moment. I will likely made adjustments to this next offseason but for now I think it increases the significance of how minutes are used when strategizing for games in the season. Not every player will have their minutes met. With how talented players are, this should help add some additional balance to the league. In my previous dev diary covering changes to recruiting I announced some changes to how players were now generated via recruiting and the ISL Youth Development system. We should now be seeing high school recruits that are both very talented and fit the proper description of a "one-and-done" while also being talented enough to be considered giving starter minutes. Additionally, I think it introduces a strategy possibility with drafting younger players simply due to the fact that teams will get more out of younger players because they will each have a longer career before their peak is even reached. So why did some of my players regress in the previous progression? There was a bug where season stats weren't being properly retrieved, meaning that players with minutes throughout the season possibly regressed instead of progressed. This caused smaller growth, no growth, and recessions. A thread was setup last week to bring awareness to this and to allow users to point out which players did regress so that I can fix the issue. I even ran a second one last night while users missed the deadline, despite there being days to post in the thread. The bug is fixed, and the likelihood that a player that has their minutes met and regresses won't happen unless they are past their prime. This is a very different system than what we have with SimFBA; and while it's not perfect, I believe it's a solution that makes the most sense given the current system and the current ecosystem of players. We are open to suggestions and feedback on the current progression system and recommend posting them here: NCAA College Basketball Suggestions - SFA - Simulation Football Association (simfba.com) Can we change the attribute ranges to have more visible growth? This is a larger ask than I think some users will realize because this would be changing every player across the board, rewritting how progression currently works, and rewriting the engine to reflect the larger attribute range changes. That is something I want to avoid doing. I hope y'all are well and have a good day. ~Tuscan
  10. Approved for the GM role of the Seahawks. Welcome @Randak!
  11. Approved. Please request ownership on the interface.
  12. Approved. Welcome to the SimNBA!
  13. The Youth Development system is a new system that will allow International Super League teams to build their rosters consisting of local talent and players that are within their league's geographic footprint. The system is a combination of the transfer portal system and SimNBA's/SimNFL's scouting system. Teams will be able to spend resources to identify players, scout players out, and invest in bringing them onto their team. The Youth Development system will allow teams to build their rosters in the offseason while the SimNBA takes place. The Player Pool Talent from across the globe will be generated and will allow teams a chance to pick up players that they deem to be a fit for their roster. The age of these players will range from 16 to 22, normalized. Players that are picked up will be able to participate in ISL games, while players not picked up will continue to develop until they are 23, to which they will then become a free agent eligible for either the ISL or SimNBA. Development players cannot be picked up by SimNBA teams and are restricted from free agency and trading. Development players that play in the ISL will have an opportunity to declare for the SimNBA draft and will be eligible. Players that are not picked up by an ISL team will still develop and can always be scouted next offseason. How Generating Players Will Work This system uses the exact same generation system that we use for college recruiting, with the exception being that age does not impact the attributes of the player generated. Meaning, a 20-year-old can be generated but have the talent of a 2-star recruit, and a 16-year-old player can be generated with the attributes of a generational talent. How it works Each team has a pool of 100 points that they can use weekly. These points can be pooled towards identifying a player within their footprint, scouting attributes of the player, and then investing points into the player to add them to their team. All three functions will use the same pool of resources, so it is suggested that teams manage their points wisely as they identify and scout out talent. Identifying When the offseason begins, teams will have access to the full list of players; but only knowing the country of origin of the player & the position of the player. No name, age, or attributes revealed. To reveal a player's name & age and the ability to add the player to their board, teams will need to spend 10 points to identify the player. When identifying a player from a country that's part of the club's conference league, the cost is 8 points. When identifying a player from the club's respective country, the cost is brought down to 5 points. Teams will then have the option to place the player on their scouting board as needed. Teams will always be able to view players they identified in previous seasons along with players previously removed. Scouting After identifying, teams can view their scouting board and scout the attributes and potential of each identified player. Each attribute will cost 10 points to scout and reveal their actual grade. Once four attributes are revealed, the overall grade of the player is then revealed. For those reading and seeing the high cost of scouting, you're probably asking: why? Well, this is where the scouting modifiers come into play. Each offseason, teams will have a chance to improve their team's scouting department by incrementing modifiers that will lower the cost of each scouting attribute. Teams are also at the liberty on deciding which attributes they want their scouting department to specialize in. The modifiers can be incremented by 1, lowering the cost of scouting attributes and potential. To upgrade modifiers, the following must be accomplished by an ISL Team: Winning their respective league within the ISL: 4 points Making it to the ISL Final Four: 6 points Participating in the ISL Finals: 8 points Winning the ISL: 10 points Having a development player declare for the SimNBA draft: 4 points This will allow teams that are successful to be rewarded for their success and earn a competitive advantage. Additionally, scouting departments will need to keep up with the latest technologies and developments as the seasons progress. Every even season, the modifiers will regress by 4 points. In addition to giving teams a competitive advantage, this will help introduce some parity to the ISL. Investing Points Once the overall of a player is revealed, teams will have the option to invest points into the player as a means of recruiting and signing the player to join. For the initial season of this new system, there will be no cap on the number of points that can be spent through investing in a player. Teams can invest in the same player and compete with one another. When all invested teams have allocated points on a player for at least two weeks, the player will then make a decision and select a team, weighted by the number of points invested. How long does a development player stay on an ISL roster? Development players once picked up will have a contract generated with them. The duration of the contract will always expire once the player has turned 23 or the player declares themselves for the SimNBA draft. Development players declaring Once a development player reaches the talent level of that expected for a SimNBA draftee, they will declare themselves for the SimNBA draft. If a player is under the age of 19 and already meets that talent level, they will need to wait until they are 19. Balancing resources Not every player will be considered a generational pick, and the system is designed for teams to try and find the players through trial and error. Teams will need to balance how they spend points through identifying, scouting, and investing in order to find the right talent that can make an impact for their team. It is by design to be more blurred than even the college recruiting system with the tools available to give teams an edge and find players faster. Will more improvements be made? We will make improvements based on feedback received during the first iteration of this system. Will users be able to participate in the first iteration? At the moment I am planning on having this be AI only in order to observe & make adjustments. When does the Youth Development System's sync occur? The sync will occur alongside the SimNBA's Free Agency sync system on Tuesdays. Once the sync occurs, teams will be able to use all their points again towards the youth development system. Can players from the US participate in the Youth Development System? No. Can colleges recruit players from the Youth Development System? Unfortunately, no.
  14. This is what we’re going to try and aim for.
  15. 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: 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. FAQ - 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. ~Tuscan
×
×
  • Create New...