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

Level Design Considerations #5

Open
Geeknerd1337 opened this issue Jan 24, 2023 · 0 comments
Open

Level Design Considerations #5

Geeknerd1337 opened this issue Jan 24, 2023 · 0 comments

Comments

@Geeknerd1337
Copy link
Owner

Perception Engine's architecture is based on how I handle things in Netscape. For the level designers, I created a set of entities based around those found in hammer which took inputs and fired UnityEvents. This involved stuff like triggers, light entities, and entities for handling logic and timing. I like this system but after speaking to a few level designers I feel like there are improvements that could potentially be made.

Graph Based Blueprints

One approach would be to create a node graph which contains functions needed for manipulating and controlling the level. These node graphs would be in the form of a serialized asset which can be inserted into special entities that will evaluate the blueprints state to perform code actions. This would require a ton of heavy lifting and could potentially have several problems, but would essentially act as a powerful visual scripting tool.

My primary concern with this approach is that the only way I can really see it functioning is to use runtime reflection. Reflection is really slow in Unity and while I'm sure I could make this system performant, I'll have to take into consideration the potential performance cost associated with this method.

This would essentially be a form of visual scripting in Unity, one I think could be very powerful but become very complicated very quickly.

The following is a library I would integrate into the project to make this happen:
https://github.com/Siccity/xNode

Level Entity Approach

My other options is to just recreate a more verbose, organized version of the current system which primarily relies on several entity types and the level designer placing them in the world. This is likely what I'll be using for a potential V1 version of the level design system and at a minimum will have a sort of tool box like in the screen shot below to make this whole process a lot easier for the designers.

image

Conclusion

Let me know your thoughts and raise any questions or concerns. If you're a level designer in Unity, tell me what tools help you the most in terms of level logic and how you might envision a system like this working in Unity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant