Devblog - Weapons

This week I set out to clean up the carryable weapon system and work through the backlog of shit on Jira.

15 June 2018 by Garry Newman (3 Comments)

At some point I disabled the ability for the player to look up and down, left and right. Instead opting to have the player always facing the direction in which they were moving. This was more pleasing because you got to see the whole player model, not just the back of the head.

But it's also less emotive. In multiplayer you want to see where other players are looking, you want to be able to nod to each other.

This is all done with Unity's humanoid IK look at stuff right now, but ideally at some point we'll transition to blending between look forward/up/down/right/left poses, so it's more artist led, and can differ between differernt hold types.

Because we only have a walk + run forward animation, I dind't want to get into sidestepping and walking diagonal, so I made the legs face the movement direction and play the animation backwards if they're moving backwards relative to the look direction. This works out pretty good.

I clamp the legs, so they can never be more than 70 degrees away from the look direction. This stops the IK getting too crazy. It probably needs a "adjust step" animation here.

I had it set up so to hold an item, it just placed it on an offset from the player, and IK'd the hands to it. And it's worked up until now, but it's time to step it up and get a system in place for holding objects differently.

I've got some animation packs from the asset store, so these are all placeholder right now, but each item can define which hold type to use. The hold types use an Animation Override thing, so they can replace any animation on the controller. This'll pay off once we have the look up/down/right/left poses to blend between, because hold types will be able to react differently to that.

I added support for melee weapons. It's a simple one action thing right now, but it could be expanded into better things in the future.

I improved the gun this week. It was already in the game but was using a ton of older systems, that I was able to replace.

I added a crosshair but I need to revisit it. It works by tracing the path the bullet will take and drawing the crosshair at the impact point. This is accurate but it kind of sucks to use. I want to try always having the crosshair right in the middle of the screen, and adjusting the player to aim at what that's aiming at instead.

I've made it so you can add attributes to your components to desribe which events they're likely to fire.

This means that in the editor I can look at the components and get a list of these. So now I can show the events you're not using, giving you an easy way to implement them, and show a bit of descriptive help on each event.

I made it more modular too. The events were an enum and a switch lookup, but I found that I wanted to define events in other modules. So now you just need to implement this simple class and an event type of that name will be available. You can call standard EditorGUILayout shit in the Inspector function.

The system itself is proving very useful. Like, how I mentioned before that I could rip a ton of shit out of the pistol.. I can implmenet all of that in the eventmap now.

Button is true when a player is standing on it.

I added some help to the spectator mode, because in our previous playtests some people found it confusing.

It tells you who you're spectating now too, which I am just realising may be redundant.

You could put objects in/through walls by getting close and dropping/throwing. I put in a few sweep tests which should prevent that now.

You could also shoot through walls. I prevented this but not allowing the player to shoot if they can't see their gun. This would be horrible in a first person game, but it feels okay here. It'll probably need a "lower gun" animation for it to feel acceptable, but it's an exploit for for now.

I added a health system for the player. Previously players died instantly from any damage, but I figured there might be instances where we want players to have multiple goes at something instead of just instadeath.

It's still instadeath right now - because the player only starts with one heart. I added a health kit to give yourself hearts. You can have up to 6. I figure that might make interesting decisions in the future.. take all the hearts or share them among your team.

I re-added gibbing. It doesn't look great right now which is why you're only getting a screenshot instead of a video.

I'm getting a bit burnt out on Tub, so I'm probably going to take next week away from it, to evaluate where it is, where it's heading and where I want it to go.

Mailing List

If you want to follow this project you can sign up to the mailing list.

We'll only update you about this project, we won't spam you about other stuff or sell your email address.

* By subscribing you agree to the Terms Of Service and Privacy Policy