There's plenty of brownfield sites in London, the problem is they just build 'luxury apartments' for Russian oligarchs or Arab sheiks because there's no legal impetus or regulation to ensure they are for the average London worker. You only have to look at the big development sites for 5mins to see what wasted opportunities they are. Try Battersea for the obvious one, that's 20,000 homes up the spout. Totally pointless. Or Royal Wharf, that's nearly 4,000 homes. That's just off the top of my head.
This is why I disagree vehemently with anyone simply suggesting 'build more' to solve the crisis. There's no point building more when (a) they are all 'luxury' apartments and priced as such or (b) if they are anywhere remotely affordable then they are bought up by aforementioned oligarchs or sheiks. Or worse, landlords.
Location affects the price significantly though - whether you want to call them "luxury" or not, if you build in a desirable area then lots of people will compete to purchase those, a developer isn't going to want to sell at some huge discount.
You could try to force a discount for some limited supply of them - some sort of social housing allocation with some criteria for who can buy - lived in the areas for X years as a local council taxpayer or works as a key worker + some max income requirements - maybe then you have some select group of people earning say between 40-60k or some couple with smaller individual but larger joint incomes who can buy a property etc... you've still got an intractable problem with desirable area and supply - even if your allocation isn't purely on price you might have some huge demand for such properties and have them snapped up as soon as put on sale or you might need a lottery system or you might have just restricted your allocation to such a small subset of people that they sell steadily over time but aren't really available to all the others who would love to live there but aren't eligible.
Either way a desirable area in a place like London is going to be oversubscribed whether you allocate properties by price or you thrown in some criteria to filter people and allocate to some subset you're still going to have people who lose out.