According to the brief given, we were assigned to create a functional game with appropriate design and implementation strategies. At the beginning of the module we were given specific outline of a character to work with, this was a short, simple character with two arms and two legs. I somewhat followed this formula, making my character a bipedal dwarf lizard. As for the rest of the level, I successfully created a working level, complete with a main menu, player level and an end game screen. For this project I decided to create a 2.5d side scroller.
During the early stages of my game creation I had a few designs, which I scrapped later for a main character, these include a blue horned knight. I had already modelled as well as textured this character before I decided that he was too unoriginal and dull. I left the knight to the side as a potential enemy, but I didn’t have any serious plans to bring him back. The next character I decided to create was the lizard dwarf; this idea came from my very first Zbrush project, which was just a lizard man bust. I originally attempted to create a full sized lizard-man, however while building the body I accidentally made his upper torso too muscular and his lower body short and narrow, giving him a dwarfish appearance. While I attempted to correct this mistake I found that it was quite unique, so I kept to the dwarf design. To get as many polygons down as possible, I took the model into blender for more precision; from here I replaced the teeth with flat planes and removed the toes, as they didn’t cooperate well later with the rig. The final stage in successfully creating the model was to rig it in blender. When the full rig was completed there was only the weighting to be done before it was complete. I encountered a few problems with weighing the character, one of which was that the weight paint wouldn’t show up in the legs and feet, however the automatic weighting was accurate enough for it to not be a major problem. A more time consuming problem was the weighting of the mouth area, because I modelled the character with his mouth closed it proved tedious to correct the weighting, however I eventually made a few adjustments to the model and completed the rig.
After the main character was completed the next step was to create the level in the Unreal Engine. To begin I completely wiped everything from the 2.5d side scroller and started a new blank level, I then filled a small area with landscape. I had no initial plans on what my level would look like, other than it would be a small, abandoned village. I messed around with the level plain using the sculpt tools and eventually came up with a mountain landscape, from here I had a better idea of what the level will be. I shaped the area out, making it larger with the landscape manager, and created a chasm of which the town would be built around. Before I started creating assets I decided to set up the paint tool, which would allow me to create an appropriate landscape with a mixture of grass, dirt and rock. This process only requited me to import the image assets as well as their normal maps to the landscape’s material, and then assign them to a folder.
The next step was to go back into blender to create the houses and other landscape objects. This was one of the longer processes to complete, it was quite a task to keep the poly count as low as possible so they don’t cause any performance issues in the engine, however I kept them all under 20,000 faces which turned out fine. The only issue I encountered with these assets was the lightmaps, when I exported the building to the engine; I found that when I built the lighting I would get an error about the lightmaps not working. I didn’t find any solutions to this problem online, I however eventually found that I needed to create my own lightmap in blender to export to the unreal engine. After I found this trick exporting became much more fluid. After I had a few buildings in it was then easier to modify my level to something decent.
To add life within my project, it was advised that I make use of a nature pack that I was given, within this pack I could create trees and rivers with the use of splines. The nature pack also allowed me to create grass using the foliage tool in the engine, however this caused some serious performance issues and wasn’t used in the final game. The trees also caused some lag in the beginning of the game, so they had to be removed at the last second. The only thing that I used from this pack in the end was the river splines, which gave enough life to the background of the game for it to not be too still.
After the main village was complete I felt it appropriate to expand the level, giving more opportunity to experiment with obstacles and platforms. To add a bit of change to this area I decided to create a forest background, to start I expanded the map backwards and went to creating the trees. I played around with a few designs but I found them to either be needlessly complex or too high poly for mass production throughout the level. In the end I went with a typical pine tree with around 56 faces and simple tree textures. Looking at the level now I could of gotten away with not even including the trunks of the trees. Although this only contributed to the level ascetically, I am still pleased with the result giving the level a sense of depth. I also added in a river and a broken watermill to the scene, and built the level up high from there. I decided to add a large cliff at the end of this section because the level had already gone too low, making the character disappear. I created a lift system so that the character could get up the cliff quickly, however I had great troubles getting this mechanic correct, as the character would always sink slightly in the lift as it went up. After playing around with different collision meshes, making them both thick and thin, the problem could not be solved, however I think it might have been due to the complexity of the model itself.
By this point I had thought I could stop building my level and give it a simple ending, so I though it would be appropriate to add in sounds to the level. I found this process quite challenging to achieve, as it required a complex blueprint to set up sounds like footsteps and music. To begin I though it would be easier to set up the footsteps, I thought this process was quite interesting, as it required me to set up notifies within my running animation blueprint whenever my character would step down. After the notifies were established I had to go into my character animation blueprint. From here I had to create various nodes establishing the player locations well as the sound locations and times. I felt that there could of been an easier way around this process, however after I assigned the different sounds to their titles, it was then time to put them within their physical material. All that was left was to assign the landscape and the boardwalks in the game with their appropriate physical materials. After the footsteps were successfully implanted within the game I went to work on the music. Due to my lack of experience with LogicXPro, I found it difficult to create a good enough song to play over my game, in the end I decided it best to scrap the music, as it was taking up too much time. I decided later on to add a looping wind sound, to keep the level from sounding too empty. Looking back I wish I could of taken the time to learn more about LogicX, so that I could of made music, however most of my time on the game was spent on creating assets.
Due to time running out, I decided to scrap any plans to make another level for my game, and finish the current level, I created harder obstacles and platforms with a cliff where the character could jump off, taking the player to the victory screen. For this I needed to go back into blender and quickly make a few models, and assigned manatees to them all. I had quite a few troubles with this section, spending a lot of time adjusting the speed and timing of the moving platforms. In the end I didn’t quite get it perfect, and the player will still need to wait a few seconds for the two end platforms to meet together. After this process I needed to create both a menu screen and a game over screen. This process was certainly the most difficult and time consuming; as I needed to re do it after realising I needed a brand new game mode and a new level to create them both. After sorting out the problems I imported a few buttons and a background image successfully to the new player HUD, these were easily connected to the other levels with two simple nodes. I had a few problems with my mouse during this process, as it would not show up on the launch screen, however with a simple “GetPlayerController” node the mouse showed up successfully. The death screen was created with a similar process, however I did need to create a custom background image within blender.
After everything was built and working, I spent quite a bit of time working on the lighting on the level. Up until the final menu was created, I had not taken lighting into much consideration, as I needed the whole level to be visible in order to see what I was creating with the use of a “Sky light”. After removing the skylight I found I couldn’t get the sun into a good enough position for the whole level to be visible, the cliff that I created caused a large shadow that blocked all visibility. These shadows caused me to keep the skylight, however after toggling the intensity, I found a setting that looked good enough. Although I fixed the lightmaps of my buildings early in the project, I still found that when the lighting was built, the shadows seemed to apply on their surface randomly. I never did find a solution to this problem, however it didn’t end up being too much of an eyesore, so it was left.
I think that my final product was quite successful, the whole system works just fine with the different level connecting together without too much trouble. The sound played at a decent level, however they do sound slightly different with the use of headphones. The animations of the character run fluidly throughout the entire project, so I think that overall, apart from the collision problems, my game have turned out a success. In the future I would like to work more on it’s sound design as well as having a try at my own textures for the buildings and landscapes.
In the end I found that I enjoyed this project quite a lot, the opportunity to create something practical with my modelling stills and learn even the basics of a game engine was quite a refreshing change. I did find quite a lot of challenge with this project, and I still don’t quite understand the blueprints section in full, however I think once I understand how the system works, I will be able to achieve a lot more at a quicker pace. I passed my game around to various people, including my classmates and student for mother years, all they said it runs fluidly, however they said collision glitch with the lift was quite a large problem, and would realistically need replacing or fixing. The scoring works well however many people said that there should be a tally and an end game linked to the completion of the pickups, as well as more challenging placement. In the future with a bit of time I fell that I can achieve these goals with ease.