starting out with blender workflow

Dear List,

so this must have been answered somewhere but, and apologies for this, I can’t find it :frowning:

I think this is a big subject, well huge so I’m finding it hard to get started and I’m not very familiar with the terms used by 3d artists so its all very confusing.

I’ve worked out that I need to understand what can be expressed in an egg file to do much with Panda3d and the cheat sheets by dother have helped a lot with getting an overview of that.

The thread started by asterlix (discourse.panda3d.org/viewtopic … +collision) was very useful too. By looking at the code the link between layers in blender and collision masks was clear.

Unfortunately, most of the other mappings mappings between blender.chickenExporter -> egg file are a bit of a mystery. Is their a thread on the essentials of these mappings?

Thanks.

There is no ‘list’ that I know of, but the chicken manual is reasonably detailed, so I’ld go and read that. I’m not sure that knowing all the features is really that valuable when your starting out however - the information contained in the videos you can find in the manual is typically more than enough for newbies.

Yes the chicken manual is quite thorough and I do expect that the videos do have a lot of great information in them but the Disney videos are an hour long each and who has time to watch half a dozen videos to get an overview of a subject. The youtube videos are focused on narrow subjects and unless you know what a normalmap is why would you want to watch the video?

My original post was linked to the problem of: ok panda3d is installed and working, what to I do now?

Panda3d does not have a scene editor or level editor which are supported and they don’t seem popular with those who have used them in the past. The way most seem to go is use Blender or 3dMax or something else to design their levels, models and animations.

There are so many ways of doing things but most activities should normally be done in one way.

jbskaggs (discourse.panda3d.org/viewtopic … r+workflow) wrote we need to be able to use blender (or another similar package) and understand python but finding out what we should be doing in our 3d design package and what we should be doing in python is difficult and time consuming. For instance, I think you can import a model from an egg file and define the shape of a collision object in the python code but I suspect it makes more sense to define the collision object in the 3d design package too.

It sounds great to me that Panda3d developers concentrate on make the 3d engine as good as possible and expect its users to provide 3d models using specialised packages. However, picking up two new non-trivial packages and making them work in sensible ways is hard.

I don’t expect anybody to provide lots of detailed documentation on how blender or 3dmax works but a faq style document-which enumerates common tasks, list common alternate ways to achieve them and has links to threads in the forum or pages of the manual-wouldn’t be a huge job if it was tackled piece by piece and would be a boon to “newbies”.

ie:

Not imported from egg files:
Camera ?
Lighting ?

Making A Terrain:
See Manual entry…
See Faq entry for how to import terrain (including blender file used to define floor and ‘edge of world’ collision) from egg. discourse.panda3d.org/viewtopic.php?t=7918

Your right that it can be a steep learning curve, but nobody said making computer games would be easy! After getting it running the next best step is to play with other peoples code - the examples provided and anything else you can find on the forums. Seeing how other people have solved problems is a real help.

The problem with giving out advice on specific ways of doing things is that every game has different requirements, even between games within a single genre, and so the methods used can and do vary greatly - writing a faq may sound easy, but when you have been doing this a while you soon realise that such a project would be a nightmare of conflicting opinions, methods and techniques. The kinds of problems where there really are only one solution are typically low level things… which have already been solved by Panda.

To answer your specific questions:

  • Its going to take a lot more than an hour to learn to use these tools, more like months - comparatively speaking those videos are short! Also, you may not know it now, but after watching the video you will know what a normal map is:-) Avoiding things because you don’t already understand them is the wrong way to go about learning!
  • You can export collision geometry with models, though whether you want to do this or not depends on your game. A lot of games don’t even need collisions, and those that do often use generic shapes for lots of objects to avoid the problems with tri-meshes. Also this only works with Pandas collision system - if you want to use ode you have to keep them separate (Or jump through some hoops.).
  • Cameras and lights are not supported in the egg format (Something I would like to change, but doing so is very complicated.), but you can export empties with tags, find those empties in code and then use the tags to convert them into lights/cameras. For cameras there are also motion paths, and even hairier solutions if you want something really complicated. You can also bake in the effects of lights using shadow mapping/radiosity/ambient occlusion and export that with level geometry.
  • There are at least 3 methods of making terrain that pop into my head - height maps (Can be edited in blender using displacement mapping and texture painting.), arbitrary mesh and procedurally generated in code. There are probably other methods.

None of the above answers are particularly detailed, but I think you can probably already see the complexity involved! Going back to jbskaggs advice he/she is right - making games is hard, and you really do need general programming and art skills, so everything you learn using these tool is of use. Even knowing the stuff you can’t export from Blender can be useful, for many, many reasons! (And, as a corollary, just because some programming technique doesn’t seem applicable to making games doesn’t mean you won’t find a use for it later.)

(And after saying all that, yes, we could do with some better tutorials for newbies - one of these days I will sit down and write one, but, like everybody else, finding the time is hard. Tutorials are actual the better approach anyway - narrows everything down to a specific scenario so you don’t have to worry about iterating all the possibilities.)

If you have learned some python ( panda3d.org/manual/index.php/Main_Page
Some parts you can skip, like all the PRC options.
The manual doesn’t give an example for every single class/method/function, so there is the ‘Reference’:
panda3d.org/reference/python/annotated.php

Like lethe said, if you want, you can make the collision geometry in your modeling package, but if you want to use the ODE physics engine, youll need to store it in a separate file.

discourse.panda3d.org/viewtopic.php?t=8243

This is an interesting read:
irrlicht3d.org/pivot/entry.php?id=956
Unlike Irrlicht, Panda3D is a game engine, so we have the ‘graphicsEngine’, ‘soundEngine’ and ‘physicsEngine’ all in one.
So all is left from you is to write the ‘GameLogic’ code.And Panda3D manual doesn’t teach you that. This really depends on your game, be it an RPG, FPS or flight sim.
There are some finished games in the showcase, that will teach you how to structure your code and show you a “GameLogic” code example:
discourse.panda3d.org/viewtopic … ght=cuboid
discourse.panda3d.org/viewtopic … hlight=a3p
p3dp.com/?mavasher
discourse.panda3d.org/viewtopic … t=gravhook
discourse.panda3d.org/viewtopic.php?t=6688
discourse.panda3d.org/viewtopic … light=pong
discourse.panda3d.org/viewtopic … light=pigs
There is no single way to write your code

So what I suggest, 1) get comfortable with Python 2) read the manual and cheat sheets 3) explore the code from the games above 4) then try to make a simple game with programmer’s art

Also get an IDE that will not require from you to type in the console to run your game

Thanks for taking the time to chip in. I’ll check out the links and look into your recommendations.

I know python quite well actually and my requirements of panda are probably a little lower in some respects from many of you. I’ll be using to do some research into a robot control formalism for my MSc dissertation. I would like it to look nice but ultimately I don’t require great performance, visuals or any sound at all :slight_smile:

I’m more interested in getting up and running fast but I expect the extra time I put in to get it working will be well spent. I used a couple of other systems specifically designed for this kind of thing and they have been real bug fests. I expect panda to be much better in this regard.

I also expect that the time I put into blender modeling worlds and characters will be well spent too. Creating new worlds in these robot simulation packages is a real pain too.