Despite sticking around for a while, the Knicks were felled by the Bucks on Friday night in Milwaukee.

The hapless Knicks (24–42) went into the Milwaukee Bucks’ (35–31) Bradley Center and lost their sixth game in a row. New York’s feisty young core, led by Tim Hardaway Jr., hung in close before Giannis Antetokounmpo took over in the fourth quarter and shut the Knicks out for good, 120-112. Let’s dive into the action.

Kanter: Mr. Efficient

Enes Kanter has been a productive basketball player lately. For a player as divisive as Kanter, whose deficiencies (defense) always threaten to outweigh his strengths (awkward, gangly buckets down low), it’s not often we get to definitively say that about him.

But he’s playing well. The key? Over the past few weeks, he’s maintained his efficiency despite Kristaps Porzingis‘ injury. After dropping 16 points on 8-of-11 shooting to go along with eight rebounds, Kanter is averaging 15.4 points on 59.4 percent shooting and 12.2 rebounds over the past 10 games. His defense is still bad, but he’s at least trying on that end, and his offense has been good enough to mitigate that.

Related: New York is still losing games to improve their draft prospects, but some of their young pieces—Kanter, Frank Ntilikina, Tim Hardaway Jr., Trey Burke, Emmanuel Mudiay, and Troy Williams—are getting the playing time they need to develop. That’s a win-win for the ‘Bockers.

Giannis unstoppable late

Poor Michael Beasley. With the game in reach for the Knicks in the fourth quarter, Milwaukee absolutely abused the fact that Beasley was on the floor, and gave Giannis the keys to the car. He drove quite effectively.

To be fair, Giannis doesn’t really have a position; he’s an amorphous, explosive freak that goes wherever he wants on the floor, against anyone. But Beasley had no chance against him when Giannis decided to take matters into his own hands. A bruising running hook through the lane was followed by an and-one the very next play against Beasley, who’s not necessarily known for his defense.

Jeff Hornacek immediately subbed Beasley out. Lance Thomas didn’t fare much better. Giannis finished with 28 points, 10 rebounds, five assists, two steals, and two blocks.

Troy Williams heating up

Williams got into a nice rhythm today, an encouraging sign for fans of the 23 year old. He was aggressive off the catch and it really showed.

Williams finished with 18 points on 7-of-14 shooting.

Flashes from Frankie Nicotine

I don’t think Ntilikina’s had an impactful game from start-to-finish yet this season, but every game he’ll pull something new out of nowhere—a defensive stop, a heads-up cut, a clutch three—that makes you wonder exactly where his ceiling is.

Tonight it was a pass. Ntilikina needs to get good at these kinds of probing, shifty drives to make up for his relative lack of a first step. In case you were wondering, I think his ceiling is Indiana/San Antonio George Hill. His floor? Sacramento George Hill.

THJ maturing in the limelight

When Kristaps Porzingis went down, all eyes were on THJ to take the reins on offense. Already a high-volume gunner, often to the detriment of his team, the green light was turned all the way on for THJ.

He responded exactly the way we thought he would: shooting everything he could get his hands on. It wasn’t pretty. But tonight, although his stat line (26 points, 10-of-20 from the floor) looked similar to the output we’ve come to expect from him, he did it within the structure of Hornacek’s offense, and it’s indicative of the way he’s been playing over the past few weeks. Granted, saying Hornacek’s offense has any kind of structure to it is a bit of a misnomer, but still—don’t look now but THJ is starting to pop off in a way that actually resembles “good basketball.”

Check out the Knicks Film School breakdown from Friday night’s loss in Milwaukee: