RPG programmers?

Just wanted to pick someone’s brain about a few design issues I may be running into in the near future (pause game feature and synching with over-time effects/gui elements, along with asynchronous event handling) and if/how you solved them.

Nothing too terribly specific and not looking for code samples; merely want to find out some best-in-class pythonic ways to do a couple of things.

Can keep to PMs if you’d prefer.

Appreciate you taking the time to read this.

I’ve done a couple dozen professional games, what questions did you have about pausing?

Two questions from that one really:

(1) Is it common for coders to put a pause/running boolean in showbase? As it is my understanding that is equivalent to adding the same thing as include in python …

(2) Is tough for me to describe why I am asking and what concerns I have so bear with me …

RPG avatar A casts a damage over time ability on mobile X.
X is then added to a list, dict or array of a doMethodLater
while the game is running the doMethodLater calls in the methods of mobile’s class that allows it to change its base stats.
while paused it stops its iteration.
when restarting it resumes its iteration on the nest key in the data struct.

I haven’t even started in on animations (mostly because my artists all got jobs recently) … my concern is that what I am doing currently is not going to integrate well when I begin to add in animations and more hardware-intensive items. So I can do one of the following from my point of view:
(1) Nothing (default)
(2) Revert back to threading / micro threading (which is what I based my original combat engine on when I just started learning python for the project)
(3) Look for an asynchronous alternative that is safe with panda
(4) Recreate the backbone of my game as a FSM (so would toggle its state to more than just the combat side of the house, would encompass animations as well as physics but not networking).

I guess what it comes down to is when the game is paused, I want the effect handlers, animations and certain main game loop functions to pause while still leaving certain things like chat and networking open. So a pause game for the entire main game loop is out of the question in my design.

Thoughts? Much to do about nothing? Thinking about this the wrong way? Better way to handle it?

Put a ton of time into writing a GUI for the game and getting everything how I wanted and beginning to hook in logic to the GUI over the next few weeks, which is why I am fretting about this right now.

I’m sure about Panda3D or python specific stuff (all my games were doing in C/C++).

But, I’d imagine from what you’re describing you’re going to want to pause all players (if you’re leaving chat and stuff open) otherwise it’ll cause you major grief when it comes to desync. And I’m guessing in order for animations and what not to update they all require a function call to process their updates each frame so what you were saying about not doing those updates sounds alright to me.

Probably would be easiest to have all your update functions for non-pause in one function that you call during gameplay, then have another function for only the ones that should update during pause and call it when the game is paused.

I don’t know if I helped with your question but from what I read at least from a general concept you seemed to be doing the right stuff to me.

You have tasks in panda. Look into that, it may be thing that you are looking for.
I am doing something similar and maybe my way is wrong, but its easy to understand.
mobile X is object
that object has list of different statuses
each status is object

For example: One character is slightly stunned.
So he has stun status which lasts for 3 turns (or some number of seconds if you are doing realtime thing).
And while character is stunned, his accuracy suffers.
On first round while he is stunned he looses 90% of accuracy. In second round its 80% and in third he has half accuracy.