What’s happening family. It’s your man Da_Czar… I have started my sentences with this phrase too many times to count here on OS. With this, my first official blog post as a developer, I am returning to the format that started it all.
I know many of you here have been waiting a long time for us to talk about gameplay. Well the time has finally come so I won’t waste time with any more introductions.
Traditionally, plays in video games are based on the previous season’s games. So for NBA 2K15 we scouted the 2013-2014 season and added those plays to the game.
The problem with this system is that teams and personnel change over the summer, and some coaches add slight to major adjustments to their play styles from one year to the next. This meant that no matter how in depth we scouted -- and we have gone much further than any previous games have attempted -- as soon as the season began our playbooks were out of date.
I began a push to upgrade our tech to allow new plays to be added during the season without the need for a patch. We experimented with it a bit last year, but the tech was not fully developed. I am elated to announce that this year our wizard engineers have made this a reality.
For the first time ever, we have the ability to add completely new plays to the game as the season goes on via a roster update. I know this is the home of the Sim basketball fanatics, so I want to make it clear we are not talking about nightly or weekly updates.
We will be tracking the major play trends across the season with our initial focus being on new coaches and new schemes. We will not be adding new freelance offenses. Although, similar to last year, we will add depth to those already included.
You can expect the first major play update about a month into the season as we evaluate what all the new coaches are running, and give them time to settle into their new assignments. Any major coaching or philosophical changes will also be adjusted once a trend has been established.
This is a major shift in the way we publish our play content and will easily give us the most accurate plays available for all current teams throughout the NBA season.
NBA 2K16 allows you to traverse the history of the game with not only historic players, courts, and teams, but also the plays and spacing those teams used at the time.
You can go all the way back to the '60s and find plays those teams actually ran taken from gameplay footage. You can see the origins of the Chin offense with the Celtics and Knicks, and you can run the same sets young Jordan did when he torched the league in '86.
Since our play additions will be fluid, it only made sense to bring back some of our #SimNation loyalists by bringing back their favorite mode. I am happy to announce practice plays have returned. We allow you to practice your plays 5 vs. 5 versus various defenses in the game.
Play-Types are containers that allow us to assign many plays of a certain type to each player on a team. This year we expanded our play-types to further differentiate between the different types of players.
In 2K15 we had these available play-type containers that you could assign to a player:
- Pick & Roll Ball-Handler - Player with the ball during an on-ball screen
- Pick & Roll Screener - Screener who screens the on-ball defender
- Screen mid - Player who runs off of a screen for a mid-range shot
- Screen 3pt - Player who runs off a screen for a 3pt shot
- Cutter - Alley-Oop receiver, a player who runs off of screens headed towards the basket
- Low Post - Post plays on the low block for PFs and Centers
- High Post - High post, offscreen and Isolation plays for PFs and Centers around high post
- Guard Post - Post up plays for Guards and Small Forwards
- Isolation - Isolation plays for guards and forwards
In NBA 2K16 we added the following:
- Pick & Roll Point - This allows you to separate pick and roll plays for point guards or play initiators who normally start a play with the ball in their hands. In previous NBA 2K games, you needed to be a play initiator to run these types of plays.
- Pick & Roll Wing - This allows you to separate plays for wings who you don’t want running the same pick and roll plays as your play initiators.
- Pick and Roll Ball-Handler - If you have a player who you want to be assigned to both types of pick and roll plays, you can still just assign them the pick and roll ball-handler play-type, and they will have both pick & roll point and pick & roll wing plays assigned.
- Handoff - This allows you to assign plays where the ball-handler hands the ball off to a scorer as the final step in the play. Now you don’t have to assign Tony Allen the same mid-range plays you do for a mid-range off-screen shooter just because there are two handoff plays in that group that you want assigned to him.
The plays have been moved back to LB/L1. 2K Smart Play was moved to the D-pad up button to make that possible.
Additionally, we have upgraded our lite play diagram to include a screen icon over the head of any player setting an on-ball screen so you can tell if he's moving to a point on the court or if he's just coming to set a ball screen.
We also included a timing circle surrounding the passing icon above the head of a pass receiver so you know how long you have to make that pass before the branch expires.
One of the most difficult things about making a sports video game is getting your A.I., which thinks in binary ones and zeros, to think and react to situations like a human would. This has been a stumbling block of most A.I. systems.
We came up with a solution we call Situational Awareness Modules. The modules allow us to present the offensive A.I. with a problem or a situation like a pick and roll. We can then give the A.I. basketball-based human solutions to each situation and allow it to actually read the situation and select the best course of action dynamically.
While every situation can’t be covered in a single development cycle, the great thing about modules is once they are built they are easy to add to and expand upon. So over time our situational awareness modules will be able to handle more complex and varied situations all based on real world NBA tactics.
Pick and Roll Module
Along with the improved pick and roll controls covered in earlier blogs, we fully support the new controls with our dynamic pick and roll module. To support the ability to flip a ball screen on command, our pick and roll spacing will also adjust based on the final side the screen is set.
Once a pick and roll was initiated in NBA 2K15, the screener would run to a pre-determined spot on the floor regardless of the defensive coverages and assignments.
In NBA 2K16 we introduce our dynamic pick and roll module. In the module, the roll or fade man will actually attempt to read the defense and stay in the gaps. They won’t always make the perfect read, but they try to stay in line with the ball or go to the most open area. This really opens up our pick and roll game like never before.
The module can also adjust for the user and A.I. rejecting a screen and going the opposite direction.
In addition, we can now adjust our spacing inside of a pick and roll based on ball and player positioning. This means that you can expect a Wing to fill in the backside if the defense looks to rotate and take away the roll man.
A common complaint over the years has been that the A.I. never used all the moves available to users, and stars were too easy to defend.
This year our 1 vs 1 attack module will begin to change that for good in NBA 2K16. The A.I. in NBA 2K16 is no longer simply playing dribble animations.
We taught the A.I. about approach and attack distances. We broke down different defensive positions, what each one attempts to take away and what each covered position opens up.
The A.I. will give you a move, read your response or lack thereof, and make its next decision based on that information. Our goal for this was to make it vastly improved but not perfect so users don’t feel cheated.
One area that I was really looking forward to addressing was our A.I. drive logic.
The A.I. would put its head down and relentlessly drive directly to the rim continuously bumping into the chest of the defender. This happened because our A.I. would pre-determine the depth of its drive prior to even beginning a drive attempt.
For NBA 2K16 we completely re-wrote our Drive Logic to work hand in hand with our 1 vs. 1 attack module. In what will become a common theme, we gave the A.I. fundamental basketball reads on which to base its drive decisions.
The A.I. is aware of pull up, runner/floater, and layup distances. We use a touch down to check down philosophy so it is constantly aware of whether the paint is open or clogged.
We even have the A.I. check for the presence of shot blockers and allow that to play a role in its decision to drive.
This happens for both regular drive attempts and when the A.I. is attacking using a pick and roll. Our A.I. also looks to punish defenders going under screens against guys who can stroke the three.
Scorers like Carmelo force you to guard them all over the floor. In transition, isolation, on the block, and off a screen.
Another area of concern our users really wanted us to address was the ability of our A.I. to recognize and exploit mismatches.
This year we have a situational module that accounts for mismatches. We didn’t want to make it too strong so that actions and plays were constantly breaking. We felt cheesers could use that as a tactic to break up the flow of the A.I.’s offense.
The A.I. is much more aware of mismatches and will call quick actions to immediately take advantage of the larger mismatches as they occur.
Another area of improvement in NBA 2K16 is a new module to handle double teams. This module evaluates ball and player position to run appropriate spacing when a user is trapped in a double team.
We didn’t want to break your offensive flow too early in the cases where a user fakes a double, so we wait to give you enough time to break the pressure yourself and stay in your action. If a double team is unavoidable, your teammates will respond appropriately.
The engine can support custom options for every single freelance offense we have. This first year our focus is on making sure we have enough default coverage for every situation, but it is nice to know that the module has plenty of room to grow.
One of the keys to taking the next step with our freelance engine was to break down the spacing barriers that existed in our previous games.
As a function of the initial design, all perimeter players had to maintain an equal spacing relationship. That distance could vary, but it had to be uniform across all freelance offenses.
This meant that we could not properly replicate all the various nuances of each freelance offense due to the fact that they all required different spacing.
For NBA 2K16, the engine was upgraded to allow for each single set within a freelance offense to have a unique spacial relationship between the players on the floor.
Freelance Evolution Continues
Last year we debuted what we called the Evolution of Freelance Offense. Freelance is a name for the default offense all basketball video games run when the user or A.I. is not calling a play. We also allow further customization of each freelance so each user can choose which flavor of freelance best matches up with their respective play styles.
Users in NBA 2K16 can choose between freelance, motion, and space the floor as options in any of our offenses.
The benefit of our freelance is that users never need to take the time to call a play to get authentic and realistic action.
This year we expanded our freelance offensive selection to include 21 freelance offenses and 8 motion offenses. Every freelance and motion offense in our game can have its own specific early offensive system.
When we announced the freelance offenses last year, I made note of the fact that for year one the freelance offenses were mainly for the user, and that it would take more time before the A.I. could use them as efficiently as a human.
Prior to NBA 2K16 the A.I. could only function with explicit commands. This is one of the reasons for the random quick passes you would see the CPU make when playing NBA 2K15. The CPU had no concrete concept of ball movement outside of defined actions.
For NBA 2K16 we taught the A.I. -- through a ball movement module -- how to play fundamental team basketball.
We gave the A.I. side top side ball movement principals. We also tied tempo into when a team would move from the ball movement module to looking for a scoring opportunity.
Dynamic Decision Points
A bit earlier I mentioned that our new motion system allows us the ability to insert intelligence into any part of our motion system. This was key for NBA 2K16 as we evolved from our play branching tech to dynamic decision points.
Even with the multilevel and multi-threaded branching we had in NBA 2K15, every player, regardless of his abilities, would choose to take the available path in front of him. The branches operated more on opportunity and availability than preference.
In NBA 2K16 at practically any point in a play or freelance action we are able to have the A.I. make a number of situational evaluations. In simple terms the A.I. can ask questions like, "where is my defender? Who are you? And who am I?"
We can use any of a number of logic variables to drive the action. For example, we can pick any three positions on the floor and drive the action based on touches tendency, shot I.Q., Mid range or 3-point shooting ability, defender location, or any of our player archetypes.
In many instances we determine who the alpha scorer is through touches tendency and then make the next decision based on what type of player he is.
If this is a pick and roll player, choose this branch. But if this is a slasher, choose that branch. We also have default branches available in case the chosen player fits none of the filters we have selected for that situation.
You can see the same freelance operate slightly differently depending on the personnel on the floor. I know this is a lot to take in so I will be featuring videos after launch going into detail about specific sets and options.
Adaptive Coaching Engine
What NBA teams do offensively to a large degree is dependent on the situation. Like the time and score as well as the abilities of the players on the floor.
Generally in NBA 2K15 how the A.I. started a game was most likely how it would finish. There was little variation between quarters or teams large enough for users to notice. Advanced users could play a single quarter and pretty much know what needed to be adjusted to change how the A.I. was going to play them.
ACE allows us to set custom known and unknown lineups for each team. In known lineups we specify what three specific players on the floor define a lineup.
For unknown lineups, we can determine what types of players at what positions define a lineup. Some examples are: perimeter shooter, mid-range shooter, shot creator, freelance scorer and freelance creator.
Then we are able to set up a game plan for each lineup for a myriad of situations.
ACE can update the play style for a team every time they are in possession of the ball. This allows for flexible, per possession distribution of the offense.
ACE is able to make fluid tempo adjustments during the course of a game. For the Charlotte Hornets, If a play is called for Kemba Walker we can enable early offense for that possession. However, if the play call is for Al Jefferson, the A.I. can select the walk it up tempo to ensure we get the ball inside.
ACE can allow the A.I. to alternate between set plays and any applicable freelance offense so that play repetition becomes a non-issue.
In prior games a team would run their plays and then their singular freelance offense. A team like the Clippers in NBA 2K16 will run 3 Out 2 In, 3 Out 2 In Motion, 4 Out, 4 Out Motion, and 3 Out 2 In Fist -- in addition to their stacked playbook.
This will all vary based on what lineup is playing, the quarter and score differential.
These are full 48-minute game plans that scale down to shorter quarter lengths. We are able to begin to mimic the nuances of how each NBA team functions with different units on the floor.
If we take the Clippers as an example, Doc traditionally will start games looking to get Redick involved in the offense. So when you play them the first quarter, they will attempt to get Redick going.
They are a transition team however, so if CP3 or Blake gets hot, ACE will detect that and adjust the game plan to direct the offense towards the hot offensive player.
With ACE, depending on each coach's philosophy, each quarter they can attack you differently or maintain the same offensive focus.
ACE is also able to detect crunch time and apply a team-specific game plan based on how teams operate down the stretch.
When you play the Celtics and Isaiah Thomas checks into the game, the Celtics will feature him on offense just like they did last season. They transform from equal opportunity offense to one driven by Isaiah’s ability to create shots for himself and his teammates.
Our ACE engine is easily updateable for quick games. So if a team’s offensive focus changes long enough to establish a trend, the ACE offensive game plan can be updated with the latest roster. We also have default game plans for when a user is deeper in MyLeague or MyGM when no known players are still in the league.
The combination of all the improvements you have read thus far all roll up into ACE to create a unique and dynamic experience that changes with every matchup you face.
Imagine a west coast swing where you will face the Warriors, Rockets, Jazz, and Mavericks all with their own unique game plans, freelance offenses, playbooks, and early offensive systems.
Until next time it’s your man Da_Czar President of the #SimNation reminding you...