Skip to main content

Unreal Engine 4 Dev Update #12: Path Distance Based Grid Mapping, Inheritance & Unit Attributes

Welcome back for another update in a series of steady barrage of dev logs, where I'm trying to catch up with the actual development process of my game. We've got one major update for grid mapping and a couple of other minor updates. So let's get to the important one first:

Path Distance Based Grid Mapping

Well tackling this one has been in my peripheral vision since the beginning. Now that I've got some of the other systems implemented, it made sense to jump right into this. As you may have seen in some of my videos, pathing had only a single rule until now: grid based movement. It didn't differentiate between short distance movement and long distance movement. And now, the grids change color according to the distance. At an aesthetic functionality level, it's very similar to the mobile implementation of pathing display in XCOM: Enemy Unknown. When a player clicks anywhere on the navigable space, it calculates the distance and spawns grids in that region based on it. Grids closer to the player are depicted in blue, while the longer accessible ones are displayed in yellow color. Go even further, and no grids are spawned. One thing to note is that, grids accompanying the center blue grid will all be blue; meaning only those on the same category as the center grid are spawned. If any of the surrounding grids fall to the long distance category, it will only spawn if you click on that side of the fence. In order to show this more clearly, I've added a couple of screenshots.

Short Distance Grids (Blue Color)

Long Distance Grids (Yellow Color)

A working implementation of this feature is shown in the video at the end of the post. You may notice that I'm using the default models in the video. This is because I had uploaded the video quite a while back, so some of the aesthetic changes are not implemented in it. Now let's move on to the second update.

Inheritance

I have been using separate character blueprints for my player controlled units and AI units. Since I was planning to add unit attributes that function pretty much the same way for both parties, I decided to reparent both of them to a single custom base character. Similarly, I based both my AI Controllers off of a new base AI Controller. Same goes for the weapons, even though I have only one weapon at the moment. This is already making it easier for me to make changes that are reflected throughout the game. I also restructured the entire folder system, which was a royal pain. If it was just moving around to new folders, it would have been fine. But lot of the code got messed up with references going here and there. Since I had a backup, I checked that to create most of the Blueprints from scratch again, mapped them to folders and changed their names according to functionality. I'm just happy that I didn't delay this any further, because I really do not want to do this shit again. It is a totally boring process with no fun element or reward, except at a very abstract level. I highly recommend anyone planning to make a game in blueprints, to get this sorted out as soon as you have a base idea. Add more stuff keeping this in mind, even at a mid tier prototype phase. Always.

Unit Attributes

Well, this has been exciting. Being a fan of RPG games, it felt good to actually make custom attributes for my game characters by myself. Even the thought process that goes into it is very interesting. I wanted to restrict it to 4 sets of attributes from the beginning, leaving aside stuff like critical chance. I'm only talking about base attributes like health over here. It was more like a internal mind debate between which attributes made more sense, and which of them needed to be chucked out. Finally I settled with the following attributes: Aim, HP and Movement Range/Dodge Chance. Movement Range and Dodge Chance kind of fall under the same set for my game, since I've kind of made them as a single package feature. The fourth attribute which I've already decided hasn't been implemented yet. It's a bit higher level attribute that I want to test with EQS first. So I'm gonna wait for it until v4.7 hits the marketplace. These attributes do not impact the gameplay as of now, except for health which was very briefly shown in the video from my last update.

Oh and here's a video showing my implementation of Path Distance based Grid Mapping:
  
  
With that, we come to the end of another update. As always, feel free to check out my YouTube channel (link below) for more dev videos, and do like/subscribe if you find them interesting. Thanks for you time, and goodbye.



Popular posts from this blog

Unreal Engine 4 Tutorial: Smooth Zoom using Mouse Wheel for Top Down Template

Well, I had already written a tutorial for implementing Smooth Zoom functionality for Top Down Template. But it was based on keyboard inputs. Since most Top Down PC games use mouse wheel for zoom, I decided to make a tutorial for the same. The core logic here is the same as the one implemented by Ryan Jon for the custom camera in his RTS Community Project. If anyone's interested, they can get the code for the RTS Community Project here:

UE4 RTS Community Project

Anyways, he has replaced the default camera for the characters with a general camera since that's more ideal for developing an RTS game. Since a basic Top Down game with a single playable character does not need a separate custom camera, I decided to implement the same functionality for the default player camera in UE4's Top Down Template. So let's get down to it.

First of all we need to make a custom curve from the content browser. We will be using this curve to define the smooth camera movement while zooming …

Unreal Engine 4 Tutorial #4: Basic HUD Based Command UI for Top Down Turn Based Games

Hi, welcome back for the next tutorial. And in this tutorial, I'll be explaining how to create a basic Command UI for top down turn based games using HUD blueprints. By the time we reach the end of the tutorial, we'll have a Command UI with movement and fire action commands, and a player character that responds to the commands. Here's a screenshot showing the end product: 


Oh, and this tutorial is gonna be quite big, compared to earlier ones. So I advise everyone to go through the screenshots, before reading through. If it's clear, there's no need to read through the whole thing, partly because I've written this with a beginner audience target in mind. Ofcourse, if you have doubts, I hope they will be clarified in the written description. If not, feel free to ask me in the comments.
So let's get started. Again, I'll be starting with the top down template. First of all, we need to create a new HUD blueprint. If you're a beginner, you can find this by f…

Unreal Engine 4 Tutorial #3: Unit Selection Decals for RTS Games

Hi, welcome back for another UE4 Tutorial. This time, I'll be walking you through how to set up unit selection decals for RTS games. So the decals need to be visible, when a particular unit is selected, and set to hidden as soon as the unit is deselected. For this tutorial, I'm gonna start off from the Unreal Top Down Template.

First of all, I'll be changing the default controls a bit. Instead of using left mouse button to move the units, I'll be using right mouse button for character movement. I already have a decal texture, that I created in GIMP. If you don't have one, you could get my decal texture from the link below:
DropBox: Character Selection Decal Texture
So once you have the texture ready, next step is to set up your decal material. For creating a decal material, we need to set the 'Material Domain' in the details panel to 'Deferred Decal'. I'm also setting the blend mode to 'Emissive' in my case. Then we multiply the texture wit…