Nothing ruins a first impression quite like a game crashing the first time you start it. That was my introduction to Milanoir, a 70’s inspired 2D top-down cover-based shooter. Not only is the game buggy, it’s also haphazardly frustrating with its finicky controls, unforgiving checkpoints, and enemy placement that feels entirely unbalanced.

You move around the screen with the left stick and use the right stick to move a reticle around independently. Even with the options to adjust the sensitivity and lock-on, it’s a nightmare trying to get your reticle onto an enemy or trying to pull it away. You’ll often find yourself in the pause menu changing the lock-on depending on how many foes have been copy-pasted on screen at once.

Getting into cover can also be overly complicated. Crouching behind an object and leaping over that object share the same button. It’s easy to leap into oncoming fire when you’re trying to do just the opposite. The game is also really picky as to whether or not you can get shot while behind cover. If you’re slightly away from cover, or if you have a pixel jutting out of it ever slightly, you risk getting shot. Enemies can also shoot you from weird angles while you’re in cover, even if you can’t shoot them.

Checkpoints take you back to the start of whatever segment you’re in. Sometimes this feels very generous, other times it’s maddeningly punishing. Driving sections and boss battles are often long, and if you die, you usually have to start the entire segment all over. If there is a cutscene that plays out before a section, you will see that cutscene again for every time you die.

These pains aren’t aided at all by the persistent bugs that plague Milanoir. In a particular late-game fight, the boss just sometimes disappeared. I was often left to run around the arena, trying to get it to come back from whatever void it went off to. Frequently, I was faced with a glitch where I’d just walk in place indefinitely trying to crouch into cover, making the cover-based system even more of a nuisance.

What I can say about Milanoir is that it pulls off the 70’s-crime-film aesthetic well. The music is appropriately funky, landing a hit with the revolver upgrade satisfyingly turns the screen technicolor for a brief moment, and some of the background sprite work is genuinely gorgeous. The character sprites, however, are less than impressive. Everyone looks like sentient rectangles, and many characters look like pallet-swaps of each other. The story is disappointing as well, with dialogue so childishly vulgar it’s like reading the fan fiction of a preteen entering an angst phase.

Speaking of angst, Milanoir’s tone is all over the place. One minute you witness literal toilet humor, the next you murder a child. The main character, Piero, is intensely unlikable, with the game even acknowledging that he’s a maniac. Unfortunately, Milanoir doesn’t make a point of this, and it still presents Piero as some sort of cool guy who looks down his sunglasses and spouts one-liners during his exploits.

If you manage to make it through the story mode, there’s not much else to keep you coming back. There is an arena mode where you and another player can fight through waves of enemies, but there isn’t a whole lot of depth to the gameplay. With a single weapon, only a few different items to use, and a small handful of enemy types to fight off, you’re going to find yourself bored of it almost immediately.

Milanoir captures the essence of 70’s gangster films well, but it’s all style and no substance. The writing is juvenile, the difficulty ramp is ridiculous, and the persistent glitches sour the whole experience. If you’re someone who seeks accomplishment in conquering an absolutely brutal challenge, you might find some enjoyment here. Otherwise, there isn’t a whole lot else to get out of this game.