Posts

Showing posts from May, 2019

Final Post

Image
The project is finished and submitted. Here is gameplay footage, showing the level off as well as it's features:  https://www.youtube.com/watch?v=QGSjJMbyk3Y  

Evaluation

Before I started this college year, I decided that my subject specialism would be related to Unreal Engine 4 in some capacity as I had enjoyed the creation of an FPS level in UE4 for a previous assignment, but I was unsure of what exactly I would be doing it, whether it be making a level or scripting the functionality of the game. I had very little experience of scripting in Unreal 4 outside of some basic player tracking AI and player damage scripts. Due to this inexperience I thought it would be best for me to attempt to start learning scripting before the year started so I could get a better sense of what I would be getting myself into if I chose to make an actual game in Unreal 4 for my project. Unreal 4s blueprint system made the most sense for me to use as I knew from the get-go that the system was easier to learn than learning C++ from scratch. I used a tutorial by a Youtuber called Virtus who had created a series on how to create an action RPG using blueprints. I found blu...

Final Changes and Package

Image
Today I made some minor tweaks to some assets cleaning up some un-textured assets and adding sound effects upon hitting an enemy and them dying. Packaging went very smoothly and I have I have recorded footage of a playthrough of the level as well as making short recordings of a few features that I developed but were not shown in the normal playthrough.

Test Package

Image
Today I test packaged my project to see if there were any issues. I had some minor issues that are now resolved, I had downloaded a Paragon character pack into my project but it was causing some issues, since I haven't actually used these assets in the project I was free to delete them which I have and now the project currently exports properly. I still have some tweaks to make but other than that the project is close to being ready for submission. I also made some minor adjustments to the skylight, increasing it's intensity slightly so that the more minor elements like the collection of crates and weaponry were a little clearer and I changed the 2 towers at the back to look like the rest of them since I felt the previous look wasn't as cohesive as it could have been due to the simplistic geometry brush look.

AI and AI Damage

Image
Since I have spent all this time on mechanics it would be a waste to not have any reason to use them so I have added simple AI enemies to attack and kill. This is done simply by using the apply damage event that is tied to a collision box attached to the players sword. This collision box is active at all times so the player can currently just walk into the enemy to do damage, however since the event only triggers on a single overlap the player can't just simply hold the sword next to an enemy and kill them. The enemy tacking/following system is very simple using a pawn sensor that when active tells the AI to move to the players location. I haven't scripted any sort of player damage mechanic as due to the simple melee nature of the game it would be very frustrating to play against a simplistic system. Right now hitting the AI has very little feedback so that's the next thing I will address. Likely by adding sounds upon impact. I have dotted the enemies around the le...

Gameplay Polish

Image
Today I moved on to polishing the mechanics of the game and getting the mechanics I have currently in a better state and resemble more of a finished product. I have added sounds to various animations such as the footsteps in the run animation and sword slashes and the like. Originally I had sounds just play in a blueprint upon certain events triggering but after some brief research I found that I can use the animation notify system to get sounds to play at the right moment of an animation.  In the animation viewer of Unreal you can place "notifies" at certain frames or time codes. This image shows the basic run animation in which I have placed a sound notify when the characters feet touch the ground. This triggers a sound of a single foot-step that I downloaded from online. The 2 notifies seen here are also slightly differing sounds as it sounds very weird for the exact same footstep sound to be playing over and over. I put the heavier footstep sound first as it seems rig...

Polish of the Level

Image
The level is approaching the end point with me now focusing on polishing the level and adjusting the existing elements to look better such as improving the unwraps of certain assets to stop textures from stretching when applied to certain assets, the archways and the large towers are a high priority. I have also finalised the lighting in the interior of the cathedral, using a combination of point lights and spotlights to adequately light the interior. I have also made it so that the windows of the cathedral are actually see through as I thought they looked quite bad as they were previously as just shaped bumps in a wall. I used a subtract geometry brush to make these holes in the main building which isn't the most elegant of solutions but it gets the job done. If I've learnt one thing during this project it's that I shouldn't have put such a reliance on the geometry brushes as I have. The gaps I made have also been filled with a plane with the glass material applied t...

Fantasy Ruin

Image
  https://www.youtube.com/watch?v=4hZyEG4dPvE&t=306s This video is a speed level design of some ruins using assets purchased from the Unreal asset store, including a sky sphere. The level looks pretty good despite it being made in a short time in part due to the lighting and atmospheric fog giving it a polished and visually pleasing look and feel. The creator enables sun shafts on the directional light source meaning that light realistically pushes through gaps in the environment in the form of beams of light. The creator uses a landscape tool to make smaller lumps and bumps on the ground to give it more depth and stop the level from feeling too flat. They also use the landscape paint tool to create transitions from grass to stonework. All of this creates a more natural environment that adds realism and subtle visual complexity to the scene. The grass used has the Simple Grass Wind in its material as it sways around. The creator here also makes sure to fill out the backgro...

Forest Valley Level Build

Image
https://www.youtube.com/wat ch?v=afJBNP9vcJs&t=36s This is a large open fantasy forest level.The grass animation material system is used a lot for the plentiful grass and trees. The landscape tool is used for the mountains in the background and probably for the core foundation for the geometry. However, some of the environment such as the rocks are too detailed for the landscape tool and are likely normal 3D models. There is a fair amount of attention to detail with a collection of tents having their cloth blowing slightly in the wind, this was likely achieved by the cloth physics interacting with the wind. The fireplace cooking pot in this area also glows and produces and ember particle effect There are clouds in the air that seem to be in the environment rather than attached to the skybox, which creates a great atmosphere. As the clouds fly directly next to the mountains and the tower the player gets the sense that they are in a high up location. I like the po...

Fortnite Player Mesh Optimisation

Image
Fortnite is a game developed by Epic Games who created all versions of Unreal Engine. Fortnites battle royale mode drops 100 players onto a single island, which means that potentially every player one of these players could end up in a single location. This many high quality, fully animated, player controlled models is taxing for both CPU and GPU performance resources and could potentially result in large frame drops. In order to combat this Epic created what they call a significance manager that adjusts the fidelity of the other player characters models based on their “importance” based on 3 different criteria: the distance relative to the player characters position, the size of the screen and how visible the character is such as whether or not they are hidden behind geometry for instance. These factors will determine what priority bucket each player goes into with each bucket having a maximum cap to prevent too many high-fidelity models being put into the same bucket in the case th...