[RELEASED] MONO TICKING, improving Tick Performance in a few minutes!

Hey all!

Excited to share my first product in the marketplace!

https://www.unrealengine.com/marketp…ticking-plugin

Brief Introduction video MonoTick for Unreal Engine 4 1.0 - Overview - YouTube

Update: Just added a discord server. ATank's Bunker

Update 1.1 Is Out!
-Added 2 Pooling groups
-You can now Tick individual groups
-Exposed more functions to blueprint
-Released a new documentation version

I’ve developed an alternative Tick() to use for your objects, as UE4’s default Tick system runs many functions for each and every object it Ticks. This way, you only need to process the Tick() overhead of one Ticking actor and save the performance of the rest. Furthermore, you can even decide WHERE the Tick() runs, Client/Server only, Remote Only, Server Only, etc!

A scenario run-down,
Say you have 500 ticking objects every tick(). Normally, this means that UE4 has to process its internal tick functions for those 500 objects + the overhead of virtual overrides for every object.

  • With the plugin, you only make unreal process Tick() for a single Object and have the other 499 execute their tick without the Ue4-Tick system overhead; also less virtual overhead
  • You can also control where your tick runs. Normally, if your actor replicates, you can choose whether you don’t want the dedicated server to tick. Otherwise, all machines are forced to run it. What happens if I want an object only ticking on the server, or only on Client & Server? Mono tick gives you the option of controlling that.

Let me know if you have any questions, or if you have suggestions for this feature.

Enjoy! <3

Hello there,

  1. It works on both C++ and Blueprint Projects. To Clarify, since it is a plugin that is built into the engine if you download it from the marketplace, it will indeed work with BP-Only projects.

  2. This is a plugin, and includes a couple of Blueprint Classes for showcasing use with Blueprints.

  3. The only catch is that every class that wishes to switch must implement the interface, and you must have an Actor Registering the Tick for the subsystem. You can check the implementation and documentation included. In ours, we register it at the GameState Actor, since the actor replicates by default and exists throughout the length of the game-world session.

  4. It works around by not executing UE4’s Tick() processing on each and every Uobject and instead only executing it on only one Actor instead and gives the user flexibility on where to execute the Tick() for their objects since the Array is not replicated. If you wish ObjectA to only Tick on client even if it replicates, you can do this no problem.

  5. At the moment, the main Caveat is that all Ticks happen whenever the Tick() on the Registering Actor is executed. I am looking into giving the option for having different priority groups ticking at different actors so provide more control over tick frequency soon.

Hello, I’m trying to use your plugin but I think I’m doing something wrong :frowning:

1- I changed the parent class of my game mode to CM Tick Game Mode
2- I changed the parent class of my game state to CM Tick Game State
3- I’m running BP_Spawner Objects and my FPS drops to “5”. If I disable the plugin with the same actor I’m having 300 FPS.

Am I missing something?

Thanks :slight_smile:

EDIT: Oh ok I found the problem. I still couldn’t see any FPS difference in the editor but when I run Standalone, it seems my FPS rises 70 to 160 with your plugin.

Thanks again ^^

Hello, and sorry I couldn’t get to see this earlier!

I’m glad that you were able to sort things out. Let me know if you have any questions/suggestions/feedback! I’ll answer faster through my email mario.gtz.funderburk@gmail.com.

Thanks for checking the plugin out, and best of success with your project!

UPDATE ]

Brief overview of usage and implementation for Blueprint projects has been uploaded.

[UPDATE]

Released version 1.1! Check above for update details. Have a great day!