Home
Feature Article
NBA 2K16 Gameplay Blog With Da_Czar

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.

Playbooks

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.

Historically Correct

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.

Practice Plays

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

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.

Play-Calling

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.

Module Magic

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.

Attack Module

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.

Drive Logic

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.

Mismatches

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.

Double Teams

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.

Dynamic Spacing

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.

Triangle

Princeton

Princeton Chin

3-2 Zone

Freelance Execution

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...

 


NBA 2K16 Videos
Member Comments
# 181 stillfeelme @ 09/06/15 09:40 AM
Quote:
Originally Posted by Da_Czar
Still, I know you guys want to be able to assign this stuff. This year unfortunately I couldn't give up the engineer time I would have needed to do that. It's not a simple adjustment and involves a few diff area's.

I hope to get that in soon. Right now ACE handles the distribution and going along with that.

Currently the ACE game-plans are assigned to teams and not coaches. I know that is not ideal but it's just one of those time and resources things.

So how it works is that I give ACE a selection of the freelances that a particular team should run. And he will switch between them when appropriate as part of the game plan.

As a user you can manually switch to any of them at any time and the switch unlike last year should happen pretty quickly.

There are times when you have to make a pass or two first but most times It happens immediately.
Czar,

Thanks this was tied to the question I asked in the Simnation hangout about what happens when coaches get fired haha because I wanted to basically copy certain coaches strategy. I was either going to move them to my team or copy what they are doing.
 
# 182 Da_Czar @ 09/06/15 09:51 AM
Quote:
Originally Posted by Toaster
So Czar if I understand correctly, teams will utilize the "Walk up the court" animations to force their preferred pace and allow lumbering bigs to join the offense without having to sprint like crazy every possession? Can I expect 90's east teams or the grizzlies for example to try and slow the game to a grind?
That would be awesome!

Seems like you really went ham this year, and I particularly appreciate the effort you go to in explaining the way you address the issues from a more technical point of view.

Bravo! we have really come a long looong way
We have a specific tempo setting called walk it up that is used in ACE. Slower teams use this to try and play to their tempo. They don't always literally walk up the floor but they do play at a reduced tempo. Of course this adjusts if they get behind.

Or some teams second unit plays faster then their first unit. Etc.

We tried to make tempo more apparent through the actual play style. I still think there is more ground to cover with it but it is better than it has ever been.

Just remember ACE adapts per possession so you may not seem them play slow every possession of every game.
 
# 183 Da_Czar @ 09/06/15 09:52 AM
Quote:
Originally Posted by siraulo234
the thing that annoyed me the most in nba 2k15 was extremely poor AI help defense, from watching the videos it appears it's still gonna be bad in nba 2k16
Did you read OG's defensive blog ? If not it might be worth your time. Defender have perceptions so they can be late or miss their assignments all together.

the core help defensive system is better than it has ever been.
 
# 184 Da_Czar @ 09/06/15 09:59 AM
Quote:
Originally Posted by Sundown
Neat. This is something I've been curious for awhile, Da Czar.

Do you code? Or are 2K's tools so well developed that they allow a designer to craft complex basketball logic and court awareness without coding? Or do you direct an AI coder in crafting the behavior you want?
I know enough to be dangerous I read code much better than I write but my engineer is SUPER DOPE. So since I think like an engineer in some respects we have a nice middle ground where he develops the tools to give me as much creative freedom as possible and I am able to do some minor things in code so that he does not have to make everything super dummy proof and that saves him time.

That relationship is so critical to getting things correct because as you know the engineer has the final call. So sometimes, nay, MOST TIMES the most creative thing does not make for the most efficient code. LOL.

So he has to trust you and you have to trust him.
 
# 185 Toaster @ 09/06/15 10:00 AM
Quote:
Originally Posted by Da_Czar
We have a specific tempo setting called walk it up that is used in ACE. Slower teams use this to try and play to their tempo. They don't always literally walk up the floor but they do play at a reduced tempo. Of course this adjusts if they get behind

Or some teams second unit plays faster then their first unit. Etc.

PWAAAISE THE LAWD!!

Great news. obviously things will not be perfect, but it sounds like big strides are being made in almost every direction, and I know that the first time I see an A.I. PG walk it up will put a massive smile on my face. My hype-meter has gone through the roof these past two weeks.
 
# 186 Da_Czar @ 09/06/15 10:05 AM
Quote:
Originally Posted by stillfeelme
Czar,

Thanks this was tied to the question I asked in the Simnation hangout about what happens when coaches get fired haha because I wanted to basically copy certain coaches strategy. I was either going to move them to my team or copy what they are doing.
Yea man as we are working we still think like community guys so we know immediately what the next questions or desires are going to be.

If you recall what guys were asking for last year after the game shipped you should find a very high percentage of those things in these blogs.

We just have to do it step by step but as you know were always around and listening even if we are not responding.

Also apologies about the typos gents this treadmill is hell on my spelling. If you posted questions earlier I am making my way through the thread so just hang on. Will probably hop back on this evening/ afternoon as well.
 
# 187 kevmasood @ 09/06/15 10:06 AM
Quote:
Originally Posted by The 24th Letter
Czar over there talking about "nothing major"...see if we ever believe you again fam, lol

That A.I though....triple threat? Quick first step? Pull ups?

Come on man....




Sent from my iPhone using Tapatalk
This how i felt, when these BOMBS DROP, sept 4th, with the news, that my
favorite mode is back, #PracticePlayMode im estactic, cant wait to get back in tha lab, I spent plenty hours in there. Just wanted to say, I dont think we
as a whole #SimNation should take this mode for GRANTED, i know this was a big decision IF or Not to bring it Back ! Its a list 2K go by, SHOUT OUT to Leftosa for that input !

But with your Blog #Prez it only makes sence to bring it back, Its two much going on, ALL NEW PLAYBOOKS, 21 Freelances, 8 motion, THAT IS A LOT OF WORK in ONE DEV CYCLE, Looking foward to the proper vids for imformation
to get started on the new game year.
THANK YOU, MY DUDE @Da_Czar and thanks for them SHOUT OUTS on the podcast. I just smiled ! #SimNation !!!!!!
 
# 188 Vni @ 09/06/15 10:06 AM
Quote:
Originally Posted by Da_Czar
I know enough to be dangerous
Spoiler
 
# 189 stillfeelme @ 09/06/15 10:26 AM
Quote:
Originally Posted by Da_Czar
Yea man as we are working we still think like community guys so we know immediately what the next questions or desires are going to be.

If you recall what guys were asking for last year after the game shipped you should find a very high percentage of those things in these blogs.

We just have to do it step by step but as you know were always around and listening even if we are not responding.

Also apologies about the typos gents this treadmill is hell on my spelling. If you posted questions earlier I am making my way through the thread so just hang on. Will probably hop back on this evening/ afternoon as well.

Yeah these 3 blogs addressed almost everything I asked for in a wishlist thread topic I typed so good looking out on taking the gameplay to a whole realistic level, that I don't know we have seen in any sport.

My last question I have is ACE running for human controlled team when in "Auto settings"?

I am thinking more for any matchups or pick and roll settings? I was just thinking if I pick the Bulls to control are they setup to defend the Pick and roll from default by ACE?
 
# 190 WTF @ 09/06/15 10:44 AM
Quote:
Originally Posted by Da_Czar
Unfortunately we do not currently have a solution to this Mark. . That is obviously the issue when you start updating things along with the season.

The other part of that is what about the guy who simmed 2 years in future by the time that coach was fired.

Yea we have to put all the big brain boov's on that one.
We boov's LOVE new Blogs
 
# 191 Da_Czar @ 09/06/15 10:51 AM
Quote:
Originally Posted by stillfeelme
Yeah these 3 blogs addressed almost everything I asked for in a wishlist thread topic I typed so good looking out on taking the gameplay to a whole realistic level, that I don't know we have seen in any sport.

My last question I have is ACE running for human controlled team when in "Auto settings"?

I am thinking more for any matchups or pick and roll settings? I was just thinking if I pick the Bulls to control are they setup to defend the Pick and roll from default by ACE?

There is a new setting turned on by default called coach AI adjustments. With this on ACE will handle offensive and defensive adjustments for you.
 
# 192 stillfeelme @ 09/06/15 11:03 AM
Quote:
Originally Posted by Da_Czar
There is a new setting turned on by default called coach AI adjustments. With this on ACE will handle offensive and defensive adjustments for you.
Thank that is exactly what how I hoped it would be,man yall are on point this year shot out to the devs and the engineers that keep the computers putin lol
 
# 193 eko718 @ 09/06/15 11:12 AM
Hey Czar, is there a split pick and roll/ split double team animation?
 
# 194 Taer @ 09/06/15 11:14 AM
Quote:
Originally Posted by Da_Czar
Yes, last year we were not sold on forcing users into a particular offensive scheme especially something advanced like the triangle etc.

This year we turned it all on for my career. I do still think user can opt out but i am not certain.
Thanks for addressing this upfront. Consistency between modes is something that is sexy good and the more Simconsistency there is the better.

The direction of Pro/Default being set up for casual and the AllStar/SuperStar levels being tuned for Simheads (as ScotOG said in the other blog) is exactly the direction I and my friends were rooting for. Thank you.


One question many must have tho: What does Hall of Fame represent if Pro is casual and Allstar/Superstar is sim? Just curious if this can be stated so everyone knows upfront.
 
# 195 Bexthelegend @ 09/06/15 11:19 AM
Czar how do tendencies affect how the CPU attacks off the pick and roll. Will a pg always take an open mid range jumper if it's theres space off the pick and roll? Will a big do it as well? How much of a part do tendecies play in the pick and roll vs the computer just reacting to the defense? Are there specific pick and roll tendencies?
 
# 196 Mickeyknoxx @ 09/06/15 11:46 AM
Hey Czar, really nice job.

Can you talk a little about Fouls and Turnovers ? I mean, Are we going to get good sim numbers next to real life numbers ? More offensive fouls, traveling calls, more fouls off ball ? Reading about the new AI, are we going to get more animations of bad passes, errors of communication. I mean, the guy passes and the receiver goes first and the balls goes out of bounds, you know, some bad timing. I know we had this on 2k15, but they seen random and not so organic.

Thanks a lot for your effort and all the dev team. Talking form Brasil. Pre Order made today for PC.
 
# 197 phenom2311 @ 09/06/15 12:05 PM
Quote:
Originally Posted by rafaelpaolo84
Haha thanks man, def not meant to derail the thread or anything, just that I've been watching these vids again and again and noticed it. And it might have already been talked about when the pics and vids started coming out, but I haven't been in the 2K boards in years.

Anyway looks like 2K has done a great job with some of the upper body scanning this year, hopefully they can match with the lower bodies for 17.
Yeah, unfortunately I think we're going to have to endure one more season of cankles/overly thick legs. Hopefully 2K16 will be the last game this is an issue... Please let it be the last lol (just don't get how it's been an issue this long), everything else is so good!
 
# 198 Crunky @ 09/06/15 12:14 PM
Its awesome that they listen to our ideas and wishes. NBA 2k16 is shaping up to be the GOAT I never been this hyped to play a video game.
 
# 199 jfsolo @ 09/06/15 12:21 PM
Quote:
Or some teams second unit plays faster then their first unit
This is too good.
 
# 200 Crunky @ 09/06/15 12:22 PM
Czar I've got a NBA 2k17 wishlist done with 100 ideas for Gameplay/Presentation/Living Worlds/Little Things and Misc? I don't know if I should post it or pm you. I'm dedicated to help you guys continue to blur the lines of fiction from reality.
 


Post A Comment
Only OS members can post comments
Please login or register to post a comment.