Panda3D Asset Marketplace

I’ve been using Panda3D for the past 4 years as a hobbyist activity, and I can confidently say that the thing that has struck me as odd (the most) in the course of my development is it’s subtle lack of assets. I’ve used other engines before this (Unity and CryEngine to be specific) and one of the things I think panda could possibly benefit from adopting is some form of marketplace. Where users can get assets that they can use to run quick but high quality prototypes.

The obvious options for doing this however, is either using some of the models in the samples folder or making and exporting your own assets through an external software like Maya or Blender. Both options are pretty limited in functionality and time management respectively. Hence the main reason for creating this topic.

I propose the option of making a website of some sort, one that would allow users to get assets for themselves in all of Panda’s supported file formats, but also to contribute any assets they think would be useful.

If this is approved by any of Panda’s moderators or administrators. It would still require effort from a number of people. Either way this is just something I felt I needed to address.
Also I’m not sure if this is in the right category as I’m not certain if this is exactly a feature of Panda3D as a game engine.

I really hope I can get back from someone on this.:wave:

1 Like

I’m sorry to inform you that Panda3D does not have anything like an Asset support and it is considered part of the game logic code the user must write themselves.
https://docs.unity3d.com/560/Documentation/Manual/AssetWorkflow.html
https://docs.unity3d.com/560/Documentation/Manual/AssetStore.html

While audio, 3d models and animations, 2d graphics and fonts can be loaded by code and mostly automated by specifying custom properties for your 3d models in your 3d editor exporter (for example to attach an AI script, audio clips or dialog to an animated 3d model automatically), there is no builtin class for this and has to be written by yourself. So an actual asset “store” wouldn’t be possible for Panda3D 1.10 since there is no standardization. You would just be sharing media files, not assets which combine data and logic such as material shaders, specific types of GUI elements, NPCs, collision and logic-sensitive VFX, custom shaders, particle or fullscreen effect editors and effects and so on that you can just drag into an editor or load by code and have them just work with no extra line of code.

This is the case with almost every open source game engine. While they have their advantages, standardized asset pipeline, marketplace for it and a standrdized editor for importing assets is not included and has to be written by the user. An exception is probably just the Godot engine.

I can tell you that writing your own “Asset” (data+logic) importing code is not hard or more than 1000 lines of script, but it’s not for a beginner either.
Panda3D has been around for so long back in the days standardized asset importing pipeline weren’t really a thing and it was expected for the user to write one for their own specific game and considered part of the “game logic” code.
Panda hasn’t really caught up with the times as far as Assets and a single asset-based editor is concerned. That said, Assets haven’t been a great tool for Unity or UE either. People importing existing assets instead of taking the time to learn how to make their own is why so many indie Unity games play the same and so many UE games visually look the same and mostly are first or third person with the exact same camera controls. This is not to say this is the fault of Assets as a feature but it is the cause.

I don’t think that the term “asset” is quite as specific as you seem to indicate here. It can encompass, well, pretty much any piece of artwork intended for inclusion in a game: model-files, sound-files, GUI skins, and so on–each and all of these are assets. Attached logic isn’t a necessary component, I believe.

Thus a marketplace in which model-files are exchanged doesn’t seem infeasible to me, even without the sort of engine support that you’re describing. It could be as simple as a repository for egg-files.

All that said, I seem to recall that Panda can these days load non-egg/bam models, so perhaps one could go to extant sources for freeware models and find at least some that might work.

I don’t think that the term “asset” is quite as specific as you seem to indicate here.

It kind of is as far as Unity and CryEngine are concerned which the OP used as an analogy. Sure, logic isn’t necessary but most of the assets shared on these marketplaces use logic (scripts), even shaders and VFX.
Without the logic part you are just sharing realtime-optimized media (2d,3d,audio) which is not specific to any game engine and which already exist so a Panda3D-specific one wouldn’t be really useful. I’m sure the OP will agree with me since I use Unity too and know that majority of the assets I create and import are not mere static 3d models, animated 3d models and their animations, 2d images and audio files.
And yes, new Panda supports glTF format and Blender 2.8 does not have an EGG exporter anymore. THe manual has been updated with this info.

I think that what you’re seeing there is more a side-effect of other factors than an indication of how the term is generally used. (Specifically, assets with logic attached are likely to be more useful than those without, so there’s incentive to post those over assets without such logic.) As you yourself implied, even on the stores that you mentioned there are assets available that don’t have such logic attached.

As you say, a Panda-specific asset marketplace likely isn’t all that useful, as models and the like can be had elsewhere.

I’m not arguing about the dictionary definition of “asset”, more like what people expect when they hear a “game engine asset” or “asset store”.
It’s like me saying a game engine isn’t really a game engine if it doesn’t include a physic engine or a particle system. I think for 2020 that will be a fair statement.

And I’m talking about what people tend to mean when they talk about an “asset”. It’s plausible that people expect more than just an asset from an asset-store–that’s entirely plausible. But I don’t want someone to be misinformed about what a common game-dev term means.

Again, I’m not here to argue about dictionary definitions of words. A script is an asset as well.
The OP knows what an asset is from his Unity and Cry experience, and if you are concerned about someone else reading this, then I explained what I meant and linked to Unity’s manual where they also explain what an asset is.

Regarding this, I am not only aware of the possibility of creating some form of asset structure that contains both data and logic, I even had a vague mental idea along that line, probably as a future possibility to this marketplace idea or as a separate engine feature completely.
I am also fully aware that Panda is not a beginner’s tool and is well stated out here. My point is, if you ask any panda user about their prototyping experience, they’ll typically agree on 2 things:

  • The samples folder does very little in terms showing what Panda is actually capable of, this was contextually mentioned by the writer of Panda’s documentation in this paragraph
  • Having to make assets for quick tests that cannot be achieved otherwise is a very time consuming process. Many times I find myself trying to test if an idea will actually work (by work I mean make a good player experience rather than just execute), and the fact that I need to make assets or get from another means is just an inconvenience that really shouldn’t be.

I apologize for any miscommunication on my part. When I said assets I really didn’t imply the more specific asset structure found in other engines, (At least not at this stage of Panda’s development). I simply meant things like what @Thaumaturge stated here:

I personally believe these would be more than welcome by Panda users both experienced and new comers.

@rdb

I actually agree with this.

I apologize for any miscommunication on my part. When I said assets I really didn’t imply the more specific asset structure found in other engines, (At least not at this stage of Panda’s development). I simply meant things like what @Thaumaturge stated here:

Wow well if your goal is that simple for now, there’s no reason to have a Panda3D-specific marketplace. Panda3D supports Assimp 3d formats ( http://assimp.sourceforge.net/main_features_formats.html ) and glTF, for video/audio the formats ffmpeg supports ( https://en.wikipedia.org/wiki/FFmpeg#Muxers ) and JPG, PNG, GIF, BMP and many others. Just use a general game assets marketplaces, there’s a bunch:
https://www.google.com/search?q=game+dev+assets
Surprised you didn’t know and have fun.

I do have plans of having a similar system, just not at

In any case, I’ll most likely start this as my own little contribution to the engine’s community😅

Hopefully I’ll be able to move this topic to the Showcase category. Thanks for your input @bodaf62109 and @Thaumaturge, i really appreciate it. :pray:

I’m not opposed to the idea of an asset store, though for it to work we actually need people producing high-quality assets for Panda3D. Because Panda3D places a lot of emphasis on the developer experience, but lacks a little in the artist tool department, we tend to have a shortage of people producing quality artwork in the community.

Therefore I’d personally want to lean towards improving our support for standard asset formats like glTF so that people can use sites like https://sketchfab.com/ to download PBR-enabled assets from other sources and use them with Panda3D, without hassle.

4 Likes