Panda3D + Ren'Py


Ok, not new to coding, new to Python, the idea is I’m wanting to make a simple game that combines a few even simpler elements that these two engines can do easily. I’m not sure on which community forum this should go so I’ll probably duel post this. Basically, I want to create a state machine that will switch between the two engines in a single program, or at least set one to the foreground and set one to the background, and then be able to to send information between the two, simple number values, walked up to and talked to character in Panda3D, which will generate a state code 2314 or something, that’s then sent to the state machine which then understand this to correlate with a specific scene to play out in Ren’Py, the state will then change to having Ren’py being displayed, then the scen’ll play out, and upon its resolution another State code is returned, and the state machine will send that to Panda3D to make any changes to the game world or whatever (It’d be nice if the background darkened a bit and the character art where just overlaid on top, but one step at a time and that’ll probably be the Ren’py guys realm of expertise) The real question is simply having the two engines running in a single program, as I don’t know how to even start going about having them run concurrently. I imagine might be something simple I’m just blanking on. Also, Yeah Unity’s cool and all, been using it for years, but I wan’t to work on my Python.

  1. Panda3D action committed generating state code
  2. State code received by state machine and understood to coralate with a scene in Ren’Py
  3. State machine will then send a code to Ren’Py to begin playing said scene.
  4. Upon scenes resolution a Ren’Py will generate a new state code, say unique choices where made, the code would coralate to the decisions made.
  5. Sent to state machine, which then understands that, then sent to Panda3D
  6. Say a char dies in the Ren’Py scene, unique code of that event received by Panda3D, there body falls over in Panda


So, you wish to use Ren’Py for the logic, but Panda3D for the graphics, if I understand correctly? Or do you even want Ren’Py graphics to be shown in the same window as Panda3D graphics?

I’m not really familiar with how Ren’Py works; does it just use a normal Python installation? Is it possible to import third-party libraries from Ren’Py programs? Or vice-versa, does Ren’Py have a Python API that can be invoked from other Python applications?


States would be handled and stored completely in the statemachine, acting as the inbetween for the two engines to communicate, one engine produces a state code, state machine receives it, stores it, sends state code to the other engine and vise versa, each engine will simply know what to do with the state code, so I’d technicly be leveraging logic on both ends (ren’py got one built in panda I’d need to make one). I would very much like to keep the two engines as distinct as possible as I’ve got no idea how to actually integrate one into the other (And as Panda’s backend is a typr of C and Ren’py is just Python I don’t really want to try) I just need them to handshake. I’d want to use graphics of both engines, and swap to the graphics each engine excels at when needed, all in one program. (Example:walk up to character in panda 3d, 3d world and graphics n all, initiate conversation, Ren’py is then utalized to display 2d character art and actually used to have the conversation, and very simple information is just sent between the two engines, when to flip between the “active” engines, and results of character interactions.) I’ve seen 3d integration being somthing people’ve wanted in Ren’py for a while, and from what I understand, trying to actually put it into Ren’py is difficult/all solutions I’ve seen have just been fake 3d with anamated sprites.


As a minor tangent:

If by “one” you mean “a state machine”, then I believe that Panda has one, too. See here for more.