Well, I did it. I’ve got clones performing their movements and actions by replaying key presses instead of locking them onto their Path2D instances. It works.
After all that work, I’m disappointed to say this but I’m not sure I like it.
First of all, there is drift. I wasn’t expecting it to stay perfectly on the original loop and I do have a plan to change the loop into a trail. Right now it looks like a glaring mistake as the clone wanders way off its path right away but I want that to be expected.
The error is maybe a little more than I thought and actually seeing it makes me think about how it might hurt the gameplay. Does the player really want their turrets drifting around?
Could I have them follow the loop unless an outside force like a tractor beam acts on them? That would be a little annoying for me to maintain and to transition between. Hrm.
I did a couple tests using the new clones.
I tried allowing players to stop and go. I tried adding an explicit drift in a global direction. I tried a hard reset of the position and rotation at the start of each loop to see how that affects the error.
Allowing the player to stop and go honestly kinda hurt the gameplay. I think it feels better to be always moving. I might try allowing speeding up and slowing down but always having a minimum forward speed. Unless I revert to the WASD up left down right controls. Then it might make sense. But really what I need to do here is play some existing games like Nova Drift and see how they do it and conform to that. Don’t need to reinvent the wheel here.
Explicit drift in a global direction was cool. I think having forces of attraction and repulsion acting over regions of the battlefield is neat. And being able to manipulate that with explosions and tractor beams and such. I think there’s potential fun there and that’s a lot of the reason why I implemented this change in the first place.
The hard reset of position and rotation on each cycle fixed the drift completely. No surprise. Using a hard reset for the position but a delta for the rotation did not.
This image was captured after about ten loops. It’s maybe 20° off? So about 2° per loop? Seems like a lot. I wonder whether it’s coming from small errors along the entire loop or one big error at the loop end. If it’s one big error at the end maybe there’s something I can do to fix it.
Anyway, having a hard reset would disrupt the other interesting possibilities for throwing a ship off its loop.
I just… now I don’t know whether that’s something the player will actually want to do.
Area buffs totally make sense. The player will want to do that. That’ll allow for some power ups. The drift … seems like a loss of control.
I can’t believe I’m thinking of reverting all that code (or rather, just never merging the branch) but it’s a real possibility. And only a few paragraphs ago I’d said, “I think there’s potential fun there…” haha. I’ll probably need to ponder this for a little while, maybe get some feedback.
…
I’ll keep the code for the new trails. I can do a hard reset at the top of each loop unless the clone has been affected by some external force. I’ll experiment with that as I develop the mechanics for those external forces.