Difference between revisions of "Things to Avoid/ko"

From Neos Wiki
Jump to navigation Jump to search
(Created page with "이런 방법은 피하세요")
 
(Created page with "네오스는 강력한 기능과 옵션등을 갖춘 환상적인 엔진입니다.하지만, 관행처럼 사용되는 몇가지 방식은 훗날 동작하지 않거나 문제...")
Line 1: Line 1:
 
<languages/>
 
<languages/>
Neos is a fantastic engine with a whole lot of power, options and capabilities. Some methods or practices can however  be problematic or may lead to breakages at a later date. This is a general list of things to avoid or not do and the reasons behind them and some solutions or work arounds to assist you.
+
네오스는 강력한 기능과 옵션등을 갖춘 환상적인 엔진입니다.하지만, 관행처럼 사용되는 몇가지 방식은 훗날 동작하지 않거나 문제를 일으킬 수 있습니다. 이 문서에서는 피해야 하거나 하면 안되는 것들에대한 것과 기술적인 이유 및 그 대안들을 제시하고 있습니다.
  
 
It is not meant to call out anyone or have any bad intentions etc. but is worth a read to understand where you might be able to improve your creations and to ensure that Neos updates or other users do not unintentionally end up in breaking things.
 
It is not meant to call out anyone or have any bad intentions etc. but is worth a read to understand where you might be able to improve your creations and to ensure that Neos updates or other users do not unintentionally end up in breaking things.

Revision as of 03:54, 6 July 2021

Other languages:
Deutsch • ‎English • ‎日本語 • ‎한국어

네오스는 강력한 기능과 옵션등을 갖춘 환상적인 엔진입니다.하지만, 관행처럼 사용되는 몇가지 방식은 훗날 동작하지 않거나 문제를 일으킬 수 있습니다. 이 문서에서는 피해야 하거나 하면 안되는 것들에대한 것과 기술적인 이유 및 그 대안들을 제시하고 있습니다.

It is not meant to call out anyone or have any bad intentions etc. but is worth a read to understand where you might be able to improve your creations and to ensure that Neos updates or other users do not unintentionally end up in breaking things.

Summary

For a quick summary, if something feels hacky or undesireable please ask the community or the team if its a good idea or not. If there are problems or gaps within Neos that you'd like to see resolved please open an issue on our Issue Tracker.

Slot Names & Structure

Avoid relying on Slot names or structure for items and slots that you don’t own or control within your LogiX or components. The names of slots and their structure for items you don’t own or control may change at any time and this can break things you’ve made.

Here are some examples of where this may occur and some alternatives or suggestions to attempt to mitigate the issues

Names or Structure of a User Root

Items may be added or removed from the User Root with the addition of new features or updates to features. So try not to rely on this structure or naming conventions that these slots have. Recently for example new Slots were added to a User root to cover the new "Freeform Camera".

Things to avoid in this area:

  • Find Child By Name
  • Repeated use of Get Parent / Get Child nodes to locate a slot using searching or understood hierarchy depths

Solutions for this area:

Names or Structure of an Avatar

Avatars are very complex creations.

Avoid:

  • Find Child By Name to locate avatar parts
  • Repeated use of Get Parent / Get Child nodes to locate avatar parts
  • Assuming the structure of an avatar
    • For example, head and hands avatars don't have an "Avatar Root"

Solutions in this area:

If you’d like to routinely find or acquire a slot in the User Root, consider requesting a new node or feature for it on our Issue Tracker.

Names or Structures of Other People’s Worlds

When visiting other user’s worlds it is very important to remember that you are a guest in their space. When creating gadgets, tools and avatars you should try to be respectful of their world.

Things to avoid:

  • Placing items in the root from Guns/Rockets and other items.
  • Assuming the setup of the world is standard in terms of hierarchy for things like spawn or lights etc.
  • Custom Culling systems or locomotion modules
  • Avoid Calling Dynamic Impulses to the Root Slot
  • Avoid placing Dynamic Variables in the Root Slot or World Variable Space
  • Avoid leaving items in the world when you leave. Clean up after yourself.

Solutions:

  • When using the Set Parent node with a Root Slot Parent, Instead Supply a “Local User Space” node this will function identically in most cases but will keep items parented correctly to any world management systems rather than littering the root.
  • Ask the world owner before spawning complex gadgets or modifying the world root.

Forcing Auto-Disabled Components to be Enabled

Occasionally when using a component you may find that it disables itself. This usually means that something in the component setup or the slot that it was added to is problematic and would cause the component to fail to function.

  • Do not drive the enabled checkbox/field to true in these cases
  • Consider reporting a bug on our Issue Tracker. These situations may be a problem that can be resolved.
  • Sometimes, these are actual miss-use of a component and may not be fixed.
  • Properties within components that start with _ may be changed or removed at anytime and should be avoided where possible.

Reference IDs / "Ref Hacking"

When building in Neos, it may be desirable to use reference ids to get around certain restrictions or feature gaps that exist within Neos. When doing this keep the following in mind:

  • Reference IDs may change at any time.
  • Certain uses of References may be considered a security issue and be fixed without much notice.

Generally, you should use dedicated nodes and concepts instead such as:

  • The Allocating User Node
  • Typed References and Casts

If you find yourself continually needing to use a certain reference id or path consider making a feature request on our Issue Tracker.

Using the ToString Node on Complex Data Types

When using the ToString node on non-primitive data types(e.g. NOT float,int,double etc), do not rely on the output of the node. It may change or be updated at any time. This includes things such as Data Types, Users, Slots etc.

Comparing strings for these items is brittle and may change with Neos Updates.

Instead:

If you find yourself continually needing to do this, consider making a feature request on our Issue Tracker.