Multi-Resolution Game Development With GameBuilder Studio Check it out!
NEW Version 0.9.7 has arrived! New Blazing Fast Particle Engine & More Game Actions. Check it out
List of feature requests
  • Here´s what i´d like to see in GBS. Numbers 1 and 2 would be extremely helpful, especially when making word games.

    1. FUNCTIONS FOR STRING PROPERTIES

    In the expression editor:
    -functions specific for string properties. Such as:
         -String length
         -Replace letters (replace certain letters in a string)
         -Get only a part of a string (for example: get only letters 2-5 from a string with 10 letters)

    In RulesMap:
    -When choosing the conditions for a rule, Have the dropdown in the middle include some string specific options. Such as:
         -Begins with
         -Ends with
         -Contains
         -Is
         -Does not begin with
         -Does not end with
         -Does not contain
         -Is not

    2. LISTS:

    -Add some list specific functions to the expression editor. Such as:
         -List search (search if a list contains a value/string stored on a property)
         -List row (ability to point to a list row with an attribute)
         -Merge list (ability to merge all list entries into one)
         -List sum (add all list entries into one)

    3. TiIMERS:

    -Ability to have multiple triggers in one timer.
    -Copy / paste triggers in a timer.
    -When using "for x seconds" in a timer, would be useful to have a "then" trigger.

    4. RULES
    -When choosing conditions (example: when "property"), have the dropdown in the middle detect witch type of property is selected, and include only options available for the property type. Example: If a boolean is selected on the left, have the dropdown only include "true" and "false" options. If an integer is chosen, have the dropdown only include =,>,<,... If a string is selected, have the dropdown include the options i requested above.

    -Include option for "if" in the otherwise section of a rule. Using the "conditional action" is ok, but would be much simpler if there was an option to just add another condition in the otherwise section.

    5. ENTITY LIBRARY
    -Make a library for entities. You could create new entities in the library, so you don´t need to have a copy of every entity laying around somewhere in the scene. This would also allow you to just drag and drop any entity you´ve created into any level, without having to go and copy it from another level.

    6. ACCESS TO CAMERA AND CAMERA-ROLL

    -Ability to import / export images from / to camera-roll.
    -Ability to take a picture of the screen, or part of the screen and use it in the game. (example: Facebook sharing)
    -Access to device camera so you can take pictures and use them in your game.


    Hope to see at least some of these in the future. Especially numbers 1 and 2. I like to build word games, but because of those missing features i´m still sticking with another game engine.
  • 5 Comments sorted by
  • @Lavon are these features something you guys can implement in GBS? If needed, i can explain them in more detail if they are unclear.
  • @MentalDonkeyGames The beauty of GBs is that we can make customizations pretty easily depending on the scope of what is requested. Number 1 should be fairly easy to add quickly. It may not make it into this next release of v9.9 but for sure it will be in the follow up version which will be v1.0.

    2. This can already be done with what is already available. You can search a list data component in GBs very easily. Just use a loop action and set the loop count to the "length" property of the list data component. Then access each element in the list by using the current index property on the CustomActionData property in a nested action under the loop action.

    What do you mean the ability to point to a list row? Do you mean the ability to point to an item in the list? You can do this explicitly if you know the index (or row number) of the item you want to access like this:
    @ListData.item1. Or if you need to dynamically point to a row based on an index then you can use an expression and use concatenation like this: Self.ListData["item"+rowIndex].

    You can merge a list by just looping over the list and copying the data from one to another using the Change List action. There is no built in feature for this currently.

    List sum sounds like the same as merging a list. Can you clarify?

    3. You can have multiple triggers in any trigger slot by using a Group action. This will allow you to use multiple actions in one slot and allow you to copy and paste actions.

    Adding a trigger when the timer completes is a good suggestion.

    4. Good suggestion.

    5. This will most likely come in v1.0 of GBs. 

    6. This can be added as a plugin but will not be high priority at this time.
  • Thank you @Lavon

    Using the loop to search or merge a list is fine if you only have a few rows in the list, but imagine if you have a few hundred rows to loop through... Even if one loop took only 0.01 seconds, looping through a list of 200 rows would take 2 seconds. The engine i mainly use right now (gamesalad) has an instant (one code cycle) search function.

    By the way, one thing i forgot from my request list is an ability to import a list. Would be awesome! From a .csv file for example.

    What i mean with the list sum, is basically add all the values together.
    Example: List has 4 rows with values 1, 2, 3 and 4. One in each row.
    Merging a list would result in 1234
    Summing the list would result in 10

    Again, this can be done with a loop, or if you add everything together in the expression editor, but if there's tens, (or hundreds) of rows, it takes time to loop through it, or takes ages to write in the expression editor.

    I have not used groups before, sounds like that would do the trick in a timer.

  • @MentalDonkeyGames trust me, GameBuilder's engine performs much faster than GameSalad. Looping through 2,000 rows would not take any time at all and you would not see a performance hit. Behind the scenes what do you think is happening under the hood when GameSalad does a search? Im sure it performs a loop. 

    To sum the contents of each row is the same thing as concatenating a string in GBs. So you would loop through the list and just use one action and one property to concatenate the current row to the last property value using a Change Property action like this: 

    @CustomProperties.newString  =  Self.CustomProperties.newString + Self.List["item"+GameData.CustomActionData.currentIndex] 

    That would result in 4 rows with letters "G", "A", "M", "E" turned into one string of "GAME". 

    To Add up integer values from a list you would use the same approach. One property of type integer and one action to add the previous value to the new value and reset the property all using one Change Property action and an expression. 

    This takes no effort at all. 

    Loading a CSV file is a great suggestion. It just hasn't been a high priority. If this is really important we can add it. However I would suggest an alternative to the CSV approach which is converting your CSV file into a JSON object with a list of values in an array and loading it into GBs using a URLLoader action ( Here is a video on the topic of using a URLLoader action
    ). Then loop through the result object and push the values onto a List component on an entity using a Change List action. This would achieve the same result and make your data more portable.
  • Thanks @Lavon

    To be honest, i´ve not tried looping through a very long list before, because it takes forever to enter the data without a method to import it from CSV.

    The URLloader method would work, but i´d still like to have a way to import a list straight in to GBs.

    And thank you for the trick with the expression editor.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

In this Discussion