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

[Feature] Built In Spawn Distance System #51

Open
ShowinGrowin opened this issue Feb 19, 2024 · 0 comments
Open

[Feature] Built In Spawn Distance System #51

ShowinGrowin opened this issue Feb 19, 2024 · 0 comments
Assignees
Labels

Comments

@ShowinGrowin
Copy link

Summary

What I'm requesting is a param option for every object that lets the user set an object distance, per object. This will control when the object is in an inactive state, and easily let the user manage when objects should be loaded.

User Story

Currently (as far as I can tell), the engine doesn't have a reliable object spawn system that doesn't rely on hacky solutions based on other objects to micro manage everything. Technically those might raise the ai limits or other limits regardless, so it's really just making the best of a bad situation.

Acceptance Criteria

  • A general param that determines if the object is active or inactive. If set to -1 (or 0) it can be ignored and remain loaded at all times. But higher values will determine the range it must be within the player (or perhaps camera) to be active.
  • The param shouldn't effect the actual inactive state of the object. By this I mean, it shouldn't have an impact on triggers that relate to that to begin with. For example, if a trigger is set up to make an object active by hitting a button, then it shouldn't change that state when leaving the object distance. Treat the object distance as its own thing so it doesn't have an impact on these sequences.

To clarify, this is what should happen.

  1. Object is in range, but not set to active for its state so it's not active.
  2. Button is pressed which sets its state to active, and the object is in range, so it turns on.
  3. Player leaves range, this means the object is made inactive, but its state remains the same.
  4. Player enters range once more, this makes the object active because its original state remains the same and no longer needs a trigger to turn back on.

Mockups or Wireframes

image

How things work in Sonic Generations as an example. The range is set to the value at which the object will load. This is a global param for all objects.

Risks or Challenges

This could have an impact on all previously added objects and could be a potentially tricky task depending on how the engine handles these sorts of things.

@ShowinGrowin ShowinGrowin added the enhancement New feature or request label Feb 19, 2024
@hogsy hogsy self-assigned this Feb 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants