Jump to content
Stray Fawn Community
  • 0
Floppin Chacho

Improvements to Logic and and input schemes


I've put my first few hours into the game, and one thing I think that would really add to the game are improvements to the logic system, and more specifically to the input system. I will outline the various improvements and how I think they could be used in the following sections. My main reason for wanting these improvements is how cumbersome it can be to manage the logic on larger scale projects and to make sure you don't have any keybinding collisions for larger scale projects. For instance, in my current primary build, I have a mothership that can drop two different drone types. I have logic gates translate my preferred keybindings to control for the drones, in essence, I have logic gates that use a switch to determine which drone is being controlled, and then and gates that take controls like WSAD or the mouse, as well as the camera block, and with that I can control the drones independently. Though with some of the ideas I have below, they could make this build less difficult, especially for really large builds.

Custom Input ID's:

One system that I think would help for larger scale projects is having custom input ID's that are not directly tied to a keybinding but would be very useful for the logic systems. In essence, you may not be able to directly control those inputs, but it would very useful for large scale optimization. But more importantly, it reduces the likelihood of keybinding collisions from happening (accidentally reusing a keybind). If I were to guess on how it could be implemented, it could just be stored as a string, and on inputs, you can either choose to use a keybinding or use a custom input ID. You could then store a list of all ID's you have made. In reference to my project I am working on above, what I could do with the ID is instead of assigning arbitrary keybindings and translating those to my preferred controls I could make a custom ID named something like drone1W, drone1S, drone1A, drone1D, to correlate with the keys I would want to use. This would make managing your designs much easier.

Advanced Logic gates:

Having simple two-input logic gates can be fine but for more complex logic systems, you must string together logic gates. Which compounds the issue of keybinding collision issues, having to remember which keybindings you have already used in other unrelated systems can be a pain. This would be lessened with the custom input ID's mentioned above, but the problem still exists that you only can use simple 2-bit logic gates. If instead, we could use "advanced" logic gates which allow you to string together multiple inputs into a single logic gate. This would lower the problem of having to string together "and" and "or" gates to get more complex logic. If I were to think of how to implement it, I could see the inputs being a list data structure, and for an "and" gate just making sure that all inputs are true, and for an "or" gate only needing one true, and so on. This makes more complex logic far less difficult, and it would be further aided by the Custom ID system. I realize that the gates normally have the lights to indicate when the inputs are true or not. To mitigate this you could have just a big box similar to how batteries look, where you segment bars of the box for each potential input (the more inputs the smaller the segments are). Then display things as usual. I think with this system you will see far more advanced logic being used in builds.

Direct Wiring Mode:

Rather than having to worry about input collisions at all, you could simply have a direct wiring mode between components. This would lower the overhead of having to manage input keybindings or input ID's, as listed above. But completely forgoing that, you could simply have a direct "wiring mode". Where I can think of this being the most useful is when you have a mothership that spawns lots of drones, a direct wiring mode forgoes having "global" controls, and instead you could have a drone with localized controls, and so you could have one factory component that spawns multiple drones that could all act independently from one another. This would be especially important for having complex drones that have more complex movement controls that simply going forward. With this in mind, I think you could make far more advanced designs which take better advantage of the factory block.

Share this post

Link to post
Share on other sites

2 replies to this suggestion

Recommended Posts

  • 0

Your first suggestion is already in the game: Tags. Tags can be enabled in the top right of the editor screen.

As for your second suggestion, I believe that the devs are toying with the idea of multiple input logic gates right now.

Your third suggestion is kind of one-or-the-other with your first suggestion, and I do not believe that it is planned.

  • Like 1

Share this post

Link to post
Share on other sites
  • 0

To expand on Advanced Logic Gates:

If we added the above gates, then we would only need a single gate for every possible 2 input truth table. This is the core material motivation in my eyes

I run into the need for these operations all the time, but I'm stuck using two gates, usually in the "A and not B" format

Here is a picture depicting the behavior of the new gates on the right:


Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now