Tuesday 21 February 2017

Object-Oriented Design Assignment Task 1

Object-Oriented Design Assignment Task 1

Concepts and Principles:

Simplified Understanding.
Blueprints can be confusing and messy at times which is why simplifying the blueprints with titles usually work best. 
An example would be a moving character or object. The blueprint may have many connections and names that may not seem to do with the properties, however simplifying what the blueprints do, would make editing and finding them easier. This could save you from removing something important accidentally or editing it the wrong way.
It basically just to make your blueprints and work more organised. An example of what a simplified blueprint, "Opens door" this names the action of the blueprint and makes it easy to understand what the blueprint does.

Reusability.
Reliability is basically reusing an object again, an example of this would be a plant. A plant would very likely be seen in a game more than once because their are many same type of plants in the world. Being able to make multiple of the same object makes it easier to design and makes the overall design progress quicker. Items such as grass or trees would need to be reused as the designer wouldn't need to make more of the same type of object if they already have one. Reusing an object is similar to the Parent object as the behaviour and properties will be transferred as its a duplicate if they wanted. Reusability is a big thing as it saves time creating other similar objects, it would also be seen as a waste if the object was only going to be used once, for everything.

Maintenance.
Maintenance is used to clean, debug, fix and to make the game 100% efficiency when running. 
This is when the game will be fixed or changed in order to make it better.
An example would be if a character or object had a error when animation or blueprints are involved. This is the time when the designer will fix it by changing it.
Maintenance can be seen on already released games in order to make a update, this could be to fix bugs or add/remove objects to the game. This is needed for games as frequent updates are important to keep the public interested and to keep the game fair.
The cost of regular maintenance is very low, however a break down would cost much more to fix and would cost the business money due to the game being down, which is why games are regularly checked.

Efficiency.
This is important to the make sure that code isn't going to be to large. Their is many ways on making blueprints for the objects properties or behaviours. Making sure that the blueprints that you create are as short as possible and not confusing it will make editing them later on easier to understand. Maintenance would be much faster if the blueprints created for the game was simple and didn't require many scripts. 

   Real world modeling.
Real world modeling is basically realistic collisions and modeling. When designing most games would make the object solid so that the player cannot go through it, however some games are made to allow the player to go through objects, but its a low amount. Realistically speaking a person wouldn't be able to walk through a brick wall or a pole, so the objects will be have the same properties of being solid. Another example is weather, if it was sunny it would need to cast a shadow to buildings and other objects facing it. Rain would require either a splash on other water created i.e. a river and would also need to make it look like its doing some affect towards the environment so maybe a damp floor or puddles.

Collaboration and sharing
Collaborating and sharing makes games better, having people that work with you and even the public can improve the game a lot. As may people have great ideas and expand on what other peoples ideas can make the game even better. When a large amount of people think the same thing can make the difference of a game that will last for a year in the public eyes to a very long time.

Communication.
Game developers believe that communication is a big thing in games and that without access to other people games can become dull. Testers and the public are great people to get help from and recommendations. If a game had no communication to the users the game wouldn't be able to fix itself to become better and they wouldn't be aware of any errors.

Quality assurance.

Quality assurance technicians, or testers, perform a vital role. They test, tune, debug and suggest the detailed refinements that ensure the quality and play-ability of the finished game. 

Game Objects:

Sprites:
These are 2D objects that a 2D game would use. This can be a simple object like a box or a character.

Characters:
The character is what the player will play as. Characters in video games are people in the story that will either talk to you or interact with you in someway.

Weapons:
Weapons are used to kill either the players character or the enemy. These can be collectables or hidden objects. Some games like to make adjustments to their weapons that make it more powerful "Electric". Weapons can usually be picked up or bought in games, usually the location and cost will determine how rare the weapon is.
Some weapons are objectives which you need in order to finish a mission or little objective i.e. a pistol needed to be picked up so that you can fight the boss on the next level.
Rooms:
Most games are made in sections called rooms (levels). This is to make the game run at its best quality without lagging or bugging out. When a loading screen appears its due to it loading up a room that wasn't in previous room (level). for example, a house. The building might be in a level however if you enter it and it loads, the blueprint would move you to the house you think you just entered. This is also useful if maintenance is needed. This can make the game able to be ran in some ways without it stopping it completely.

Walls:
All games have walls that can stop the character/AI from reaching. The walls are usually found on the outside of the map. There is usually another wall that is usually called a death wall which can kill anyone that falls out of the map or access to an unwanted area. Walls determine where characters/players are allowed to go and where they aren't allowed.
Scenery:
This is the background of the level that is usually mountains or a river of some sort. This is to add depth and make the environment seem more realistic as it looks larger. Usually fog or some type of weather is involved to add a good affect such as a sun set.

Instances:
Is an example of a single occurrence of something.
An example would be a gate that opens and then no more action takes place. These usually occurs when an object will fall or a window if broken, the actions wouldn't be able to be seen again unless the game was made to do that
Rewards:
Collectables and bonus missions are usually the main ways to get rewards in order to get things such as power ups etc. Rewards are one of the main reasons for people to play games, if that's to get a powerful weapon or to unlock a secret area. Without rewards most games wouldn't be played. Rewarding could be giving you something as little as a profile picture, or an achievement. People that like to get everything from their games will focus on what they can achieve by doing something in the game.

Object Properties:

Colour:
Colours can show that you are interacting with an object, such as damaging an enemies can make their health bar go red, indicating that the enemy is taking damage. This can also be used make objects standout such as collectables, as it would be much easier to see from a distance if its bright.
Certain colours can indicate danger or other things, such as a red colour usually is to indicate that some one is taking damage. Green can show that an objective is complete, yellow could show you are in progress of a mission or that you have taken some damage.

Size:
The size of objects depend on what the object is going to be used for. Usually the objects are realistic size. Stronger enemies such as bosses will be larger and would normally have weak points to hit.
Other weaker enemies will be smaller to make the health understandable.

Speed:

When a moving object is created speed is a key factor. If a enemy is faster than the character the designer would expect the player to fight rather than run away. Another example would be the clouds and wind this would need movement but it would have to be slow in order to make it look realistic. Certain objects such as barrels and balls, if they were to collide with the player the ball would roll much quicker than the barrel.

Movement:
This is how a character or object can move, for example in my game the enemy clown will have the ability to run and walk depending on the alert level. Some enemies can only walk or craw there way around. Other games way have a flying movement which can be useful when going over none walk able terrain. The player will usually be able to use two different keys for two different movements.
This is to make the game more interesting and also to make it easy to get around.

Sounds:
Sounds will be basically used to make the atmosphere to add emotion the game and player. This can be from the wind and rain from the weather outside, to your weapon shooting. Without sound the game would be seen as boring and will not have much personality. Many games use sound to make their games add the atmosphere that they want .i.e. a horror would require sounds that are creepy and loud at times, removing sound from a horror may not stop it from being scary, however it may make most of the scary parts of the game much less scary.

Health:

Health is usually seen in a bar that is basically showing how much health that object has. Most games like to add health packs in order to have a fair fight with enemies that have much larger health pool.
Health for characters will depend on how strong they are either on appearance or how important they are in the story. Bosses are very likely to have the most health in the game to make it challenging. 

Lives:

Lives depend on the game. Usually platforms will have heart symbols as their lives and every time they are hit, a live is lost. Some games such as free for all, usually only allow you to spawn once every round as a way to make the game mode interesting. Lives is the amount of times a player can respawn and depending on the game some will be unlimited in order to make allow you to continue to play the game. Platforms such as Mario only allow a certain amount of fails until the player has to restart from the beginning.
Action and events:

Mouse and Keyboard events:
This is the controller which a character object will be controlled by using keys. An example "WASD" would be used to make the character move and the "Spacebar" would be used to make the character jump and so on. This is important as its how the game decides to play and without some type of control the game wouldn't be able to be run
The mouse is usually the camera view from first-person/Third Person, it controls where the player wants to look at and what angle.

Create:
These are what objects are created.
These are usually made using Maya or some other software that offers quality work. Then imported into Unreal and placed into an area.
Textures can be created using similar softwares such as Photoshop or Illustrator. When designing UVs is a must when adding it to a created object or it wont fit.

Destroy:
This is when an object is destroyed. An example would be an enemy being killed by the players bullet or melee weapon. This can also be used on objects that don't have much function such as a barrel or a glass.
Depending on the game it can depend on how much objects can be destroyed. Some games allow you to destroy most objects which is one of their main design choices, others choose more of a less "destroy" root which only objects such as windows can be destroyed.

Collision:

This is when a character and object collide with each other and react in someway. Usually most games will make objects solid and stop the character from colliding with the object, this is to make it more realistic and stop them from entering an unwanted area. Some objects may move or open when you collide with them i.e. a chest or door, these are classic examples of what a lot of designers do to save time designing blueprints and animation.

Timers:
Usually this is used for games that want quick and fast paste. i.e. Racing games and platforms are usually the main example for this. This is to make you try your best and to hurry, which makes the player have similar feelings to the character of the game.
It can also be used a couple of times in games that don't use them heavily i.e. Cod. When a mission involves running away before a bomb activates or before someone dies this can bring more tension to the game and make it more realistic rather than have forever on that one mission, when realistically you would have hardly any time.

Scoring:
Scoring will depend on the game, some games reward you by using them as credits others use it for you to see how good you are to others in the world "Leaderboards" This is usually a big factor that most gamers would want good scores to show off their skills. People also like having the idea on where they are ranked in the world which is why scoring takes a big place in the gaming industry.
Most mobile games see scores as a main objective and even stop you from progressing if you dont have enough points. Others like to compete with their friends so its a must for most developers when thinking about a competitive game. Games that aren't competitive may still have a scoring system but its more unlikely.

Inheritance:

Parent:
The parent is the primary object that will be re-used in order to make a child object.
An example would be an enemy boss. As most enemies would need to have the function to walk and behave in a certain way this would mean that an easier way of creating them would be to have a parent object to inherit from. This saves time and makes it easier to find the original object which makes it easier to navigate in the blueprints. 
This is basically reusing an object, but allowing the "parent" as the main controller for the child objects.

Child:
The child is the object that has been created using the parent.
Child objects are usually the objects that the designer wants to add or remove actions towards, allowing an object to be stronger,weaker or even a different type of mesh would be why a child would be created. 
An example would be a unimportant enemy. As most games would need multiple "bad guys" the easier way would be to create child objects using a parent. This would make the object have the same properties and behaviours as the parent.
Child objects can find their parent by the menu, this is used if the designer wants to copy something over or want to remove the bond to the parent.

Inherited behaviours and properties:
The child object inherits the behaviours and properties that the parent has. Having parent objects saves time and allows more similar objects to behave the same. An example would be a breakable barrel. I may want other breakable objects, so using the barrel as a parent would allow other objects such as glass to behave the same way. This makes creating properties easier for objects. Another example of a behaviour would be a door, most doors would need to be opened in a similar way which is why most doors will be the same object (child). This saves time blueprinting and gives a better feel for the game if the doors are opened and shut the same way. Sounds can also be inherited i.e. if a collectable was collected or a clue all items would need the same properties of sound and to be picked up. If all collectables had different sounds most likely it would be because of how rare they are, which in most cases isn't the case.

Overriding events:
Overriding an event can either make the object know your intentions on what you want the object to behave like, or it will make the object change depending on what event is changed.
An example of Overriding an event would be if a character had fell from a none-death zone area that would make the character continuously fall, this would have to override the event to make the player die so that the player could restart. You can also override colours, if an action happens such as the character or object being harmed the object could lose its colour or go bright to show you are interacting with the object. 
Overriding is basically changing a property or behaviour of an object if a action takes place such as, if a clown is shot the nose will go brighter until the object it destroyed. This is used to make the player aware that they are doing something right and that they are interacting with the object

No comments:

Post a Comment