q2b_logo

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