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 ?