I’m planning to port a C#/DirectX project to Panda3D.
I’m especially interested in avoiding time wastes, and my performances in writing code for this project in C#/DirectX were very good, thanks to the Visual Studio IDE that usually guess what I’m going to write, and detects mistakes before I build.
I miss such an IDE for python (i find Eclipse PyDev and SPE not so good), and I’m talking about IDEs because I include the way of writing code as a parameter of productivity.
In this sense, I was more productive with C# and VS8 than with Python and PyDev. But I’m sure Python could wins if i was able to program dynamically.
For the moment, I load a text-console (a window with python syntax highlighting based on the Scintilla engine), that executes dynamically some code (and eventually redefines a function). The goal is to be able to change my program without having to reload the engine (it takes at least 2 seconds on my computer, which is too much if you’re trying to tune a parameter). I’m not 100% satisfied with that for some reason :
- I have problems with the “exec” context (“self” is defined as global)
- Unable to “reset” and cancel all the previous modifications
- IDE features missing (no auto-completion nor syntax checking)
I’m looking for some ways to improve the Panda dev using the python dynamic features. Some ideas :
The engine is loaded and runs. I’m programming with my favorite IDE, and when I save the file, the engine detects it, “reset all” (it needs to be clarified) and runs the file as if it was the first time
“States”, like the history in Photoshop. I often implement it by commenting/uncommenting out code blocks. Reloading a previous state would reload everything except the Panda engine. A “state” would be composed of a piece of code stored in a text file, and a memory serialization. Looks like a savegame.
I’m not familiar with game designing/programming, but i think the designer/programmer as to feel and act like a gamer. Then I think you cannot disconnect completely the fact of programming an gaming. How do you mix both environments ?
If some parameters has to be changed during the game for tuning, a common way is to enable their modification with visual controls like sliders, buttons etc. in what we could call a “debug panel”. It’s also frequently done with a console that allows execution of predefined commands.
What about programming while you’re playing ?