Version 25, last updated by sirebral at May 04, 2010 12:54 UTC

Current Stable: Ornery Orc {100504-00}

This contains the changes made in Patch-1: http://www.assembla.com/spaces/traipse/tickets/54-patch-1

This contains the changes made in Patch-2:
http://traipse.assembla.com/wiki/show/traipse/Patch-2 

A few more builds may process in the stable branch, but I will minimize updates to keep users as stable as possible. 

 

Updating

Before you update there are a few things you need to know about the changes that have been made to Traipse and how it differs from different versions

Updating from 1.7.1: If you plan on updating from 1.7.1 the update will prevent you from using 1.7.1 again. This is because 1.7.1 has not seen many updates and the versions of Python and wx.Python needed to make Traipse work break 1.7.1 and prevent it from connecting to servers.

Updating from 1.7.X: The biggest change is the lowest version of wx.Python allowed.  You need to make sure you have the correct version of wx.Python before making the switch.

Updating from Traipse {091003-00}:

Vista: The Update Manager does not refresh correctly if you have installed from the .EXE You will need to download the .ZIP and re run setup.py  Alternitively: you could download the new Traipse_Install.exe, which will allow you to skip the Python and wx.Python installs. This process will re-run setup, so your old System folder will be renamed. The New .EXE fixes the issues with the Start Menu shortcuts. This caused by a Permissions problem in Vista: Ticket

Updating from Traipse pre {091003-00}: Traipse has undergone some major changes since the last stable release. Your best bet is to download the .ZIP file and re-run setup.py

All Versions: There has been a correction in the Game Tree that Standard has not reached yet. The correction causes older nodes to appear empty, but they are not really empty. Just move them around the tree a few times so the correction can continue to take place.

The Correction: The correction made is specific to the game tree and involves dead child nodes that are supposed to hold the height and width of your node's windows. Some of the dead children look like thisgroup_atts border="1" cols="1" and fail. The correction removes these, but since in older versions these dead children are created every time you start the software, and saved everytime you close the software, I have found thousands and thousands of them in one Game Tree file.

 

New Features

Game Tree

The referencing system. has been modified in Traipse OpenRPG allowing for more context sensitive node references. The new system might seem difficult to understand at first. Don't think too hard on it. You can use the EZ Tree Reference System to create node references and let the software do the difficult thinking for you.

Namespace 2.0

This is a major change to how Namespace works in Traipse 'OpenRPG'

http://traipse.assembla.com/wiki/show/traipse/Namespace

This change will deprecate the the new Reference Syntax model described below

Reference Syntax

The new game tree syntax includes !! .. !! and !# .. #!. These new references work a little different compared to the standard reference !@ .. @! and all references are now given a name that helps explain their function.

Root References!@ .. @!: This references finds data by starting at the Game Tree, this is why it is called a Root Reference. The problems with this reference vary, main concerns have been when a user wanted to move their PC Sheets. References using this type of reference must be exact or they will return Invalid Reference.

Child References!! .. !!: This type of reference finds data by looking at the location of the node it is inside. It does this by finding an XML tag called 'map'. The software then appends the reference to the map to create a complete reference. This is called a child reference because it works with the child nodes. Child Refences can only look deeper into the game tree.

Parent References!# .. #!: This type of references finds the data by first looking at the location of the node it is inside, much like the Child References, but this type of reference then splices the reference into the map at the correct location. This allows us to go backwards into the game tree.

Grid References: In Traipse you can now reference grid cells by adding (x, x) to the grid reference.

You must have nodes designed to Send as Macro for Game Tree references to work


EZ Tree

EZ Tree is a new reference system that allows you to not ever worry about the syntax. The EZ Tree will create the best reference for you and it works in List, Grid, and Text nodes.

To access the EZ Tree, enter into design mode of a node an press the reference button. You can then browse the EZ Tree window that pops up and double click the node you want to reference. If the node is a grid, double click the node and a grid will pop up allowing you to choose a cell.

Currently Grids only allow you to replace the data. This is planned to change in future versions

EZ Tree's Logic:

While EZ Tree is a nice feature it's current logic is limited.  When you load an EZ Tree you basically duplicate the current Game Tree. A lot of the errors that may occur have been removed, but some still occur. If you maniuplate the position of a node with an EZ Tree open, the memory reference will be deleted. Nothing is damaged, however you will not be able to manipulate the data in the game tree until you restart.  There is no work around for this.


Stability

A lot of changes have gone into the over all stability of Traipse.

  • Settings changes occur after you set them, including font and status changes.
  • The Alias Lib window has been highly debugged and includes a minimum size so you don't have to resize it everytime you open it.
  • New Fetching and Failed images let you know when an image does not load properly
  • Minor fixes to check marks
  • Fix to 3.5e Tool sheets Inventory item
  • Universal About Menu now looks the same on any platform
  • And more ...

 

Traipse Suite

The Traipse Suite will be a compliation of additions that are specific to Traipse. Inside the Traipse Suite you can make changes to your Update Manager's settings, or even update using the Update Manager. This version of Traipse introduces the Debug Console.

Debug Console

The Debug Console is an in house debugger window. It works with the logger and the TrueDebug class (explained below) but not with basic PRINT statements.The Debug Console also catches Exceptions (ie, errors in the code), and displays them.

If you notice a bug in the software you can create a ticket with the Report Bug button inside the Debug Console. The beauty of this advancement is you can simply copy and paste the error message into your ticket.

The Debug Console is a part of the Server GUI {100503-02}

 

Developing

Since the Traipse Beta has seen some of the more powerful advancements and stability increases I have noticed an increase in users wanting to develop. Included in Traipse is a new function in the OpenRPG logger script called TrueDebug. This function is much more powerful than the regular idea of using a PRINT statement to find the value of objects and where the software is breaking in the script.

Using PRINT does not return data to the Debug Console in Traipse. Using TrueDebug will.

TrueDebug works similar to the Traceback that occurs when an error in the script occurs. You have several options when using TrueDebug and these options provide valuable information. Calling TrueDebug is still extremely simple.

Types of data you can get from TrueDebug

  • Object Values
  • The file name where TrueDebug is being called from
  • Option to turn of logging to Debug Console
  • The trace of functions that leades up to your TrueDebug call

Using TrueDebug()

You must first import true debug into the script you want to debug. Do this by adding the import to the top of the script.

from orpg.tools.orpg_log import debug

Now you can call call TrueDebug with a simply call to debug().  You can place this call anywhere you want in the function and it will return at the minimum the function debug() is being called from.

Inside the call to debug() you can then add an object or a tuple of objects. TrueDebug will return the value of those objects or None.

  • debug(object)
  • debug((object1, object2))

TrueDebug also allows you to add locale=True and parents=True. By adding locale=True TrueDebug will return the file location in which the instance of debug() is called from.  By adding parents=True TrueDebug will return the parent functions, and all parent functions in which the instance of debug() is called from.

  • debug(object, locale=True, parents=True)
  • debug((object1, object2), locale=True, parents=True)

 

Plugins

Developing plugins is the easiest form of development a contributor can take part in. The included xxblank.py plugin gives users a basic plugin with instructions on how the plugin can be modified. If you are interested in developing plugins all I ask is that you share the plugins with others.

Here are some tips you can use when developing plugins

  • Plugins can be tested while you are running the software. After editing the plugin just reload the list of plugins and the software will recompile you plugin with the edits.
  • Adding items to the Menu is a nice feature that makes it easier for users to use your plugin.
  • You can import major portions of the core software and rewrite entire functions and classes. This process is pretty difficult can it can be worth the time needed to learn how.

 

The Core System

If you are intersted in developing for the Core system I personally think that is awesome. Developing for the core is a it difficult and can be arduous. Again, I would ask that you share your changes but because the changes may consist of many files it might just be easier to fork your creation and host it on Assembla. Hosting your creation on Assembla also makes it easier to get more feedback since anyone with Traipse's Update Manager can download your version and update to it.

Here are a few tips you can use when developing for the Core system

  • In Windows you can open the Traipse.pyw file in IDLE and run it there. The interpretor that opens with IDLE will help you find any error messages far faster than a crash-report.txt file would
  • Test your creation before calling it finished. Quality over quantity is a much better approach than the opposite. Try and get every kink out of the changes you've made before passing it on.