Skip to content

Level Design Considerations #5

@Geeknerd1337

Description

@Geeknerd1337

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions