Is it possible to create something like this?

So I myself am not a coder. I rely on friends to help out when creating code for my projects, and my project heavily relies on a specific way fps movement is made. The kind of movement system is more advanced rather than simple like the Quake engine, Gold Source Engine, and Source Engine. I am going to link an analysis/tutorial on how the movement works in those engines (specifically Source) and how to import it into the Unity 3D Engine, but I need help with implementing this kind of fps movement into playcanvas.

It is doable but you will have to do quite a bit of work yourself as PlayCanvas doesn’t really have a lot built in for this (e.g a navy system).

Both @kungfooman and @Leonidas have been doing a lot of work in extending PlayCanvas, kungfooman especially in the FPS space.

Alright thanks man, I appreciate it.

Afaik the Source movement system is simply physics-based? Meaning that the Player movement has acceleration, momentum, and stop time. This can all be achieved without touching a line of code using rigidbodies.

Might be worth for you to check out this tutorial project: https://developer.playcanvas.com/en/tutorials/first-person-movement/

I’ve been working on nice FPS Movement for a project of mine and it took me several hours of work to get it just the way I wanted (coding tho), but it’s all physics based. So if you have any questions I might be able to answer them and try to help you out.

1 Like

Wow, alright thank you man I appreciate it.

My WebAssembly port of ioquake3 is here: https://github.com/KILLTUBE/libwebgame_idtech3

However, I don’t share the HTML5/JS counterpart repository currently, since I started to heavily refactor it.

The Q3 movement system is hand coded by the idtech3 coders and works by sweeping AABB boxes through the BSP world planes. The movement system spawned severel submods for strafe/circle jumping and airsurfing like in CSS surf maps.

I kicked out the native Quake3 rend2 renderer from ioq3, so now I rely on PlayCanvas + GLTF, but GLTF animation system currently has huge performance impact (working on that to fix it).

@devMidgard do you have a standalone repo for testing your FPS movement system based on rigidbodies? I still search a proper ammo.js based system for integrated physics.

1 Like

I do not have a public version that would work out of the box, it has a multiplayer system built on top but it’s really very simple, I just play with Playcanvas’ Physics (ammojs), when the player is on the ground, the drag is higher, when it’s jumping or in mid-air, the drag is lower so you have a feeling of control in the air but can’t switch directions too quickly, and tiny tweaks in runtime like that can really make FPS Movement feel good :slight_smile:

You can see it working in this video: https://twitter.com/devMidgard/status/1080878393133019138

2 Likes