Serial Link Commit 6: 13th March 2019

I know its too small but hey. You will have to take my word that its a line trace on tick looking for UI elements on things in the world.

I am pleased with how the information panel on the right of the UI works. I am trying hard to step back from things being too specific and I am trying to make things as abstract and flexible as I can. Sometimes it works and sometimes it doesn’t but this time it was a success! So the logic above it always looking actors with the interface ‘IsContextSensitiveUIElement’ and then should it find one it throws the message ‘ShowUI’ I wont give a detailed explanation of all the little things that stop it breaking, just the overview. Questions? Tough. I mean, ask.

The part I want to talk about though is that UI Info panel that appears to tell the player the options about how to interact with the thing that he is looking at.

This is the tail end of the event implemented for the interface I talked about earlier.

I like this as there is no casting and should the player character change for any reason it would still work. Also by passing in an array of UI elements, its easy to change what is displayed from different actors that implement the interface. I know that there is no multiplayer option to be built so I know that the player is going to be player zero so I think that accessing them in this way is fine considering the project. On the Controller side…

On Dex’s Controller. Dex is the main character that the player is using.
The widgets are added to the UIInfoPanel widget and we can have a quick look at that too in the designer…
That little tiny box there? Thats the vertical box that expands and shrinks as needed. Pretty cool.

Commit

  • Updated the look of the ‘collect ammo’ and the ‘out of ammo’ UI widgets.
  • Updated the ‘out of ammo’ to say ’empty’ instead
  • Found out that I cannot use an emissive in the UI without sorting some other things out. This is to do with the order that Unreal draws and applies post processing.
  • Added and UI info panel to the main HUD.
  • Making sure that the UI info panel is spawning its widgets and organising them so that I am free to add what I need in the future.
  • The info panel is now to the right of the cross hair although I would like to have it in the bottom right corner, I didn’t work out how to have the vertical boxed position change to accommodate its children.
  • Can pass an array of UI elements to the info panel now and they are removed when the player looks away from the weapon.
  • Added ammo pool and ammo clip UI widgets to the base weapon class
  • Created widget assets for those components
  • Now have ammo in clip displayed on all weapons in the calculator font. Looks cool!
  • Ammo status UI to change from ‘collect ammo’ to ’empty’ when the ammo is collected by the player is still looking at the weapon. Competed
  • Make sure that only the players currently equipped weapon shows the UI for ammo. Complete
  • Made the UI on the assault rifle a bit smaller.
  • Added the ammo pool from the weapon component to the ammo in the clip counter so that it can be shown on the weapon too. Looks really good.

Serial Link Commit 5: 13 March 2019

Holding an extra weapon. Kinda greedy really.

This development session focused on making sure that the player knew that they had picked up an extra or opportunistic weapon. I always liked the idea that you could have a full complement of weapons and just pick up another as all of yours were slung. In our case the Weapon Component that I created defines the ability to carry 3 weapons and an extra in your hands. The characters all have a primary, close quarters, weapon on the chest, then a secondary, assault rifle style, weapon on the back. Finally, they all have a side arm on the leg. The player can pick up the extra weapon but I would like to see that on the AI too. As all the characters are using the same Weapon Component, that should not really be difficult to set up.

Commit

  • Set up a ‘Holding Extra Weapon’ UI element in the main HUD – Used an event dispatcher from the Weapon Comp and bound to it in Dex Controller. Thats used to call an event on the ‘Main HUD’ variable on the Soldier. The event changes the opacity of the text on the HUD. – Player now takes the ammo thats in the Opportunistic weapon as he drops it. That takes care of the case where you pick up a gun, fill it with ammo, drop it and either lose that ammo or have to re-collect it. Works well.
  • Imported a font called Calculator from dafont.com and used it for the ‘holding extra weapon message

Serial Link Commit 1 – 4: 11TH March 2019

Really? I just cleaned this place up!

I wanted to start posting more frequently about the development work that is going into Serial Link as that is where I am putting the lessons I am learning into practice. The first of course if that of version control. I have talked already about the project copying that I thought was version control and I suppose to a certain extent it is, but its cumbersome and stinks of amateur hour (as do a lot of the things I do at the moment, but thats why Im here).

So the first thing was setting up the repository which was straight forward enough. Then it was the LFS part which I found just a little trickier as it could not be set up in the GUI Git Desktop and had to be done via the Git Bash tool. If I am wrong about that and have missed something, please do let me know. I then, nervously, made the first commit. This. Took. So. Long. I started to get a little worried that all was not well in the land of Serial Link and its visit to version control but after what seemed like an age, the commit was done. I pushed it to the repo on Git and bam, first commit to a remote server. Didn’t I feel proud.

The other reason that I would like to keep the journal up to date with Serial Link is that during one of the webinar’s the conversation turned to the question ‘when should one commit ones work’. So, I thought that posting how I do things here might open that discussion up for me/us/them whoever, and allow me to explore some of the other options regarding when to commit. I have started this process at commit 4 because it did not occur to me to take proper notes until then. I am very pleased that I am taking better notes though as it is making it easier to see just how much is going into making this game!

Commit

Commit notes…

  • Updated the weapon base blueprint so that it can choose whether to show a E: pick up ammo UI element or a red OUT OF AMMO element instead. I solved the problem of hitting the player and the players weapons by creating an array of ignorable actors.
  • I set up an event dispatcher in the weapons component that is triggered every time the weapons array is updated. This keeps that array of actors to ignore up to date for the player without having to recreate the array at each tick.

This commit was focused on the UI I have been implementing so that the player can actually interact with the game space in a more predictable way. The issue I was solving was that the line trace that is looking for things in the world that it can interact with was hitting the weapon instead. This was before I know how to implement custom channels for trace responses so that may have been a better way to do it.

Line tracing out to find things to interact with
After collecting the ammo.

Thats is for that commit. 😉

Serial Link Development Session, Pt 2

Having settled down after the disappointing journey through better firing animation additives, I am pleased to say that another idea I had has made a big difference to how the weapons feel. I had been playing with the camera shake actor so as to add some, well, camera shake on the firing animation. However, I found it to be quite a limited way of doing it and in need of lots of number tweaking and so on. It was not until I went downstairs to nuke (microwave) my coffee that I really thought about what I was trying to do. I had noticed that the aiming system was not responding to the camera shake as I hoped it would. So that meant that what I was really trying to achieve was weapon kick. So, that’s really just messing with the mouse inputs right? Right!

Updating the kick and paying attention to the user’s skill with that weapon too.

Above is the little blueprint that I settled on for now as it addresses most of the goals I set. I wanted a way to jerk the player’s camera around to simulate firing a weapon. I also wanted it to move over more that one frame so as not to look too snappy. Finally, I wanted the players accrued skill with that weapon to influence how much it kicked. After a little tinkering, it worked as expected.

Serial Link Development Session

I thought that I should really document my current set of challenges and how I tend to go about solving them on Serial Link as this is really where I have/am cutting my teeth as a game developer. So today, I am looking at getting the firing animations looking MUCH better as it could be said that using the guns in the game at the moment feels a little unrewarding. That’s bad news. The good news is that there was a time when I have the additive animations all working really well and the set up felt much better. The thing I changed (and it was the right thing to do) was to start using animation montages and the slotting system that they employ. From there, I just don’t think that I had to time to get the additives working as well as they need to. This feeds back into my goal on the course as I think that after some thought I want to be a solid generalist with an emphasis on logic and coding. I feel this way because I have discovered that yes, I do want to know a little bit of everything right now. Maybe I am just new to development and have not hit my stride yet but I don’t think its that. I want to be able to make games and I don’t want to have to rely on others for core pieces of that process. I mean, I like relying on others and I like working in a team (particularly with people that are smarter, more skilled and so on…) but I’m straying off topic.

So I thought that the first stop should be the Unreal Docs. This is the section that I am following.

I have started paying a little more attention to the Unreal Documentation as it really is unreal. See what I did…

Having followed the documentation, the first thing I noticed is that I am using an additive animation for the firing and while I do think that’s what I need I also want to follow the steps. The problem now is that I am getting a very exaggerated firing animation when the character is pitching up or down and a lukewarm version when looking straight ahead.

Ok-ish
Super trigger happy.
And again, very keen.

The other thing I am noticing is that the animation jumps in the direction of the neutral position. This is telling me that the animation is not adding to the current position of the bones and is trying to return to bones to the positions defined within the firing animation. This is where terms like mesh space and world space start to trickle into my head and I realise that I don’t really know what they mean (although I have an idea) Anyway, the documentation I have been following has concluded and not shown me what I needed. Onto…

I need to go back to some things and make sure that I really know how they work, this is one of them.

You can find this documentation here. Already, I feel more comfortable about what I am reading having had some experience now. It’s funny coming back to some of the things that I just followed tutorials for a year ago and just barely understanding what I was doing, to being able to read things like this and recognise lots of the content. Progress I think they call it.

Ah… (think evil guy finding the hero’s weakness…)

Could be just what I’m looking for.

I seem to have gotten to the end again without a solution. I’m going to choose the next content I read a little more carefully.

That’s more like it…

This one looks a lot more promising! You can find it here. Ha! No, not at all. I didn’t think it would be this time-consuming! Hang on just… one… second… I have a Udemy course from yesteryear that should remind me how to do this!

This was the first course that I learned from when I first decided that I wanted to be a game developer.
That’s more like it, that’s the one, insert generic ‘found it’ lingo here.

Ok, having watched this material again, I think that I am overlooking this. I took out the additive form of the shooting animation that I had put together a long time ago (following this course) and thought I should be using the ‘raw’ animation in the montage and then adding it in some ‘additive animation’ sort of way, in the animation graph. However, after much to-ing and fro-ing (take that Grammarly!) I have returned the montage to the original state of using an additive animation. That cleared up the imbalance between what the animation was doing depending on the aim angle but was still giving me a lacklustre shooting performance. And then (oh my) I noticed that the blend time was 0.1 in and out or that animation. But wait. That animation is only about .2 of a second. Could it be? YES! (rage, not Eureka) that upon changing it to 0, so that there is no blend, the firing animation has much more bite, while staying ‘additive’ as intended. What a painfully long-winded lesson to learn…

Serial Link Update

Dramatic title shot… Groovy.

Explicit content and language. Cool? See it here

This project is one of the first games that I have ever made and certainly the most developed of any that I have worked on. It began life on the BA Top Up course I did when I had decided that I wanted to try my hand at game development in September 2017. It was the Honours project and had our attention for two terms, along with other projects of course. Since then I am a small team of people of part time collaborators have been working on it in the hope that we could get something good enough to launch a Kickstarter with and in the process become paid to make it! That would be incredible.

I wont go into the narrative here, just have a look at the video and please do let me know what you think. I already know that the audio needs to be re-balanced so please do not play it too loud!

Special thanks to Simon Felix who worked on the PS4 title Shift Quantum for composing the music that is now the Serial Link theme.