Well, on the issue of speed, we could have have standard element pre-loaded, and then have custom elements load at start, and stay cached. Yes, slow start speeds in place of shorter periods of lag using an on-demand method, but as long as it is kept to bare bones it should work nicely.
Caching is always good for efficiency. I'm not that skilled of a programmer(only been at it for around 2 years), but decreasing the number of actions taken is gonna be really important for this kinda thing. My idea for how it should work: Powder Toy is executed -> Load basic particle information -> Parse, lex particle interaction rules, do not execute -> Start Screen -> Pick Simulation -> Check Which (custom)Particles are used -> Get location of particle rule sets -> execute as needed
EDIT: I thought about the fact that if we had custom particles, we would not want names to be the same as other particles, also if they couldn't we could easily overrun the max number of custom particles. So here's what I come up with, take the particle name and prefix it with a hexadecimal identifier(we could increase the base if the need becomes apparent). Each particle name would look like this: HEX#-NAME, e.g. 1A2B-PRPN. The particle would not be shown in the normal list. You would be able to open a scroll down menu containing the names of your custom particles, the ones used in the current simulation would be at the top for easy access. This list would be searchable.
Arsole Actually, it could be possible. It seems perfectly reasonable to create a binary format for particle interactions (Though it would not be a script language)
Arsole, for the simple language we're talking about it wouldn't be compilcated. Simon, I figure in the beginning we should just get it running with a method for defining particles. After it works fine I do have a suggestion, I had an idea for a theoretical(never really heard of this kinda thing before) programming language, rule based programming. Instead of an instruction set, use a rule set; It would be great as a basis for particle interactions.
cr15py Can you elaborate on the rule based programming. I also think it's a bad idea for us to create a new language, there's many out there that could possibly suit our needs.
Simon Personally, I think that it's more worthwhile using a scripting language. Or perhaps a hybrid? Some Binary, Some script?