Devlog 2 - how programming is integrated into the game
NebuLeet includes two archetypes of pilots:
Mercenary pilots' behavior depends on their stats, level, and personal traits (like Coward). They bring an auto-battler aspect into the game. You build and configure vessels, they do the piloting part.
Although this game can be played without programming, it's an essential feature that can improve the experience and open new possibilities.
A fully automated vessel? Great, that's possible.
A partially automated vessel, where you manually control the other parts? Yes, do it!
Or what about a manually-controlled vessel? You heard it correctly, programming is a way to get an arcade-style or RTS-style control of a unit, just make sure it moves, fires, and rotates in response to your button mashing.
Here is an example of the manual movement control scheme:

These little blocks are called commands. A sequence of commands (from top to bottom) forms a program.
There are several challenges when trying to combine auto-behavior of mercenary pilots and programmable androids. If no good programming is done, mercenaries are much better and require less efforts from the player. But if you create a good algorithm, it can dominate the scene.
And there is also an onboarding aspect of that - programming is harder to get into as you need to learn more mechanics of the game. We can't throw everything the game has onto the player and expect them to figure it out.
Instead, the player starts with a very limited set of commands available to them:

This reduces the cognitive load at the start. It also fixes the problem of overpowered androids in the early-game phase.
All equipment parts (navigation bridges, weapons, artifacts) also have default programs preinstalled. This serves as a programming example for beginners. In addition to that, it makes purchased items useful right away, without any re-configuration. There are multiple preinstalled programs, but only one of them is usually available from the start - the most basic one. This is because the programming commands pool is so limited, nothing fancy can be loaded into device even if it has the program listed.
So how do we unlock new programming commands? This is where software tech tree (ahem, grid) comes into play!

This grid is randomized every time you start a campaign. It consists of "command bundles". The bundles usually contain around 2-3 closely related commands.
You start by selecting a tech tree root - it can be any tile, for free. Then you can move from there by unlocking a tile that is adjacent to any of already unlocked tiles. The price increases every next tile, so prioritization is the key.
Once you unlock a tile, new commands that this tile (command bundle) provides are added to your pool. This means you can create more sophisticated programs on your own or use a more advanced pre-installed program of any given device.
You get Android Evolution Points when android pilots get combat experience. That's it - if there are no androids in your squad, no points are awarded. Both mercenaries and androids have their merits and it can be beneficial to use both, so consider this to be another parameter for optimization.
The potential for coding increases dramatically as you move towards the end-game. You can even encode state machines, but I won't spoil the fun of discovering the solution for you!

I hope this system will make multiple styles of gameplay somewhat balanced: from a full autobattler wth zero or very little programming to a full programming showdown in the style of Carnage Heart.
- Humans with behavior (I'll call them mercenaries for convenience)
- Programmable androids
Mercenary pilots' behavior depends on their stats, level, and personal traits (like Coward). They bring an auto-battler aspect into the game. You build and configure vessels, they do the piloting part.
Although this game can be played without programming, it's an essential feature that can improve the experience and open new possibilities.
A fully automated vessel? Great, that's possible.
A partially automated vessel, where you manually control the other parts? Yes, do it!
Or what about a manually-controlled vessel? You heard it correctly, programming is a way to get an arcade-style or RTS-style control of a unit, just make sure it moves, fires, and rotates in response to your button mashing.
Here is an example of the manual movement control scheme:

These little blocks are called commands. A sequence of commands (from top to bottom) forms a program.
There are several challenges when trying to combine auto-behavior of mercenary pilots and programmable androids. If no good programming is done, mercenaries are much better and require less efforts from the player. But if you create a good algorithm, it can dominate the scene.
And there is also an onboarding aspect of that - programming is harder to get into as you need to learn more mechanics of the game. We can't throw everything the game has onto the player and expect them to figure it out.
Instead, the player starts with a very limited set of commands available to them:

This reduces the cognitive load at the start. It also fixes the problem of overpowered androids in the early-game phase.
All equipment parts (navigation bridges, weapons, artifacts) also have default programs preinstalled. This serves as a programming example for beginners. In addition to that, it makes purchased items useful right away, without any re-configuration. There are multiple preinstalled programs, but only one of them is usually available from the start - the most basic one. This is because the programming commands pool is so limited, nothing fancy can be loaded into device even if it has the program listed.
So how do we unlock new programming commands? This is where software tech tree (ahem, grid) comes into play!

This grid is randomized every time you start a campaign. It consists of "command bundles". The bundles usually contain around 2-3 closely related commands.
You start by selecting a tech tree root - it can be any tile, for free. Then you can move from there by unlocking a tile that is adjacent to any of already unlocked tiles. The price increases every next tile, so prioritization is the key.
Once you unlock a tile, new commands that this tile (command bundle) provides are added to your pool. This means you can create more sophisticated programs on your own or use a more advanced pre-installed program of any given device.
You get Android Evolution Points when android pilots get combat experience. That's it - if there are no androids in your squad, no points are awarded. Both mercenaries and androids have their merits and it can be beneficial to use both, so consider this to be another parameter for optimization.
The potential for coding increases dramatically as you move towards the end-game. You can even encode state machines, but I won't spoil the fun of discovering the solution for you!

I hope this system will make multiple styles of gameplay somewhat balanced: from a full autobattler wth zero or very little programming to a full programming showdown in the style of Carnage Heart.