Projectile system templates
More actions
Within the cloud home, there is a bow and crossbow on the outer balcony next to a toggle-able shooting gallery style targets system. These items use a in-platform created projectile system template that can be used for a variety of other content as the template itself also resides in the Resonite Essentials folder for anyone to use.
Important Notes:
- there are multiple versions of this system that were created over time, the newest one is more optimized than the prior one due to the features and design approach the old one had.
- Each version includes a sub versioning/iteration tracking notation in the base system name which is the parenthesis that contain the capital letter "I" for Iteration followed by a 4 digit number signifying the current iteration of the system. Example: (I0085)
- HIGHLY RECOMMEND USING THE NEW VERSION, it is not creating unnecessary extra data that isnt being used as the older system uses a different workaround when trying to send multiple pieces of data to each projectile (which can be heavy in network/performance cost), plus no capability of recycling duplicated template objects/object pooling)
"Hitscan Projectile System" (Projectile system V4)
This is the latest 4th generation projectile system created to utilize optimization techniques, notably now including the ability to use object pooling to lessen the amount of creating and destroying objects constantly.
As the name implies it uses a similar method to hit scanning in video game terms but it also can be used to create advanced projectiles that follow a particular trajectory or follow objects using a built in tracking mode.
This system refers to decals placed after the initial impact decal as "Subemitter" decals, similar in function to how the particle system in Resonite has Sub-emitters components.
System Contents (what you see when its selected in an inspector):
- A debug visual that is created using procedural meshes
- A subset of variables categorized by different parts of the system
- Credits of those who either helped worked on the system or helped with advice
- An example particle system that could be used in place of a duplicated slot projectile or build a similar particle system using it as reference.
- Template objects within a hidden object root that is used to store templates of objects for duplication and use by the system.
- Object pools that are within a hidden root that stores previously duplicated templates in container slots to be re-used by the system instead of constantly create and destroy slots.
- Organized ProtoFlux container slots of individual node circuits that power different parts of the projectile system.
- "Projectile Spawn Point" (The slot that is the point where a projectile will spawn from with the positive Z axis being the forward direction of the projectile)
- "Point Blank Raycast Point" (The slot that is the reference point of a raycast in front of the system that is to check if a surface the system is facing is too close to even warrant a projectile to be fired and simply raycasts into the surface and places decals on it as if a projectile had collided with the surface.
- The "Sound FX Clips" slot is used for shared audio clip assets or players that is shared across the duplicated template objects used by the system. (things like asset loaders for audio clips also would be placed here).
- Crossbow Particle Styles are also included in the system to be a great example of particles used for making visual FX for projectiles, impacts and projectile ricochets.
Variables and their categories:
Template/Pools Variables:
Ricochet Variables:
Physics Variables:
Tracking Variables:
Decal Variables:
Decal "Subemitter" Variables:
Decal Template/Pools Variables:
Decal "Subemitters" Template/Pools Variables:
Decal SFX Variables:
Credits:
- Aegis_Wolf (Rewriting this system from the ground up, testing, constant fixing up to this point of stable release)
- Ryuvi (assisting in some testing and mainly advice on problem solving regarding this system)
- Modern (Testing it/occasionally running into a few bugs to be fixed in the ProtoFlux setup)
- The Lass 240 (Testing this system on their own content and running into things that the system hasn't been designed to accommodate yet or run into bugs to patch in the ProtoFlux)
- Cyro (designed and teached the fundamental math/logic that the system uses for positioning the projectile on a path and its collision detection)
- RueShejn (Testing and finding bugs in the various systems)
- LucasRo7 (advice for the systems design)
Projectile System 3 (Older one that is not as optimized as V4)
This system was a revision of the other previous ones that were created for the crossbow and bow in the cloud home and Resonite Essentials folder. It was also designed to potentially be used for game like experiences in Resonite like BattleNights as well being created in a modular way to accommodate a variety of types of projectile behaviors, Notably the addition of a tracking system to allow the projectiles fired from the system to track tagged objects, or a raycasted point, or follow a slot's facing direction with a adjustable influence the projectile has compared to a predetermined trajectory with a static velocity, drag, and gravity.
System Contents (what you see when selecting it in an inspector)
- A raycast root that is for reference point slots for the system raycasts including the raycast root itself being a reference for the projectile spawn point and point blank raycast check
- A debug slot that just has the procedural box mesh at the root of the system
- The ProtoFlux Slot contains all the sub systems of node circuits powering the system all named by functionality
- There are Dynamic Variables all categorized into different slots that have them
- A visual slot that is used for a tracking mode of the projectile that you can control the direction the projectiles go by rotating this.
- A Templates root containing the object templates for projectiles and decals in hidden parent slots to be used by the system for duplication
- A credits slot containing those who worked on the system/helped/provided advice
- A slot containing the Particle systems used by the Crossbow of the cloud home
- The sound fx clips slot contain the audio clip player shared by the projectiles shot out by the system
Credits:
- Aegis_Wolf (Creating a revision of the previous projectile system and its subsequent fixes)
- Modern (testing and helping find the causes of some issues with the ProtoFlux of the system)
- JackTheFoxOtter (helped with advice on some of the problems faced with the ProtoFlux of this system and how to solve them)
- Ryuvi (Helped test some of the systems but mainly assisted in advice on problem solving with the system's creation)
- Cyro (Helped with problem solving advice but mainly helped with the understanding and design of using a step by step process to raycast in a way like a raymarcher for both positioning the projectile along its path but also creating accurate collision detection regardless of the speed of the projectile. Additional assistance was for creating a position smoother for the projectile movement to locally smooth its position for other users client-side)
- RueShejn (Testing and finding bugs in the various systems)
- LucasRo7 (advice for the systems design and on some fixes for the ProtoFlux)
Dynamic Variables:
Projectile Variables:
Initial Values:
Modifiable Values:
Guidance Values:
Decal Variables:
Raycast Variables:
Flux Projectile System Release 2 (Very Old System)
This system is the revision of the first edition of this system that was used for the crossbow and bow of the cloud home/Resonite Essentials.
This was one of the first ProtoFlux creations to fully benefit from the Asynchronous features of ProtoFlux, allowing for the ability to create one node circuit to control duplicated projectiles/decals of the system instead of duplicating the node circuit that controls the movement/behavior per individual projectile (which were advanced but heavy from previous precursors to this system due to the unnecessarily amount of nodes and slots constantly created and destroyed)