linleyh / liberation-circuit

Trapped in a hostile computer system, you must make a way out - RTS/coding game
GNU General Public License v3.0
382 stars 40 forks source link

[Suggestion] Create sandbox modus to play with coding #14

Open rHermes opened 7 years ago

rHermes commented 7 years ago

I don't know about others, but for me the most exciting feature of this game is the aspect of being able to automate my "fleet". It is however a little bothersome to play around with the automation part of the game right now, I currently start a custom game and don't bother with the second player, but there are some annoyances with this:

So I would like to make a suggestion for a sandbox mode. Some of the features I can think of off the top of my head is:

My field isen't in game programming, so I wouldn't know how hard it would be to implement some of these, but I would imagen that some of them would be fairly low effort. I will try to help out in any way I can!

linleyh commented 7 years ago

Thanks for the feedback!

templates still has to be loaded for the second player

You can automate this to some extent using init.txt - you can use the "template" command to automatically load files into each player's templates (this is already done for player 0, which is why player 0's templates are loaded each time you start the game). There are instructions in init.txt.

time runs out there are limited resources

Yes, it would be useful to add a sandbox mode with non-depleting data wells and no time limit.

The lack of a "delete" button makes it so that beginners like me has to go out of the game and start it again, if we have made structural changes to the process and haven't implemented a self destruct mechanism.

There's no specific "delete" button, although the autocoder will add a (currently undocumented) self-destruct command to autocoded processes - select a process then control-click on it, then after it asks for confirmation control-click on it again.

You can also destroy all processes of a particular template by adding: terminate; near the start of the code, and recompiling.

The ability to spawn any process instantly The ability to spawn projectiles The ability to despawn enemy and friendly processes

These would be possible, although as with many things the most difficult part would be integrating them into the user interface. Maybe if I just added them as keyboard commands to the sandbox mode...

The ability to spawn wells

This is more difficult, because of the way wells are baked in to the level data at an early stage.

The ability to save and load scenarios, meaning that if you want to improve your process in a specific situation, you could set it up as you wanted, save it and then when you see how it fared, load the setup.

You can do this to some extent with the init.txt template command, but it's not ideal. I had a similar system in Invincible Countermeasure (gamefiles) and it shouldn't be too hard to add here. I'll think about it :)

rHermes commented 7 years ago

You can automate this to some extent using init.txt - you can use the "template" command to automatically load files into each player's templates (this is already done for player 0, which is why player 0's templates are loaded each time you start the game). There are instructions in init.txt.

Facepalm. I should really think a little harder before suggesting these things, I've actually read that part of the init.txt file several times, but it slipped my mind when I wrote this.

You can also destroy all processes of a particular template by adding: terminate; near the start of the code, and recompiling.

Facepalm, AGAIN. How did I not think about this?

These would be possible, although as with many things the most difficult part would be integrating them into the user interface. Maybe if I just added them as keyboard commands to the sandbox mode...

I'm writing a hand in right now, so I can't offer more suggestions now, but the one I think would be easy to solve is the instant loading of processes, just add a button the process design menu that says "spawn" and then the user clicks on the gameboard to spawn in the process.

The destroy could be a simple hotkey, just select all the processes you want destroyed and press "d" or something.

Projectiles are harder, because I would like to be able to set the speed and trajectory and so forth, but this might not even be neccecary if the scenarios file is implemented, as you could just make a process that shoot in a specific direction when it was spawned, and you could just load that again.

Idle1010 commented 2 years ago

The destroy could be a simple hotkey, just select all the processes you want destroyed and press "d" or something.

You could use delete as hotkey