HaсK [C]omplete - NieR:Automata hacking minigame in Babylon

Hello everyone,

Today - 16 September 2026 - this project turns one year old. I built it almost entirely alone.

I’m a huge fan of NieR: Automata, and while playing its hacking mini-games, I often thought about creating something similar for the browser.

I was already familiar with WebGL and had mostly worked with Three.js, but I didn’t rush into a decision; instead, I researched other available 3D engines for the browser.

My main concern was whether it was even possible to connect a gamepad to a browser-based game. I discovered that Babylon supports this feature, and since nothing else was a deal-breaker, I simply chose that engine and got to work.

As I explored it, the capabilities of this BROWSE ENGINE really impressed me: it features built-in rendering pipelines, custom post-processing (you can use any manually written shader as a post-process effect), and highlight/glow layers - but the audio engine’s capabilities surprised me the most.

Once I realized all this, the project evolved from a simple sandbox with a couple of dozen levels into something much more ambitious (though, at that stage, only in my head :sweat_smile:).

Here’s a small showcase of one of the chapters:

Now, about the HaсK [C]omplete itself:

The game consists of 10 chapters. The first five were adapted from the original NieR: Automata, as I was still learning the engine and figuring out how to build levels using a simple “config” system rather than hard-coding everything - allowing me to easily adjust lighting, shadows, and the placement of enemies, walls, and so on. Once those five chapters were complete, I began working on Chapter 6, where I wanted to try something entirely new: the level structures were inspired not only by NieR: Automata but also by earlier titles in the NieR and Drakengard universes:

Chapter I – inspired by NieR: Automata

Chapter II – inspired by NieR Replicant

Chapter III – inspired by Drakengard 3

Chapter IV – inspired by Drakengard 2

Chapter V – inspired by Drakengard 1

In these chapters, I aimed to make the most of the engine’s features to demonstrate its power and flexibility:

Music

Rather than just background audio playing throughout the chapter, the music acts as a gameplay element where layers (stems) switch based on the game phase (I tried to replicate the sound design of the original games).

Here is a showcase of the music system:

Camera

The camera isn’t static; the angle shifts depending on the game phase. I also utilized both perspective and orthographic cameras at times.

Split-screen

The screen splits in half (vertically or horizontally), and the player controls two characters simultaneously. While these levels are often symmetrical, some require real effort to beat :grin:.

Split-screen showcase:

Game clock control

In some stages, enemies can speed up their own behavior or slow down the player’s actions.

Links

Honesty after one year solo

This is an early demo: playable, but several systems were written stage-by-stage.

Yes, after a year, I’m a bit worn out by the project - not all the systems were working quite as perfectly as I’d hoped, and that constant “struggle” took its toll. Now, I’m taking a well-deserved break. :grin:

Players: packaged Electron can crash (0xC0000005) when a stage loads or restarts. The window auto-reloads; that is not a real fix. Browser / Docker web builds are the stable way to play.

Code (TODO.md): enemy spawn/damage/death is still type-switches; VFX each invent their own IEffect; walls and plane/cylinder/sphere math are duplicated; menu input is copied across hooks; Cannon → Havok is only an evaluation, not done.

The look, audio, and levels got the obsession. The architecture is still a prototype in places.

Happy to answer questions - and thanks for Babylon.js.

11 Likes

I just tried it in Jolt, impressive! Great music, super polished. Reminds me of Ikaruga between the colors and the bullet hell, which I loved.

One thing playing with keyboard and mouse, it’s really hard to aim the ship because I didn’t see the mouse cursor anywhere, not sure if that’s expected, but if not, seeing the cursor or some type of aiming help would be great.

Again, congrats, this is amazingly well executed at all levels (even the start screen with the controls looks soooooo pretty!).

2 Likes

Thanks for the feedback. Yes, the keyboard-and-mouse controls were originally designed so that the cursor was visible and the player rotated to face it. However, at one point, I had a sudden change of heart; it seemed to me that aiming a cursor at an enemy was significantly easier than pointing a controller stick at one (due to human error :grin:), so I decided to implement the mouse controls the way they are now.
That said, I could certainly expose two settings: mouse sensitivity and aiming mode (cursor-based vs. mouse-movement-based). I’ll look into that possibility :blush:

2 Likes

I love the look and sound design!

Ill have to check this out after work.

Why is it a 415 mb download o_O

It mostly sounds / music layers :smiley: