I have worked with several CMS (Content Management System) and I thought - why not apply the same principle to the creation of the game. At this point, it is only the sketch of the system, but I hope they are interested in community, because the basic principle of CMS - it is modular, so it will be brick by brick to collect universal panda-based game-constructor/prototyper.
The system consists of a core that provides the load and the interaction of components and the components themselves, of which the game is constructed. This would allow different people to independently develop components to extend the functionality.
If anyone is interested in this idea, i can try to explain in more detail as it work.
Here’s an example with a sketch of the core and the three sample modules panda3d.org.ru/files/ProtoMap.zip
What I understood from you is that you make a class of each object of your game then import it in the main file that will start the game
then you import 2,3 and 4 in main.py
Is that what you mean?? maybe I misunderstood
Technically - yes, this is just import modules, but in fact it should work as a plugin - I put the module in a special folder, and core automatically loads, activates and initializes it. In the example above, you can delete wxframe or sampleCamera from the components folder and look at the result.
update: Now the system has four components:
- sample (print It’s HelloWorld sample module.)
- wxframe (wx-wrapper for panda window)
- sampleCamera (sample camera control)
- sampleScene (sample scene)
I think I had something like that almost working but then kinda gave up on it after getting stuck a bit. How would you have CMS implemented? I was going to do something like this for 3rd party mods to a game I was making, or are you saying that it should be used to make a game?
I am interesting in this and I hope you get this working.
I mentioned the CMS only to explain how it works.
Such system can be used for rapid game-prototyping.
Then what are you stuck?
Sounds like what you want is a done game, only without story and assets.
Or maybe only a guide how to work “best” with Panda?
I don’t know what one could describe as a CMS in a game.
A CMS as known from web apps basically only manages a few pages with articles on them. A very consistent principle over the web.
The difference to a game is that in a game the structure isn’t that simple and straight forward. It often differs from game to game. Point is that most games have little in common and it would be bad if they had.
That’s why Panda3D gives you a general purpose tool for 3D games already. You could see Panda as a kind of CMS here.
What I think could be useful, especially for newcomers, are different, easy to extend game prototypes. And there are a few on the forums already, mostly for FPS style games.
Probably they could be easier to extend and deliver some neat preset settings and assets like nearly all web CMS do. But still, a CMS expects from a user only Text as input, which it reworks for the web. A game CMS would need to expect way more than only text and assets.
Long story short: Concepts and plans for new coders are a nice idea, a CMS, on the other side is as applicable for games as for movies - and nobody would ever bring up the idea of a CMS for movies.
My 2 cents.
Have a nice day
Probably I was incorrectly expressed - I did not mean the external work of CMS - content management. I mean an internal structure - modularity. For example, I want a forum in my CMS site - I add the necessary module and am using a forum; I want the gallery - please - this module; I want a calendar for the main page - again necessary module saves me. Well, if I am not satisfied that the calendar is not marked the holidays, then I immediately correct calendar module as I want to.
So for a game - I want a TPS-style camera and i add that module; I want an inventory like in the Diablo - I choose and plug the diablo-inventory-module to the game e.t.c.
You already mentioned the right keyword: modules.
That’s how python written libs/files are called and that’s also how you usually work in Python.
If you mean a more modular approach where modules can be shared over projects without dependencies, then take a look at Naith, a demo you can find here on the forums. AFAIk it tries to stick to a plugins-system. E.g. you say you want a sun, you simply import that module and you’re done. Still, even that program relies on a global config manager if i recall correctly.
For a special game type and with a defined framework you can go for such a plugins/modules model if you see a sense in that, but it only makes sense if you have several projects sharing the same approach, aka framework.
Have a nice day
Hmm, I think it will be easier to demonstrate this. ) I’ll try to do it in the near future.