Difference between revisions of "User:Faust Vollmar"

From Second Life Wiki
Jump to navigation Jump to search
m (Updating some info, messing with the layout.)
m (Don't mind me, fussing about my UserPage again.)
Line 1: Line 1:
==About==
==About==
An LSL scripter with a particular interest in SLRPG frameworks and weaponry.<br />
An LSL [and a minor bit of PHP] scripter with a particular interest in SLRPG frameworks and weaponry.<br />
Not a whole lot else to add really, no history or achievements to speak of.
Not a whole lot else to add really, no history nor achievements to speak of.


[https://jira.secondlife.com/secure/IssueNavigator.jspa?reset=true&reporterSelect=specificuser&reporter=Faust+Vollmar View my JIRA Reports]
[https://jira.secondlife.com/secure/IssueNavigator.jspa?reset=true&reporterSelect=specificuser&reporter=Faust+Vollmar View my JIRA Reports]


==Projects==
==Projects==
I should probably create sub-pages for my projects with a bit more comprehensive information and less rambling, but that can come later.<br />
I should probably create sub-pages for my projects with a bit more comprehensive information and less rambling, but that can come later.
* Should I post Source code for the OpenSource projects? I'm not sure of complications the Contribution Agreement could have on managing them.
: Should I post Source code for the OpenSource projects? I'm not sure of complications the Contribution Agreement could have on managing them.
The project sections sound like advertising; I didn't mean it that way but that's kinda how my attempts to jot down what I do turned out.
The project sections sound like advertising; I didn't mean it that way but that's kinda how my attempts to jot down what I do turned out.


====Nexus CS====
===Nexus CS===
* This is my pet project, an SLRPG framework, it taught me LSL as I've gone along since '08, <strike>and will teach me C# when we can use it in SL.</strike>
* This is my pet project, an SLRPG framework, it taught me LSL as I've gone along since '08, <strike>and will teach me C# when we can use it in SL.</strike>
*: The design intent was to be non-profit and only split webserver costs between World Owners, without commercializing any part of the system.
*: The design intent was to be non-profit and only split webserver costs between World Owners, without commercializing any part of the system.
*:: This has the disadvantage that it would not gain funds to commission needed content such as Animations, Sounds or Particle Effects.
*:: This has the disadvantage that it would not gain funds to commission needed content such as Animations, Sounds or Particle Effects.


=====Features=====
====Features====
* A configurable Race/Class/Powers-based system in the vein of DCS2 and Osiris
* A configurable Race/Class/Powers-based system in the vein of DCS2 and Osiris
* Worlds are independent from one another. Any number of Sims can be a part of the same World.
* Worlds are independent from one another. Any number of Sims can be a part of the same World.
Line 23: Line 23:
*: Experience is still present, only used for acquiring new Powers for the character, if the Sim Owner configures them.
*: Experience is still present, only used for acquiring new Powers for the character, if the Sim Owner configures them.
* Weapons use an OpenAPI to register with the CS itself, allowing it to control fairness while allowing freedom.
* Weapons use an OpenAPI to register with the CS itself, allowing it to control fairness while allowing freedom.
*: Some statistics are creator-defined, (within reason) others are calculated by the system to create a balanced result.
*: All weapons by all creators are equal. There will not be an 'enhancement' model.
*: All weapons by all creators are equal. There will not be an 'enhancement' model.
=====Current Status=====
====Current Status====
* Currently not available to the public, unless I reach a point where I need large-scale testing, or there is a sudden wave of interest.
* Currently not available to the public, attributing to the Outstanding Issues below.
* Always thinking about new Power Casting Mode/Types. If you have ideas and want the current list, IM me in-world.
*: I sometimes make exceptions to this. Case-by-case thing.
* Someone to bump heads with regarding the Equipment spec and balance formulae would be nice, as well.
====Outstanding Issues====
<br />
* The Web Control Panel is currently incomplete. Not enough time to learn enough PHP (or other language) for it.
* The Web Control Panel is currently incomplete. Not enough time to learn enough PHP (or other language) for it.
*: I have learned enough PHP to set up a basic Inworld-to-Database layer, but that's all.
*: I have learned enough PHP to set up a basic Inworld-to-Database layer, but that's all.
<br />
* '''Possibly''' OpenSource in the future, simply because some parts (namely the Web Database Server) are beyond my ability.
** Pro: Would lift the Database Server from my shoulders.
** Pro: Far greater openness to contributions.
** Con: Would create usage hassles for Sim Owners (Setup, Security) Weapon Makers (APIs) and Players. (Versions, Websites+Passwords)
** '''Alt:''' Form a team of interested volunteers that controls the Version and Database Server as a group?
=====Outstanding Issues=====
* Internal Bullets are too insecure due to only having 21 bits of an integer available for any validation mechanism.
* Internal Bullets are too insecure due to only having 21 bits of an integer available for any validation mechanism.
*: Would need to be able to: 1: Validate an object without requiring full perms. 2: Directly pass a string across Rez.
*: This is a raw, unfortunate fact of features missing from LSL;
*:# Validate an object without requiring full perms. [http://jira.secondlife.com/browse/SVC-5345 llGetInventoryHash]
*:# Directly pass a string across Rez. [http://jira.secondlife.com/browse/SVC-5716 llGetDataParameter + Others]
*: Alternatively, Raycasting and the ability to cast a llSay to arbitrary locations (in reasonable distance) would also work.
*: Alternatively, Raycasting and the ability to cast a llSay to arbitrary locations (in reasonable distance) would also work.
* Intended design of allowing two Weapons wielded at once would require an unintuitive control scheme.
*:* Since there is a beta test of Raycasting in-progress (as of 04 Sept 2010), this is the more likely result.
*: Scripted access to CONTROL_ML_RBUTTON is the ideal solution I keep hoping for.
*:* (Could not find an existing JIRA for a llSayAt-type function request.)
* Intended design of allowing two weapons wielded at once would require an unintuitive control scheme.
*: Scripted access to CONTROL_ML_RBUTTON is the ideal solution I keep hoping for. [http://jira.secondlife.com/browse/SVC-2566 Add CONTROL_ML_RBUTTON to llTakeControls]
* HMAC Keys are Static. Is this even an issue?
* HMAC Keys are Static. Is this even an issue?
*: This is due to the previously mentioned bullets problem. If needed, dynamic generation will be added when that is resolved.
*: This is due to the previously mentioned bullets problem. If needed, dynamic generation will be added when that is resolved.
* Using a fake HMAC with the pads in Base64 form fed to the native utf-8 llSHA1String. (Database Server has a PHP function to match.)
* Using a fake HMAC with the pads in Base64 form fed to the native utf-8 llSHA1String. (Database Server has a PHP function to match.)
*: I don't know how to concatenate Base64, and if I did I would have to do serious speed testing on Strife's Base64_SHA1 compared to the current method.
*: I don't know how to concatenate Base64, and if I did I would have to do serious speed testing on Strife's Base64_SHA1 compared to the current method.
=====Design Considerations=====
*: (Could not find an existing JIRA for a native HMAC function request.)
* Assuming Project remains ClosedSource; Direct access to Attacks/Powers Comms Protocol for Sim Owners?
====Design Considerations====
** Allow Sim Owner to set their Sim's HMAC Key or set a one used to retrieve it via HTTP?
* Always thinking about new Power Casting Mode/Types. If you have ideas and want the current list, IM me in-world.
** Or just use the original method of closed-source items that check for GM/Owner Status before working?
*: Someone to bump heads with regarding the Equipment spec and balance formulae would be nice, as well.
* Direct access to Attacks/Powers Comms Protocol for Sim Owners?
*: Allow Sim Owner to set their World's HMAC Key? (Or some other method.)
* Capture RP Stuff?
* Capture RP Stuff?
*: I am not an animator and will not be able to create animations for Powers let alone this, so there is very little to gain from it.
*: I am not an animator and will not be able to create animations for Powers let alone this, so there is very little to gain from it.


====OpenSource Weapons Systems====
===OpenSource Weapons Systems===
* This was a project born of wanting my own take on Melee weapon scripts that evolved over time into it's current state.
* This was a project born of wanting my own take on Melee weapon scripts that evolved over time into it's current state.
* Basically boils down to a project to make two base sets (One for Melee, one for all the Range) that can be used for whatever.
* Basically boils down to a project to make two base sets (One for Melee, one for all the Range) that can be used for whatever.
* Intended for SLRPG weapons rather than the Weapon HUDs often seen in free-for-all combat.
* Intended for SLRPG weapons rather than the Weapon HUDs often seen in free-for-all combat.
* Theres really not much to say here. It does what it's meant to do and sometimes I add/fix something.
* Theres really not much to say here. It does what it's meant to do and sometimes I add/fix something.
*'''Two Phases:'''
====Melee Weapon Scriptset====
** ''Melee Weapon Scriptset''
* Current Version: 2.3.7; updated 28.08.2010
**: Current Version: 2.3.7; updated 28.08.2010
* Free on [https://marketplace.secondlife.com/p/NI-Melee-Weapon-Scriptset/1274908 SL Marketplace] or just IM me in-world.
**: Free on [https://marketplace.secondlife.com/p/NI-Melee-Weapon-Scriptset/1274908 SL Marketplace] or just IM me in-world.
====Range Weapon Scriptset====
** ''Range Weapon Scriptset''
* No Release: A lack of time to work on this sub-project.
**: No Release: A lack of time to work on this sub-project.


====Communication Protocol/Channel Ranges====
===Communication Protocol/Channel Ranges===
Listed here for lack of notability for the Protocol Exchange.
Listed here for lack of notability for the Protocol Exchange.
: Channel numbers prefixed with 'x,' are in the -1,409,xxx,xxx range.
: Channel numbers prefixed with 'x,' are in the -1,409,xxx,xxx range.
 
====Nexus CS====
=====Nexus CS=====
# [ User Input Channel ] : 9
:# [ User Input Channel ] : 9
# [ Dialog Menu Channel ] : 99 (Positive to allow /99Menu to retrieve the Menu.)
:# [ Dialog Menu Channel ] : 99 (Positive to allow /99Menu to retrieve the Menu.)
# [ Public Protocol ] : x,000,000 to x,004,999 - Usage will be documented if/when it becomes necessary.
:# [ Public Protocol ] : x,000,000 to x,004,999 - Usage will be documented if/when it becomes necessary.
#: ''Channel;'' Weapon OpenAPI  = -1409000000
:#: ''Channel;'' Weapon OpenAPI  = -1409000000
#: ''Channel;'' Status Display HUD = -1409000001 - (llAbs((integer)("0x"+llGetSubString((string)OwnerKey, 0, 7))) % 4998)
:#: ''Channel;'' Status Display HUD = -1409000001 - (llAbs((integer)("0x"+llGetSubString((string)OwnerKey, 0, 7))) % 4998)
#: ''Header;'' = "NCS"
:#: ''Header;'' = "NCS"
#: ''Payload;'' = Double-Pipe ("||") delimited, with Single-Pipe ("|") delimited sub-sets.
:#: ''Payload;'' = Double-Pipe ("||") delimited, with Single-Pipe ("|") delimited sub-sets.
# [ Private Protocol ] : x,005,000 to x,009,999 - Not for Public Use; HMAC-Signed Data for Attacks or other System Comms.
:# [ Private Protocol ] : x,005,000 to x,009,999 - Not for Public Use; HMAC-Signed Data for Attacks or other System Comms.
#: ''Channel;'' AoE Effects = -1409005000
:#: ''Channel;'' AoE Effects = -1409005000
#: ''Channel;'' Target Effects = -1409005001 - (llAbs((integer)("0x"+llGetSubString((string)TargetKey, 0, 7))) % 4998)
:#: ''Channel;'' Target Effects = -1409005001 - (llAbs((integer)("0x"+llGetSubString((string)TargetKey, 0, 7))) % 4998)
#: ''Header;'' = "NCS"
:#: ''Header;'' = "NCS"
#: ''Payload;'' = Double-Pipe ("||") delimited, with Single-Pipe ("|") delimited sub-sets.
:#: ''Payload;'' = Double-Pipe ("||") delimited, with Single-Pipe ("|") delimited sub-sets.
====OpenSource Weapons Systems====
=====OpenSource Weapons Systems=====
# [ User Input Channel ] : 4 (Default, configurable to use any Channel > 0)
:# [ User Input Channel ] : 4 (Default, configurable to use any Channel > 0)
# [ Dialog Menu Channel ] : -99 (Default, configurable to use any Channel)
:# [ Dialog Menu Channel ] : -99 (Default, configurable to use any Channel)
# [ Public Protocol ] : x,010,000 to x,010,999 - Protocol not likely to be used, however messages are documented in the Project's packages.
:# [ Public Protocol ] : x,010,000 to x,010,999 - Protocol not likely to be used, however messages are documented in the Project's packages.
#: ''Channel;'' = -1409010000 - (llAbs((integer)("0x"+llGetSubString((string)OwnerKey, 0, 7))) % 999)
:#: ''Channel;'' = -1409010000 - (llAbs((integer)("0x"+llGetSubString((string)OwnerKey, 0, 7))) % 999)
#: ''Header;'' = "OWS"
:#: ''Header;'' = "OWS"
#: ''Payload;'' = Single-Pipe ("|") delimited.
:#: ''Payload;'' = Single-Pipe ("|") delimited.
#: NOTE: Versions 2.3.5 and earlier, MWS sub-project comms did not have a Header and used channels -851000000 to -851999999.
:#: '''NOTE:''' Versions 2.3.5 and earlier, MWS sub-project comms did not have a Header and used channels -851000000 to -851999999.

Revision as of 04:43, 4 September 2010

About

An LSL [and a minor bit of PHP] scripter with a particular interest in SLRPG frameworks and weaponry.
Not a whole lot else to add really, no history nor achievements to speak of.

View my JIRA Reports

Projects

I should probably create sub-pages for my projects with a bit more comprehensive information and less rambling, but that can come later.

Should I post Source code for the OpenSource projects? I'm not sure of complications the Contribution Agreement could have on managing them.

The project sections sound like advertising; I didn't mean it that way but that's kinda how my attempts to jot down what I do turned out.

Nexus CS

  • This is my pet project, an SLRPG framework, it taught me LSL as I've gone along since '08, and will teach me C# when we can use it in SL.
    The design intent was to be non-profit and only split webserver costs between World Owners, without commercializing any part of the system.
    This has the disadvantage that it would not gain funds to commission needed content such as Animations, Sounds or Particle Effects.

Features

  • A configurable Race/Class/Powers-based system in the vein of DCS2 and Osiris
  • Worlds are independent from one another. Any number of Sims can be a part of the same World.
  • One Avatar can have up to 12 separate Characters per World, instead of only one. (An Experience Share mechanic would be a World Owner option.)
  • There are no Character Levels, the stats you start with are the stats you always have, other than temp Buffs via Powers.
    I never liked the whole seniority issue that happened with Level-based systems, it was always a source of drama.
    Experience is still present, only used for acquiring new Powers for the character, if the Sim Owner configures them.
  • Weapons use an OpenAPI to register with the CS itself, allowing it to control fairness while allowing freedom.
    Some statistics are creator-defined, (within reason) others are calculated by the system to create a balanced result.
    All weapons by all creators are equal. There will not be an 'enhancement' model.

Current Status

  • Currently not available to the public, attributing to the Outstanding Issues below.
    I sometimes make exceptions to this. Case-by-case thing.

Outstanding Issues

  • The Web Control Panel is currently incomplete. Not enough time to learn enough PHP (or other language) for it.
    I have learned enough PHP to set up a basic Inworld-to-Database layer, but that's all.
  • Internal Bullets are too insecure due to only having 21 bits of an integer available for any validation mechanism.
    This is a raw, unfortunate fact of features missing from LSL;
    1. Validate an object without requiring full perms. llGetInventoryHash
    2. Directly pass a string across Rez. llGetDataParameter + Others
    Alternatively, Raycasting and the ability to cast a llSay to arbitrary locations (in reasonable distance) would also work.
    • Since there is a beta test of Raycasting in-progress (as of 04 Sept 2010), this is the more likely result.
    • (Could not find an existing JIRA for a llSayAt-type function request.)
  • Intended design of allowing two weapons wielded at once would require an unintuitive control scheme.
    Scripted access to CONTROL_ML_RBUTTON is the ideal solution I keep hoping for. Add CONTROL_ML_RBUTTON to llTakeControls
  • HMAC Keys are Static. Is this even an issue?
    This is due to the previously mentioned bullets problem. If needed, dynamic generation will be added when that is resolved.
  • Using a fake HMAC with the pads in Base64 form fed to the native utf-8 llSHA1String. (Database Server has a PHP function to match.)
    I don't know how to concatenate Base64, and if I did I would have to do serious speed testing on Strife's Base64_SHA1 compared to the current method.
    (Could not find an existing JIRA for a native HMAC function request.)

Design Considerations

  • Always thinking about new Power Casting Mode/Types. If you have ideas and want the current list, IM me in-world.
    Someone to bump heads with regarding the Equipment spec and balance formulae would be nice, as well.
  • Direct access to Attacks/Powers Comms Protocol for Sim Owners?
    Allow Sim Owner to set their World's HMAC Key? (Or some other method.)
  • Capture RP Stuff?
    I am not an animator and will not be able to create animations for Powers let alone this, so there is very little to gain from it.

OpenSource Weapons Systems

  • This was a project born of wanting my own take on Melee weapon scripts that evolved over time into it's current state.
  • Basically boils down to a project to make two base sets (One for Melee, one for all the Range) that can be used for whatever.
  • Intended for SLRPG weapons rather than the Weapon HUDs often seen in free-for-all combat.
  • Theres really not much to say here. It does what it's meant to do and sometimes I add/fix something.

Melee Weapon Scriptset

  • Current Version: 2.3.7; updated 28.08.2010
  • Free on SL Marketplace or just IM me in-world.

Range Weapon Scriptset

  • No Release: A lack of time to work on this sub-project.

Communication Protocol/Channel Ranges

Listed here for lack of notability for the Protocol Exchange.

Channel numbers prefixed with 'x,' are in the -1,409,xxx,xxx range.

Nexus CS

  1. [ User Input Channel ] : 9
  2. [ Dialog Menu Channel ] : 99 (Positive to allow /99Menu to retrieve the Menu.)
  3. [ Public Protocol ] : x,000,000 to x,004,999 - Usage will be documented if/when it becomes necessary.
    Channel; Weapon OpenAPI = -1409000000
    Channel; Status Display HUD = -1409000001 - (llAbs((integer)("0x"+llGetSubString((string)OwnerKey, 0, 7))) % 4998)
    Header; = "NCS"
    Payload; = Double-Pipe ("||") delimited, with Single-Pipe ("|") delimited sub-sets.
  4. [ Private Protocol ] : x,005,000 to x,009,999 - Not for Public Use; HMAC-Signed Data for Attacks or other System Comms.
    Channel; AoE Effects = -1409005000
    Channel; Target Effects = -1409005001 - (llAbs((integer)("0x"+llGetSubString((string)TargetKey, 0, 7))) % 4998)
    Header; = "NCS"
    Payload; = Double-Pipe ("||") delimited, with Single-Pipe ("|") delimited sub-sets.

OpenSource Weapons Systems

  1. [ User Input Channel ] : 4 (Default, configurable to use any Channel > 0)
  2. [ Dialog Menu Channel ] : -99 (Default, configurable to use any Channel)
  3. [ Public Protocol ] : x,010,000 to x,010,999 - Protocol not likely to be used, however messages are documented in the Project's packages.
    Channel; = -1409010000 - (llAbs((integer)("0x"+llGetSubString((string)OwnerKey, 0, 7))) % 999)
    Header; = "OWS"
    Payload; = Single-Pipe ("|") delimited.
    NOTE: Versions 2.3.5 and earlier, MWS sub-project comms did not have a Header and used channels -851000000 to -851999999.