A technical dive into JDM: Japanese Drift Master

May 23, 2025

14 min read

Introduction

There is a new kid on the block – 2025 seems to be a year of independent racing games set in Japan, and now, nearly two years after the first public demo, JDM: Japanese Drift Master released on May 21st:

My Tokyo Xtreme Racer analysis from a few months ago was received well, and so a few days ago I was given a review key for JDM, so I could look into it and share my thoughts. With both games revolving around the Japanese car culture, and both running on Unreal Engine 5.4, comparisons are to be expected.

I spent the past several days playing the game, tinkering with settings, reporting bugs, running benchmarks, and simply cruising around. In this review, I’m focusing on the technical experience, scalability, options, and performance. Are you interested in this game but are on the fence due to your PC specs? Do you have doubts about some of its technical aspects? Or maybe you want to see how it progressed from the 2023 demo? My findings may help you make a decision.

What is Japanese Drift Master about anyway?

If you’d rather jump to reading the technical overview of the game right away, go ahead and skip to The technicalities.

If you’re not following this particular sub-genre of racing games closely, you may not have heard of Japanese Drift Master earlier. JDM is an open-world, story-driven racing game set in Guntama, a fictional mountainous region of Japan that focuses but doesn’t limit itself to drifting. Sounds familiar? Parallels to media like Initial D aren’t a coincidence – the game tells its story through manga comics, drawing clear inspirations from this cult Japanese manga.

Right from the get-go, the game puts you in a drift spec Nissan Silvia S15, and from the very first moment, it’s clear that the focus is on drifting. After a brief intro limiting the player to a predefined course, we are thrown into the open world and given the chance to buy and tune their car. From there, the game opens up and the player may either concentrate on going through the races or just forget it and cruise on the winding Japanese roads.

Before now, the game first had a proof-of-concept demo released back in mid-2023, followed by a prologue approximately a year later, in mid-2024. They both were generally well received, although they pale in comparison to the current state of the game – those older previews, especially the first demo, had a bit of a “default Unreal game” feel to them, but now it’s all gone. It’s immediately noticeable that a lot of work was put into making the game look and play like a fully featured product. This is further emphasized by the fact the two preview versions ran on Unreal Engine 4, while the final game runs on Unreal Engine 5 – if you feel like the following screenshots look a generation apart, that’s because they are.

The first demo looked nice already, but was… very dark, for some reason.
“Rise of the Scorpion” looked closer to the final game, but that’s still not it. Showed a lot of ghosting too.
The full release looks great even if you cannot “afford” to enable ray-tracing.

When I wasn’t gathering data for the review, I loved my time with JDM. I played through two of the five chapters available to reviewers, during which I raced in numerous drift and grip events, and explored the map quite a bit. With JDM’s starter selection of 27 cars (to be expanded later), 7 radio stations, and tons of visual and mechanical tuning options, this might just be my favorite racing game of 2025 so far. It hits all the notes that made Test Drive Unlimited great, albeit without supercars – the cars I got to drive feel uniquely mine, and I had to earn the right to get them. Or, true to TDU’s spirit, I could just take any car for a test drive and trash it around those narrow, twisty roads.

I know it’s not exclusive to that one franchise, but when I see a game that lets me roll the windows down and listen to the engine sounds, I think “Test Drive Unlimited”.

Full disclosure – at the moment, this feature (rolling down windows) doesn’t work correctly as the action is not bound to the keyboard. I reported this to the developers.

The technicalities

Japanese Drift Master is cool, but does it work well? I’ll try to answer that based on my expertise and the data I gathered while playing the pre-release versions 1.0.17.1 and 1.0.21.1, as well as a release build 1.1.40.1. The game updated ahead of its launch, but most of my observations still apply to the current public build.

Game engine and system requirements

The final version of JDM runs on Unreal Engine 5.4, which is the same UE version as Tokyo Xtreme Racer. Unlike that game, my rig partially falls under the minimum requirements – they list an Intel Core i5-9400F and an NVIDIA GeForce GTX 1660, while I still use an Intel Core i9-12900K with my NVIDIA GeForce GTX 1070. On the CPU front I am set, sitting well above even the recommended specs, but this GPU is pushing it – as the GeForce GTX 16 series is a slightly downgraded 20 series, a 10 series card is under the minimum requirements.

Thankfully, my experience wasn’t all that miserable. In this case, I opted to go for the highest details I could get reasonably stable 60 FPS on, which the game was hitting most of the time, but not always. For this review, my settings of choice are:

For Shadows, I additionally tweaked my settings with a script, but I’ll elaborate on that later in a separate subsection. The script changes I made in the pre-release version are now mostly reflected in the current public build, so ironically enough, they made my pre-release screenshots look more like the build you’ll be playing.

All screenshots in this post are taken at these detail settings unless stated otherwise.

Starting with some negatives:

In-game graphics options

On the surface, Japanese Drift Master has a standard set of UE5 graphical options and upscalers:

Graphics presets

JDM comes with a set of 5 presets: Low, Medium, High, High Plus, and Ultra. From my observations, High Plus is close to default UE5’s High preset, while High slightly scales back compared to the default, for example by deactivating Lumen. Presets are independent of the resolution scaling, so for my comparisons, I settled on the highest available resolution scaling option in the review build, TSR Quality.

The presets look as follows. Click on the images to open them full screen:

Low
Medium
High
High Plus
Ultra
Low
Medium
High
High Plus
Ultra

Resolution upscaling options

JDM comes with a standard selection of up-to-date upscalers:

Curiously, DLSS is selectable even on hardware that isn’t supposed to support it – in this case, Unreal falls back to TSR.

All upscalers share the same set of presets:

The review build I tested lacked the Native scaling option, so all my testing was done on TSR Quality. Native was added just before the public launch – it’s way too much for my GTX 1070, but players using more modern GPUs might be up for it.

Individual options and the effects of Lumen

I won’t be comparing every single graphics option in the game, as this time there are too many of them, so I encourage you to experiment if you need to reclaim some performance from your game. That said, there are a few outliers I would like to cover.


Regarding the usage of Lumen, I’m satisfied with JDM’s direction – ray-traced Global Illumination improves the game’s visuals drastically, but they’ve also been obviously crafted with screen-space effects in mind. Lower details look worse, but they don’t look bad or incomplete.

Global Illumination, Reflections - High, Shadows - Medium
Global Illumination, Reflections, Shadows - High Plus

Naturally, ray-traced effects require considerable horsepower and even powerful GPUs might struggle to maintain high frame rates at higher resolutions, which is why many modern Unreal Engine 5 games (including this one) enable resolution scaling by default. It’s up to you to decide if you wish to deal with this in return for more natural lighting and reflections.

Benchmarks

Is benchmarking the game on a GPU under the minimum requirements a sensible idea? Probably not, but I believe it can still help – because realistically speaking, those values can be treated as an absolute baseline showing that the game will perform at least this well on supported hardware. I suspect the relative performance between presets might be similar on more powerful hardware too.

I ran all the benchmarks on a pre-release version 1.0.17.1, running at 1920x1080 with TSR Quality – as of the time of writing this review, the public version 1.1.40.1 has performance figures within the margin of error compared to my earlier samples. In all those benchmarks, I started the game around noon, in the first garage the player gains access to, then I turned right and continued driving along the road for the entire duration of that 30-second benchmark.

As with Tokyo Xtreme Racer, I also benchmarked the two highest detail presets with Global Illumination set to High, to disable Lumen. Whether you need performance or simply don’t want your GPU to heat up too much, it’s an option worth exploring.

Personally, I consider those results satisfactory. Considering those benchmarks are done on a 2016 GPU that is under the minimum requirements, the fact the game is evidently playable on Medium details is a pleasant surprise. With lower-spec PCs I imagine some CPU bottlenecks may start appearing, but due to the obvious imbalance of my home setup, I am not able to pinpoint those effectively.

Steam Deck

I also tested the game on my LCD Steam Deck for some time. The experience isn’t ideal, but it works. I tried the game on Medium details with TSR Balanced, but the Deck cannot sustain a stable 30 FPS at these details, even if at first glance it seems that it can. On Low with TSR Balanced, the framerate oscillates between 30 and 40 FPS, so locking the game to 30 FPS is reasonable.

At first glance, the game runs fine on Medium, but frame drops show up very quickly.
On Low details, the experience is much smoother. Add a 30 FPS limiter and you should be fine.

The good:

The bad:

Overall, do I think it’s a good experience on Deck? Definitely not if you plan to play on the go due to the extreme battery drain, but if you play at home or docked, you can have some fun. It’s not an optimal way to play JDM, though.

Unreal Engine bugs, in my game?

Can my blog post be complete without highlighting obscure bugs? Of course not 🙃

While tailoring the settings to my liking I noticed that my game was annoyingly dark. I narrowed it down to the Shadows Detail setting – on High, the game is properly bright, but that setting is too much for my GPU. On Medium, I have good performance, but everything is dark.

Medium Shadows
High Shadows
Medium Shadows
High Shadows

Lowering Shadows details lowers their draw distance, and so lights draw at a lower distance too – this makes sense. However, they clearly shouldn’t be dimmer even at a close range! For this, I could leverage the fact that JDM uses Unreal Engine 5, and dive into the code directly.

The light draw distance is controlled by a r.LightMaxDrawDistanceScale cvar. Medium Shadows set this value to 0.5, while High and above leave it at the default 1.0. This value is then used to calculate the final brightness of the light source in GetLightFadeFactor (comments added by me)

float GetLightFadeFactor(const FSceneView& View, const FLightSceneProxy* Proxy)
{
  FSphere Bounds = Proxy->GetBoundingSphere();

  const float DistanceSquared = (Bounds.Center - View.ViewMatrices.GetViewOrigin()).SizeSquared();
  extern float GMinScreenRadiusForLights;
  float SizeFade = FMath::Square(FMath::Min(0.0002f, GMinScreenRadiusForLights / Bounds.W) * View.LODDistanceFactor) * DistanceSquared;
  SizeFade = FMath::Clamp(6.0f - 6.0f * SizeFade, 0.0f, 1.0f);

  extern float GLightMaxDrawDistanceScale; // r.LightMaxDrawDistanceScale
  float MaxDist = Proxy->GetMaxDrawDistance() * GLightMaxDrawDistanceScale; // Max distance is decreased
  float Range = Proxy->GetFadeRange(); // Fade range is not
  float DistanceFade = MaxDist ? (MaxDist - FMath::Sqrt(DistanceSquared)) / Range : 1.0f; // Does this make sense??
  DistanceFade = FMath::Clamp(DistanceFade, 0.0f, 1.0f);
  return SizeFade * DistanceFade;
}

Do you see something wrong? FadeRange and MaxDist are both configurable per-light, yet only one of them is decreased as details decrease. As FadeRange indicates the area where the light should start fading down to zero intensity, this creates a noticeable problem – in an extreme case, where an artist sets FadeRange and MaxDist to equal values as they want the light to fade from 100% to 0% smoothly throughout its entire draw distance, this will cap the light at 50% intensity! I believe this is exactly what’s happening in JDM.

Funny enough, in Unreal Engine 5.5, Epic noticed this issue, and then… left it as-is to preserve “legacy behavior”.

// NOTE: Feels like we should scale fade range by GLightMaxDrawDistanceScale as well, but would change legacy behavior
float Range = Proxy->GetFadeRange();

Clearly, they haven’t thought of a case like this, where the “legacy behavior” is undesirable and visually broken.

As usual, the fix is trivial - simply scale Range by GLightMaxDrawDistanceScale, and the bug should be resolved! I reported this issue to JDM devs and it has been acknowledged, and might potentially be fixed in the future. I might also report this issue to Epic directly and showcase that their insistence on preserving the wrong behavior hurts games that don’t expect it.

What’s next for JDM?

The developers of Japanese Drift Master have published a roadmap for the next 9 months, promising more cars, features, and bug fixes. I enjoy the game in its current iteration a lot already, but there are a few technical things I’d like to see addressed:

  1. Resolution scaling should be exposed as a slider, not only presets. This is what Tokyo Xtreme Racer does, and everyone is happy.
  2. A lot of folks, myself included, end up accidentally running out of VRAM when ramping up the settings too high. A VRAM usage indicator in the menus would be nice.
  3. With some tweaks, JDM could be a great Deck-ready game. I hope the promised performance updates deliver on that.

Personally, I’m glad to see a brand new contender in the racing games scene that is ambitious and (mostly) delivers on the promise, and on top of everything, it comes from my home country 🙃 Happy drifting!

Share
Category Articles