[#PROTOSHI] 3 ADVANCED - Needolgost

This is a NON-COMPETE entry from the Host...

image
This is a throwback game to the days of QUAKE II Grapple hook deathmatches.
Sadly I ran out of time and couldn't complete all the features I wanted. But there is gameplay with a death and kill count.
Download the game here... https://mathbear.itch.io/needolgost

To start a game with your buddies.
  • Launch Game...
  • Enter PLAYER NAME and enter ROOM NAME
  • JOIN ROOM to start, or join an existing room by the same name.
MOVEMENT : WASD
JUMP : SPACE
AIM : MOUSE
FIRE : Left Mouse Button [HOLD to auto fire]
HARPOON : Right mouse button... [HOLD to launch and release to let go]

THEME.
This game is an FPS implemented in a 3rd person perspective, and contains a grapple hook LINE.

Prototyping journey
I started an ambitious week, thinking I will add multiplayer to my game.
The tutorial I followed was a fast entry into PHOTON, but it didn't prepare me for the more technical aspects.
I spent many evenings scratching my head as I tried not to synchronize absolutely everything over the network.
Around Friday I was able to start building a character with various animations. A challenge on its own but I survived.
Saturday morning was spent on the grapple hook.
The projectile was also going to be attached to a line (like a ball and chain) but the process of attacking was too slow and clickey, so I scratched the whole idea and made a conventional projectile system instead.
Sunday morning I conceded that I had run out of time. I reduced scope and lost some theme in the process.
I smashed a map together and threw some pre-bought assets in for Special Effects like those soooper juicy explosions. yum.
And then in the last 3 hours I built the Death/Kill HUD system along with respawning.

Needolgost is my first serious attempt at internet multiplayer.
image

Thanked by 1VMASTER

Comments

  • @Pierre oh yeah... Q2 grapple mod!

    I haven't got a chance to play multiplayer but messing around for a while solo the movement felt really responsive and precise, which I liked.

    My jam had a grapple-esque mechanic too but that felt very floaty in comparison. I really liked the instant cast and pull you had in this prototype. Good lesson for me. I do wish there would be some residual / follow through force after releasing the grapple... I think pathfinder in apex legends feels extra satisfying because of it.

    I'm curious how you handled collisions... did you use non-kinematic rigidbodies for the player?

    Cool character design in this too. I feel like the breathing animation while idle added a lot of life.



    Thanked by 1Pierre
  • Thanks for all the feedback.
    Yes. No matter how many times I try to build a grapple hook, it just doesn't feel right unless the hookshot is instant.

    Physics in these games are tricky. Pure physics is very floaty and slippery since you are dealing with actual velocity and gravity.
    I mess around with the physics a lot by doing little things to make it more responsive.
    For instance. When the player touches the ground, i reset their x and z velocity to zero and then the player moves with explicit speed and directuon.
    But when you are in the air then I let velocity resolve naturally with the rigidbody.
    Another thing is did was apply a curve during jump that multiplies the effect of gravity.
    First gravity is low and weak and then the curve quickly amplifies it, this makes you fall fast.
    When you walk off an edge without jumping, then the grounded test will yield false and in this mid air non-jump situation, I force the gravity curve to be halfway complete so that the quick pull downwards starts immediately.

    There were a bunch of other tweaks.
    Thanks for taking the time to play it and to give feedback. I appreciate it a lot. I will return the favor once the jam is completed.
    Thanked by 1ashashza
  • @Pierre thanks for this! I've never liked how floaty my rigidbody based controllers feel and the tips you shared would go a long way to helping with that.
    Thanked by 1Pierre
  • ashashza said:
    @Pierre thanks for this! I've never liked how floaty my rigidbody based controllers feel and the tips you shared would go a long way to helping with that.
    Sure! I'm still trying to figure out the perfect way of ding it, but if you ever want more specific details on how I did it, just let me know.

    There are other ways too.

    Some people apply root motion to a jump animation to force the character to shift at a certain pace.. I am not sure how they deal with inheriting velocity afterwards but I have some ideas on that.

    Others set the velocity instead of gravity, so that the rigidbody moves upwards and downwards. despite gravity.

    and then, one can always look at the standard character controller. I believe the character controller has a decent non floaty jump and the code is probably visible somewhere.

  • Hi @Pierre

    Was it PUN or PUN2 that you used?
  • I was just using the start files provided by a tutorialll
    so I wasn't sure which version it was. Until I compared the asset files to what is in the asset store.
    It looks like I am using PUN 2.
    Why do you ask?
    also...

    did you try it out? I'm very curious to know what the network performance was like...
    On my side. testing the build against the project, the delay seemed similar to what I've experienced playing blacktops online... in other words, about 0.3 - 0.6 second delay in movement.
  • I haven't tested it yet. I'll try do so over the long weekend. With PUN and the legacy Unity Relay Server you always get a latency of about 500 ms. It's extremely difficult to mitigate. When we (when I was a tech lead at 24 Bit Games) built the TANKS!!! networking demo for Unity we had the same latency issues. I'm really keen to get into DOTS networking when Unity ships it.
    Thanked by 1Pierre
  • Yeah. I figured that might be the case. As a result, when it came to projectile hit detection, I just had each player test hits for their own projectiles, against the simulated copies of the other players.... and then report the hits.
    Of course, this means that sometimes it would seem like you're taking a hit even when nothing seems to have actually hit you on screen... but meh.

Sign In or Register to comment.