I’m having a hard time making progress right now. Partially it’s because it just got a lot warmer so I’m feeling quite a bit sleepier, partially it’s because Dark Souls 2 is sapping a chunk of my physical and mental energy, but it may just be mostly because this next bit is tricky and I’m not sure how to proceed.
So here’s the situation, and I’m probably typing this out more for my benefit now than for yours. In fact, thinking this out via text is probably going to be my most significant progress on the project for today. Anyway: The existing detail editor is functional in an extremely limited way. I can drag details around and change their parameters, but I can’t create new ones or change what image each detail actually displays, so it’s still basically useless as an actual production tool.
Fixing both of the aforementioned issues would be relatively trivial, but would also be kind of a waste of time since the architecture that’s there now is going to need to be completely different if this editor is actually going to support editing particle effects as well as static level details. So this suggests a few possible pathways:
1) The particle effects editor can be merged into the standard detail editor such that you can create or select either kind of level detail and get a control panel appropriate to that type. This was what I assumed I was going to be doing, until I realized that if I tried to dump something using my recent code on top of something using my old code it would create a horrible abomination of conflicting styles. This would basically just require me to delete my old detail editor code, since a lot of it is completely redundant with the general control panel code I wrote a month or so ago.
2) I could completely get rid of the standard detail as it is now and consider it a special case of the particle effect, one which has just one particle that never changes, and then build a control panel that makes both this and the more expected particle effect easy to achieve. This is probably the most structured solution, but would require me to tweak a lot of functioning code for particle and standard details to make it happen.
Either way, I’m going to have to create a control panel for the particle effect, and this is tricky because there are a LOT of potential parameters to control. Each particle has a starting type, location, scale, rotation, distance, RBGA tint, velocity, animation speed, rotation speed… and then a randomized range around the default value for each of those as well… and then a series of op commands telling each particle how to behave over time. Each particle effect’s interface will have to have all of those — not just once, but repeated for each type of sub-particle. Multiple particle types, each of them having multiple op commands to execute… yeah this will be tricky.
Well, it makes me feel a bit better writing this all out, because I know that the problem is actually quite overwhelming and I’m not just procrastinating for no good reason. I’m still not sure quite what to do about it, but I think… if I keep thinking about it… something might come to me.