In the scene when Jim (Christian Bale) and Mike ('Freddie Rodriguez') visit Darrell (Terry Crews), after shooting the scripted material, they found they still had the location for two hours, so they began to improvise. They ended up with a thirty minute scene of the three of them talking about their lives in-character. According to Christian Bale, it was one of the funniest experiences of his career.
According to David Ayer, the script for Harsh Times (2005) was written in 1996. He wrote this script shortly after he wrote the script for Training Day (2001), which was completed a year earlier. The script is semi-autobiographical and is based on his own experiences. Like the character of Jim (Christian Bale), Ayer grew up in South Central LA, and joined the military. Upon returning to LA, he too found himself drifting into petty crime, and hanging out with his friend all day. He was able to pull his life together however, but some of his friends were unable to do so. As such, the character of Jim is a composite of both Ayer and a number of people he knew.
David Ayer first met Christian Bale when Bale auditioned for Training Day (2001), for the role that ultimately went to Ethan Hawke. Ayer liked Bale's intensity, and gave him the 'Harsh Times' script. Bale loved it, and Ayer promised him that if the movie was ever made, he could play Jim. When the movie went into production, Ayer kept his promise.
Christian Bale spent three weeks with gang members, police officers, ex-soldiers and Homeland Security agents prior to the commencement of shooting. Bale originally wanted to do a full Ranger's School course, which takes eight weeks, and has a 70% drop out rate, but the shooting schedule wouldn't afford him enough time, so he was given a crash course over a week instead.