Contribution ideas - more samples?

Hi folks! First time post here, though I’ve read a lot as I’ve been diving into Panda3D lately. I’m a longtime professional software dev - and big Unreal Engine 4 and Unity user, but really like the simplicity of Panda3D (and Python!) so would like to start some Panda3D development.

I thought that while I learn and ramp up to also contribute back - with some community help I really think Panda could catch on and be much, much more popular as an engine. Speaking as a Unity/Unreal dev here.

My first thought - the samples that come with Panda could really be improved. ‘Roaming Ralph’ is the closest that I could find that would work as a foundation for a real game, but would really like to improve on it. Here are my ideas for samples to build:

  • A new 3rd person sample, based on Roaming Ralph

    • Better controls, standard WASD plus mouse for camera zoom support. The controls are very strange. I would add mousewheel to zoom camera
    • Better camera management, collides with environment and auto-zooms in small spaces, as with most 3rd person games today
    • Better physics, Ralph sticks on everything on my machine and gets stuck.
    • Jumping
  • Multiplayer samples based on the previous 3rd person sample, very simple movement, chat, trigger some animations

  • Simple procedural world with terrain / tress built on the 3rd person features as well

  • Sample or tutorial showing how to go from Mixamo-type animated character to Blender, to Panda, for folks that don’t have modelling skills. And the lack of good media for Panda would be helped here.

Let me know more ideas, but this is where I’d like to start!

Thanks!

-Sal

Greetings and salutations, and welcome to the forum! :slight_smile:

I do think that some new samples might be a good idea indeed.

That said, I’m not sure about the idea of so expanding and refining Roaming Ralph: while I think that some refinements might indeed be beneficial, I do worry about making the sample too complex.

It is, after all, intended for new users only just starting out with Panda. (And indeed, in some cases, just starting out with Python and game-dev.)

(The camera-work in particular might over-complicate the sample, I fear.)

Multiplayer samples do seem like a good idea, and a solid demonstration of how to do that with the engine could be an excellent addition, I think! Similarly demonstrations of procedural worlds and the character-pipeline tutorial that you suggest. :slight_smile:

All that said, let me mention that I have a “Beginner’s Tutorial” available: while it doesn’t have nearly all that you suggest, it does cover a fair chunk of the basics, produces a full, functional–if simple–game, and runs from the fundamentals of using the engine to building a distributable.

You should find it here:

Hi, welcome, we’re happy to have you here!

You’re definitely right that the samples aren’t representative of what Panda3D can do, and that even some minor love could go a long way. I welcome this effort to make some improved samples. :slight_smile:

As @Thaumaturge rightly points out, the samples are generally meant to illustrate a particular feature of Panda3D without unnecessary extras. But, the Roaming Ralph sample is often used by people to learn how to put together the parts for a third-person controlled character game, so I think it could definitely use some love. It’s not even using best practices for how to use things like the collision system.

I do agree: Roaming Ralph is perhaps the most salient of the samples, being the closest to a full game. And yet it has a number of issues, and some practices that could perhaps misinform new developers. As a result, it could very much use some reworking and polish, I do think!

[edit] One idea might be to have both “samples” and “showcases”: The former would be what we currently have, being small, easily-digested examples of how things might be done in the engine. The latter would be things intended to show the capabilities of the engine, even if that makes for a more-complicated project.

There is the risk of new developers jumping straight to the more-impressive “showcase” pieces, and finding themselves out of their depths, however.

I actually did stumble on this! Its a great tutorial, thanks for putting this together.

1 Like

rdb, sounds great. Do you have any pointers or samples to how you envision the collision should work? I’ll be happy to incorporate that. Still new to Panda3d myself, so this will help me get up to speed as well.

Looking forward to hacking on this. Side note - in the back of my mind I keep thinking of a scenario like in Unreal4 where, there are samples for each basic game type (1st person, 3rd person, etc) and it’s really easy to use those as starting points for your own games. Although they do minimal things. I think this would be where I’d like to go here as well.

I’ll post when I have some work to show. Thanks!

1 Like

I like your idea in theory, but I am wary of making Panda3D opinionated like Unreal 4 is. Panda3D is never going to be “really easy to use” unless we change it fundamentally, like I suppose the Ursina project which I have never used.

More or more modern example programs would be nice to have. I do not particularly like the idea of template standards for “game types” as that removes a lot of the benefits of an engine which isn’t super opinionated or unduly optimized for a specific thing. If this were ever to happen to Panda3D I would fork it and maintain the code first tradition.

This is of course just speculation and I’m not against modernizing the examples, as some of them are outdated.

I can add that adding new code as an example is not a problem. The problem is the lack of modern models and good animations.