After 2.7 is released I would advertise the RPG to be of Alpha quality, as opposed to the Pre-Alpha/Tech Demo status it had before now.
I intend to stick with that file structure for now, though I may change it a bit in the future to allow named scripts.
Using such numbers make it much much easier to guarantee a constant order among sessions, provide editmode helpers and other editmode facilities.
Such as a menu of critters than contains every defined critter, or that definitions menu where you can tweak the variables in real time.
In any case, conversion wise most of it will work after being reorganised and tweaked to comply with the new structure.
The exceptions are the scripts and cutscene subsystems as they have literally been rewritten. Scripts now use a reference table, implemented to be used upon cubescript and the cutscenes now consist of movement primitives, graphical primitives and transformations as well as several interpolation modes. This also brings us to the HUD, two read-only variables, hud_bottom and hud_right have been exposed, these are constant with the cutscenes and should be used to define things to draw upon the HUD so it scales across resolutions
(you read that right, the HUD is 100% scriptable from 2.7.0 onwards) and they attempt to fit a resized 1600x1200 screen within your resolution.
Script wise, you have significant changes to make, for starters the predefined slots no longer exist and have been replaced with a signal based approach, there are a few hard coded signals, such as update, hit and interact, everything else is defined by you, you can name them what you want, you can send a signal from whenever and have things react by receiving the signal. (look at some of the example scripts in data/rpg/games/base for samples).
The other significant change I mentioned is the introduction of references, this requires significant changes to the script, as old and now selection facilities were removed or modified. There's a few examples below, I don't actually remember the old commands at all, so I don't guarantee factual accuracy
Code: Select all
//old script definition
r_script_interact [
r_select_actor [
r_kill
]
]
//old means to kill everything on the current map
r_select_curmap [
r_loop_ents [
r_kill
]
]
//new means to define scripts
r_script_signal "interact" [
r_kill actor
]
//new means for killing everything on curmap
r_loop_ents curmap ent [
r_kill ent
]