NOTE: This is an archive of the old wiki.
Expect content to be outdated and links to be broken.

User Tools


python:py_eclipse_editor

Py Eclipse Editor

GoldenEye: Source v4.2 introduced the use of Eclipse and PyDev to offer customized code completion and in-game debugging of your Python scripts. The following is a tutorial on how to setup Eclipse with PyDev and start your first debugging session.

Download Python and Eclipse

First things first, you will need a copy of Python 2.6 and Eclipse.

Please follow this tutorial for help installing and using Eclipse: Eclipse Tutorial

Add PyDev to Eclipse

Update Manager

After you have Eclipse fully installed and running you need to download a separate plugin for Eclipse called PyDev. This is free and open source, and thankfully Eclipse includes an update manager to download and install this for you.

Open the Update Manager and enter the following site in the top box: http://pydev.org/updates

Click the PyDev checkbox so that your update manager matches the picture to the right and press Next and follow the prompts to complete install.

Make sure you restart Eclipse when prompted.

Configure PyDev

For setup instructions and general navigation please refer to this tutorial. Usually, PyDev will find your interpreter automagically on first load.

PyDev Predefines

An additional step must be completed in order to setup the GE:S predefines so that you can get code completion. Open the preferences diaglog and go to PyDev → Interpreter - Python and click the predefined tab (see image to right). Press New… and navigate to C:\<PATH_TO_STEAMAPPS>\gesource\scripts\python\lib and click the GESource directory, press OK.

We will not be setting up a new Python project, GE:S v4.2 ships with a project already setup for you. To load it into Eclipse, make sure you are on the PyDev perspective and right click inside the left pane (PyDev Project Explorer) and click Import…. Select Existing Projects Into Workspace… and hit next. Then click Browse… and select the C:\<PATH_TO_STEAMAPPS>\gesource\scripts\ directory, press OK. Once selected you should see python in the middle box, make sure the checkbox is selected then press Finish.

Import GE:S Project, Step 1 Import GE:S Project, Step 2

Coding in Eclipse

Congratulations if you made it this far! Your Eclipse layout should look something like the below image:

Some things to note:

  • GE:S uses tabs when coding in Python
  • The GamePlay folder holds all the Scenarios in GE:S, if you edit one it will display a (MOD) tag when playing
  • The Ai folder holds all the Bot code and supporting infrastructure. It is recommended that you do not change the infrastructure!
  • We have packaged up our preferred coding settings, download them here, use File → Import…

Debugging GE:S

Now that you are setup, let's do a sample debugging session. The first thing we need to do is start the debugging server in PyDev. To do this, click on the green bug icon next to the green stop icon that is below the menu bar. You should see “Debug Server at port: 5678” in the console.

none

Now load up GoldenEye: Source and create a game with a map of your choice. Once loaded, make sure we are playing Deathmatch which is what we will be debugging. Issue the command ge_gameplay deathmatch from the console.

Once complete, we need to connect the game to the debugger. To do this, issue the command ge_py_connectdebugger in the console. The screen will freeze briefly as the game communicates to the debugger, but should begin playing again shortly.

none

Now go back into Eclipse and set a breakpoint in the OnThink function by clicking the far left side of the editor at the line you want to break at (see image below). Once set, the game should immediately break at that point (since OnThink is called every 1/10 of a second). To see the debug information, click on the debug perspective in the upper right corner and view the information available. When you want to go back into the game press the Play button in the top left corner. You will have to remove the breakpoint in OnThink before resuming the game since it will break at that point every 1/10 second.

Setting a breakpoint The debug perspective

For more indepth information please consult the official PyDev readme: http://pydev.org/manual_101_root.html

python/py_eclipse_editor.txt · Last modified: 2023/09/03 18:43 by 127.0.0.1