
Q2B was a project to take an existing engine, Quake 2, and add engine enhancements such as scriptable entities, shaders and post-processing effects. My task was to add python scripting to the engine, which included adding bindings to entities, adding a simple scripted ai systems, and implementing scriptable triggers. I used SWIG to generate the interface between Quake 2 and the Python scripting language.
My first goal was to add Python support to the Quake 2 command line. This would allow me to pipe python errors to the console, and provided me a good jumping off point in learning the new code base, learning how to use SWIG, and learning more about Python in general. After successfully adding support for a Python enabled Quake 2 console, I added support to GtkRadient for brush triggers to run python scripts. In doing this I exposed many Quake 2 functions to python so that a level designer could implement triggers with functionality beyond the normal Quake 2 triggers. Finally, I added support for Python controlled entities and demonstrated this by implementing a simple connected node based python scripted entity. In the end I felt that I successfully accomplished the goal of adding Python support to Quake 2.
- Engine
- Quake 2
- Duration
- 2 months
- Team
- 4 Programmers
- Language(s)
- C
- Python
- Role
- Engine Programmer
- Implemented Python bindings for Quake2
- Implemented basic python scripted waypoint ai system for entities
- Integrated python engine enhancements with GTKRadient editor
- Implemented scriptable triggers
- Integrated python into the Quake2 console command line
- Implemented python scriptable triggers