eco-fps-controller

GokudomaticGokudomatic Posts: 70Member
edited October 2016 in Resources

Hi

I'm creating a 3D FPS template based from my current project. The idea is that to create a simple fps game, anyone can take the controller asset from the assetlib and just drag&drop it in a scene.

The controller has to be basic, but it handles an extensible weapon system that anyone can easily add his own custom weapon.

What this asset does:
* Camera as 1st person view
* Separate data model for the player's attributes (life, speed, powers...)
* Collision management with a kinematic body
* Walk, jump, climb ladder and fly. Fixes bugs related to slopes.
* Move with moving grounds, platforms, elevators. Fixes bugs related to descending ground by sticking the controller to it.
* Weapon system including firearms, beams, flamethrower, laser&spark, rockets & grenades
* Shield feature. Optional.
* Automatic regeneration of the shield (à la Halo) and ammo. Optional.
* Spatial sound system
* Basic impact effects like explosion, fire and poison

What it does not contain in-the-box:
* 3d models
* sounds
* specific features like items, skills or powers
* HUD. It's a separate asset.

Before I post it in the Godot assetlib, I'd like to ask you what feature do you expect or need from an fps controller.
But as I see the concept, the controller should stay small and uncluttered, but extensible with other compatible assets. Ideally someone should be able to install this asset and a couple of other ones to get extra weapons, enemy bots, a HUD, special powers, inventory, etc. And with a minimum of configuration, a game is ready to play. But thanks to the nature of Godot, it is possible to customize it completely (like climbing walls, close-combat gameplay, infiltration gameplay...).

So, what features do you wish to see in this asset?

Comments

  • GokudomaticGokudomatic Posts: 70Member

    I have now a git repository here: https://github.com/gokudomatic/eco-fps-controller
    I'm still working on samples, but there's already a hello world.

  • GokudomaticGokudomatic Posts: 70Member

    Hi there, just a little status update.

    The controller is now in the asset library. I improved it a bit and I'll release a v0.2 when I'm done with my AI for monsters.

    I also did a lightweight version of the controller without any dependencies to weapons nor particular features. It's reduced to its minimum for a first person view game that only need to move around and interact with objects. And it's only a script to add to an empty kinematic body.
    You can find the lightweight script here : http://pastebin.com/h0MYCwy1
    or there in the github : https://github.com/gokudomatic/eco-fps-controller/blob/master/addons/eco.fps.controller/light_fps_controller.gd

    Any feedback will be very welcome.

  • MagicLordMagicLord Posts: 23Member

    The player passes throught 3D objects laying on floor like houses and sliding down on a mesh it can pass throught geometry.

  • GokudomaticGokudomatic Posts: 70Member

    @MagicLord said:
    The player passes throught 3D objects laying on floor like houses and sliding down on a mesh it can pass throught geometry.

    Hello to you too.

    Sorry if I ask the obvious, but did you create your objects with a physics body? If you create a standard rigidbody testcube, does it collide with your objects?

  • stillinthe90sstillinthe90s Posts: 8Member
    edited February 20

    Hi,
    I can't seem to be able to hide the mouse cursor while keeping the 360 movement working properly. It seems that changing mouse mode is the only way to hide it, but is also what breaks the rotation. Rotation works until you hit the screen/window edge. This also happens when using a custom cursor.
    Is there a way around this?
    Thanks.

    EDIT: Looks like this is a bug (v2.1 & 2.1.2). MOUSE_MODE_CAPTURED is not hiding the cursor anymore and have apparently not been working for a while. (even though the issue seems to have been adressed)

  • GokudomaticGokudomatic Posts: 70Member

    @stillinthe90s said:
    Hi,
    I can't seem to be able to hide the mouse cursor while keeping the 360 movement working properly. It seems that changing mouse mode is the only way to hide it, but is also what breaks the rotation. Rotation works until you hit the screen/window edge. This also happens when using a custom cursor.
    Is there a way around this?
    Thanks.

    EDIT: Looks like this is a bug (v2.1 & 2.1.2). MOUSE_MODE_CAPTURED is not hiding the cursor anymore and have apparently not been working for a while. (even though the issue seems to have been adressed)

    Sorry I can't really help about that, stillinthe90s. It seems to be something internal to godot.

Sign In or Register to comment.