Monday, May 13, 2019

Week 34

Week 34:

Critical Reflection:

Conclusion:

Over the course of this college year, I have managed to design, create and test my Horror-based game “Monster Bear” using the Unity Engine. Initially, I was really unsure what to create this time around as I felt starved of any worthwhile ideas that I could use for the Unity Project. In addition, I was really unsure as to how difficult it could be or how it would eventually turn out in the end. After all, I had no prior knowledge or experience with Unity Engine.

In its current state, the Unity Game itself has most of its features that I wanted to implement into it as mentioned above. Over the year, I feel that I have gathered a lot of skills, knowledge and experience from this Unity Project, and they’ll likely prove to be invaluable. As such, I feel slightly more confident than I was in the beginning of this course. But I feel I may still need to use research sources if I ever wanted to continue using the Unity Engine in future.

Additionally, I should mention that I did run into problems and that there are still a few bugs in the game than I had intended there to be. And if I wanted to forward with this game, then it would need a lot more development and research in order to be in fully working order. Working with Unity Engine also took a lot of time and research itself to learn how it worked and sometimes it left me frustrated learning that the coding itself was out of date.

For example, when I was typing in and editing the code, I had learned from watching YouTube Tutorials I would sometimes learn that the coding itself would not work and this is because I was using older pieces of coding from earlier versions of Unreal Engine. Additionally, Unreal Engine itself gets updated almost yearly and once we had reached 2019 the coding, I was using from 2017-2018 had become now obsolete, and it was better to not even update.

It was because of issues like this, I sometimes had to either go back to an older version of Unity Engine, or somehow revise and modify the coding I had to fit the updated services. As a result, I ended up scrapping the game a few times before I eventually found the best way to implement the coding that I was using. Thanks to the steep learning curve, partly my own fault, I feel like I may have wasted more time and that I could have gotten more done.

For example, in-game I wanted to include a “stamina system” that would have caused the Player to lose stamina the more they run, and the only way to rebuild the stamina was to stop and take a breather. Of course, this would also mean any Enemy NPCs nearby would be able to spot them and chase after them. Additionally, I had also wanted to create an actual torch that requires batteries and the Player also need to collect them less they run out. As such, when it came to using Unity Engine, I found it to be a trial-and-error experience.

As for Assets, I found that Unity Engine offered a lot of free Assets that I could use and easily upload into my game. As well as tutorials as to how to use them. This was especially useful for a student like me, who is still looking for a job and has little money to spend. Any Assets or Unity Kits I ended up using, I’ll be sure to mention and link them in the appendix at the end.

Overall, however, I am relatively pleased and satirised with the results of my Unity Project. During the development, it turned out to be a much larger feat than I had realised, and I wish I could have implemented a few more features. Regardless, at this point I am confident that with a bit more development I could get the game into a more complete state. Other than that, I am very satisfied with the functionality of the coding mechanics and gameplay. As a result, this year I have learnt how to use Unity Engine and C# Scripting.


Monday, May 6, 2019

Week 33

Week 33:

Play-Testing -- Peer Reviews:

Elliot White:


“Sean has made a very simple game in a similar vein to that old Slender game. The format is
simple, you explore a forest and collect pages. But instead of Slenderman, Sean has added “killer
teddys” that wander around the forest and chase you when they spot you. The graphics are alright,
but the music is really loud and can get really annoying. I think he could have done the controls better
too, as I found moving around on the keyboard a bit awkward and difficult to escape when being
chased. The mini-map could also be a lot smaller.” – Elliot White

Matthew Flanagan:


“Monster Bear is a horror setting game within a forest not too much unlike the setting in Slender or
Naughty Bear and has an eerie tone to its atmosphere. The objective is to explore and collect the
pages scattered throughout the forest while the player has to avoid the line of sight from the monster
bears which will chase them down relentlessly until they can take shelter in a safe spot and wait for
them to leave. The speed of the enemies appears to be the same as the player’s run speed giving
them enough time to out manoeuvre and escape, but they can’t slow down for nearly anything when
escaping pursuit. The heavy footsteps the monster bears make gives a sense of adrenaline and suspense, and it is quite effective in showcasing how important it is to evade them. Once the player
manages to collect all the pages the enemies become inactive and the entire arena is lit up revealing
the area in better detail in which the player wins the game.

If I were to give some points of improvement, I’d say the game could give you another two levels with an increase of bears and different maps to make the game a little longer and have the difficulty ramp up. Also, some variety in gameplay additions such as having obstacles you can slide under to
temporarily stump the bear pursuers by making them have to go around them during the chase or
being able to climb some objects to add some safe places could be nice to give different options.
Maybe even have it so if every five minutes a new bear is beamed down adding to the enemy count
as a sort of punishment for the player taking too long to increase the suspense and urgency. And to
top this off a Big Boss Bear character at the end of the final level that can step over obstacles to
challenge the player to avoid them much more than the normal bears until they collect all the pages.”


Monday, April 29, 2019

Week 32

Week 31:

Play-Testing:




At the moment, I now feel as if my Unity Project is now in a place that I feel very comfortable with. It now has the basic in-game mechanics for a game. It has a “Terrain”, with an interesting Map for the Player to explore and move around on. The Player also has an objective and collect “Pages”, whilst avoiding any Enemy NPCs that are actively wandering around the Map and will chase the Player as soon as they come into sight. Additionally, the Unity Project also has its own set of “Menu” options, ranging from the “Start Menu”, “Pause Menu” and a “Restart “Menu”. For this playtest, I will be testing the Unity Project myself but also handing it to other students to test-play so that I get a better insight on how to improve. Every Player will have their own playstyle and should be able to pick up any bugs to the game that need to be fixed, changes that I won’t originally realise need to be made.


Monday, April 15, 2019

Week 30

Week 30 + 31:

Creating a Main Menu, Pause Menu and Game Over


The week for my Unity Project, I decided that I would create a few “Menus” options for my Unity Game. These would consist of the following, a “Main Menu” for when I start the game up that’ll allow the Player to start the game or quit the game. A “Pause Menu” which’ll allow the Player to “pause” the game, then either “Resume” gameplay, “Restart” the game or “Exit” the game back to the “Main Menu”. And finally, a “Game Over” screen, which’ll give the Player the option to “Restart” the game or “Quit” the game and return to the “Main Menu”. 

https://www.youtube.com/watch?v=_1wMnE06PeU 

https://www.youtube.com/watch?v=raAkiG3H8WY 

 
https://www.youtube.com/watch?v=VbZ9_C4-Qbo 

So, the tutorials I ended up finding and then following were a mixture of tutorials done by Jimmy Vegas and Brackeys. Once I had looked through them, I then tried to implement them myself into my Unity Game. After following their videos and a few other videos, I ended up going ahead and created the following menus for my Unity Game.

A “Starting Menu” screen.

A “Pause” screen.

And finally, a “Game Over” screen.



Monday, April 8, 2019

Week 29

Week 29:

Creating a Mini-Map:


This week, I figured it would help the Player if I created a “Mini-Map” of sorts. As the Map itself is rather large and there are many Enemy NPCs, and the “Pages” themselves aren’t exactly easy to find by themselves. After looking around YouTube, I decided to go back to Jimmy Vegas’ Youtube channel to see what they could offer and found the following videos;

https://www.youtube.com/watch?v=3-CN2DXqJjM  

https://www.youtube.com/watch?v=faXQQ5b6GEs

So, initially, I had a few problems with creating my Mini Map at first. One of the problems I found was that the tutorial was a bit out of date and a bit different then what I was following on screen. Another problem I had, was that the “Camera” was not working correctly, and I received nothing but a black screen. Additionally, the Mini Map itself would not follow the Player on screen.  


Regardless, I managed to find out what the problem was by carefully re-watching the videos and looking at the comments for any helpful info that could help me, and sure enough I manage to get both the “Camera” to show the “Map” from a topside angle, but also get the “Mini Map” to follow the Player around and show them what is happening nearby on screen.






Monday, April 1, 2019

Week 28

Week 28:

Collectables and Scoring:


So, this week, I have been quite busy with my Ubiquitous Computing and Web-based Gaming Assignments. As such, I have gotten as much done as I would have liked. I have, however, managed to create a small system that enables that allows the Player to collect objects and records how many they have collected. I looked at a Youtube video by Jimmy Vegas for inspiration:


https://www.youtube.com/watch?v=D0lx90n0s-4

So, I began by creating new “Canvas” in Unity Engine. Then, I created a new object called “Text” and in the “Rect Transform”, I pressed “Alt-Shift” and then the “Top Left” option. Then in the “Pos X” and “Pos Y”, I entered “10” and “-10” respectively. Then I in the “Text Script”, I typed in “Pages 0/8” and in-game the Player will then have to collect 8 pages, which’ll then kill the enemy NPCs.


Additionally, I also changed the “Font Size” from “14” to “28” and then I set the “Horizontal Overflow” and “Vertical Overflow” options from “Truncate” to “Overflow”. I then changed the “Font Colour” to a greyish-white colour. After this, I then went into the “Script” folder and created a new C# Script, that I named “gameplayCanvas”. In the script, I then used the following coding:


In the “Canvas”, I then dragged the “Directional Light” onto it. After that, I also grabbed and dragged “Monster” onto the “Canvas”, and then changed the “Size” from “1” to “8” in reference to how many enemy NPCs will be wandering around the Map. I then set the total of “Pages” to “8” and dragged the “Text” to “Txt Pages”. Next, I now need to create the “Pages” themselves.


To do this, I went into “Game Object” and then “3D Object”, and then I selected the “Cube” object. For the first “Page”, I then changed the “Positions” for “X” to “-11.11”, “Y” to “0.67” and “Z” to “19.815” respectively. For the “Rotation”, I changed the “Y” to “180”. And finally, for the “Scales” I changed the “X” to “0.5”, “Y” to “0.6” and “Z” to “0.1” respectively. In the “Box Collider”, I then set the “Trigger” option and made the “Size” match the “Scale” I had set previously.


I then renamed the “Cube” to “lostPage” and then I gave it a “Add Tag” in the “Tag” settings. Then, I pressed “+” and then named it also “lostPage”. In the “Tag” settings, I then set it to “lostPage”. This’ll allow all of the tags to have the same function as each other and when the Player collects a page, the game will notify them as such. In the “Player” script, I also added the following.





Monday, March 18, 2019

Week 26 + 27

Week 26 + 27:

Creating An Enemy NPC - Part 6

Due to working on working on the Enemy NPC for the last few weeks and working on my other course’s assignments, I have decided I’ll give this one a few more weeks and then move onto the other things I want to add into my Unity Week. This week, I shall be adding the “Death Animation” for when the “Monster” catches the “Player” character.


In order to do this, I began by going into the “Monster” script and added the following coding as seen above in the following place. Afterwards, I then went to “Create” > “Camera” and then placed the “Camera” inside of the “Monster”.  I then renamed it from “Camera” to “DeathCam”. I then re-positioned the first-person camera to the “Monster”.


With the “DeathCam” selected, I then went into “Game Object” > “Align With View” and that moved the “Death Camera” to the exact same position as our viewer. After that, in the “Depth” options I gave the “FirstPersonCharacter” a depth of “0” and the “DeathCam” a depth of “1”, so that it’s now in front of it and that is overwrites it now.


I then grabbed the “Spotlight” from “FirstPersonCharacter” and then I duplicated it, before placing it into “Monster”. I then clicked the “Reset” button for the duplicated “Spotlight. In the “DeathCam”, I then edited the “Clipping Planes” to “0.1” because it’ll be animated soon. Once I finished that, I then clicked “Create” and created a new “Empty”.


Afterwards, I then renamed this “CamPos”. I then clicked on the “DeathCam” and then the “Gear” button, and then clicked on the “Copy Component” option. Then in “CamPos”, I clicked the “Gear” button and then I clicked on “Paste Component Values”. Now its position is exactly the same as the positions that the “DeathCam” positions has.


For this animation, I now want the camera to pan into the face of the “Monster” when they have caught the “Player”. To do this, I began by disabling the “DeathCam” and then on the “Monster” I dragged the “DeathCam” onto it. After this, I then went into the “FirstPersonCharacter” script and then I copied the following line. And then going into the “Monster” script I added the following lines.



Basically, this means when the "Player" gets caught they'll be disabled and be unable to move when the "Monster" catches them, and the "Camera" then pans around to them. Additionally, when the "Player" is caught the "Monster" will also growl again but in a lower pitch this around and then the game will reset afterwards, using the “Kill” script in “Monster”.


Week 34

Week 34: Critical Reflection: Conclusion: Over the course of this college year, I have managed to design, create and test my Horror-ba...