New Platformer Template!

Its nice, I’ll probably experiment with it later.

26 Likes

Are there any public plans for future templates? With the FPS one and now this, I’m curious if there are more on the way

32 Likes

another cool template, can’t wait to try it!

25 Likes

absolute w template, pretty fun :sunglasses::sunglasses::sunglasses::sunglasses:

27 Likes

This feels very inspired by Find Everything, might just be me

23 Likes

Awesome template, it’s great to see platformers get some love!

With that being said, I do have some feedback.


I noticed a pretty major networking issue with the moving platforms that this template doesn’t account for.

If multiple players are on the moving platform or if another player is blocking its movement (e.g. a client with high latency is standing on a platform that moves up and down), the platform will jitter, get flung to the side, and quite a few other nasty side effects:

For moving obstacles in a platformer, you typically don’t want the obstacles to be purely serversided. Network ownership automatically switching will result in a jittery, non-smooth physics assembly which is gamebreaking in a platformer. This can be avoided by doing the following:

On the server:

  1. Create three physics groups, “PlayerAvatars”, “Obstacles” and “LocalAvatar”.
  2. Ensure “PlayerAvatars” cannot collide with itself or “Obstacles” via PhysicsService:CollisionGroupSetCollidable()
  3. Set all obstacles to be in the obstacles collision group, and all avatars to be in the avatar collision group

On the client:

  1. Clone the physics rig on the client, delete the server’s copy
  2. Reparent the clone to the same parent the original copy was in
  3. Remove the localplayer’s avatar from the “PlayerAvatars” collision group, and set it to be in the “LocalAvatar” collision group.

What we did here:

  • By locally cloning the physics assembly & reparenting it, we’re preventing network ownership from affecting the simulation entirely. Because this is a platformer, we want 100% smooth simulation 100% of the time. If the server had network ownership, there would be replication delay & jittery movement if on an unstable internet connection. With automatic network ownership, the platform cannot support having multiple players standing on it at once.
  • By preventing other player avatars from colliding with obstacles, we prevent other player avatars from affecting the local assembly’s physics simulation. Without this, another player’s avatar falling through your local platform can drag it with them and other problematic behaviors!

Another thing I highly recommend changing - don’t use the humanoid for movement. Instead, use Roblox’s new physics controllers. Utilizing these physics controllers with a custom state machine is infinitely better for the complex custom movement of a platformer. As someone who has made a successful platformer, using the humanoid is going to cost you a LOT of time & headache in the future. You are going to be constantly fighting with its internal states & hardcoded physics behaviors.

50 Likes

So this is what this was for?
https://devforum.roblox.com/t/i-spot-a-luacharactercontroller-actor-characters-character-abilities-and-footplanter/3074054

14 Likes

The most recent templates have been a great resource for people looking to get started in programming. I have a fascinating with seeing how other developers organize their code and design gameplay mechanics.

Kudos to the team(s) working on this kind of stuff.

15 Likes

Thanks, hopefully there will be more templates added!

12 Likes

It doesn’t even use CharacterController

10 Likes

would be cool if line runner template was redone

17 Likes

I’ll add on to this by saying that if you want to keep the platforms in sync with each other across all clients, simply don’t delete the server owned constraints and attachments. Clone only the parts in the assembly and re-parent each attachment and constraint to its corresponding doppelganger in the client owned assembly.

15 Likes

That, or syncing via some timestamp offset. Either approach works.

14 Likes

bro isnt this literally Find Everything’s moveset :sob:

16 Likes

This alone is already more fun than most games in the platform, i think i gotta re-evaluate what i think good games are, it has been a while since i had fun playing a game in Roblox. There is also a lot I can learn from this template.

Now here’s a suggestion for the next template: can you guys make something involving enemy AI, survival mechanics or zombies?

15 Likes

That could be because the platform is limited to a rate of 30fps

9 Likes

Dashing, rolling and doublejumping are in a lot of platformers and are not unique to find everything.

18 Likes

These are nice, but could we have the first AI template like AI shooters or something, Unreal engine has a starter template called Lyra and it has some cool AI shooter bots. I wish roblox could add this too. @MintyUltra

8 Likes

ok now, wheres the 2024 version of business simulator template

9 Likes

This is really nice, Are yall gonna make any more templates in the future? New baseplate maybe? new spawn new grid texture? Maybe like this?

10 Likes