Wednesday 13 April 2016

Unit 67: 3D Animation

Charlie-Anne Jesson


BTEC Extended Diploma in Computer Games Design
Unit 67: 3D Animation
Animation in Maya


To view my assignment go to:


Wednesday 16 March 2016

Phenomena's Within the Industy

Unit 13; Assignment 3 -Phenomena within the Gaming Industry

https://docs.google.com/document/d/1S99MDDU-62QmappG0YWB0jznCtzmBlRhotfyFpFPkjc/edit?usp=sharing

Wednesday 9 March 2016

3D Landscape Documentation

3D Landscape Documentation:

https://docs.google.com/presentation/d/1y47ixTCzk_HY2pBuSGvvPlJacJszzKW0-05bkhuWlVs/edit?usp=sharing


Object-Oriented Design: What You Need to Know -Part 1

BTEC Extended Diploma in Computer Games Design

Unit 71: Object-Oriented Design for Computer Games

-----------------------------------------------------------------------------------------------

Object-Oriented Design: What You Need to Know

Object-Oriented Design, or OOD, is a design method that is used on singular objects to give them their own abilities and uses. Each object within a game would have their own state and behaviours. The state would include its colour, name, direction, speed and various other elements. Whereas the behaviours is more focused on the mobility of the object and the possibilities of it changing state. Object-Oriented Design helps to organize the coding, or blueprints, into their individual and respective objects, making it easier to identify any problems if they happen to occur. Each of the individual objects hold all of the information about the objects states and behaviours. 

What are States and Behaviours of an Object?
States of an object, like stated previously, are the things that describe the object, such as colour, shape and size. There are many different things that determine the shape of an object, the list above are just a few of the more common ones. Again, like previously stated,  the behaviours of an object focus on what the object does rather than what the object looks like. Not just the mobility but also how it moves as well as where and why. The behaviours of the object tend to be more important than the state, the behaviours determine the way the game works and flows. While states are also important, the behaviours are what make the game work to its full potential. 

Re-usability of Object Oriented Design: 
One of the best things about Object Oriented Design is that for common objects such as a door, you can take the state and behaviours and place it into any game you make. If you were coding the game using java or C++ saving the code for the state an behaviour of the object into a word document would be the most efficient way to reuse it in future projects. Whereas if you were to be using a blueprint to give the object its state and behaviours then you will find it to be more challenging than saving a word document. 

By selecting the blueprint or the asset in the content browser of unreal engine, you should right click and then select "Asset Actions". This will bring up a side menu of which you should choose "Migrate". 




Then confirm the migration and save it somewhere safe and easily accessible. Once you have migrated the asset, you can then import it into any other unreal project you need it for.

Maintenance & Quality Assurance of Object Oriented Design:
With any game, coded or blueprints, there is a significant probability that there will be some issues within the script. Assuring the quality is of a high standard before releasing the game would be best done by having a few professionals to play through the game and write a detailed review on any bugs, problems, or improvements. This can help to make the game better, but also identifies any areas within the blueprints. Above to the left is a screenshot of Unreal Tournament glitching. This would have been reported to Unreal and they would have had to go into their blueprints, or C++, identify the problem and correct it. As this game is live, this would have been a time sensitive project. Maintaining the blueprints during the game making process as well as once the project is completed, aren't so different. Once the project is completed, like mentioned before, there may be times that bugs need fixing or glitches need resolving, but there will be times when the game is being updated. The same OOD's can be used again, if it's a simple change, then individually updating the OOD's would be best, however if it is a big update, grouping the OOD's that have similar assets and updates would be time effective.

Efficiency of Object Oriented Design:
Object Oriented Design is in a sense efficient in the way it can be re-used at such ease. As we already established, re-using not only blueprinted OOD's but also Coded OOD's is very easy to do and doesn't take too much time to do so. Both are easily saved and stored and provide good structure to any game. This is similar to that of Procedural Programming, more commonly used in coded variants such as C++. Procedural Planning creates a chronological sequence of events to be executed with detailed instructions.

Real World Modelling:
Object Oriented Design isn't just found in computing, for example a car or a toy robot also use OOD to function. Looking closer at a toy robot, this one to be precise. 
If you look at the state of the robot you can see that the name is Robot, obviously, you can also see that it is mainly blue with small sections of red.The behaviours are likely to be controlled by the wind-up key to the left side of the Robot, but the behaviours would be leg movement mainly and any potential noises that it would make.  The way in which computerized objects work is not so different to that of physical objects. If you take a door within a game and compare it to a door in the real world, they work the same way. A standard door, in both capacities, work by being pushed, or the handle being used. Or an automatic sliding door would be triggered by a person standing in the view of a sensor, the same within unreal can be preformed by the use of a trigger box and setting up a matinee and a blueprint, like below.






Collaboration and Sharing:
An OOD may be created via various parties, there are many different people who work on games, the main two being the programmers and the artistic developers. The OOD could start by having the object created by the artistic team and then being passed onto the coders/programmers, to then be passed to the developers to add it to the game.



Communication, The Theory of Blueprints and How They Work:
Blueprints are a simpler way to code a game, most commonly used in the Unreal engine. There's been many debates on Blueprints vs C++ within the engine, neither seem to have more support than the other however. As shown below, both look rather complex to understand and execute, however most people who post on the unreal forums commented on how Blueprinting is easier to execute and use.



Neither way of coding the game will effect the game play, it all comes down to personal preference and skill level. When trying to get two or more blueprints to communicate with each other within the game, the main blueprint, which is your working blueprint, needs to gain access to the target blueprint. This being the other blueprint you want to communicate with. To do this, within your working blueprint, create a variable for the target blueprint. Then within the level with the working blueprint selected, in the details panel you can then set the variable. The variable is set to none as a default, by using the drop down menu you can choose from a variety of options to set the variable as, according to the needs of the blueprints. Within blueprint mapping itself, there is a function option that connect the variable to the blueprint, like below.



Inheritance:
Similar to a genetic inheritance, an object can take assets from two other objects and merged them with their own and become a whole new object, just like a child taking certain aspects from each parent as well as having their own. In unreal terms a parent and child class are often referred to as Superclass and Subclass. The subclass tends to take the properties from the superclass as well as develop its own, new, states and behaviours.

Object-Oriented Design: What You Need to Know -Part 2

BTEC Extended Diploma in Computer Games Design

Unit 71: Object-Oriented Design for Computer Games

-----------------------------------------------------------------------------------------------

Object-Oriented Design: What You Need to Know

Advantages of Using the Following Objects:

> Sprites; A sprite is mainly used within 2D game making, however it can be found within 3D also. It is used to represent an object, it is more common in 2D games, as it is a flat image that can be animated through changing the image frame to progress the movement. As you can see below, the sprite is a basketball and it changes state to form the frames to make it look like it is bouncing through animation.



> Characters; Characters often shape a game, either through their story or their actions. There are some genres of game that require no characters, but genres such as First/Third person and RPG etc, depend on a good strong character to shape the story of the game.

> Weapons; Weaponry within a game depends on genre, again, some games can get by without any weapons. However games like Shoot ‘em ups and Strategy RPG games rely on weapons. As you can see below, it’s not just guns that are considered as weapons. Tools, Swords, Knifes, Daggers… The list is endless. Game makers are getting more and more creative with weapon choice.


> Rooms; Rooms within a game often make up the playable area, that generally consists of multiple rooms. Rooms often have different collectibles within them, this could be different weapons or power-ups, sometimes even clothes or medical supplies. For example, below is a in game screenshot of Call of Duty: Black Ops II Zombie Map- Town. The player is in one of five rooms across the map. There is no significant power-ups or weapons within this bit of the map, however it is a wide open space often used to create some space between you and the zombies. 


> Scenery; Scenery within games is important to set the story, as well as the feel within the game. Below is a scene from Skyrim, a medieval adventure game set in a fictional country, Skyrim. The eerie mountains and old villages set the scene and feel to the game perfectly. The scenery is a vital aspect to any game in order for the genre, story and artistic elements to connect and flow in exceptional way.


> Instances; Instances within 3D game making and 2D game making vary significantly. Within 3D game engines, Unreal in particular, instances are found within the objects assets, such as their materials. Where as a 2D software such as Game Maker, use instances to change the course of events. For example, if the player was to collide with a locked door and there was an instance in place the engine could check to see if the instance count of an object, such as a key, had been collected, if so the door would unlock. This is how a lot of things work within Game Maker.



> Rewards; Rewards, such as power-ups, extra health or bonuses,  often boost the game play. There may come a time where the player is short of lives or low on health, finding an extra life or additional health, the chances of encouraging the player to play on will rise. Each reward would be their own OOD and each would function in their own ways, some would be similar in what assets the have and use, but solely individual also.


How are the Following Objects Defined within Specific Game Objects?

> Colour; The colour of an object is defined not only by sight, but through the material it is connected with. In some cases, it could have multiple colours. However the base colour or the subsurface colour is how the object would be identified.



> Size; The size of an object can most obviously be recognized by the size of said object. Also through the Details panel, within the transform section, there is Location, Rotation and Scale. Not only can you identify an objects size through here, but you can also alter it.



> Speed & Movement; Both speed and movement can be visually identified, however it can be identified through the blueprints that make the movement possible. Animating through unreal can be tricky, but once it has been digested and condensed into simpler terms it seems pretty easy to understand. The speed of the animation can be set through a blueprint also.




> Sounds; Importing sounds into Unreal is the easiest way to an atmosphere and emphasis into the game. Once the sounds have been imported, creating the blueprint gets a bit more trickier. Depending on the depth and detail of the sounds, the blueprint could be very large and complex like below, or it could be much simpler.




> Health & Lives; Health is a huge factor in most games, lives too. The importance of health in a game such as Legend of Zelda or Mario is pretty big, without lives or health, the game is over and you have to start again from the last save. Implementing a health system into unreal is done by using a blueprint widget. It gets more complex when it comes to adding and taking away the health, as well as drawing the health bar.




Actions and Events of Some Objects:

> Characters; Characters are the main part of each game, using Link from the Legend of Zelda series as an example. You can see that the state of Link is that he is mainly wearing green and he is carrying weaponry. The behaviours of Link are mostly swordplay and general movement. The actions and events of Link are the main aim of the game, Rescue Princess Zelda. All of Links actions revolve around this one task.


> Weapons; Like previously mentioned, game developers are getting more creative with the weapons they're designing. Below is the Raygun Mark II from the DLC pack that gave us Buried on Call of Duty: Black Ops II Zombies. It is a zombie exclusive gun and is very powerful. The actions of weapons are most obviously, the damage in the health of other characters or enemies. The main event for the Raygun Mark II would be when the gun is presented to the player when they open the mystery box and gain the ability to play with this weapon. Generally speaking, the main events for any weapon would be the damage caused and executing different levels of damage.

> Rewards; Rewards within games are a huge boost the the playing experience, whether it be a new weapon, a boost in health or unlocking a new area, rewards keep the player playing. The most recognized game for power ups would be the Mario series. From mushrooms changing the size of the player to giant chain chomping metal balls, the power ups in Mario are infamous in themselves. Rewards can change the course of the game, either good or bad. In terms of implementing them within Unreal blueprints, a collision event would be put into place, the rest would vary on the type of reward gained. As well as the blueprints varying, the events and actions would also depend on the type of reward earned.




> Sounds; The events of a sound blueprint would include all of the different inputs and outputs needed to execute the sound. The sounds could be triggered by the players actions, this could be by walking into a trigger box or a specific area. Another action that could cause a sound to be played could be during a battle, the clink of swords or echoing gunfire.



> Lives; In some action rpg mmo games, it isnt just health and lives that the player has to keep track of. You can see below two bars, the top bar in the green resembles the players life, the blue bar at the bottom represents how much mana a player has left. This particular health bar is from the game League of Legends. Mana is used when preforming special moves, however some characters have unlimited mana so don't have to replenish it by drinking a potion. Potions are a common thing in games with health bars, they help to restore health when the player drinks them. Looking at the potions, the action would be the player consuming the health potion and the event would be gaining  full, or partly restored health.




Implications of the Following Inheritance:


> Parent - Child; Parent - Child Behaviours can cause problems within blueprints, sometimes the child object doesn't maintain the variables and values that are inherited from the parent object. This sometimes interferes with the values that the object is trying to put into place for themselves.


> Inherited Behaviours; Much like within the real world, a child, or child object, will reference what their parent does and often mimic and copy what they see. This is the same within Unreal. Like previously stated, the child object will create their own values and assets, but will still have a section of values and assets inherited from the parental object. The values will all work the same.


> Overriding Events; Objects within unreal can override each other, sometimes this can cause errors, like seen below. Other times, you can only override objects that have output functions. This limits the functionalable blueprints.


Wednesday 3 February 2016