On my background: I have worked for 4 years as a C/C++ programmer in the game industry, and am now working on an indie project. I'm using Panda3D to build a puzzle/tower defense game, as it is the only all-in-one solution for Python that shows production-hardened craftsmanship.
I'm currently working on the surprisingly challenging task to provide two related abilities to the game:
- pausing the game, while keeping the menu running
- slowing down projectiles and enemies for a "bullet time" effect
Ideally, I would like to associate intervals and tasks with a different clock (timebase), so that I can use this clock to pause or slow down the game. (Or, alternatively, associate all elements that should always run regularly (menu, UI elements) with a different clock)
Are there best-practice facilities in Panda 3D that provide a no-headache approach to adapt my existing code, or will I have to build my own solutions?
I have experimented with providing a factory for intervals which adds these to a list on creation, but the issue here is when to remove them from the list - this also kind of duplicates what IntervalManager is doing, but I haven't figured out how to circumvent the monopoly of ivalMgr to add intervals to my own manager . I don't want to hack around anything.
Regarding tasks, I have not started work yet, as they seem easier to handle, but I'd also be glad for an easy solution to pause/resume/slowdown/speedup a group of tasks.
Thanks for your time