Final Major Project Critical Reflection

Abstract
Going through this project and completing it has shown the errors I make I make in the way I approach making game. The lack of planning and scheduling really does make the job a lot harder. Using cheap short cuts make is extremely inefficient on setting up the game as well as time consuming. The other thing I have learnt is how communicating with people helps. A fresh set of eyes on a problem provides a new solution. For most of this project I hid myself from everyone and worked on the project with my outdated method. This costed me in system memory and work time. Now that all my errors have been pointed to me and my friends providing me a solution on how to efficiently work. This has helped me improve myself as a game developer. My next project will definitely be more efficiently handled.

Critical Reflection
This semester started off on a bad note. I had already screwed up my partnership form last semester, so I had lost the vote of confidence among my peers and more so in myself. Our group had decided that we would all team up and make a project that would hold its against some of the best AA games out there. The guys taking up leader positions also told me that they would put me on a strict schedule and would make my job difficult but in the end if I would pull it off then I would gain a lot more experience in working in a team and would help me develop myself as a better game developer. I was excited for this and wanted to work with Buvi and Avi and learn from them to help improve myself. The size of our team came up to 6 and so our professor had told us that the max size for a team is 3. This really broke me because I figured after failing for the past 2 semesters now, I can see how pros do it and learn from them and eventually turn that skill in my own way. But it did not go that way. From our 6-man team, Kunal, Buvi, and Avi made their own team and the rest made their own individual teams. It was obvious the three of then would work together but I fell more rejected and so spiralled into more self-loathing. I knew I had a good concept and imagined it to be awesome but I lacked to knowledge to pull that into reality.
After the 6-man team split I figured I would do the project myself. What I had not realised is that my approach towards making games might have been wrong. From my Batchelor days when I would start working on a game I would blindly jump into it and start working. What I had not realised is the amount of planning it would require to efficiently make and have a clear vision of the game. Since I going to handle all departments I figured I would keep the game light on code, nothing too fancy or mind blowing. So I converted the idea and story of my game into something doable while still keeping the essence of it. I wanted to make a stealth-based story driven game where the player needs to avoid the patrolling enemies and navigate through this dangerous facility to find the truth. On paper it did sound simple but in reality it was a whole other thing.
Working on this project I have realised I can up with a good idea, but I face a real challenge when it comes to convert the idea into a game. The first thing that too a hit was my story. Initially I had the idea of the player wakes up in an underground basement, a small robot motoring the people trapped there is surprised that the player woke. The little robot offers the player a way out of here and the two traverse the facility to find a way out. In the end the player finds that the robot was manipulating him and he never woke up at the start of the game but in fact is still stuck in the simulator. When I pitched this concept to the class a lot of people asked me questions that I did not have answers to. This shook me and made me question if I know the story of my own game. When going through the finer details of the game I realised I did not know. So, the feedback from some of my peers where I should answer the 5 Ws. Who, What, When, Where Why. When I started asking these questions to myself then I started getting more answers and more details of each event about my game and so I started giving details to every little thing. This helped me flesh out my story completely including the company’s backstory, the manipulating AI’s backstory and data players would come across in each terminal. 
Once I had the story down the next thing, I immediately started working on was my map. I got some assets and started working by putting planes on the ground. Eventually I made the entire map. Later when I placed my player into the scene, I realised how small the player is in comparison to the map. My first biggest mistake I made was scaling. I did not take scale into account, and it would be difficult to resize the map according to the player as the map was made. After my map I focused on setting up the animator for my player and AI. The method I used to set up the animator was bad. This was something I used to practise in my bachelors, and it works if the character does not have too many animations. So, when it came to my Patrolling Enemy the H3R05 it worked fine as it had idle, patrol, chase, and attack animations, while my player model had way too many animations such as idle, walk, run, idle to crouch, crouch idle, crouch walk, crouch to run, sitting interaction with computer and standing computer interaction. So, to use just 1 integer parameter to manage all animations was an extremely bad idea as well as inefficient. I wanted the player to be able to see the characters hands and have a shadow reflect on the floor. But this plan failed. Luckly, I made a backup plan for my player. I figured if I can’t have a player with animations, I would make a fps character with a capsule. So, the player won’t get to see their body. So although my vision of the player did not pan out the pack up plan worked out well.
The other mistake I made was not setting up pre-sets. This is where my mistake of simply jumping into it without planning any pre-sets for the system comes in. To set up dialogue between the player and ERIS as well as set specific timing to activate doors for the player to progress would have been easy of a system to handle it all was in place. Unfortunately, since I did not have this system, I went with a cheap and very time and system consuming method. I went ahead with manually placing triggers all through the game with most of them having their own individual script and a lot of public game objects. 
Following the previous issue, the question of optimisation came up as well. I had disabled directional light and set up point lights through out the map. This does put heavy load on the system, So it was necessary to start a section and close another section as the player passed from one area to another. The player would not backtrack so assets from the previous room would not be needed to be active once the player left the room. In the game so far all I had done was make sure the lighting was taken care off as it did take a lot of computing power. 
The next thing that I was unable to pull off was a menu system. I wanted to create a pause menu. But for that I had to figure out how to activate the mouse once the game is running and freeze player movement while the menu was up. So what one of my friends told me is to use 2 scenes one for main menu and the other for the game. As for the pause menu I did not add it into the game as not it is a feature. This fit with the narrative of the game as the player is in a simulation so the game could work without a pause menu.
Another challenge I faced was elevator moving. So there is a section in the game where the player needs to enter the elevator and the elevator moves taking the player to the next floor. So what I was told that it is not simple to just get the player into the elevator and then move it to the other side. If that were to happen then the player’s velocity would have to match with the elevator’s velocity as it moves to the next floor. So as a trick of creating an illusion of moving from one place to another is by having 2 elevators one on the floor the player is on and the other on the floor where the player needs to be. As soon as the player enters the first elevator and then I put a fade in effect on the main camera. During the fade in effect the player is teleported to the second elevator after the fade out effect clears the second elevator door opens and then player is in the next floor.
Through out this journey I have realised that I and decently good at making a game on paper. I do well when it comes to making a compelling story and describing the environment. But I need to work on my problem-solving skill where I need to convert story to gameplay. There was a part in the story where I said the player would have to hide form the enemy AI. But to imagen a compelling way for the player to hide. The quickest temporary idea I had was to build a maze. But later I got the idea of having moving walls, like they were breathing. Making it difficult and tense for the player to avoid the AI. But the lack of forward planning made it difficult to go with the original vision. The other thing I do well is come up with programming solutions verbally but that does not always translate to code so I do need to play around with more systems to create a more efficient game. This project although not perfect has taught me a lot about myself and the approach to game development. Now that I have made these mistakes I know how to better approach my next project. The requirement of planning the entire game form a to z and then researching how to efficiently build all the pre-sets.

I truly appreciate my time coming to UCA, meeting people with the mind-set outside the Indian game developing market. From the beginning I was always interested in PC and Console game development but India is heavily focused in hyper casual and casual mobile games. Coming here did teach me the importance of research and how to approach research even though my dyslexia makes it difficult to keep up the long list of reading the university provides. This course has helped me get closer to my goal. I may not be as good as my peers but this most certainly has cleared my vision on how to move forward towards becoming a game director.