Nolan, once aboard, decided he needed a writer more familiar with the comic books to work on the script with him, and met with "Dark City" writer David Goyer. The scribe was gearing up to direct "Blade: Trinity," and initially reluctantly turned the offer down, but Nolan convinced him to work on a first draft in the eight weeks he had before heading to the superhero threequel, setting up shop in Nolan's house, as production designer Nathan Crowley worked in the garage (Nolan's wife and producer Emma Thomas gave birth to their eldest son around this time as well). The script, later rewritten by Nolan alone, was enthusiastically received, and it moved on to the casting phase, with a wide-ranging search taking place. Goyer had favored Jake Gyllenhaal from early on, while future Superman Henry Cavill also auditioned. In the end, at least seven actors tested in a serious way including Gyllenhaal, "Almost Famous" lead Billy Crudup, "Dawson's Creek" actor Joshua Jackson, British actor Hugh Dancy (who had recently appeared in "Black Hawk Down"), Eion Bailey from "Fight Club" and "Band Of Brothers," and Cillian Murphy, who'd recently broken out in "28 Days Later." Murphy came close, and Nolan went on to cast him as Dr. Jonathan Crane/The Scarecrow, but it was ultimately Christian Bale who was the runaway choice. While the actor denies reports that he'd auditioned to play Robin in "Batman Forever" back in the day, he had met with Darren Aronofsky about starring in "Batman: Year One" a few years earlier, and had actively pursued the part on hearing that Nolan was on board. The director was won over by Bale's turn in "American Psycho," telling Empire at the time of the film's release: "There was this very edgy, very dangerous set of thoughts going on behind Patrick Bateman’s eyes. And Bruce Wayne has that. He is a very dark character, but ultimately his decision is altruistic: he’ll fight to stop what happened to him happening to other people. He’s this flawed, human, heroic figure being driven by very negative impulses – rage, anger, guilt and fear – but he challenges them into something positive; that’s the essence of what distinguishes Batman from a psychopath.”
As ever, various possibilities were considered for the major supporting parts before Nolan got his cast. For the part of mentor Henri Ducard (who turns out to be villain Ra's Al Ghul), Nolan had early discussions with his "Memento" star Guy Pearce, before the two agreed that the actor was likely too young for the role. An approach was made to Daniel Day-Lewis, and Michael Caine let slip at the time that an offer was made to Viggo Mortensen, before Liam Neeson took the role. As for The Scarecrow, Paul Bettany, Jeremy Davies and Ewan McGregor were reportedly in the running, and future "Doctor Who" Christopher Eccleston apparently came close, until Nolan decided that one of his Batman candidates, Cillian Murphy, had the right eyes for the role. Gary Oldman, meanwhile, was originally approached to play a villain -- most likely Carmine Falcone, later taken by Tom Wilkinson -- as Nolan's intial choice to play Jim Gordon was Oscar-winner Chris Cooper. But the actor turned down the offer, concerned about spending time away from his family, and Oldman got to play the more benevolent part. That said, Dennis Quaid also came very close to the role. There are also reports, though never confirmed, that Anthony Hopkins was offered the part of Alfred before Michael Caine got it, and Claire Danes and Reese Witherspoon were said to be considered to play Rachel Dawes. However, despite some reports, Laurence Fishburne was never considered to be Lucius Fox; the part was written by Goyer specifically for Morgan Freeman.