Monday, 24 April 2017

Object-Oriented Design Assignment 2.

Object-Oriented Design
My level has many different blueprint types, which respond in different ways according to what it's linked to, for example; AI actions, Object movement/animation, colours and environment.
 Boundaries/light volumes etc.
This allows any light to be cased within the boundaries to be correct. It's also used to make any other additional affects to be added such as lighting strength. This is usually used when a section of an environment is going to be different.
In GameMaker you could either make all the objects you create to be dark or to use some simple code to make the screen darker, in my opinion this makes Gamemaker better in this case   
Object movement and reverse
One of the main blueprints i use in this level is the matinee technique that links with a blue print and a trigger box.
An example is a door that will be opened and shut when the player is near. In order to make the door move and animate the matinee allows you to move and time the animation as you want it. Then adding the blueprint above and the correct trigger box connected to the blueprint it would work
The blueprint is basically instructing:
The matinee (clip/animation) and the trigger box (when collision with player) will play and repeat its animation every time it's triggered.
Lights on and off.
This has a similar blueprint to the movement of a object. As the blueprint requires a trigger box, however in this case the trigger box is much larger as when the player reaches the other side of bridge the bots glow red.
This uses a matinee however instead of making a selection for movement you would choose "colour", this allows the object to glow any colour after being triggered, this is also effective when making objects gradually change colour, which could be used on objects that need it. I found later on that the blueprint was to complicated for a simple task and removed the blueprint and placed a point light on both objects and connected them both. I then made a blueprint for the point lights to do a similar task that I wanted before and made it where they turned on and off depending on where the character was.
The blueprint was much more simple and didn't require much thought as it only required a trigger box and a point light that had two choices (visible/invisible) when triggered.
TriggerBox
The trigger box is a simple blueprint that can be edited or connected to an object to make animation or actions occur. This is can either take shape as a square or sphere depending on how you want the collisions to work. Usually a trigger box is used when the player has moved into a certain room or area. Due to it being difficult to have multiple blueprints for every object a trigger box can make triggering a blueprint much easier.   
AI Movement and following the player
AI movement can be very difficult depending on how much blueprint is in it. In this case the blueprint is allowing the AI to move in random positions with set times and delays. It also repeats after the movement has occurred. The blueprints other function is to run to the player and run away if the player is in site and within the "Navmeshboundsvolume"  The AI is a basic double of the player with some things removed such as the camera. 
The blueprint is basically instructing that the AI should move to a (random) position every time its finished its action. As their is a delay the AI doesn't look to robotic. 
The AI has a range that it can see (can be changed), and when the player enters the range the AI will follow until the player is out of site which the blueprint is basically doing.
Both sections are similar with some connections changed and some timing differences. As this is basically the main blueprint for a AI movement other actions can easily be added such as walking, running and jumping.
 Boundary of character 
The boundary of the character has two useful tasks, the first is that any object that requires the player to collide with it would need to collide with characters boundary. Secondly, it behaves as a hidden object, this helps stop any bugs that could cause the character from accessing parts of the map that the original object could have accessed and accident.
If boundaries were to be on the object, many glitches involving animation with other objects such as AI would be a problem as it would look like a delay.
In GameMaker the boundary would be the size of the actual character, that also includes the size of the square where you designed the character in the first place.
NavMeshBoundsVolume-Area in which the AI can go
This is basically a box that can be re-sized depending on what you would want. This shows where the AI can move to and where it cannot access. This is useful to stop certain AI from accessing sections of the map where you may not want them
It can also be useful to see if your terrain is walk-able for your AI or object etc, by pressing "p".
A basic movement for a object that will has only got one function
This is for one of my few objects that have this blueprint. This allows an object to animate only once. In this case I have used the blueprint for a door which i wanted to be left open after it opened.
Before, in Gamemaker the design would have needed commands on where they should go, and which I think Gamemaker gets the upper hand with code as its very easy to make an object or character move as you only have to move the commands into the object.
Box trigger on door
This is the door that has the blueprint to act once. The room is accessible by entering the basement or by moving a statue. By it being able to accessed both ways I made the trigger box on one side so the player cannot access the basement without going the correct way.
What I find very useful about trigger boxes is that all they need is to be connected to some sort of code to make the action work.  
Opening sequence for level
My opening scene for my game is to give you an idea on what your dealing with while also giving you an idea on where you should go. The blueprint seems complicated however its very simple for what it does.
The scene first required a camera which was connected to the blueprint. the camera was animated to move all around my level and then return to the player. After the matinee was finished being edited I placed it into the blueprint and gave it commands.
A part of the blueprint is instructing that it has full commands over the HUD which then allows the scene to be played before you actually play. The other section of the blueprint is confirming the size of the clip i.e. how long. and when it should finish and who should the commands go to next.
This was very easy to get my head around after adding the first section in.
 The Camera
Reaches the top of the tower with spaceship in view, then returning to the player.
This is a scene that the camera reaches and then returns to the player. I made this happen as I thought it would look more effective that it includes the player in some way, rather than it showing a scene and then giving you control.
Can be used for objects, weather and other effects
I used a similar blueprint for object movement and change it a little in order to make effects such as rain and water. By also changing the material and size and instructions on how it behaves it made the effect.
Gamemaker would allow background movements and changes in style but weather wouldn't be very effective for what code it would require.
Special effects in textures
These are basic blueprints that instruct what the object will take as its texture, however removing a texture and replacing it with an animated texture can make the texture better and more affect. 
In this case the texture was rock, I added in a lava animation and made a glowing lava/rock texture.
If I was to do this in Gamemaker I would have had to make the actual object animate to change colour, rather than just changing the texture.
Fire and smoke effects plus the material effect.
As this is in the back ground the detail isn't much of a must and so I added in a smoke affect, the blueprint connected to this is to get larger and smaller at random times with delays.
The previous texture I made was added and replaced the previous brown texture which makes the design look more mechanical.
This was very simple blueprinting and duplicating.
Making changes to the original texture
I wanted my gate to have the similar style to my spaceship so I duplicated the texture and then added the animation. 
Very simple and effective.

GameMaker
This software has many ways of tackling a situation with code however, in my opinion I find that the Unreal Engine has an easier coding process.
GameMaker offers either the actual code to be entered or the drag and drop technique, which is basic code instructions which need other parts of the code to be connected i.e. a puzzle piece.
Unreal Engine is similar to the drag and drop as its visual code and needs connections in order to work. 
I personally think unreal is self explanatory on basic code and if the code is in correct it will usually say why. Adding on to this GameMaker does show what "line" of code is incorrect which can help.
When designing the animation of the objects and characters in GameMaker the code seems in my opinion to be too much code for a simple action. Unreal on the other hand is usually smaller as its the icons that take most of the space. 
For organising Unreal is by far the better software as you know what blueprint does what as you can label what the code actually does, GameMaker doesn't offer that feature.      
My older games that were designed using GameMaker was:
Brainbox, Shapeman and a hacking game.
In all 3 games my main way of coding was using the drag and drop technique as it was a lot easier than the normal way of coding. 
The games have very basic functions and yet have loads of code, which is why i think that Unreal blueprinting is much better.

Overall I believe that blueprinting can be simple depending on what root you take. I have personally taken a similar root in all my blueprints in order to make sense of it all, while also making it very simple in my eyes. I noticed that their are also many shortcuts in blueprinting which can make it much easier. 
GameMaker is a great software for beginners however I think the code is very limited and difficult for even the basic of actions.

No comments:

Post a Comment