What do you do when you've run out of room in Powder Toy? Well, you could make your creation more efficient (if it were a machine), and if that's not possible; or you aren't making a machine; where can you expand to? Well, from my understanding, Powder toy has one coordinate plane, made up of finite x,y coordinates. What if you could have more than one plane; essentially creating z coordinates? Well, that is basically my idea. Now, the details:
First off, due to the limited power of the processors in our computers, there probably cannot be more than two extra planes of simulation. Though because of the large differences in power between all the Powder Toy user's computers, it should be an option to choose how many planes your simulation has; preferably in the default options of Powder Toy.
Another thing to point out is that this is NOT a 3D simulation. You cannot pan around and look from different angles; finite or not. What will be available is an option to switch between each plane to edit it individually, or you can edit all the planes at once (an element drawn will appear in the same x,y coordinates of each plane as long as nothing obstructs it; a tool used can affect all elements or space in the same x,y coordinates of each plane). On default the other planes you're not currently editing or have selected will be transparent to somewhere around 75%, so they are still visible, but not in the way of your work. This of course will be another option for the player to change to their liking; so you can have to other planes completely transparent or completely opaque.
So, onto the elements. When solids are drawn, they will appear only in the plane(s) they were drawn in. With Piston and Frame (PSTN and FRME), they will only move and affect elements in the plane they were built in. Whether they can be made to move in between the planes, I don't know. With liquids, powders, and gases, they can travel/act the way they normally do in Powder Toy, but with one extra option; they can move between planes. This 'plane changing' for the most part will be random, but will still depend on a few things:
1. Anything that obstructs the element in another plane on the same x,y coordinates will prevent it from moving onto that plane(s). *1
2. Any element that is affected by gravity will move onto any available plane to achieve the least resistance (e.g. You have three planes in your simulation and it is completely blank. You draw a large amount of water onto one plane. As it falls, it randomly moves onto the other planes. When it starts collecting somewhere, it travels onto all three planes and takes up the same amount of space on each, give or take a few pixels. After collecting, it looks like there is three times less water than there was when it all was on one plane.)
3. Any gas not affected by gravity will just randomly fly around in any available plane.
4. Any energy particle (Do I really need to give examples?) will travel outward from the x,y AND z (plane) point it spawned from into any available plane. *2
*1: The elements still interact with each other on different planes; being on the same x,y coordinate in different planes is considered touching (still does not allow PSTN or FRME move things outside its own plane). So acid can still eat away things, SPRK can still travel to connected metal (details discussed later), etc.
*2: This kind of applies to everything, but there will be an option to control whether the planes before the first and last are void or solid, and whether each plane is separate or connected (elements being able to touch or not; mostly applies to No. 2). If they are separate, only portal elements (PRTI and PRTO) can allow elements to traverse to planes, WIFI can allow SPRK to traverse the planes, and maybe some other stuff too.
Moving onto the electronic type elements, everything should be the same (I think) except there will be different types of conductive metal that don't conduct SPRK to each other (Unless they already exist? I'm not really proficient in Powder Toy electronics :(). This will be if you have or need the 'connected plane' option on, but want to have separate circuitry in each plane.
Well, that's about it (or at least I think). Amazing how much text is required to explain a two-minute-made idea.
Plus, this is my first thread! YAY, I've finally come out of my hermit shell!
So please, tell me your opinions on this and ask any question!
Well, I've opened up to 10 windows with complex saves running, and there is no lag. My prcessor isn't even that powerful either, just a intel i5 m series @2.3gh . But I think it would be different if it was actually implemented, because you have to account for these planes running on a single process of powder toy. Not to mention the interection between planes and other factors. Thats why I suggest an option to change the number of planes your simulation has. The default is one plane, so it doesn't crash on older computers when you open it, and so older saves don't break. But if you really set it to the max., I think it should be limited to three.
Oh, I didn't realize. I consider anything above 30 FPS not to be lag. All the saves I loaded were around 35 FPS when running.
I don't think it matters, TPT doesn't do multi-threading.
While it is true that multiple planes would most likely cause lag, sometimes something that seems very laggy ends up not being laggy. I remember when ambient heat was suggested that people were saying it would be just as laggy as filling the whole screen with OXYG. On the other hand, how is this not another 3D Powder Toy suggestion.