Sunday, 10 January 2016

Gameplay and Interactivity: Mechanics and Balance (Spring Submission)

For the spring submission, we had to create a demo of a 2D game in a group. There were 5 people in my group; myself, Irina, Warren, Ray and Tom. 

The first thing we did was decide on an art style. We all felt very strongly about Ollie Moss' work, and decided to try and emulate that as well as other similar styles and aesthetics. We went away and were supposed to gather some references and do some concepts to make sure we were all on the same page with art style. Mine are below. 



I really love the vibrant, saturated colours in the images in my moodboard and tried to copy that with these quick sketches.

After meeting up and confirming on the art direction, Tom told us what the game would be about and decided what everyone would do. He asked me to mostly help with coding but I enjoy character design the most, as did Irina, so we asked if we could help design the characters as we didn't get a lot of input anywhere else in the game. Here are some moodboards I created.


Since the game was a sci-fi futuristic setting, I looked at some hairstyles and looks for the main character. I thought it would be cool to have their eyes covered and the villains (see moodboard below) would have their mouths covered.



These are some images I found after searching for cyberpunk and futuristic clothes.

After this, I made some character silhouettes, then after input from friends and the group, I created a few more using the most popular aspects of the most popular designs.



I asked Tom which he liked the most, which was the first one, but I felt like the third one would be easiest to animate, as I was also tasked with the sprite sheet for the character animations.

Here is the sprite sheet for the run cycle and also the run cycle in action below that.



After this, I worked on the jump, kick, punch, damage and death sprites. I struggled with the death animation, though, so we left that one out. This was my first time ever animating anything and I found the run cycle to be much easier than the others because there is a lot of direct reference for that online. The kicks were pretty straight forward, but after that I started to feel more and more out of my depth. I'd like to practice animation more in the future.


After this, I tried to add these sprites to the character in our game and turn them into animations, and manipulating the animator in Unity so that it would know when to use which animations. While I got this to work in my test build (see below), I wasn't able to get it to work in the actual game, so I left this to Tom, who had taken charge of building our game. I thought that he would know what the problem was and he got some help from Ewan. It turned out that we needed to write some code to get the sprite component of the child of the player. In my test build, the player was a single game object, but in our main game build, the player consisted of a parent object and a child.


I had originally created a test build early on to test the pick up objects. At this stage, I thought I would be doing all of the pick ups, but Tom then gave the job of creating the sprites for these to Ray, so I just did the script. Still, I made some dummy pick ups before knowing this to test out the script. This is what it looked like, along with the hierarchy.


As you can see, I have a blue place holder character, a pick up item, a floor and a health bar. The health script and bar was something I was working on after the pick up script, but Tom decided to do that himself, so I stopped my version half way through working on it after I found out. The pick up is an empty parent game object containing the pick up itself (the white square) and the message that pops up and floats above it when the player gets close. I also made the entire thing float up and down using the animator. Here is the script I created for these pick ups.


I tried to make it as generic as possible and left some messages in there to make sure that Tom could understand what I had done. This script is a modified version of a script I did to pick up planks of wood in my winter submission game. I just adapted it to 2D and also made it much more simple. I had not done anything with 2D or key inputs before so it was a bit of a struggle but after some research I got it to work. The main issue I had is that I could get it to work when there was one pick up object in the scene but not when there were two or more. I fixed this by organising the picks ups into empty game objects (like shown earlier above) and attaching the script to these parents. In the final version of the game, this script was edited by people in the group other than me without my knowledge, so I'm unaware of who did it or what went into those additions.

***

This concludes my input into the game. There were a couple of scripts that Tom had some trouble with that I spent a lot of time trying to help with, but I could not figure them out either. I thought I was better at coding than I actually am, I realised during the production of this game, because my winter submission had quite a lot of code in it. However, these codes were quite repetitive and relatively simple so it was easier to find references online to help me with troubleshooting. This game was very complicated for me, with lots of different things going on. For the next group game we have to do, I will make sure to play to my strengths, which is the art side of things, so that I can help my team better. I also think I will try to find a team whose main focus is to create a solid game that looks good and works well, as opposed to a game that has a lot of complicated features for the sake of having them. A lot of the time during the production of this game I felt like more and more features were being added before even the foundations were completed and I found this very stressful and hard to follow. Quality is better than quantity. Considering we are students on a very tight schedule and lots of other projects to do, I feel like this is for the best, at least for me and my own progress.

There was a lot of miscommunication in the group. Tom, the self appointed group leader, decided things on his own several times without consulting the rest of us throughout the entire time we worked on the game. A lot of the time, I would be already working on something, either having being told by Tom to do it or I said I was doing it, but then he would either do it himself or give the work to someone else without telling me. He expressed that I was not working fast enough, but to me I was going at reasonable pace considering the time we had and managing our other projects. A lot of things happened without my knowledge, such as my script being edited instead of me being asked to edit it myself, as it was my script.

Also, from the beginning I felt like I had very little say in the group. Tom decided the game would have this or be about that and if anyone tried to add to it or disagreed with something, he either ignored it or said no. This was very frustrating for me. I was very unmotivated and ended up not being very passionate about the game, resulting in a less than ideal performance on my end. In future, I will try to not let my group members affect my performance and just get on with my own work. Also, I will try to speak up more when I really disagree with something, as a lot of the time I felt too anxious about sharing my concerns with my group. My poor attendance did not help the situation and likely made Tom feel like I was not taking the project seriously, so I will take action to solve the issues contributing to my attendance in future. Tom and I did have a conversation about all these things and they improved after, but shortly went back to bad communication. For example, a few days before our deadline, I was abruptly asked to attach the animations to the enemies, but I struggled and could not figure out how to do this and was left to deal with it on my own. In the end, I gave back to Tom what I could do and left it there.

Warren and Ray went missing half way through; we just rarely or never heard from them. This put a lot of strain on the group, especially Tom, who ended up doing a lot of their work for them and did so much for the game. It was really unfair. If this happens again in the future, I will try and advise my group to make the game a bit smaller to adapt to the loss of team members. What Tom had planned for our game was fine for 5 people, but for just 3 active members and two who were on and off, I felt it was too much. So in future, I think the priority is to cut the game down to its basic functions and then add to it as time allows. This way, the performance of the game does not have to suffer and the active group members wont have to bear the weight, which would then affect their own work on the game as well as work on other projects.

I did not manage my time very well in the second half of production with any of my projects. This was due to some personal health problems but mostly my own poor time management. Due to this, I was not able to complete the animations. At the time of submission, they are roughs. I had planned to turn them into vectors in Adobe Illustrator and add her clothes, but I ran out of time and left them rough to focus on my other projects. Also mentioned before, I really struggled with the animations and found the clothes to be too hard and therefore too time consuming for me to add. I found the animations very fun to work on and I am glad I was asked to do them because I learnt something new, however in future I will not let myself be in charge of something I have never done before as I do not think this is fair to the rest of the group. I did try my best in the little time I left myself, but of course if I had given myself more time I might have been able to do more. I will make sure I stay on top of all my work across the course so that it does not negatively affect me or my group members in future.

Although I had a lot of negative experiences with this game, I did learn a lot. I have gained experience in dealing with conflict with peers, which could easily happen in a real life work setting. I found a new confidence in creating simple code, using the language I had already learnt to piece together a uniquely made script, as opposed to copy and pasting one from the internet. This way, I feel like I understood more by making it myself. However, I also learnt that I need a lot more practice before I will be able to understand more complicated code. I am planning on working on a small personal game project over the summer to try and get better at code before the new academic year. I also learnt how to animate a convincing run cycle, a jump cycle, and a kick.

No comments:

Post a Comment