Pros and Cons of Implementing a Scripting Language

  • jakester12345
    17th Oct 2010 Member 0 Permalink
    Hmm yeah, you wouldn't be able to do reactions (well, not easily :|)
  • bbqroast
    17th Oct 2010 Member 0 Permalink
    Felix
    Stop being negative Felix apart from entertaining other people Simon has only lost in powder toy (The ads probably barely keep the website online), But he keeps going. Why? because he's a hard working community person.

    Firelight730
    Yea good idea, but the particles should all have IDs so you can have particles with the same name and colour- Also you would need some type of window that lets you toggle certain particles (with a feature that lets you select all the particles in one save or from a certain author and maybe their could even be groups- like playlists on youtube).

    jakester12345
    JUst simply make the game automaticly fetch all the new data and save it locally on save or you could make it fetch the data (and save it) only when that particle appear in a save that you are loading (The server could end up with gigabytes of entries being added and upated every day).

    Firelight730
    No he/she means when you are using a portable computer and don't have access at certain times (e.g. I commute to school on a boat and use my laptop then- I play powder which I downloaded at home).

    Diissaster
    Yep, Sure am talking about Roblox (Is it all caps... I don't know).

    devast8a
    MySQL tables can hold files (such as some LUA code) or you could just have it contain a link to the LUA code.

    LUA does seem like a good language..
    BUT PLEASE in the name of the God(s) do not use python the entire increment thing is HORRIBLE.

    Long post... Please forgive for any Typos- if you can make it out then it shouldn't be a prob.

    I'm going to have a swim and then i'll post my compiled thoughts on this SQL storage stuff.
  • baizuo
    17th Oct 2010 Member 0 Permalink
    Speak as a normal player.
    I want the game fast, vivid.
    If script can add more features that is very attractive but a bit slower, then use it
    If it can add few features that is not important and slow the game a lot, pass it.
  • Neospector
    17th Oct 2010 Member 0 Permalink
    bbqroast:
    Yep, Sure am talking about Roblox (Is it all caps... I don't know).

    Yes, the legal name under Copyright is ROBLOX.
  • bbqroast
    17th Oct 2010 Member 0 Permalink
    WOW Fast replys. Anyway I guess this isn't double posting (i have asked about this and am waiting a reply).
    Ok so here we are:
    You have a folder called:
    "LUA(or whatever)_CODE"
    and a table called:
    "ExtraElements"
    ID,Name,Disc,ShortName,COLOR,CODEID,AUTHORID
    Also a table called:
    "Groups"
    ID,Name,Disc,OwnerID
    and:
    "GroupMatch"
    "ID","GROUPID","ELEMENTID"
    And the two download tables:
    "ElementDownloads"
    "ID","ELEMENTID","USERID"
    and
    "GroupDownloads"
    "ID","GROUPID",

    All the XML files (for local files) are the same except for the element XML file which includes a toggle.

    When a user creates a new element:
    1.He/She writes the source in LUA (and compiles it).
    2.He/She Uploads the code writes a discription, name, and a short name (the four letter one e.g. METL) and chooses the color.

    The server uploads the code, names it with a random ID and saves it to "LUA_CODE".
    Then it adds a row in "Extra Elements" and fills in all the details (The codes name goes in CODEID).

    When a user creates a group
    The user names the group and gives it the discription.
    The server adds it to the "Groups" table with the creators ID.

    When a user adds a element to a group
    The server checks he is the owner then adds a new row in "GroupMatch".
    In the row it puts in the ID of the group and the ID of the element.

    When a user downloads a element
    The site adds the element ID and the User's ID to the "ElementDownloads" table.

    When the user opens powder toy the all the element row data is downloaded into a XML file and the LUA code is downloaded (The table has the name so powder just adds it onto the url for the "LUA_CODE" file).

    The code is saved in another local folder (where it can be accessed using the same file name as in the "ExtraElements" table).

    When a user downloads a group
    The site gets all the instances where GROUPID = ID from the "GroupMatch" table.
    For each of these the element downlaod process is ran.

    Finally another row is added in "GroupDownloads" with all the info.

    When the user opens powder toy the all the groups in "GroupDownloads" are saved into a local XML file. The related rows in "GroupMatch" are also downloaded.

    User activates element

    The element is added to a "ADDONS" group (with special,liquids,etc).

    The TOGGLE is set to on in the XML file and the LUA code is loaded.

    User activates Group
    Powder just goes through the group activating each element in it using the local XML files.
  • Neospector
    17th Oct 2010 Member 0 Permalink
    bbqroast
    Best explanation so far. And you are allowed to reply fast, like this:
    person
    blah blah
    person2
    blah blah
    person
    blah blah
  • baizuo
    17th Oct 2010 Member 0 Permalink
    bbqroast
    Does this means, I can add new elements into my game, single or in group just like patch a mod of other games?
    So when a modder made some new elements, we just download the elements pack but not the game itself, then add it to the game?
    So what you are talking about is a mod support API?
  • Felix
    17th Oct 2010 Member 0 Permalink
    bbqroast:
    Felix
    Stop being negative Felix apart from entertaining other people Simon has only lost in powder toy (The ads probably barely keep the website online), But he keeps going. Why? because he's a hard working community person.

    Negative? I am a realist. There are no advantages only disadvantages. Like speed (depending on how it would be implemented the impact could be everything from huge to not so huge.)

    With that said, there are work being done that could ease up the possible transition to a more modular game. Far from completed yet tho.
  • plypencil
    17th Oct 2010 Member 0 Permalink
    I will work on a basic scripting language, wont interface with the powder toy though.

    We will be able to see if there is a performance difference
  • plypencil
    17th Oct 2010 Member 0 Permalink
    This is the scripting language, I will now make a program which can make use of it

    <csp id='SCRIPT TEST' ver='0.0.0.0' sub=''>

    environment.maxpixels(4000)
    environment.skipframe('True')

    <element id=0>
    .oncollide(0,0) #On Collision with element 0, run script 0
    .colour(C'FF0000')
    .mass(1)
    </element>

    <script id=0>
    self.colour(C'00FF00')
    other.destroy
    environment.airpressure(self.x, self.y, += 10)
    </script>

    </csp>



    P.S own self invented scripting language
Locked by jacob1: necro