Final Evaluation

My final product links to the theme of ‘forgotten’, because the game is set in a very isolated location, forgotten by society. I was also inspired by my ‘Forgotten ruins’ research mood board- where there are many instances of forgotten, man-made objects (such as the altar in my game) that are surrounded by a natural environment (such as the cave).

I combined this with my ‘Forgotten realms’ research board, and added the lava and magical crystals to link it more to this concept.

My research on altars influenced the level design massively, because in my research, I noted that “Some are surrounded by bridges over a pit”. This observation allowed me to use this concept in my level design later on.

Also, before starting development, I researched how to make enemies spawn in sequence. My research led me to the method of using timelines connected to ‘AI Spawn From Class’ nodes. I ended up using this method during development, and it made the task very easy, since I already had a plan for how to do it.

Throughout the project I managed my time well, since I made a plan up-front that detailed everything that needed completing by the end of each week. This can be found at the start of my development log.

Project management

Additionally, at the end of each session, I wrote what I had completed on a sticky note, to remind myself next time where I left off, as well as writing down what needs to be completed next, or any bugs that were discovered and not solved. This method helped me get straight to working, rather than having to figure out what needs to be done each time.

In my project proposal, I created a timeline that detailed when I would complete each task. However, when I began development, I realised this timeline wasn’t planned very well, only giving me two weeks to do the programming side of it.

Unit 13 Proposal 4Unit 13 Proposal 5

So I made this new plan, which condensed the early stages, giving me more time for programming. This change definitely helped, because the asset creation took less time than expected, and the programming took longer than expected.

Project management

My final product is very similar to the concept I put in my proposal. The only thing that did not make it into the final product is the enemies’ design. In the proposal, I said the enemies would look bug-like, but during development, I realised I didn’t know how to implement walking animations. However, I didn’t want to just make hovering enemies like in my previous project. So, I compromised and found a way to make them roll towards the player, which is more interesting than floating.

I encountered a few major problems during development, but was able to resolve them all in the end. For example, when I was programming the enemies’ explosions to apply damage, I couldn’t get the explosions to damage the altar. Only the player. I tried many different solutions, like changing the object class of the altar, or using tags to reference the altar. I eventually just made it so that when an enemy touches the altar, that’s what damages it- not the subsequent explosion. This system gets the job done, but it’s not the perfect way to do it. For instance, sometimes the enemy is destroyed before it touches the altar, so it looks like damage was dealt, even though it was not. Therefore, I am not entirely satisfied with this solution, but after weeks of dealing with this issue, I finally figured this out, and it works.

Exploding near altar

Another problem I ran into was getting the enemies to go towards the altar. For days, I tried many different ways of referencing the altar, so the AI could move toward it. I even tried making the enemy spawn the altar itself, so I could use the return value as the reference. This didn’t work, because each enemy would spawn its own altar. Eventually, however, I realised I didn’t even need to reference the altar. I could just tell the AI to move to a location, where the altar happened to be, and have interaction be based on collision with the altar. This works perfectly, and seems to be the best solution to the problem.

Moving to altar

Additionally, when I tried to add a material to the landscape, I realised I couldn’t. I needed the landscape to be a model to apply a material. So I exported it as an .fbx, then imported that back in, and added the material. However, the .fbx version had much simpler collisions, so there were parts where the player could walk on air, or sink into the ground. After some experimentation, I found a solution. I removed the simple collisions from the imported model, then brought back the original landscape and placed it slightly under it. This way, the player sees the textured ground of the .fbx, while using the complex collisions of the original landscape. I believe this is the ideal solution I could have come up with, as I was able to use the best of both versions, with none of the negatives that came with each of them.

During this project, I discovered the ability to put 3D text in the world, which can be used as simple HUD elements if attached to the player character. I also learned how to use sound actuation to make sounds louder or quieter, based on how far away the player is from the source. Additionally, I learned how to use timelines to spawn enemies. I can see this knowledge having many different uses, other than spawning enemies, like timing scripted events that alter the level in some way. I believe all this knowledge will benefit me in future projects, by allowing me to see simpler solutions to problems.

Unfortunately, I didn’t manage to get any peer feedback on my work, but I did get tutor feedback throughout the project. This feedback was essential, as it pointed out parts that I totally missed, as well as providing insight on the analytical detail of my annotations. This not only helped improve my grade, but also improve my project overall.