Can Panda3D Do Point & Click "RPG/Adventure" S

Hiya All,

I think I’ve gone as far as I can with the tutorials and I’m now thinking of buying some python programming books from Amazon to help me further learn how to program Panda.

Before I shell out my money though, I’d just like to make sure that Panda is capable of creating the kind of game that I’m interested in. Namely, 3rd person ‘Roleplaying Action Adventure’ games, in the style of Diablo, NeverWinter Nights, Divine Divinity and Dungeon Siege.

I don’t know if any of you have ever played any of these games, but they’re the type of games that are almost entirely controlled by the mouse. To make the player move, you simply click a point on the ground and the player moves to that point. To attack a monster, talk to an NPC, pick something up from the ground, interact with game menus…ect, you simply left click on them. Everything is accessible at the click of a mouse.

Also, the camera is constantly “locked” on the player, when the player moves, the camera moves with them. The player is always at the center of the camera.

When you want to rotate the camera, you simply move the mouse cursor to the edge of the screen. If you move the cursor to the left edge of the screen, the camera rotates “around” the player in an anti-clockwise direction, if you move the cursor to the right edge of the screen, the camera rotates around the player in a clock-wise direction.

I realise that this type of control system will be a lot harder to do than the conventional keyboard control system. And I’m guessing that it will involve things like getting the mouse, and screen coordinates…ect. But I’ve glanced through the API and it appears that Panda contains all the necessary functions…ect, to be able to do this, I’d just like to be sure.


Sure, there’s nothing there that precludes Panda.

For clicking on characters, etc., you have two choices: run a task that puts an invisible rectangular MouseWatcherRegion on the 2-d screen every frame over every character (this is Toontown’s approach), or use the pick-a-3d-object interface given is a few demos here and there on this site (this is probably a little simpler).

Locking the camera to the player’s avatar is just a parenting operation–parent the camera to the avatar.

Detecting when the mouse moves to the edge of the screen can easily be done with a task that looks at the mouse position each frame.


Thankyou David. That’s just what I wanted to hear :smiley:. You make it sound really easy, but I’ll bet it’s not for me :laughing:. So I shall trot off and buy my python books at once, so that I can figure out how to do it all.

These are the books I’m going to get:

“Python Programming For The Absolute Beginner - By Michael Dawson”.
“Game Programming With Python - By Sean Riley” and the “Python Visual Quickstart Guide”.

They all had really good reviews on Amazon, so I’m hoping that they’re what I need to learn more about how to program Panda with python. If anybody else knows of any other good python programming books for beginner’s, I’d love to hear about them.



I’m sure you’ve already figured this out but I don’t think the problem you’ll have is learning Python but actually how to implement the required logic using Panda3d.

Afterall, Python is just a wrapping on the C++. That is the problem I was having implementing large scale terrain like other 3d games. It’s not a matter of knowing Python that is stopping me, its actually knowing the algorithms and the Panda3d way of doing it.

That’s why I’ve been floundering with Panda myself.

I guess the point of all this is that the Python language is really small and straight forward. What we have to learn are the interfaces to Panda and how to actually produce what we are looking for through what functions are available to us through these interfaces, which for the games we are trying to make, is not that easily done (for me anyway).


If I were you, I’d look at “How to Think Like a Computer Scientist.” I found it to be a very well written and informative book.

I’ll definately check out that book, however, I say I’m struggling because the Panda3d way is a little more involved than I’m used to. I started working with 3d games with the Torque 3d game engine. In Torque, everything is done in TorqueScript which has a C-like syntax. Since the game engine already knows how to make large 3d terrains etc… everything is essentialy done algorithm wise, all you have to do is script it with TorqueScript. My impression of Panda3d is that the fundamental building blocks to make those types of games that can be created in Torque are there, however, you’ve got to implement them yourself.

Please correct me if I’m wrong. So while it seems pretty straight forward to create a very small environment file in Maya, export it .egg etc… getting large terrains and the rest all together is what I have trouble figuring out.

Josh Yellon will eventually be able to shed some light on this topic once the next version of Panda3d is out I believe.

I’m just lurking and learning until then :slight_smile: I stick with Panda3d rather than Torque because I can leverage my Python skills that I use at my day-job with Panda3d. I’m not one who likes to learn languages just for fun! Although I am having fun with Panda3d.