GDevelop icon indicating copy to clipboard operation
GDevelop copied to clipboard

🇬🇧/🇺🇸 Report a typo/misspelling/inconsistent name (English)

Open 4ian opened this issue 5 years ago • 201 comments

This issue is to gather any inconsistent naming/typo/mistakes in GDevelop interface.

This is only for the English language - translations are managed on Crowdin and should be fixed there ;)

So if you spot any issue, please report it here by indicating:

  • where it can be found.
  • what is the mistake/inconsistency/proper spelling and how to fix it.
  • a screenshot if possible.

Note that GDevelop is open-source, so you can search in the source code for the text and submit a Pull Request to fix it 🎉

Thanks in advance for any report.

4ian avatar Feb 05 '19 11:02 4ian

I made a thread about this on the Crowdin page, here: https://crowdin.com/project/gdevelop/discussions/18

Here are some of the problems I've noticed. There are quite a lot of these, so it might be faster to do this using a tool actually meant for managing translations, such as crowdin. Github uses a type of formatting where underscores _ are transformed into italics, which is also quite annoying. This just isn't the right tool for this type of work.

The most important change, in my opinion, is the "Do =5 to the X of Y". It doesn't work in English. There are many better ways to translate it. There are about 120 lines of translation that would have to be changed. That is a lot of work, and it wouldn't make sense to do that manually one by one, especially on a Github thread.

Because this is a big change, all the variations should be discussed first, before one is chosen. For example, which verb to use? Change or Modify? Change is an easier word, and more common. Modify is used when programmers talk about changing values of variables. Should the focus be on making GDevelop easy to use for non-programmers and/or those who have poor English skills, or making it more comfortable for programmers and/or native English speakers to use GDevelop? I think the focus should be on those who don't know how to program, so I would choose "choose", not "modify".

Change the X position of Box: X = 3
Modify the value of Box's variable: hitpoints + 5
Change the value of a scene variable: enemies - 2
Modify the value of a scene variable: enemies + 2

Any way, here's what changing ONE of those 120+ lines would look like here in GitHub.

Common conditions for all objects - Position - X position of an object Current description in the event sheet: Do _PARAM1__PARAM2_ to the X position of _PARAM0_ Better decription in the event sheet: Change the X position of _PARAM0_


There are many other, less important changes too. Here's an example of the first ones. I just started going down the list one by one, and basically every event could use some spell-checking and grammar fixes.

Common conditions for all objects - Objects - Pick a random object Current description: Pick only one object with this name, among all Better description: Pick one object from all the objects of this type. When an object is picked, the actions of this event work only on that object.

Common conditions for all objects - Objects - Pick all objects Current description: Pick all objects with this name Better description: Pick all objects of this type. When you pick all objects of this type, the actions of this event work on all of them. Current description in the editor: Pick all _PARAM1_ Better description in the editor: Pick all _PARAM1_ objects

Common conditions for all objects - Obejcts - Objects count Current name: Objects count Better name: Count objects OR Number of objects Current description: Compare the number of picked objects Better description: Count how many objects of this type exist in the current scene, and compare that number to a value. Current description in the event sheet: The number of _PARAM0_ is _PARAM1_ _PARAM2_ Better description in the event sheet: The number of _PARAM0_ objects is _PARAM1 _PARAM2_

Common conditions for all objects - Objects - Pick nearest object Current description: Among the objects, pick the one that is nearest (or furthest if condition is inverted) from the specified position. Better description: Pick the object of this type that is nearest to the specified position. If the condition is inverted, the object farthest from the specified position is picked instead. Current description in the event sheet: Pick nearest _PARAM0_ to _PARAM1_;_PARAM2_ Better description in the event sheet: Pick the _PARAM_ that is nearest to _PARAM1_;_PARAM2_

Endoperez avatar Feb 06 '19 19:02 Endoperez

This is super useful :)

Alas I can't easily "just" create a new english translation because the source code of the software is actually written in English. I could create a translation, but bad translations would stay in the source code, and any change would bring back the bad translation.

Better tackle this problem at the ground. With a bit of effort, reports on user side like you did, and update on mine (or by contributors), 90% of the problem will be gone if a few weeks.

Pick a random object

Fixed the description.

Pick all objects

Fixed both descriptions.

Objects count

Fixed what you mentioned.

Pick nearest object

Fixed both descriptions.

As for the Do _PARAM1__PARAM2_ to the X position of _PARAM0_, which is the hardest part:

  • It's important to keep the value and operator visible (otherwise you can't check what's being modified just by reading the events - which is a really important feature).
  • Change the value of a scene variable: enemies - 2 is maybe a bit better, but might be read as "set the value to enemies - 2" rather than be understood as "subtract 2 to enemies".
  • Actually, other similar game creator have gone the way of having only a few actions : "Subtract X from Y", "Add X to Y", "Set Y to X".

What do you think of having then: "Subtract X from Y", "Add X to Y", "Multiply Y by X", "Divide Y by X" "Set Y to X" (rather than "Do [operator]X to Y").

Clicking on Subtract/Add/Multiply/Divide/Set would bring the operator parameter.

Any way, here's what changing ONE of those 120+ lines would look like here in GitHub.

I should be able to change this more or less automatically, so this might be actually a huge improvement. Not promising that I'll do the change immediately, but that's something that I can do as part of adding translations to GDevelop 5.

4ian avatar Feb 06 '19 21:02 4ian

Created a card for this specific improvement here: https://trello.com/c/0CfDCJIk/248-make-events-sheet-actions-conditions-more-english-like-set-x-to-y-add-y-to-x-y-is-equal-to-x

As for everything that is not a "Do [operator][value] to ..." sentence, please report them (at least the one that are the most terrible) and I can fix them :)

4ian avatar Feb 06 '19 21:02 4ian

I can make a list, but GitHub posts really aren't the best way of doing this. If nothing else, copying and pasting stuff requires a bit more precision than is necessary. Maybe a Google Sheet file? I could put the lines in their own cells.

How should I make it easy for you to replace the original strings? Are you going to search and replace? I can look up file and line references from Crowdin.

Also, I found out I already made a mistake on one of the descriptions. On the Objects Count condition, I didn't understand how it worked, so the description is inaccurate. I thought I tested it, but I only tested if it worked like how I thought it worked, and not any other cases... Oops!

Original description: Compare the number of picked objects My previous description (wrong): Count how many objects of this type exist in the current scene, and compare that number to a value. Fixed description: Count how many objects of this type are currently picked, and compare that number to a value. If conditions and pick commands have not been used, this condition counts how many objects of this type exist in the current scene.

Endoperez avatar Feb 07 '19 04:02 Endoperez

Count how many objects of this type

Except an object type is sprite, tiled sprite, text object etc...

I think it probably should be "Count how many objects with this name", But then you also have groups.....

So we now have "Count how many objects with this name, or how many objects are in the group with this name"...

Which now gives something like:-

Count how many objects of this name, or how many objects are in the group with this name are currently picked, and compare that number to a value. If conditions and pick commands have not been used, this condition counts how many objects with this name, or how many objects in the group with this name exist in the current scene.

The question is, should the long descriptions be in the wiki using the link from the IDE, or do we put complete descriptions in the IDE, some of which might be very long!

It's not so easy to come up with good short descriptions! 🤔

zatsme avatar Feb 07 '19 07:02 zatsme

Except an object type is sprite, tiled sprite, text object etc...

I think it probably should be "Count how many objects with this name", But then you also have groups.....

Thanks for the feedback! Finding the right words first is important, that's true! I've only used GDevelop a little, and I'm not very familiar with it, so I make lots of mistakes like these. I think it'd be better to first discuss these things, and only put them in after some consideration.

So, there's Object type - when an object is created, it can be a Sprite, a Text Object etc, and these are called Object types. I haven't seen anything in GDevelop 5 UI call these "object types", although GDevelop 4 UI does call them that.


Now that I've thought about it a bit more, I can see why the "X of Y" wording was used so much in the existing descriptions.

value of PARAM1, or PARAM1's value? Value of score, value of box, value of ammo, value of bullets score's value, box's value, ammo's value, bullets's value

variable of PARAM1, or _PARAM1's variable? Box's variable, sheep's variable, wolves's variable, all enemies's variable variable of Box, variable of sheep, variable of wolves, variable of all enemies

Of course, it can be bypassed altogether: scene variable's value: Score = 1, etc


The question is, should the long descriptions be in the wiki using the link from the IDE, or do we put complete descriptions in the IDE, some of which might be very long!

What is the purpose of the descriptions in GDevelop itself? I think they have two distinct purposes:

  1. Help new users who have no idea what they're doing.
  2. Refresh the memory of people who have used it before, but aren't sure how it works.

Describing everything accurately and perfectly is unnecessary. New users won't understand the accurate description any way, and if you just need something to remind you how a specific instruction works, it doesn't need to be an accurate and detailed description either.

I added some simple explanations to some of the descriptions because to a new user, it isn't clear what "Pick" does, so the command is meaningless. However, counting objects has meaning, even if they don't know that objects can be grouped together, so that information is unnecessary.

It's not so easy to come up with good short descriptions!

Yup! It can be fun too, though.

Endoperez avatar Feb 07 '19 09:02 Endoperez

Maybe a Google Sheet file?

That's a good idea :) People that want to help can request edition permission

How should I make it easy for you to replace the original strings? Are you going to search and replace? I can look up file and line references from Crowdin.

File and line references are fine if you can include them next to the old string/new string in the spreadsheet :)

So, there's Object type - when an object is created, it can be a Sprite, a Text Object etc, and these are called Object types

Correct - I missed this "detail" but indeed we should avoid the term "Object Type" which is referring to what is the underlying class in source code.

  • An Object Type is: Sprite, Tiled Sprite, Text, Shape Painter, Particle Emitter...
    • They are represented in the game engine by objects called XXXRuntimeObject. For example, gdjs.SpriteRuntimeObject.
  • An Object is Player, Enemy, GrassPlatform, etc...
    • Actually, the "Object" represents the full configuration: the name, the behaviors, the animations in case of a Sprite, the properties in general. That's why internally the editor is called "ObjectEditor".
    • The object name is "Player", "Enemy", "GrassPlatform" and is a unique identifier (across the scene) (or across the game) for the object.
  • An Instance is an object that is living on the scene.
    • The editor refers to the them as instance. Internally, it's called an "InitialInstance" (because it's something that is initially on the scene, at the beginning).
    • During the game, "living" instances of the objects are instances of XXXRuntimeObject. For example, if you create a Player, GDevelop will create a new instance of gdjs.SpriteRuntimeObject and initialize it with the properties and animations stored in the "Player" object. ("Runtime" is the term that convey the meaning that these are the "living" things being displayed on screen).

I should probably make a documentation page with this :)

So I've changed the description of "Number of objects" to:

Count how many of the specified objects are currently picked, and compare that number to a value. If previous conditions on the objects have not been used, this condition counts how many of these objects exist in the current scene.

i.e: we don't specify object name or object type, but just "object", or "specified object" - to hint that this is about the objects that will be living on the scene. The full, right name for this should be "Count how many of the instances of the specified object are currently picked [...]". But it's super verbose and I think it's fine to just say "Count how many objects".

I've updated the other description to remove "object with this type" and just say "object" :)

value of PARAM1, or PARAM1's value variable of PARAM1, or _PARAM1's variable

It's up to you to tell me what sounds better :) The advantage of value of PARAM1 is that there is a better visual distinction/less risk of confusing the quote in 's with some part of a text or something like that (unlikely, but still).

4ian avatar Feb 07 '19 13:02 4ian

Tip to avoid the underscore-to-italic problem: You can use "\" to escape special characters, very much like the escape character in programming strings. So if you write "\_PARAM0\_" it's correctly displayed as _PARAM0_ :)

Lizard-13 avatar Feb 07 '19 17:02 Lizard-13

Nice! I didn't know :)

@Endoperez You can still create a spreadsheet and give us the link here, if you think it's easier for you to report things. Actually could be better because it will be easy for me to mark a comment to say if it's fixed or not.

4ian avatar Feb 07 '19 17:02 4ian

It looks like I can download a specific language localization as a .po file, which I can get into a spritesheet The .po files can be opened in Poedit, which is a free translation program.

The .po file also contains the reference file, e.g. bugreport.cpp:90 , but I haven't figured out how to export that info into an spritesheet. For now, I'm doing these translations into a local .po file, and we can look into better ways to share the final translations later.

Also, downloading the .po file is a MUCH easier way to translate a bunch of lines all at ones than doing it on the Crowdin web page! This makes it much faster to translate anything that's more than a handful of lines.

Endoperez avatar Feb 10 '19 15:02 Endoperez

Nice :) You might want to re-download the PO as I've done a lot of clean up this afternoon. Removed all translations related to GDevelop 4 so that we can concentrate on GDevelop 5 translations (which is more recent and should have an overall higher quality interface).

The .po files can be opened in Poedit, which is a free translation program.

Yes, that what what I used to recommend to people :) Before moving to Crowdin as this allow easy collaboration (and when translating, their recommendation is really powerful, I just gave it a try and translated dozens of strings by selecting the proper recommendation and fixing a few things sometimes).

Though in your case where you're going through existing English messages, poEdit is surely better suited. You can make a "translation" and then send it to me and I'll try to apply all messages to the source code. A spreadsheet would still be better for collaboration and so that I can note what is fixed and what is not.

Let me know how it goes :) And thanks for the time you're investing in this! Appreciate it.

4ian avatar Feb 10 '19 18:02 4ian

Ooh, nice! I'll get to work on the Finnish translation too, then.

I just did some 180 or so lines in the old file, but it should be relatively quick to move them over to the new file. Knowing which lines I can safely ignore is going to be super useful! I was getting stuck on some of the extensions for a bit, and then realised they're probably only available in GDevelop 4.

Currently I'm working on the Finnish translations, but the slowest part in all of this is actually the part where I try to find out the context. Do = 50 to what of what now? :D Once I've worked out the context on the Finnish translation, rewording the English sentences is much faster, too.

I was part of a project where I had to recommend a free game engines for some Finnish schools, and write up some tutorials and course materials so the kids (13-16 or so) can learn some game development and stuff. GDevelop was the best free engine I found! It needs quite a bit of polish, but the base engine and its capabilities are good. I now have some free time, so I thought I'd help with polishing it.

Now that I think about it, I think I was going to send you an e-mail, but I had to put it off for some reason. I had trouble finding your e-mail address, I think? Any way, I also appreciate the time you're investing in this! It's a great tool, with lots of potential. I'm happy to support you with the stuff I can do, like some rewriting or some UI updates, but you're the one truly carrying the project forward.

Endoperez avatar Feb 10 '19 19:02 Endoperez

I'll get to work on the Finnish translation too, then.

Cool, thanks! Will be great to have a high quality translation to highlight :)

Knowing which lines I can safely ignore is going to be super useful! I was getting stuck on some of the extensions for a bit, and then realised they're probably only available in GDevelop 4

Yeah, after all the cleanup I've removed all strings from GD4 and extensions that are not in GD5. So apart from a few dozens strings that might be there but unused, 99% of translations should up to date for GD5 :)

Some things can still be missing context.. in which case look at the source file might help. Otherwise let me know and I'll comment on Crowdin. I think I could also potentially add some description - maybe not for everything but for some strings coming from the editor.

I had trouble finding your e-mail address, I think?

On the left on my GitHub profile ;) https://github.com/4ian

I was part of a project where I had to recommend a free game engines for some Finnish schools, and write up some tutorials and course materials so the kids (13-16 or so) can learn some game development and stuff. GDevelop was the best free engine I found!

Nice! If you have anything online let me know and I can feature it on the website in Education page too :)

4ian avatar Feb 10 '19 20:02 4ian

I think that some of the suggestions in https://crowdin.com/project/gdevelop/discussions/18 are too long. We need to try and avoid using a lot of text

My Suggestion for

Do =5 to variable HITPOINTS of HERO
Do -1 to global variable LIVES
Do ="false" to the text of scene variable ALIVE

is

Set HERO variable HITPOINTS to =5
Set global variable LIVES to =-1
Set the text of scene variable ALIVE to ="false"

It really is all in the order of words- the main thing that makes it a bit confusing, as well as using the word 'Do'

this:

Modify the value of an object variable: HERO's HITPOINTS = 5
Modify the value of a global variable: LIVES - 1
Modify the text of a scene variable: ALIVE = "false"

Its too long. We can communicate the meaning with less words, just as clearly.

Also lets avoid using 'Change' and 'Modify', but settle on one word that is shorter and simpler- 'Set'. Using one word reduces complexity, having two suggests different meanings of the action - in both cases we are just setting it. But the word should definitely not be 'Do'

blurymind avatar Feb 12 '19 17:02 blurymind

I suggested something but did not get any feedback:

What do you think of having then: "Subtract X from Y", "Add X to Y", "Multiply Y by X", "Divide Y by X" "Set Y to X" (rather than "Do [operator]X to Y").

4ian avatar Feb 12 '19 18:02 4ian

I suggested something but did not get any feedback:

What do you think of having then: "Subtract X from Y", "Add X to Y", "Multiply Y by X", "Divide Y by X" "Set Y to X" (rather than "Do [operator]X to Y").

Yes I think that would be ideal!

blurymind avatar Feb 12 '19 18:02 blurymind

Subtract, Add and so on could be more clear, but there are some problems.

Basically, localization could become more complex. Subtraction uses 'from', addition 'to', etc. Different languages would do this differently.

The best way to ensure the grammar works is to make separate sentences for addition, subtraction, multiplication and division, and replacing/setting. That would require translating 5 sentences instead of 1, for each of the 100+ lines that currently read 'Do +5 to something'.

If there is a better way to make it easy to localize these sentences, that would be fine. For example, it is possible to spell out which operation is being used (e.g. add, replace, multiply). Those sentences could be something like this:

'Make a calculation (Addition) that sets the value of variable: VAR + 5'

However, I'm not sure how that would be displayed in the text. Would PARAMx be 'add' instead of '+'? Or would there be a way to add the word that describes the operation, but still keep the + symbol and position it separately? I think = / replace operation would benefit the most from being described as a word. The = symbol in programming is a bit different from the = symbol in maths, where it is a comparison, bot a replacement operation.

This makes the sentences longer. Blurymind mentioned that some of the earlier sentences are too long, though.

Why do you think so? It is not a matter of space. There is enough space in the event editor for actions that have very long expressions! Virtual space is free.

Is it a matter of easy readability? I can make mock-up screenshots that show how these different variations would look like, and we can discuss which sentences are the most clear.

Finally: set, or change, or modify?

Set is an interesting option, but my first reaction is that it can be a bit confusing for new users. If you 'change hitpoints' by '-5', that is a subtraction. However, if you 'set hitpoints' by '-5', is the result a subtraction, or is the new value -5?

If the operator symbols + - * / are replaced by words, that is not an issue. Again, it is easy to do mockups and discuss the different possibilities once they're visible side by side. I will test 'set' too, even though I prefer 'modify'.

Endoperez avatar Feb 13 '19 07:02 Endoperez

What do you think of having then: "Subtract X from Y", "Add X to Y", "Multiply Y by X", "Divide Y by X" "Set Y to X" (rather than "Do [operator]X to Y").

While we are already talking about taking the "Voldemort route". Why not also adapt the use of icons for global and scene variables (and draw the var icon on top of the globe and scene icon): Add 1 to 🎬LIVES Set 🌍LIVES to 🌍LIVES + 1 Add 🌍HEALTHPACK_SMALL to 🎬HEALTH

This would make translations easier and shorten the sentences.

If we add the icons to the global/scene variable editor dialogs new users will remember them and know what they stand for in the events sheet.

Wend1go avatar Feb 13 '19 10:02 Wend1go

What do you think of having then: "Subtract X from Y", "Add X to Y", "Multiply Y by X", "Divide Y by X" "Set Y to X" (rather than "Do [operator]X to Y").

While we are already talking about taking the "Voldemort route". Why not also adapt the use of icons for global and scene variables (and draw the var icon on top of the globe and scene icon): Add 1 to 🎬LIVES Set 🌍LIVES to 🌍LIVES + 1 Add 🌍HEALTHPACK_SMALL to 🎬HEALTH

This would make translations easier and shorten the sentences.

If we add the icons to the global/scene variable editor dialogs new users will remember them and know what they stand for in the events sheet.

I think thats a fantastic idea and will make the event sheet much easier to read. Actually that is how both clickteam fusion and construct do it to communicate on which game element the action is done. They draw a tiny icon of the object's sprite. If the object has no sprite, an icon representing its function is used. The great thing about these images is that you know what is being affected at first glance and you dont need to read any text. At a quick glance your eyes take in much more information about the code, as icons contain colors and shapes

blurymind avatar Feb 13 '19 10:02 blurymind

Is it a matter of easy readability? I can make mock-up screenshots that show how these different variations would look like, and we can discuss which sentences are the most clear.

If you can do some mockups, that would certainly be useful :)

. That would require translating 5 sentences instead of 1, for each of the 100+ lines that currently read 'Do +5 to something'.

I was thinking of another approach:

  • You have 4 "templates" that need to be translated: Add {0} to {1}, Subtract {0} to {1}, Multiply {1} by {0}, Divide {1} by {0}, Set {1} to {0}
  • Each of the existing Do +5 to something translation will be converted to a new translation that will just be something. Example: Do _PARAM1__PARAM2_ to the value of scene variable _PARAM0_ would become the value of scene variable.

This would allow to avoid having too much translations to do, while still allowing language to define proper translations for each operators.

While we are already talking about taking the "Voldemort route".

Haha what is the "Voldemort" route? :D

Why not also adapt the use of icons for global and scene variables (and draw the var icon on top of the globe and scene icon)

This is a really nice idea. Actually, since GDevelop 5, the rendering of sentences for action/conditions is very flexible (much more than in GD4. In GD5, all parameters are React components that could be customized), so we could imagine things like icons for all kind of parameters (like small thumbnails representing the objects).

4ian avatar Feb 13 '19 10:02 4ian

Do =5 to variable HITPOINTS of HERO
Do -1 to global variable LIVES

would become

Set 🚶HERO 📌HITPOINTS to =5 Set 🌍LIVES to =-1

We need an icon for local variable and one for global. Now sure if 📌is good for local. You could use emojis to draw a lot of these icons, but we also have material-ui. 🚶 could be a small image version of the actual first frame sprite (like construct and clickteam)

I think that color information is important, but we could also use material-ui icons.

Btw using more icons could potentially reduce the work required for translation

blurymind avatar Feb 13 '19 10:02 blurymind

For the "set", I agree with @Endoperez that this might be confusing:

Set is an interesting option, but my first reaction is that it can be a bit confusing for new users. If you 'change hitpoints' by '-5', that is a subtraction. However, if you 'set hitpoints' by '-5', is the result a subtraction, or is the new value -5?

So ideally, we would have different sentences for these I think.

We need an icon for local variable and one for global. Now sure if 📌is good for local. You could use emojis to draw a lot of these icons, but we also have material-ui.

We can either use: emoji, material-ui icons or more generally any SVG icon. SVG sounds like a good option because emoji are I think to broad/generic. If you have SVG in mind or can create ones, any mockup/SVG file is welcome :)

🚶 could be a small image version of the actual first frame sprite

It would be the object type icon (i.e: the thumbnail that is displayed in objects list). We have to be cautious about perfs (rendering these icons might be a bit long on lower end devices)

4ian avatar Feb 13 '19 10:02 4ian

Using icons can potentially be the single biggest improvement to the event sheet imo. If we get the code down and use placeholder icons, we can later on replace them with custom/better ones

blurymind avatar Feb 13 '19 10:02 blurymind

I prefer 4ians subtract, add, multiply and divide with the addition of wend1gos icon idea 😁

zatsme avatar Feb 13 '19 11:02 zatsme

+1 for custom SVG icons. (I only used the emojis for a quick sketch) Maybe Pelitaiteilija would like to help us out here. His/Her suggestions on the forum for style, colours and icons look pretty good.

Wend1go avatar Feb 13 '19 11:02 Wend1go

Its worth considering that these icons need to work for both the light and dark theme

Do we have a list of what icons are required? Would their size be 8x8 or 16x16?

If they are a font, any color could be applied to them as they would be themable?

blurymind avatar Feb 13 '19 11:02 blurymind

If they are a font, any color could be applied to them as they would be themable?

Yes for SVG. For example, Icons in exporter dialog are SVG and are adapted to the theme. See for example: https://github.com/4ian/GDevelop/blob/master/newIDE/app/src/UI/CustomSvgIcons/Cordova.js

So size does not really matter, as we should aim for SVG. They will be rendered at 16x16 (but on Retina screens, this means 32x32 pixels or more).

4ian avatar Feb 13 '19 11:02 4ian

For the "set", I agree with @Endoperez that this might be confusing:

Set is an interesting option, but my first reaction is that it can be a bit confusing for new users. If you 'change hitpoints' by '-5', that is a subtraction. However, if you 'set hitpoints' by '-5', is the result a subtraction, or is the new value -5?

This problem goes away if the set is 'to' , rather than 'by' , doesn't it?

I. e.

Subtract var by 5 Set var to -5

This seems quite clear 🤔

zatsme avatar Feb 13 '19 11:02 zatsme

Subtract var by 5 Set var to -5 This seems quite clear 🤔

Yes this is very clear. But this is no what @Endoperez was talking about, he was talking about the generic, one fit all solution:

Set [something] to [operator][value]

Which would be confusing because Set XXX to -5 both means "set it to the value -5" and "substract 5 from the current value".

Anyway let's forget this solution because it's not really better than Do [operator][value] to [something]

4ian avatar Feb 13 '19 12:02 4ian

er than Do [operator][value] to [something]

Do is very confusing imo. Why not do it like Construct2 instead? event-sheet-1

Just using Set. If its adding to its Set + x If its just setting its Set = x

It's infinitely better compared to our current approach. We dont use words for what is already communicated via a single sign

blurymind avatar Feb 13 '19 12:02 blurymind