Is fast-cast worth it?

Hello,
I am currently making a weapons system, and I stumbled across something called FastCast made by @EtiTheSpirit.

Allegedly, it’s more precise and is not influenced by lag (or high ping). I looked at the documentation and didn’t understand much. That’s not my issue though.

My issue is: Is it worth going through the process of learning how to use fastcast or should you just use the good ol’ raycast.

My game is, not the MOST competitive, it’s a far cry from Arsenal and Phantom Forces. But I do use ranged weapons.

I’ve also read some reports of higher ping.

I’m just unsure whether the bad outweighs the good, and not too keen on learning a new raycasting system. So unless it’s a real gamechanger I might just stick to my old system.

Again, I want your brutal, honest answer.

5 Likes

So generally speaking, the module shines when you unquestionably need physics simulation.

If you are using more “realistic” gun behavior where bullets are just hitscan projectiles and have instant travel time, the module is worse than useless and will introduce slightly worse (albeit likely almost imperceptible) performance to your game.

Generally speaking when you implement the module you need to know a number of things. If I had to slap all the difficulties down (because if you’ve seen the thread you already know what the module can provide to the experience that’s good):

  1. Be ready for complex client/server replication woes. You need to manually replicate things if you don’t want to do the poor method of simply detecting on the server - generally a bad idea because ping factors in both ways. If you do not believe you sufficiently understand replication and latency, the module will be more of a headache than a benefit during the implementation phase.

  2. Be ready for complex weapon implementations. Having a common client/server module that stores cached Casters is definitely not a simple task, and I would say requires pretty advanced scripting capabilities to use. My games personally use a “caster provider” module that works on both the client and server, and defines common behaviors for the guns too. This setup phase often feels kind of messy depending on who you ask. The old fashioned model of having a script in each gun works, but in the modern Roblox development scene, I don’t advise it.

  3. Be ready to spend more time tweaking things. When dealing with physics, you have to do a lot of fine tuning, and I’ve noticed that there’s a kinda-sorta tough balance to strike when it comes to things like projectile speed, drop, etc. It’s not terrible, but if you don’t have a general feel for what you want your guns to be like, it could take a smidge longer than you’d expect it to. If you’ve done physical part-based bullets before, a lot of what you know won’t transfer over. I’ve noticed personally that speeds in the ballpark of 600-1800 studs/sec feels pretty good all around (whereas parts may have capped at something like 250/sec).

As for pointers: How big is your map? How many opportunities for long distance shots are there? If your map is something indoors in corridors like Half-Life, I’d personally say don’t use the module. If your map is a large open world? Sure, give it a shot.

The basic gist is that the module can provide a lot, but it is quite demanding in turn. The big determining factor is the quality bar, I suppose. Generally people associate things that are more rare – smooth bullet interpolation being one of those – to be signs of a “high quality game” in general, granted you do things properly everywhere else of course. If you want your game to pop, this could lend a hand, but it’s going to have a cost associated with it.

As far as I can loosely tell from your post so far, you likely won’t want to use it. It’s generally intended for the FPS/TPS titles that want to be those top-of-the-line games, so while the casual experience may indeed benefit from it, at that level it’s more of a thing for people to wow at and not much more.

27 Likes

Wow!
Huge thanks for writing this extensive answer - it means a lot to me.
Well, you definitely did one heck of a job making this amazing module and, as you mentioned, every shooting game will benefit largely from this system. Mine would obviously also benefit a lot from this. But I feel given the casualty of my game and my scripting knowledge (cough motivation cough) I believe this might be obsolete.

But again, thank you so much for that long answer, it helped me and lots of people a big bunch!

So thank you, and I will keep fast cast in the back of my head, in case I need it in the future.

1 Like