Game Session: Net.Attack() | Back ⬏

Published: 2026-03-26 - Last Edited: 2026-03-26

I've recently played Net.Attack(), and as an effort to get back into updating the site, I've decided to review it. Net.Attack() is a "bullet heaven" game, if you're unfamiliar with the term, it's a genre popularized (incepted? I'm not sure about that) by the game Vampire Survivors.

I actually like these games. They incentivize creative thinking and build theorizing, and most games in the genre let you come up with incredibly broken characters as a result. You start with a simple auto-firing weapon, and end up shooting a trillion projectiles per second against enemies vastly outnumbering you, I love it. It's like taking the best parts of RPG character building and making that the focus of the game, all the while throwing most limitations of RPGs out of the window.

So, when I first Net.Attack() I was excited. It's a bullet heaven game but you "code" your attacks? That sounded right up my alley. I imagined something like Vampire Survivors + Shenzhen I/O, and I feel like that's the combination the developers were going for as well. With that mental image, and the 40% discount on the steam sale on top of the already low asking price, I bought and played through it over the week.

As you might have guessed from the amount of posts in this blog, I don't review every game I ever play. However, this one made me want to talk about it. It's an interesting game, with unique strengths and weaknesses, especially amongst its peers. Lets start with the presentation.

Presentation

Net.Attack() has a clean, cohesive artstyle. It's very apparent that a lot of thought was put into the presentation. The intro screen, the text-based buttons, the main menu and pretty much all other aspects of the game invoke not necessarily the substance, but the "vibe" of a terminal interface. It's all very "Hack The Planet", with 1337-speak everywhere.

The more "graphical" side of things is also pretty, and again, clean. The angular and vector-art like graphics successfully evoke the feeling of a digital playground, while the cute and colorful designs prevent it from feeling too edgy, or visually uninteresting, like many other games with similar themes of hacking, programming or digital worlds.

Over on the audio front, while the overall sound design is fine, it's unremarkable, and the music leaves a lot to be desired. I've grown tired of the repetitive track over the course of my time with this game, and played mostly while listening to music from elsewhere.

One thing to note about this game presentation is that the epilepsy warning at the intro screen is not a joke. For reasons we'll go over at the gameplay section, things can get quite hectic on your screen. While there is a reduced effects mode in the settings, I've not tested it myself and cannot attest to its effectiveness. Below image is a good representation of what late-game screens start to look like, with screen-covering effects going off all over. So please be aware if it's something that might affect you.

Overall, the presentation is good. The soundscape is the only part of it which I wasn't fully onboard with, however it still isn't bad. Just not at the same level as the other parts of the whole.

Gameplay

People don't play bullet heavens for the art or the music, however, so lets move onto the gameplay. Gameplay is both the strongest part of the game, and the part where the most glaring issues show themselves, so let's take it from the top.

Starting a run is as easy as it can be, select a character, a region and a level within that region and you're good to go. There are a total of 13 characters and 3 regions with 6 levels each. Each level inside a region is unlocked by completing the one that comes before it. At first, 2 of the regions are locked, and they're unlocked by collecting a certain amount of the game's meta-progression currency.

Let's take a moment to talk about the first issue I'd like to mention. 18 levels in 3 regions sound like a lot in a genre where two-to-five levels total looks to be the norm, however that's not the case. The main difference between the levels in a region is a slightly different level geometry and increased difficulty modifiers. The enemy variety stays the same between the levels, and in fact the regions, besides a very few types. Regions don't have any unique modifiers, traits or mechanics attached to them. All of this combined, regions and levels feel more like difficulty options masked as areas, moreso than anything else.

Let's get back to the gameplay. Once you're in a level, your goal is to survive 7 layers. Each layer takes roughly 2 minutes to complete, so a level takes roughly 15-20 minutes to complete when the time to "code" your attacks is taken into account. The gameplay inside the layers are what you would expect from the genre, with waves upon waves of enemies closing in, progressively getting stronger and more varied. There are also "chips" you can destroy by standing over them for a while to gain meta-currency and modifications which you can activate for a buff which comes with a trade-off.

Some enemies drop experience upon death, or power-ups. As you collect these you'll gain character levels, with each level up rewarding you with some currency and an upgrade. The upgrades are also as you'd expect from the genre, you're presented with 3 choices and you have to pick one. As you invest in one upgrade line more, you'll get more powerful effects.

So far, everything is what one would expect from a game in this genre. However, as you might've noticed, I haven't mentioned level ups rewarding the player with weapons, which would be the norm. Instead, Net.Attack()'s selling point is the fact that you "code" your own attacks. You do this by connecting nodes to one another. Each node has one or more input connection ports, none to multiple output ports. Attacks are created via chaining these together. If you have ever used Unreal Engine blueprints, Scratch or even Blender's shader/geometry nodes, this is almost exactly like that.

There are 190 node types, which means there's an endless amount of combinations. This is the main selling point, and the strongest part, of the game. For someone who loves theory-crafting and character building, this game is a gold mine. However, the second issue comes into play here. While it's true that at first it feels like there's an endless amount of builds, you quickly realize that's not true, and the best option always is to pick whatever weapon you want, and stack as many for loops as possible before it, since they're multiplicative.

You see, you can create a truly ridiculous build by just chaining 2-3 attacks into 2-3 for loops which then connect to one final, strong attack. The image above, which I put as an example of the "coding" system, is an example of this. Although that's an end-game example, you can safely remove about 8 nodes from that configuration and still clear entire screens with one attack chain. This not only makes the gameplay too easy (I've cleared the entire game with this strategy) but also makes it annoying to play after about layer 4 or 5 without intentionally sabotaging yourself, because it becomes impossible to see anything like experience or power-up drops. Take a look at the image below, and please note that the monstrosity you're seeing doesn't even use all of the 30 active nodes limit.

The for-loop issue makes all builds same-y, which sucks a lot of the fun out of the game if you're not intentionally, and artificially, limiting yourself. While currency is hard to come by at first, once you get going you're swimming in it and it's not difficult to re-roll your shop options until you get more and more loops. What's baffling about this is that the developers clearly thought about this.

The earlier version of the for-loop node you get modifies the damage of any node that comes after it by 0.4x, that's great! If all similar nodes had similar modifiers, the player could not stack them one after the other without completely destroying their damage output, and would actually need to engage with the mechanics of the "coding" section like branching, clever structuring etc.

There are also smaller issues with the system, like the order of operations sometimes being taken into account, and sometimes not (for example, adding 10 to the damage of a node and then multiplying it by 2 having the same output as multiplying it by 2 and then adding 10, somehow), which do hamper the ability to optimize your code, but the larger issue remains with the loop logic.

These issues did not, however, stop me from completing the game. And I did quite enjoy my time with it. Trying different combinations, and seeing how much more ridiculous I could make my attacks before my laptop started to protest was a fun experience. Given the small asking price, and the novelty of its systems, I think Net.Attack() is worthwhile purchase. I sincerely hope developers will address these issues with time for the game to realize its full potential.

Ahmet Fırat Usta