Logic Switch Creator Pack
EDIT 6/25/09
4 months ago I posted a suggestion for Mm to have a logic gate creator pack as an alternative to complex mechanical devices. The suggestion received a single response. 5 days ago the thread was brought back and received tremendous interest, spanning a 4 page discussion. In light of changes to the game since my initial post and the many opinions expressed over the last week, I feel it is appropriate to revise and expand upon the suggestion. The original suggestion can be found below.
Opposed to a level pack how about a creator pack that was designed to assist those doing more technically complex creations. Currently many people use mechanical logic gates. It would be nice to see non-mechanical ones in a creator pack. Basically I'm talking about is at a bare minimum two additional switches.
AND switch. This accepts on/off connectors from other switches. However, unlike other objects in the game it can accept multiple connectors as inputs. If all the connectors are on then the switch activates (and does whatever it is set to do on/off, direction, 1, etc). If any of the inputs are off, the switch does not activate.
OR switch. As above but if one or more are on it activates.
Obviously more logic gates would be nice but just these would be an enormous gift to those users who make complex levels. Mechanical logic gates operate at 10Hz and take up a lot of thermometer. I'm sure if they were coded directly into the game as switches they would operate near instantaneously and take up far less thermometer space.
In looking at the responses most people (although there were some exceptions) strongly agreed with the suggestion itself. Differences of opinion most commonly occurred when discussing the specifics of how such a suggestion would best be implemented into LBP. So I will break up this post into two parts. I will start by discussing the general concept of a logic gate creator pack without going into specifics. I then, as separate section, discuss a possible implementation of the idea.
Section 1: Logic Switch Creator Pack
Currently in LBP many creators have seen a need to be able to attach multiple wires to a single object. These can range from very basic implementations such as wanting two switches that open and close a door (one on each side) to prevent players from getting stuck all the way up to complex mechanical computers that allow creators to essentially write custom programs that control pieces of their LBP creations.
Many people who would like to include such things in their levels find these mechanical contraptions too challenging to implement. On the other side, for those currently using such devices in their levels find a number of limitations. I present these in no particular order:
1) The minimum timing is 0.1 seconds. This sounds quite fast on paper. In practice it can be a long time. Picture a 0.1 second delay between hitting the x button and sackboy jumping or hitting R1 and having the paintinator firing. Delays on the order of milliseconds are noticeable in control schemes. 0.1 seconds is actually a very long time for some applications.
2) These devices are very thermo intensive. In particular they tend to eat up one’s moving object thermometer. They can also eat into the maximum number of collected objects one can include in a level. This is a big trade-off for creators.
3) Even for creators who are familiar with these devices, they can be difficult to keep organized. If you go back to a level a week or month or year later you might have no idea which device does what.
4) Typically these mechanisms are created using ugly dark matter because they can jam up if they are placed on moving parts. Generally speaking these devices need to be placed away from the objects they control to create a clean looking level. However, this also means that it becomes very hard to emit objects using these mechanisms or give them out as prizes.
So as a general concept, I am suggesting a logic switch creator pack. I recommend doing this as a pack, rather than an update, so only people interested in pursuing this complexity need to be effected by it. This basic suggestion makes the assumption that Mm can implement it in a manner that will improve upon the 4 points I’ve noted above, make it simple enough for the average gamer to use without being intimidated but include enough room for complexity that people who want can get a lot out of it.
******************
Section 2: A Possible Interface for Realizing a Successful Logic Switch Creator Pack
Okay, so now that we’ve talked about what a logic switch creator pack should do, it’s time to talk about how it can deliver.
Were going to build on what already exists in LBP. Logic switches will be placed in a level in the same way that a proximity switch or magnetic key switch is placed. This will immediately You will have several options in the tweak menu:
First off you can set the behavior. Is it on/off, direction or one shot? Speed will not be an option here. You will also have the option to invert the switch. The standard option of making thing visible or invisible in play mode will also be available.
Basically, you will grab the wire coming off the device and tie it to whatever you want, just like any other switch. The real issue here is that these objects, unlike all the other ones in the game, will allow you to connect more than one wire to them at a time. This number could be unlimited. However, I’m going to recommend that each can only accept 8 input wires to make things easier.
These input wires can only have on/off behavior. They will not allow directional, one shot or speed switches. Invalid wires will appear red, exactly the same as it is implemented throughout the rest of the game.
So, the first hurdle of these devices becomes how to handle multiple wires. I recommend something I’ll call the magnifying lens, which is just a cute name for a cool looking pop-up window. Basically, if you leave the cursor (either empty or holding a wire) hovering over the logic switch for a second or so, a magnifying lens will pop up showing you a close up image of the circuit. The close up image will show 8 spots where input wires can be attached. All you need to do is place the cursor holding the wire over one spot and hit the X button to attach it as normal. This will then close the magnifying glass. If your hand was empty you can place it over one of the inputs that has a wire attached and hit x to pick it up, as normal. Really the only change here is the magnifying glass to help with the management of multiple wires. Otherwise the interface is the exact same one that we are used to for wires.
Proximity and magnetic key switches have a visual indicator to let you know if the switch is active or not. These switches will feature a similar indicator. However, they will also have input indicators to make it easy for people to see what is happening. A light bulb appears where each wire is placed. It will be on if the wire is sending an on signal. It will be off if the wire is sending an off signal. There will be no light bulb, just an empty socket, if there is no wire attached. This will make it very easy for people to follow what is happening.
There will be more than one type of switch. Right now I think three switches are needed.
http://upload.wikimedia.org/wikipedi...ate-en.svg.png
OR Switch: The physical appearance of the switch will look something like this, plus the indicator lights for input and output discussed above. The inputs are on the left, the output wire and indicator on the right. This does a simple OR operation using all the wires that are attached. It activates if any of the wires are on. It is off if there are no wires attached.
http://upload.wikimedia.org/wikipedi...belled.svg.png
AND Switch: The physical appearance of the switch will look something like this, plus the indicator lights for input and output discussed above. The inputs are on the left, the output wire and indicator on the right. This does a simple AND operation using all of the wires that are attached. It activates if all the wires are on. Unused inputs are ignored rather than being counted as off wires. If no wires are attached it is off.
http://upload.wikimedia.org/wikipedi...R_ANSI.svg.png
XOR Switch: The physical appearance of the switch will look something like this, plus the indicator lights for input and output discussed above. The inputs are on the left, the output wire and indicator on the right. This activates if an odd number of wires are on. It is off if an even number of wires are on or if no wires are attached.
There will be a tutorial for each of these, with examples for practical uses to make them accessible to the average player. I’m also happy to add in additional ones suggested by people on this thread. I’ve already mentioned some others in my posts but I want to get this done today so I’m only putting the basic 3 in for now.
Finally, we come to limitations.
The first and most obvious limitation is thermometer. Since these do computer calculations rather than simulated physics they will take up less thermo than the mechanical gates they are replacing. However, they will take up some thermo. Put too many in a level and you’ll get a message saying to use less. Continue putting them in and you’ll eventually get the message that the level has overheated.
The second limitation, and this is a big one, is that the logic switches will not accept wires from other logic switches. You can still wire them together indirectly, just not directly. This will prevent having circular logic. Indirect circular logic is okay, as it will just cause the switch to turn on/off at the mechanical interval. As a side effect this will also prevent nesting, which is extremely limiting. However, we introduce one more element to the mix to make nesting easy for beginners and advanced users alike:
The Circuit Board
The circuit board is placed the same way as the switches. However, it contains a tweak menu that is unlike any other. Instead of having the standard settings you get a screen where you can place logic switches on sockets that are arranged in a grid. A satisfying soldering noise can accompany placing a logic switch. Information must always flow left to right. The left side of the screen has spots for wire inputs. Attaching wires here is done with the magnifying glass as described above. The right side of the screen has spots for output wires. You then link these inputs on the left to the outputs on the right through logic switches in the middle.
http://www.lbpcentral.com/forums/pic...pictureid=4658
http://www.lbpcentral.com/forums/pic...pictureid=4659
Again, I’ll repeat this because it is very important, unlike the normal creator where you can place wires in any direction, here you can only place them left to right. As an additional idea, to help people troubleshoot, the wires that are currently receiving on signals will glow, while the wires that are receiving off signals will not.
The total number of inputs, outputs and logic switches allowed in one of these circuit boards will not be unlimited. There will be a set number of maximum inputs and outputs as well as a set number of positions for logic switches to be placed. An additional failsafe will limit the total number of connections with a “this circuit is too complex” message, just like the number of corners on an object are limited. Mm will need to experiment with this to find out what these maximums should actually be to ensure that no slowdown occurs and the calculation is virtually instantaneous.
Logic switches and the circuit boards cannot be directly wired together. As before, they can be wired indirectly by placing mechanical parts between them (as this slows them down so circular logic stops being a problem and error checking would be too complicated to prevent it).
That is all for now. As I said earlier, there are obviously more switches we could come up with that could be included in this pack (or a logic switch pack 2 ;) ). A delay switch would be the most important as it would be possible to allow logic switches to be hooked together through delay switches. However, just what is written above should give people an idea of the sort of implementation Mm might be able to achieve.