Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Extension: Isometry Helper #102

Closed
6 tasks done
D8H opened this issue Jan 29, 2021 · 12 comments
Closed
6 tasks done

New Extension: Isometry Helper #102

D8H opened this issue Jan 29, 2021 · 12 comments
Assignees
Labels
⌨ JavaScript Uses JavaScript code, and thereby needs a reviewer who knows JavaScript. ✨ New extension A new extension

Comments

@D8H
Copy link
Contributor

D8H commented Jan 29, 2021

Describe the extension

This extension allow to

  • Snap objects on a grid during the game
  • Follow a slope
  • Convert coordinates

Extension file

https://www.dropbox.com/s/w2p48240l1od5nt/Isometry.zip?dl=1

Examples

Issues to discuss

The slop behavior may not be really easy to use, because the caller needs to keep tack of the object movement (the slope doesn't know Who will go through). Should this be included in the behavior?
SlopeEvents
There is also an issue with 2:1 isometry because the user have to set atan(0.5) for the isometric angle parameter. I wonder if I should add a function "PixelIsometryAngle()".

The inclination angle (alpha_i) is negative in the following diagram, but that not very intuitive. So the calculus takes the opposite of this parameter to make it more intuitive. (Note that the direction angle (alpha_r) is actually consistent with the angle used in Top-Down Movement extension: Down=90° contrary to what the diagram shows)
IsoSlopeAngles

I added an isometry angle parameter systematically even thought it's not used in some functions. I see it almost as a parameter of the extension. It avoids the user to wonder why it's present or not.

Things that can be done with isometry

What already works and doesn't need functions from this extension:

  • block alignment, the existing grid alignment extension work well for isometry too
  • z-ordering, using one layer per z-level and the y-sort extension works for isometry
  • multi-z-level collision, objects can be used to detect the change of z-level (eg: going through a slope) and activate the collision for this z-level.

The test project shows how to do it, but maybe I should do a tutorial.
IsoSpiralSBS

Checklist

  • Extension has a proper name and description.
  • Extension has tags (for example: "platform, brick, breakable").
  • All behaviors have a description.
  • All functions (actions, conditions, expressions) have descriptions and proper sentences.
  • I've followed the best practices listed on http://wiki.compilgames.net/doku.php/gdevelop5/extensions/best-practices
  • I confirm that this extension can be integrated to this GitHub repository, distributed and MIT licensed.
@D8H D8H added the ✨ New extension A new extension label Jan 29, 2021
@4ian
Copy link
Collaborator

4ian commented Jan 29, 2021

Nice! :)
We'll wait for the changes for the isometry movement to be in the next version of GD (I hope to release on in the next few days), then we can distribute this extension with a minimum GDevelop version so that it's marked incompatible in older versions.

@4ian
Copy link
Collaborator

4ian commented Jan 29, 2021

Please ping me in a few days if I forget about this after the release!

@D8H
Copy link
Contributor Author

D8H commented Feb 3, 2021

Hello @4ian, I think the extension is ready for a 1st review.

@4ian
Copy link
Collaborator

4ian commented Feb 17, 2021

@D8H Might be a bit out of context here, but I've been trying https://www.bbc.co.uk/games/nightfall and this isometry game is using for the keyboard the usual controls directions, i.e: up is up, down is down, and you have to press two keys to follow an isometry "straight line" - which is not a problem when playing to it.
I wonder if we should do the same in GDevelop by default? Having directions not being the same as what you see on screen by default is a bit disturbing.

For this extension, I think it will be good to distribute with a big link to an example game so that people can see how to use it.

@D8H
Copy link
Contributor Author

D8H commented Feb 17, 2021

I think they designed it with sticks in mind and, in this case, indeed it makes no sense to be 45° rotated. It's also probably more user friendly for action oriented games too. You were probably right, maybe the top-down isometry mode should have a 45° offset by default (so up is up).
But I think it's important that axis stays at 45° for calculus. And, the fact that it goes in diagonal without an offset may help the user to understand how advance features work.

What do you think about changing the offset when the user change the viewpoint and it was the default value (using 0° for top-down and 45° for isometry as default value) ?

@4ian
Copy link
Collaborator

4ian commented Mar 4, 2021

Sorry I forgot about this comment! :)

What do you think about changing the offset when the user change the viewpoint and it was the default value (using 0° for top-down and 45° for isometry as default value) ?

Do you talk about the "Angle offset"? I thought it would change only the rotation of the object, in case "Rotate object" is checked? :)

But yes I think that if we add a new default "Isometry movement offset", that would help a lot to make sure that "up is up" 👍👍

@D8H D8H changed the title Isometry Helper Extension New Extension: Isometry Helper May 11, 2021
@arthuro555 arthuro555 added this to Needs review in Extensions review via automation Jul 9, 2021
@arthuro555 arthuro555 added the ⌨ JavaScript Uses JavaScript code, and thereby needs a reviewer who knows JavaScript. label Jul 13, 2021
@arthuro555
Copy link
Member

I'm sorry for not reviewing this, the math is too complex for me to understand. Isn't there anyone else that could try to take a look? It has been submitted months ago 😱

@D8H
Copy link
Contributor Author

D8H commented Aug 19, 2021

I'm sorry for not reviewing this, the math is too complex for me to understand. Isn't there anyone else that could try to take a look? It has been submitted months ago 😱

Don't worry about it, I think it can wait to be used in more examples before releasing a 1st version. It only has a couple of functions that I needed to make some POC. It may have many flaws. I think it would be better if some users can use it on their own projects and give their opinions.

But isometry is not the easiest thing to do and I don't see many users asking about it. I didn't scan Discord and the forum for quite some times, I'll try to be more proactive on the topic.

@D8H D8H self-assigned this Jan 30, 2022
@arthuro555
Copy link
Member

Hello @D8H 👋

A review has started for this extension, but a new option has presented itself in the meantime. We now have a list of unreviewed "Community extensions", and your extension can be added to it, bypassing the review phase.

If you chose to not take a review, you need to keep the following in mind:

  • As of now, community extensions are not yet shown to users, but they should be until next update
  • Community extensions will never be shown to GDevelop users directly, they will have to check a checkbox for them to be shown
  • All community extension have a warning about them being unstable and unreviewed displayed on their store page
  • Your extension will be added immediately, no question asked, and without you needing to do any changes to your extension
  • You will still need to make an extension that passes the bot's tests (meaning you still should respect the extension best practices)

tl;dr You will not need to do any more (or only minimal) work on your extension, but it might not meet the standards of all users, and reach less users.

If you chose to continue on with the review:

  • The reviewing process might require of you to make some changes to your extension until it meets our reviewer's standards
  • Your extension will reach more users
  • You will be delivering a better extension to the community
  • It will take a bit more time for your extension to be added to the store

tl;dr You will need to do a bit more work but deliver a high quality contribution that will reach more people

The choice is yours, please tell us how you would like to continue.

@arthuro555
Copy link
Member

Is this still being worked on or should we close this @D8H ?

@D8H
Copy link
Contributor Author

D8H commented Sep 26, 2023

I'm not working on it. I'm not sure if I should submit it as a community extension or not at all.

@arthuro555
Copy link
Member

I'll close the submission then, please open a PR if and when you decide it should be submitted.

Extensions review automation moved this from Needs review to Added to GDevelop Sep 27, 2023
@arthuro555 arthuro555 removed this from Added to GDevelop in Extensions review Sep 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
⌨ JavaScript Uses JavaScript code, and thereby needs a reviewer who knows JavaScript. ✨ New extension A new extension
Projects
None yet
Development

No branches or pull requests

3 participants