Monday, December 18, 2017

Lets Talk about: Showcase

Yesterday was showcase, where people, ranging from people from the industry and the public, came out to test out our projects! Our Games Lab was filled with students from further Studio units, and of course the people that came to try our game. 




The Experience:
My first showcase experience went rather eventful. There were a few bugs within the game, but with the help from my lecture, I managed to get the game back up on its feet.. sort of. But we managed to get the core mechanics working, and a panel popping up when the character dies, however there was a bug that prevented the users to restart the game using the buttons and a winning panel wouldn't pop up after the character had escaped. So in order to restart the game, we had to press Alt + F4 and re-launch the unity launcher. 

The Feedback:
After the audience had tested our game, we had them to leave their feedback on a form which we stored. The feedback we received was good, it was what I expected. The majority of the feedback said that the level was too dark, the buttons needed to be fixed and instead of restarting the game using Alt + F4 and re-launching the game. For future projects, I will focus on the game state changes to ensure smooth game transitioning, and learn more on how to make an effective game manager. 

Overall, showcase was a fun experience, and I can't wait to proceed next to Studio 2, where we learn more about AI, and we will be mixed in with the Studio 3 students, which will allow our game to have a multiplayer aspect in our project. With the showcase event and the new found knowledge of AI and other new things that I learnt in this trimester, I wish to add onto this project during the break as a side project.

Saturday, December 16, 2017

Lets talk about: Animators and their pipeline

So for this week, I managed to do some animating! Nothing big, I animated a simple wooden axe, with the help from my group member, Yousef Atout. This post might be a bit long, but if you guys want to know how they work and how I animated a model, read below!

How I animated my model:
So, the process of animating a model goes as follows:
At first, I tried to look for a reference image. What this means is that I was looking for an image to base my model off of. Essentially, it serves as a means of guideline for the me, just so that it resembles and looks like an axe, in my case atleast. Once I found my reference image, now I had to make the object. To start off with, I made a plane, and then this turned out to the handle of the axe. I forgot to mention, the software I was using was 3dsMax. In 3dsMax, I was able to play around with the vertices, which allowed me to change the shape of an object. So for an example, if I were to take a square, and move one of the vertices, I would have an uneven 4 sided shape. In order to make a shape which has more curves or a much more sophisticated model, I would need to make this object an editable poly, which allows me to edit the object to have more edges, more vertices, faces and much more. For the first step, its more of a rinse and repeat sort of thing, where you have to make more edges, or more vertices if the model you're making doesn't add up with the reference model. 

Once the overall model was complete, it was time for me to texture the object. In order to texture, you need to unwrap the model, with a process called UVW unwrap. What a UVW unwrap essentially does is it makes the model flat, and whatever is inside this unwrap, will be textured. During this process, you need to isolate and separate which parts of the model should be what texture. So with the axe, I would need to separate the metal head and the wooden handle from one another, as they should have different textures. 

Then, after the unwrap process has been done, I can now start to texture my model. To do this, I needed to export my model as an FBX file, which allowed Substance Painter, a texturing program, to recognize this file. Once I've imported the file into substance painter, I could now start texturing. The reason why I used Substance Painter was that the program allows the animator to texture the model like as if they were painting the texture onto the model. In substance, you can add textures and more materials onto each other or as an individual material/texture, and you can play around with it, to find a texture/material to suit your needs. And voila, a fully textured and modeled axe was made!

The ways of the trade, animators' pipeline:
So for this unit, I had to sit down and see how the animators work, in general. So their pipeline goes as follows:
1 - Concept Arts: In this step, the animators will start to make simple concept arts for the project that the group has agreed to. So the concept arts will include the characters (both enemies and main character(s)), props, vehicles, map design and whatnot.

2 - Referencing: In this step, they will have to find mood boards. What mood boards are is a way for the animators to show their facilitators on how the game will look like. The animators were allowed to find images from games to help the facilitators know what type of aesthetic and visual effects the project might have, in relation to the mood boards. 

3 - Modelling the props and characters: This step is a little straight-forward. After showing the concept art, references and mood boards, to the facilitator and being approved by them, they will now be able to start working on the props and characters.

4 - Unwrapping and texturing the models

5 - Skinning and rigging characters: Skinning and rigging are methods one needs to do in order to animate a model. Animations will be applied to models which needs modelling, this is the case for the main character and other characters within the game/project. 

6 - Environment assembly and environment texturing/polishing: In this step, it allows the animators to give the games developers a fully textured map, with all the lighting and props available within the scene. What this means is that they make the map, model the map and texture map, including the environment (props, walls, etc.)

7 - Animating, baking and exporting the animations to the games developer(s)

8 - Rendering and composing the renders into a video format: For this last step in their pipeline, the animators will have to render all the models that they have made and put them onto a turntable. A turntable is like a podium or platform with all the models that they made, like a showcase. This will allow the facilitators to grade their work. 

Sunday, December 10, 2017

Group Reflection

For this post, I will talk about my group members regarding the Renegade project. 
Overall, the group members has done great work so far, with their map layouts, textures and all, however, their work speed is rather slow. I say this because it took the animators maybe about two weeks to give me a map layout which is fully textured and have different wall colors for each section. I mean, sure I may not know how the animators work and what their pipeline is (yet...), but without a map, we wouldn't have a setting to put the game in. This was our priority number one, but I didn't get the proper map layout, maybe about 3 weeks before our play testing part. I kept telling them, I kept pushing them about the map, but it still didn't occur to them how important it is to have the map ready. 

Another bad thing about this group is that we relied on our "Group Leader" too much, and our work was being delayed, waiting for the Leader's green light order to proceed with animating and anything else which concerned the animation's part of the project. From what I heard from my "Art Lead", he said that the animations are ready to go, ready to be rigged and all the assets which are needed for the game are ready to go. So with this great news, I assumed that in the following week, I would have the character models and the animations in the game. But, that was not the case. It was ready, but since the "Group Lead" was absent, work came to a halt and everything came crashing down. We lost valuable time and we had to rush all our work! Oh and the reason why I put quotation marks around the titles Group Lead and Art Lead because these names mean nothing, within this Studio unit. Its just a title for the sake of having a title. They serve no purpose, but to make it feel like we're in a working environment. Even the facilitator himself said that these titles mean nothing. 

But of course, not everything was bad about this group/project. The map looks really good, with the textures, and the different color walls, which makes the game look a bit more colorful and engaging, other than our old 2 color-palette color scheme. The animations are alright, a lot of work could be done for it, but for what its worth and the time that we have left, its alright. I just hoped that the assets were ready a while ago, so we would have more time to fix the scripts and play test for bugs and errors. 

Lets talk about: Alternate History/Alternate Universe

Recently, the game Home-front was free on Humble-bundle. Curiosity got the better of me, and I decided to download this game. The game was about an alternate history, where a unified Korea, under Kim Jong-Un, has invaded the free world of America, in a near future, somewhere during 2040 or so. The game's game design and story was really interesting. It reminds me of Wolfenstein, but instead of Nazi Germany winning World War 2, a unified Korea has waged war against the US, and was victorious. 

The way the game developers imagined how America was under Kim Jong-Un is the same how any distopian world would be, where the citizens are harshly treated, and the military is in control of the government, martial law. Of course the citizens retaliated at first, but those who retaliate were met with an unfortunate fate. Most of the buildings are either run downed, or barely standing on its foundations. The game itself felt like another Call of Duty. But what made the game really interesting was the concept, and the setting it took place. 

Ever since I was small or started to learn about modern history (1900 - present day), with the World Wars and the wars after that, I always wondered how the world would be if a different nation came up top in the wars. And I remembered that only recently, I found out that there was a game which featured an alternate universe where Nazi Germany had won the war and conquered most of the world (Wolfenstein). Sure, the Nazis were bad and thank God the allied forces won, but the way the game developers depicted this future was what fascinated me. Some people might think it is a very touchy subject to touch on, but Bethesda Games Studios took that risk and made the series great with the new installment of the game, Shadow of the Colossus. Kudos to these game developing companies in taking on this challenge and risk to make a game that has left its mark within the game industry!

An alternate history/universe, in my opinion, is a good change, in terms of setting and all. I mean, sure the idea of being in another planet somewhere within the vast universe is cool, sure the idea of fighting in World War 1 or 2 is cool, with the new technology we have to make games look far better than before. But to fight in a post-war America where the Americans lost the war? That gives the idea and image that nothing is invincible. The bigger they are, the harder they fall, which reminds me of the biblical story of David and the Goliath. The giants don't win all the time. 

Animations

Animations, something which is used a lot within the art industry, whether it be an animated film, films in general and games. All these new pieces of art within the industry will have some form of animation within their project. 

Within this trimester, we learnt about how animations work, and how to implement them. The way animations work can either be done frame-by-frame, or by using key-frames. 

Frame-by-Frame method
The frame-by-frame method is when the animator will have to draw out or manually move the model frame-by-frame. Remember the old Mickey Mouse art/sketches? Those were used by the frame-by-frame method, where they drew every single action and frame it took for Mickey to raise his hands or close his eyes or any single action he has done within that small sketch. The frame-by-frame method allows more accuracy within the animations and more smoothness for your animation movements. However, it takes a lot of time, as it will need to be drawn frame-by-frame, hence the name. 
Key-frame method
The key-frame method uses the computer to predict its movement in-between two key-points. So for example, if I wanted to raise a leg, I would put a key-frame in the standing position, and the next key-frame when the leg has been raised in-front of the character. The computer will then predict the movement of the leg in-between these two key-frames, resulting in on animation for the character to raise their leg. This method does not require a lot of time to make, however the quality in the animation has been watered down for its ease of accessibility and use. 

The way animations work is that the character models or models themselves will have a rig, or a bone. This is only true if the animations you're working with are for characters/animals. If its for an inanimate object, such as a box falling down or being pushed over, then all you need to do is to record the movements, and voila, animation finished and ready to use. The main focus here, is for the character model. Once the model has been rigged, this is when the controllers will be made. The controllers are what controls each limbs. These controllers will work in unison with each other, to make a plethora of animations. Running, walking, shooting, crouching, sneaking, anything, you name it. Once these animations have been recorded, you can now import them to unity, and use them in any way you like. 

I hope this short post on how animations work and how animations are made has helped you. As always, enjoy your day, and good luck with your work, for those who do have work to do!


Lets talk about: Juiciness

The term "juiciness" came from a video I watched a while ago, last trimester. Juiciness, in the video, is what makes your game more fun and like-able.
 
The video features a brick top game, where you control a platform, and your goal is to destroy all the bricks by bouncing a ball from the platform, and into the bricks above. The game, at first looked very bland and really basic. It had no audio, no color and it just felt... dead. But, in just a matter of minutes, this bland and dead game, turned into something very pleasing and fun to play. 

The main message about the video is about adding feel and character to everything within the game. The way they did this was to add color, sound effects, music and even a face to the platform itself, making it look like its a fictional being, other than just a plain old platform. The platform gets sad if the ball gets too far away from the platform! These tiny details just adds feel to the game. The reason why I brought this topic up is to talk about the project I'm making for this trimester. Until recently, we managed to implement animations and actual character models within the game. Before, the plain capsules moving around the maps made the game look really primitive and very... uneventful. However, now with the animations and character models, its starting to look like a game now... slightly. We still have a few scripts that needs attention, but hopefully, and God willing, our project should be ready by the end of this week.

Anyways, back on topic of juiciness, for those of you who are making your own game or side project or whatever, remember to make your game a bit juicier. It doesn't even have to be very difficult. You can add trail renderers, or particle effects within your game to give it some nice mood and atmosphere for your project/scene. Whatever it is, I hope your project comes along great!

Sunday, December 3, 2017

Project Reflection

Throughout the project in this Studio unit, I have discovered many things and learnt a whole lot as well.

Throughout this trimester, we have learnt about how to make AI, data structures and why they were important within the industry, steering behaviors, and of course, the added bonus of the knowledge of Pathfinding.

In the beginning of the trimester, I thought that all this work, and all this new knowledge will be the end of me. I thought that I will be encountering many roadblocks ahead (roadblocks as in trouble understanding a certain topic or in general, just stuck). But it turns out that I'm doing really well over this past 10 - 11 weeks of this trimester. I managed to understand and implement a working pathfinding manager within the project, which allows an enemy to chase an enemy around obstacles. It took me about a week to understand and implement most of the code for the manager, of course, with some aid from my lecturer. However, I did manage to do it by myself. You just have to add some "elbow-grease" and some hard work.

After the pathfinding manager, we learnt behavior trees, the main focus of this trimester/unit. Behavior trees, as mentioned, are what makes AI more dynamic. It allows the developer or programmer to add on more behaviors, or add on more things to that certain behavior, without affecting the whole structure, other than adding in leaf nodes or composite nodes. The majority of us in the class found it hard, but that's what we should ask for, right? We shouldn't ask for it to be easy, but we should ask for it to be hard. If its not hard, where's the challenge?

Alongside behavior trees, we also looked at steering behaviors, something that makes our AI move a lot more human. Steering behaviors give feel to your AI. People play games and will judge the AI by how well it responds to their surroundings, does the AI move like how a human being does, and its complexity and how dynamic their AI is. So steering behavior gives the AI more feel.

At the end of the day, a tip for you guys who are reading this post, if you feel like you're going against something really hard, you just have to persevere and never give up. It doesn't mean that you can't take a break. You can, but don't let that be the excuse and what brings you down.