Task 3 – The Connection and Configuration of Game Platform

Introduction

In his task I am going to be explaining how to connect and configure several gaming platforms such as the Xbox one, Mobile Phone and the Raspberry PI. 
Below you can see videos of me explain each individual platform as well as a more in depth Report on how to connect and configure the specific consoles. I decided to do an additional report as well as the video because In the Video I did not fully explain the configuration and connections as well as I wanted. So in addition I decided to include some writing to explain the configuration and connection for each individual console in further detail.


Xbox One & Smart Phone





Xbox One

First I am going to explain how to connect the Xbox one. The first thing you should do when connecting the Xbox one is plug in the power supply. The power supply plugs into the back of the Xbox one console, once that is plugged in you need to plug the other end of the power cord into the electrical outlet. 


Once that is done it is time to connect the Xbox one to the television. To do this we are going to be using the HDMI cable. To do this you first need to connect the HDMI in to the back of the Xbox one in the HDMI OUT port. There is two different HDMI ports in the back of the Xbox one, the port closest to the power supply is the port used to connect the HDMI to the Television. Once you have plugged the HDMI in the back of the Xbox one you need to make sure the other end of the HDMI cable is plugged into the HDMI port on the Television. The Xbox one console is HDMI only so you can’t use SCART lead or VGA to connect the console to the Television. When The HDMI is successfully connected the console should be turned on and connected to the TV. I am now going to explain how you can configure the Xbox one options as well as downloading games on the Xbox one.







To configure the settings on the Xbox on you simply have to go to the home screen, scroll left and then click on all settings. There are different types of settings you can change on your console for instance you can personalise your profile, colour, background, change the video output, volume and audio output. In the pretences your able to change the configuration of Notifications, Game DVR & Streaming, SmartGlass connections, Preferred video provider, and Feedback.


There are two different ways to install games on the Xbox one. You can install a game by inserting the disc into the Xbox one. If the console already has the game installed but needs updating, then you will be prompted to do an update although if the console does not recognise the amen then you will be asked if you want to install the game. If you don’t install the game, then you won’t be able to play the game.

If you want to install a game from the game store, then you simply go over to the store tab at the top of the page. Scroll down the page and you will see an option to browse games and apps. When you have chosen the game simply just download the game from the Xbox game store and it will start to install automatically in the Queue section of my games & apps. Although you are able to pause the downloads or installation whenever you want to. So for example, I am subscribing to Xbox gold live. Every month on Xbox gold you get a variety of free games, I personally download all the free games each month and just leave them in my queue section. Just in case I want them to play the game in the future, this way I get to pick from a variety of free games which usually are £40 odd pound each game. 





Mobile phone

Modern day mobile phones don’t take long to connect. For example, to charge the phone you only need to connect the phone with a power supply, by connecting the power supply into the slot on the phone and then plugging the plug into a socket. Modern day chargers usually allow the user to disconnect the plug leaving them with a wire, this wire is called a USB cable. 
You plug the small end into the mobile and the bigger end of the USB into the computer. If using windows, then the computer will start to automatically verify and install the device. Once done the USB can charge your phone or transfer files over to the computer from the phone. Some configurations for mobile phones can be changing the brightness, text size, volume or even changing the configurations for what lock screen you are using. There are many different ways to configure a modern smart phone. 

To download games on an android phone you can use a app called google play. Google play is probably the primary way to install apps on the android. The app is usually installed on the phone and can be on the phone menu or the phone default home screen. By tapping the google play icon which looks like a small white bag it will open up the menu for google play. On the muni it will display the games in different categories for instance the categories can be action, puzzle or even just games which are recommended. 
Once you have chosen the game you simply click on download and it will automatically start installing in the games and apps menu. Sometimes the game might ask you for credit card details if there is purchasing involved in the game or if the game needs to be purchased. Once downloaded the app is usually created into a short cut and put on your default screen. The IPhone uses a similar configuration for downloading games although iPhone use a app called App store. In the app store you can search games by using the search icon at the top of the screen, you can look at games by looking at the top charts and the different game categories which is similar to google play. Overall connection and configuration in mobile phones are made easy and simple. 

Raspberry Pi











Firstly, to connect the raspberry Pi you need to make sure the battery has power so it can be connected to the device to provide the raspberry Pi some energy.  The battery allows the player to be more portable with the device although if your battery needs charging you are able to plug the external power source directly into the device and into an outlet which will basically charge up the battery. This is similar to how mobile phones and laptops are charged.



Once your raspberry Pi has power, you need to now plug the raspberry Pi into a visual display.  For instance The Raspberry Pi has a HDMI port which you can plug directly into a monitor or TV with an HDMI cable. This is the easiest solution because modern monitors and TVs have HDMI ports although there are other options such as DVI or VGA which needs a HDMI-to-VGA adapters. An HDMI cable basically connects the digital audio/video devices to each other so that data can be transmitted from one device to the other.


 Once everything is all connected you need to press the power button on the monitor, once you are on the raspberry Pi. You are able to add different controllers because each controller this is good because each controller has a different function. For instance if I plug in the mouse it allows me to move the mouse and select options on the screen, although If I add a keyboard then I can select the option using the arrow keys but the most easier controller to play this specific game is the Xbox 360 controller. Because it’s easier to navigate and the Xbox 360 controls are a lot more used and common.

You can also configure the settings for instance you can change the brightness and Hue. This allows you to change the darkness and lightness in the game if necessary for instance you might change the brightness so you can see the colours better in the game. Changing the brightness might also be helpful if the user has any vision impairment in fact one in seven men have some sort of colour deficiency so it is important to have some sort of configuration on the device. For instance my mobile phone has a similar configuration because I am able to change the brightness and I am also able to change the size of the text which again can be helpful if the user has some sort of vision impairment.  


Image Links

https://support.xbox.com/en-US/xbox-one/console/console-setup
https://support.xbox.com/en-US/xbox-360/console/care-maintain
http://www.ebay.com/itm/Kit-de-pantalla-7-Pulgadas-Lcd-Hdmi-Teclado-Mouse-Wifi-Usb-Hub-Board-4-para-Raspberry-Pi-/151071312034?_ul=AR
https://www.raspberrypi.org/blog/raspberry-pi-2-on-sale/
http://www.androidheadlines.com/2014/07/google-stop-referring-games-wiap-free-requests-european-commission.html

Task 2 – Platform Game Showcasing Research

Introduction

In this Task I have created a construct 2 platform game using my knowledge which I have gathered whilst doing previous tasks in my Unit 20 Assignment.  
We decided to first work in a team to help build a 'base' game. Each person had their own individual role; I was the Leader and the graphic artist for some of the concepts in the game. We built the basic base game In the team although to make sure I met the criteria for this task I started working individually once the base game was completed. 

Here is what the game was like before and after I added some features. 


Platform Game -  Team

The platform game which we created in a team has several layouts to create a platform game with two levels, a menu and finishing screen.
When the game begins it opens up the menu layer the user has to press any key to be sent to the first level. In the event sheet for level one and level 2 we added mechanics where if the player press’s the escape key it will they reset the level. In this level there were a few features like moving platforms and portals. To create the moving platform we added a sprite with the solid and sine behaviour. The sine behaviour is what makes the platform move, when the player is on collision with the moving platform the the sine will begin to move it.

For the portals we simply made a sprite with a circle. The circle is basically the door to the portal and when the player is on collision with the portal it sets the player into position off the next portal. When the player dies the level just simply restarts. Below you can see the event sheets for each individual level. As you can see the levels are quite basic and doesn't involve complicated events in order for the levels to work.





Video of the team platform game



Platform game- After I added additional features



In this selection I am going to be talking about all the extra mechanics and functions I have added to my 2D platform game. This selection is going to be more in depth and more detailed than when I was explaining the platform game in the team. The platform game before I edited it didn’t have many challenges and was a boring, basic game.

I Have Now updated the game and added enemies, audio, health bar, bullets and health power ups. There is some improvements the game still needs like a score bar but for this task it is not necessary to create a full, perfect platform game. The aim of this game was to show what I have learnt throughout the Unit 20 assignments. For instance In unit 20 we learnt information about arcade games which I have added to my platform game for example the look and control of the game is almost arcade like as well as adding arcade characters into my game. 

First I edited the appearance of some of the characters in the game and created enemy art work for my enemy sprite's. I used Piskel to help create pixel artwork including pixel animations which I used for mostly the enemies. For example in the game when the player becomes visible to the space ship, the spaceships animation will start. I also changed the background of the platform game. Once I created the new characters using piskel, I opened the PNG up into construct when editing the sprite. 



The player has a scroll to and Platform Behaviour. The scroll to behaviour makes the camera in the game follow the player around, so the main focus in the game is the player. 
The platform behaviour allows the player to move and jump just like normal characters do in a platform game. The enemy's all have turret behaviour. 
The turret behaviour allows the enemy to shoot at the player using a different sprite for the bullet. The Bullet uses a Bullet Behaviour where you can change the speed and acceleration of the bullet. 

To make the enemy aim the bullet at the player I set the bullet's angle towards the players X and Y position.  If the enemy or players bullet hits the player/enemy or is outside the games layout then the bullet will be destroyed to make sure there isn’t a load of bullets 'floating' around the screen which can cause lags and several issues.
I also made sure the player or enemy cannot shoot pass the flooring, this means I made an event to tell construct to destroy the bullet if it touches any of the flooring sprites. 
The enemy will shoot the player every 1.0 second until either the enemy or the player is defeated, the player only shoots when the user is tapping the space bar. As well as enemies I also added 'spikes' to add more difficulty within the game, these spikes automatically kill the player.

Because I added enemies, bullets and functions which attack the player I had to create health for the player and the enemies. To create health for the player I decided to do a basic health bar. To create this me first created an instance variable for the player called 'Health' This instance variable was set at a number of 100 which means the player has 100 health. In the event sheet I made conditions so when the enemy shoots the player, the bullet will first destroy but also subtract 10 from the health instance variable.  This means if the player was shot more than 10 times the instance variable will be on 0 and the player will have no health. When the player has no health I made events in the events sheet so the player will be destroyed when the player is equal to 0 health. I created a simple health bar to show the user what percentage their player’s health is on. I created this health bar by creating a simple sprite and adding 3 different animations. 

The animations was 'good', 'okay' and 'bad' the good animation was green, okay was yellow and bad was red. I then made sure the alignment was on 0 X on all animation so the health bar goes down from right to left. Once I created the sprite I went into its preference and made sure the width was set the same width as the health for instance the players health was 100 so the width of the bar will also be 100. 


In the Event sheet I added some mechanics so the bar fits the width of the players instance variable so if they player only has 80 health the health bar will be 80 in width size. 
I then Set animations for when the player hits a certain amount of health it then plays a specific animation for instance if the health is 50 it plays the 'okay' animation which sets the health bar to yellow. I found this the easiest way to make a basic health bar for the player. 

I didn’t make a health bar for the enemies because I only set their health at 50 and set it so when the player shoots the bullet at the enemy; the bullet will destroy and take 25 away from its health. This means that each enemy only takes two shots from the player to be defeated although I have added the enemies so they are in big groups which makes it harder for the player to kill them all.


To make it a bit easier for the player I have added health picks up throughout the levels. I created the health pickups by creating a sprite and adding a simple event which basically is, when the player is on collision with the health, the health destroys and adds 10 to the health instant variable once added to the instance variable I set the health bar width again.


 For the second level I wanted it to be a little different. I added ghost as enemy's to help fit the Packman theme in the second level. 

The ghosts are able to shoot and have the same mechanics than the enemy in level 1. Although In level 2 I made sure the player can not shoot the enemy. Instead I wanted the player to jump on the enemies head to destroy it- Like in Mario.





I did an event which basically tells construct if the player lands on the head then the enemy is destroyed but if the player hits the side of the enemy then the player is destroyed. This means the player cannot simply just walk into the enemy to kill it; they have to jump specifically on top of their heads. 

I also added collectables in level 2, apart from the health pick up I added an extra collection. This collection is these small yellow balls which flash, Pac man has to follow these collectables to make it to the objective. I think having a scoring system for these collectables will be an effective idea for in the future although now, these collectables does not have a specific benefit to the player. 

The game previously before I edited it had no finishing, the player had to collect the objective and go back through the level but once the player did this there was no other objective or finishing. The player was just left on the level.
 To fix this I added an extra portal which appears once the objective has been collected. Once the player collects the sweets, the original portal destroys itself and then spawns the new portal where it used to be. The new portal takes the user to the ending of the game. 

Once I double checked everything worked I added some audio which I previously created in previous tasks. This includes background audio, death sound effects, collectables sound effects, portal sound effect and a sound effect when the player lands on the moving sine in level 2.

Final Game platform video game play



Finished Game platform event sheets

Menu Event sheet


Level 1 event sheet






Level 2 Event Sheet











Task 1- Software Technologies for Game Platforms

Introduction

In this Task I am going to be explaining the different software technologies like I previously did when I explained all the different hardware technologies for game platforms in my previous assignment. I will comprehensively explain each technology, using relevant examples including a discussion of two computer games explaining their different software technologies. I will be using a variety of video games to help explain each software technology although the two video games which I am going to be mainly focusing on and comparing are Minecraft and Halo 5: Forge.


Platform dependency & Platform Independence

A game  can either be platform independent or dependent. 

Being Platform dependency typically means that the game will only run under one operating system and will run in only one series of computers. This means that a certain game can only be used in a certain platform. For instance, when the video game is being developed they will decide if their game is going to be platform dependent or independent, once decided they will develop the game specifically targeting their chosen platform/platform’s. For instance, when Final Fantasy XIV: Realm reborn was being developed they specifically targeted the console play station 4 because the game is going to be dependent on that console.  

This means that Final Fantasy XIV will only be able to be played on the PS4 and not the Xbox one for example.  This Also means if you buy a game only exclusive for the Xbox one such as Halo cannot be played on play station 4. When a game is made for a specific console/platform then it is dependent on that certain platform. 

Because some games are platform dependency it is important to make it clear to the user that the game can only be played on a certain platform that is why most platform dependent games have the console obliviously on the game so there is no confusion on what platform the game can run on. Platform dependent games can also be used in any of the older generation of the chosen platform for instance you can play the game dungeon siege on both the Xbox 360 and Xbox one. But you cannot play your old PS3 games on PS4, neither by inserting the disc or downloading them because the systems are not compatible with each other.



For instance halo 5: forge is platform decency because it depends on Xbox one. You can’t play this game on other consoles such as play stations or Nintendo’s; it is exclusively for the Xbox one. 

The main advantage being platform dependency is it gives the video game developer a clear goal and target because they already know who the audience is going to be because they only have to please the Xbox ones audience and not the play station 4 and Nintendo’s audience too. Having one specific audience makes it easier for the game to understand what purpose they have to fulfil to entertain the audience because there is only one demographic, psyographic, Geodemographics to focus on. In this example the developers for halo 5 only had to focus on the audience for Xbox one because they will be the ones playing the game.  Halos target audience was mainly for players who enjoyed playing FPS and specifically for casual players which is similar to a mass majority of the Xbox ones audience. This is probably why the game involves violence and gore because it is initially aiming for the Xbox ones audience and not a audience for the Nintendo WII which is mostly known as being a ‘family’ console so it would be inappropriate developing a game dependent on a platform which is not going to attract the target audience. 
Being platform dependent allows the game to work around the disadvantages in the console for instance if the game is being developed to be played on a specific platform then they will have to work with the ‘faults’ and customize the game around it although if the game was being made to work on several platforms then the developer might not play as much attention to the disadvantages in each console which  could later cause bugs or restrictions for instance the PS4 does have better graphics than the Xbox one so halo will have to do its best with Xbox ones graphics because it is restricted to only that platform. 





When a game is platform independent it means the complete opposite of a dependent platform, instead of being developed to be played on one platform it is available to be played on multiple platforms resulting in the game not being completely independent on a platform. An example of a game which is not dependent on a specific platform could be call of duty because it can be played on PC’S, PS4, and Xbox one and many other devices. Other examples are tomb raider and borderlands although there are many games which are platform independent. When a game is platform independent it means it was developed to be work by several operating systems knowing it will be played by several platforms. 

Minecraft is platform independent because you are able to play it on android, PS4, IOS, Play station 4 and many more platforms. It is not made specifically for one platform like Halo is. The main benefit of doing this is because it doesn’t restrict the game on having one ‘audience’ it allows the game to be played on several platforms by different audiences. If a player does not have an Xbox one but has a play station 4 they are still able to play minecraft, it doesn’t miss out a gamer. 

 This can be more costly than just developing the game for one specific console and can also restrict the game for instance if the game was being developed for a ‘weak’ platform as well as a ‘good’ platform then the graphics cannot be as good as the developer might of wanted for the ‘good’ platform because it has to be compatible for the 'weak' platform in order for it to work. 

For instance Play station 4 graphics are much better than the Xbox ones graphics, in order for the graphics to be compatible with both of the consoles the game is usually developed on its 'weakest requirement’. This is why some developers aim specifically to be platform dependent or create different formats so the game can be played effectively on all platforms. 








Operating Systems used

The operating system is the most important program that runs on a computer, without the operating system the computer will not be able to run other programs which basically defeat the object of owning a computer. The operating system will manage the computer’s memory, storage and progress as well as its software and hardware. It’s the operating systems job to make sure each program get what it needs.
 So it is vital to have a computer operating system so it can perform basic tasks like understanding the input of the keyboard, sending output information to the display screen and basically just keeping track of files and controlling peripheral devices such as printers and disk drives. Although operating systems can have much larger responsibilities like making sure the different programs don’t interfere with the user or being responsible for security making sure that other users do not access into the operating system. The three most common are Windows, Mac, and Linux systems. 

Microsoft Windows

Windows OS is an operating system developed by Microsoft in the mid-1980s. This operating system is probably one of the most popular operating system used on personal computers. The reason windows became so popular is because it is the first operating system to have the first graphical user interface which is compatible with PC since then windows dominated the market and now 90% of PC's run of this operating system. 
There are many different versions of windows although the most used versions of windows involves the windows 10 (released in 2015), windows 8 (2012), windows 7 (2009) and windows vista (2007) Windows is usually pre-loaded on most new PCS because it is the most popular operating system that users want, resulting in becoming the biggest computer company. 
Because windows was released in the 1980s and quickly became popular it became main stream quick and now the appearance of windows is the appearance you expect when you have an operating system because everyone has become used to the same appearance of Microsoft operating system throughout the years but each operating system does usually have a different 'technical' side it is usually just the appearance which is quite similar. 


Mac OS

Mac OS is part of a series called Unix-based graphical operating systems which was developed and marketed by Apple. It was originally designed to run on all macs since 2002 this operating system so it is already Pre-reinstalled on to the macs. Due to this the Mac IOS is the second mostly widely used desktop operating system, just after the windows operating system.
 The operating system is used for apple computer in Macintosh line and is also used on personal computers. The operating system has some sort of 3D appearance and has been purposely designed to make it easier to add new features to the operating system. Mac OS was first released on March 24th 2001 and has recently released a new version called Mac OS Sierra. This version was released on the 20th September 2016. This version is the thirteenth major release of the Mac operating system. Even though Mac OS is the second most used desktop operating system there is approximately only 10% who does use Mac OS/ This is a massive difference between the percentages but the only reason Windows is more popular is because of how dear Mac's are because even though only 10% use the operating system, most people do in fact prefer the look and feel of Macs operating system.

Linux

Linux is an open-source operating system which means it can be modified and distributed to anyone around the world, so basically anybody can use the operating system Linux. 
Linux is different from windows and mac because Linux is free, easy to adjust and you are able to download different versions of Linux so it gives the user a lot more freedom when it comes to the appearance of their computers interface. 
Linux is a cross-platform operating system based on Unix. This means that this operating system can work on different types of platforms and software for instance it can be installed on PCs, laptops, netbooks, mobile, tablet, video game console and more. Linux is available to anyone and to multiple platforms. Linux was originally developed in the 90s and quickly became one of the most reliable, secure, worry-free operating system and it quickly became everywhere including in cars and in refrigerators. Even though the Linux software has some differences to mac and windows it still basically has the same responsibilities for instance it still manages all of the hardware resources. The main difference between Linux and the other operating system is that Linux is free to everyone, you are able to have this operating system on several platforms and it will not cost anything. 



What operating system/systems does Halo 5 use?


Halo 5 minimum requirement for their operating system is the Windows 10 Anniversary Edition it has to be the version 1607 or a later version. Because Halo 5: Forge is dependent on Xbox one it has to run of the Xbox ones operating system. The Xbox one operating is complicated because it has three running operating systems within a hypervisor. Games run within one operating system whilst apps are running in the other operating system and the final operating system connects the two other operating systems. 
Basically the Xbox one has a stripped down of windows 10 and a full windows 10 so the console can be more flexible and optimized for none gaming apps such as Skype and YouTube. The reason they did this was so the console is more compatible playing apps as well as games, to do this the Xbox one uses stripped and full windows 10 to help make it as easy as possible to switch to apps and use multitasking and using the interface device kinect. 


What operating system/systems do Minecraft use?


Because Minecraft is independent to platforms it means that it will be available on multiple platforms due to this there are many operating systems which Minecraft can use although the minimum operating system they can use is the windows XP. Windows XP is an operating system first released in 2001 from Microsoft windows. Other operating systems which Minecraft can be played on is Microsoft Windows, OS X, Linux and more.


Halo's 5 Minimum operating system VS Minecraft minimum operating system



I am going to be comparing windows 10 and windows XP which are the minimum requirement for the operating system for the video games Halo 5: Forge and Minecraft. For instance Minecraft runs of windows XP so i am going to be comparing this operating system with the windows 10 operating system. 

Windows 10 Anniversary Edition was first released on the 2nd august 2016 so it was basically released 15 years after the Windows XP which obviously gave windows 10 its advantages. Windows 10 is supported by Microsoft so there is a decent amount of security within the operating system and is defiantly more protected than the windows XP because that operating system is no longer supported by Microsoft. Windows 10 also includes Cortana, Microsoft's digital personal assistant, the new Edge browser, Universal Apps, Continuum Mode, Xbox streaming and more. So overall windows 10 is a better operating system than windows XP but the reason why windows XP is not as good as windows 10 is because minecraft has a lower operating system requirement than halo 5 basically meaning halo 5 is too complicated to be played of simple operating system like windows XP but it has the perfect requirements for minecraft. 








Drivers Needed

A Device Driver is small software which is designed to help the operating system and other software communicate with hardware. It basically provides the software interface with the hardware devices which will enable other computer programs including the OS to communicate and access the hardware functions without needing to know details on how the hardware is being used. So drivers are almost translating each program you are using for instance it is necessary for you to use a sound card driver so the operating system can translate the 1's and 0's that the MP3 file use in audio signals that the sound card can recognise and translate for when you put an output in such as headphones you are able to listen to the MP3 audio Although it is difficult to do a precise definition just to the term 'driver' because there are several types of drivers. I am going to explain the most common drivers including sound card and graphic card;

Sound Card
A sound card is also known as an audio output device, sound board or even an audio card. A sound card is responsible for producing sound on a computer that can be heard through multiple devices such as earphones, speakers, headphones and more. This is important because most of your music collection or game audio is in a digital format, in order to listen to the digital format the sound card will convert the digital data to sound waves which the user can hear. Most computers and consoles already have a pre-installed sound cloud in their motherboard although to get better quality you can add a separate sound card.

 Overall the primary function of a sound card is to translate between digital and analogue information so the user can understand and listen to the audio. Some sound cards can have a digital signal processor which basically helps the CPU to convert between digital and analogue, the sound card also has its own memory although if the sound card doesn't have a DSP or its own memory then it will use the mother boards CPU and memory. Most computers do typically have built in speakers which means you can actually play music from the built in speaker although if you wanted the audio to be louder than you might need to insert a speaker into the sound card. Some small speakers will use a USB as a connection although larger speakers usually need to be plugged into the sound card. This is similar to microphones, most computers do usually have built-in microphones to but you can connect an external microphone to the computer using the sound card if necessary.
Without a sound card the user will not be able to plug in their headphones or speaker in to the device for instance the sound card has different holes so the user can plug in different devices etc. Each 'hole' has a different colour for instance if it has a yellow hole then that hole is made for external audio source such as a CD player. Pink is usually for the microphone and headphone. They also include other holes for MIDIS, HDMI leads etc




Graphic card
The graphic card is responsible for rendering the image to your monitor, this is done by converting data into a signal your monitor or TV can understand.
The images you see on the monitor are made up of thousands of pixels, at a standard screen resolution setting the screen can actually have over a million pixels so it can display the image in a  better quality for instance the more pixels the more better the image will probably appear. 
The computer is 'confused' on what to do with the pixels and the graphic card helps the computer understand by being a translator. Most computers already have a graphic card already pre-installed just like the sound card. The CPU will send information about the image to the graphic card but then the graphic card will decide how to use the pixels on the screen to display the image, once it has decided how to display the pixels it then sends the information to the monitor.

The graphics card main job is creating a image out of binary data, for instance if the graphic card had to display a 3D image it will first create the out wire frame out of straight lines and it will then fill in the remaining pixels to add lighting, texture and colour. If the game is highly demanding and is a fast-paced game then the CPU will have to send information to the Graphic card which will then be passed on to the monitor over sixty times per second. If the computer did not have a good graphic card then the computer will usually struggle with the calculations. The graphic card also holds its own memory for instance it will have information about each individual pixel and will temporally store completed pictures for a certain amount of time. Overall the graphic card has to control and enhances the graphics whether its pictures, videos, animation or 3D. The graphic card has to decide how the pixels will be displayed to display the full picture or video on the monitor.
There are two different types of a graphic card, firstly if the graphic card is built originally into the mother board which is mostly the case with standard laptops and computers. When the graphic card is built into the mother board then it is an integrated graphic card although if it’s an add-on graphic card that is installed as an extra component then it is a discrete graphic card. 

What drives does halo 5: forge at least require:

Halo 5 needs to have a NVIDIA Graphic card the minimum graphic card the game requires is the NVIDA Geforce 630 TI. Or it can require an AMD graphic card for example the minimum requirement for the AMD graphic card is the AMD Radeon R7 260X which is normally integrated. It also requires having a Direct X sound card.



Graphic card: NVIDA Geforce 630 TI


This graphic card is designed to deliver a premium multimedia experience and reliable entry-level PC gaming every time. It has a GPU Clock at 700 MHz and is able to Smoothly playback H.264, MPEG-2, VC-1, WMV  and WMV HD. The NVIDA Geforce graphic card includes also includes 1GB and sometimes 2GB in there memory. 
Below you can see the specifications for the NVIDA graphic card.




Graphic card: AMD Radeon R7 260X


The AMD Radeon R7 260X is designed to deliver all the benefits of Microsoft Windows 10 operating system and bring new computing experiences to life. This is probably why halo requires at least this drive because halo is mostly played on the Xbox one, the Xbox one includes having a windows 10 operating system so the game needs to be ran on a graphic card which support the main console (Xbox one) operating system. You can see some of the graphic cards specs below;






AMD Radeon VS NVIDA Geforce 630 TI
The AMDs are probably a little cheaper than the NVIDA graphic cards for example the
Amd Radeon R7 260X graphic card including 2GB is around £80-90 whilst the NVIDA Geforce 630 TI is a bit more cost consuming.There isnt much difference Although the AMD does support most monitors  and  supports multi-monitor setups by integrating multiple (up to six) display controllers on one GPU. However Ncidia created CUDA which is a parallel computing platform and application programming interface (API). 





Sound Card: Direct X


APIs such as Direct3D and Direct Sound need to interact with hardware, and they do this through a device driver.  I have already explained what a device driver is but it basically is a that operates or controls a particular type of device that is attached to a computer such as Direct X. Direct X can access the video cards, keyboards, mice, sound devices and other parts of the system. When other systems use a API like Open GL they ususally combine it with the Direct X in computer games because OpenGL does not include all of Direct X's functionality for instance it doesnt support sound or joysticks unlike direct X. My laptop also uses DirectX.






Xbox One specifications

The Xbox one GPU is a high end graphics card by AMD which was first launched in November 2013. It has 28 nm processes and is based on the Durango graphic processor. The Card supports DirectX 11.2 and has 8,192 MB DDR3 memory on the card and The GPU is operating at a frequency of 853 MHz, memory is running at 1066 MHz. Below there is a image of the Xbox ones GPU and a image which helps explains the specs for Xbox one.











Minecraft drive system requirements:

I found finding the minimum requirements for Minecraft's sound card and graphic card was a bit more difficult than halo 5 because there is many different systems which mine craft works on and I am not 100% sure on what mine craft uses for sound because mine craft is a Java programs can play audio clips on computers that have a sound card which includes most computers which are sold today. Due to this the programme doesn’t need a specific sound card to run off. It can use the sound card built into the laptop/device or use the CPU for sound, Minecrafts minimum requirements for a CPU are Intel Pentium D or AMD Athlon 64.

The minimum graphics card for Minecraft is the Nvida Geforce 2xx series or the AMD Radeon HD 5xxx series with OpenGL 3.3 although this is excluding integrated Graphic cards.


Nvida Geforce 2xx series

The Geforce 200 series is the 10th generation of Nvida Geforce GPU’S; it was first released between 2008 and 2009. Each Geforce improves the number of texture units in each GPU for instance there was 64 texture units on the Geforce 9800 but the Geforce 280 have moved to 80 texture units. 

AMD Radeon HD 5xxx

The AMD Radeon HD 5000 series was first released on the 10th of September 2009 once released it competed directly with the Nvidia's Geforce 400 series. Although graphics cards are mostly focused on gaming, they do have a lot of other uses for instance letting you connect a monitor to your PC, video playback acceleration, multiple monitor support, and speeding up processing tasks like video encoding





Application Software used

Application software is a computer program designed to help the computer to do group coordinated tasks and functions. The application software is basically one or many computer programs which are designed for a specific function or a type of application. The program cannot be run on its own this means it needs other system software in order for it to function. 
Different software uses different programming languages to communicate and allow the user to use the program by interpret the script into a game. 

There are many different ways to divide up different types of application software because each different one will use a different programming language for instance if the application software is web based it will be written in HTML, JavaScript or other web programming languages. But bigger application software might use C++ as their programming language. 
There is complied language; complied language is when language has already been complied into the instructions on to the programme. This is so the programme can change the language to match the machine code so different platforms can understand. And there is also Interpreted Languages for games. This is the type of programming language that needs another piece of software called an interpreter. The interpreter will execute the program directly making sure it translates each statement into a sequence of one or more subroutines which are already complied into a machine code. A subroutine is a sequence of program instructions that will perform a specific task. For example Java script is an interpreted programming script; in general script languages are easier and faster to code than complied languages such as C and C++. I am now going to explain different programming languages including JavaScript, Python, C, C++ and C#.


JavaScript


JavaScript is a programming language which is used to make web pages interactive, it doesn’t require constant downloads from a website. Java script supports all the popular web browsers including Google chrome, internet explorer, Firefox and Safari. Most web browsers support java script and already have java script enabled by default


It is an interpreted programming language and is similar to HTML and CSS which are also programming languages used for the internet.  Although JavaScript is also used in different places instead of the internet for instance it can be used in PDF documents and desktop widgets. Programmers use JavaScript in video games for example in mobile applications.
Positives of using Java script as a programming language is the speed, java script is really fast because the code functions can be run almost immediately. Another positive of using JavaScript is how easy and simple it is to learn the coding which is good because Java script can be used in a variety of different applications for example it can be used in any web page. A disadvantage of using JavaScript is that JavaScript can be exploited to malicious viruses which are why some people disable JavaScript because of its lack of security.

Java


Java is a programming language released by sun Micro-systems in 1995. Most applications and websites will not work unless you do actually have Java installed. Java allows you to play online games and chat with people from anywhere around the world, Java also has a few more functions like allowing the user to view 3D images.


 It was first designed to be used on the internet so online games can have the same appearance and atmosphere of the C++ language which is mostly used for big, popular games like call of duty which is most likely coded in C++ Although Java is much simpler to use than C++ and can be used to complete applications or be used to build a small application for use as a part of a web page. There are a few benefits of using Java as a programme language for instance Java is easy to learn, easy to use, Java allows you to create modular program ms and re usable code and it is also Platform-independent which means it has the ability to move easily from one platform to the other, it can run the same programme on many different systems. 
However like many different programming languages, it also has its disadvantages such as Java being slow because it is an interpreted language although Java should be fast enough. Java is capable of doing more complex functions and applications than JavaScript is so Without Java there will probably no mobile gaming. 

Python


Python is another computer programming language. Users which are experienced in programming will find it easy to learn python because the structure in the language is easy. Due to this Python is widely used interpreted programming language. Its syntax allows programmers to code using fewer lines than C++ or Java will use, Operating systems which use Python are Mac and windows but because Python is an interpreted language this basically means that anything that has an interpreter installed it should be able to run python. 


For instance using python you can create games and app on Android, IOS, OSX, Windows and Linux. Although Python can also be available for many more operating systems by using a python code, this is done by using third party tools like Pyinstaller. If it’s Python-based software then there is no need for an interpreter. Some benefits of using python as a programming language is the language is easy to read so it’s less likely you will get confused and make a mistake whilst coding this means It’s much easier to write a python program  than it is to do it in a program like C++ or Java. Python is becoming more popular and is being used more on the internet and platforms such as Raspberry Pi. 

C, C++ and C#


C programming is a high-level programming language which is usually used in developing firmware or portable applications. It was originally developed for UNIX operating system in 1907 intending to be the writing system software. 


C# is an object-based language which is originally designed to help coders improve productive when developing new web applications. C# is a really useful language because it’s able to do several functions like capability of garbage collection, type safety, simplified type declarations, versioning and scalability support. All of these functions make it easier for the application and the software to resolve and bugs or issues much faster and easier. 


C++ was first developed over several years by a guy names Bjarne Stroustup. It was created for a solution of the lack of languages available in 1998. The main difference between C# and C++ is probably that C++ has added other features making its interface better with other computer languages. An example where C++ programming language is used is facebook. With C++ you basically have control over everything that is going on within your program and it also allows the developer to do optimizations which Java and C# don’t let them do. Triple games which is a term used for games with the highest development budgets like Call of duty are usually coded in C++. 






Halo


Halo used an American video game developer called Bungie which was founded in 1991. Bungie mostly used programming language C++ to develop Halo although there was element of the C which was used when Direct 3D demanded to use it and often used an extra element from scripting languages like Python or Lua. 99% of the network sever and sever software in halo was also written in C# but they probably used .Net and SQL too. Direct 3D is an application API which was created by Microsoft to render 3D objects. This allows software applications like games to run in full screen mode and even when a video card is not available direct 3D can in fact utilize the hardware acceleration. 


Minecraft


Because Minecraft is basically a Java programme it will mostly use Java as its script although it does interface with libraries like OpenGL so it isn’t just pure Java based. Although Java has gotten a bad reputation for being slow, but that's not necessarily the case anymore, this is what gives Minecraft the advantage of being cross-platform. Java allows it to be on Windows, Mac OS X, and Linux. Although other versions of Minecraft that run on game consoles like Xbox and play station, mobile devices, and the Raspberry Pi are most likely written in C++.




Graphical API

An API means Application Program Interface. An API is a set of routines, protocols and tools for building software application. It helps the software components interact and a good API makes it easier to develop a program. A graphic API is the software that will render the video then you sees for instance if your graphic API is DirectX9 you might have less quality picture than you would do if your graphic API is DX11 although DirectX 9 will probably run a lot smoother because it is lower quality. I am now going to explain the four main types of graphic APIs including DirectX, Vulkan, Open GL and Open GL ES.

DirectX


Direct X is a Low-level API that provides programs with a high-performance hardware multimedia support including pictures, videos and more. This is done by DirectX containing a set of APIs that allows DirectX to access the advanced features of high performance hardware for example this could be 3D graphics acceleration. Although these APIs can also control low-level functions as well including 2D and support for input devices like keyboards and mice, DirectX can also help control the sound and the sound input.
DirectX can easy determine the hardware capabilities of your computer and then set the program to match. This will help DirectX provide access to the capabilities of the computers display and audio card and enable the program to provide 3D graphics, music and audio effects. Basically Direct X will enhance the multimedia capabilities on your computer as best as it possibly can to try and take full advantage of high performance hardware. Direct X also allows the software programs to run on any computer using windows and is designed to handle tasks like rendering 2D and 3D vector graphics, rendering video and playing audio on the Windows platform. 


Vulkan


Vulkan is a low level API which means it is the most detailed API it will allow the programmer to use different functions within the software or hardware. Because Vulkan is a low level API it gives it direct access to the GPU, this is an amazing benefit if the developer/programmer wants full control. Vulkan has the capabilities so that multi-core GPUs can keep the graphics loaded, enabling a new level of performance on the existing hardware originally there.  Vulkan is the first generation to use a low-level API for different platforms so Vulkan now allows developers to create applications for the different types of PCs and smart phones.  Open GL is similar to Vulkan because they are both available for any platform. Vulkan basically enhances everything GPUs can do.

Open GL & Open GL ES


Open GL stands for open graphics library, This API is probably the most widely used API in the industry which supports 2D and 3D graphic application programming interfaces. Thanks to Open GL it has allowed more than thousands of applications to a more variety of computer platforms. Without OpenGL we wouldn’t have all these applications on our laptops, mobiles, consoles and so on.  Open GL also offers faster speed acceleration for developing and incorporating a broad set of rendering, textures, special effects and other functions which are vital for developing a game. OpenGL can be used across all popular desktop and platforms
It is a application program for defining 2D and 3D images, before Open GL was developed when a industry was developing a API they had to rewrite the and change parts of it for all the different platforms and operating systems but now with OpenGL it is used to create the same effects in any operating system by using the OpenGL graphics adapter.
Open GL ES was designed for embedding them systems on to smart phones, consoles and tablets and due to this OpenGL ES is now the most widely deployed 3D Graphics API. This API is a cross-language and multiplatform. It was first released publically in July 2003 and it was based on the original OpenGL which I have explained above. The OpenGL ES has had some functions removed from the original OpenGL but has also had more functions added to help it be more effective for mobiles. 





Graphic API Halo 5 use:

Whilst researching for the graphic API Halo 5: forge uses I came across a article called 'Dual Shockers'.
The artical was answering 343 Industries Common Questions about Halo: Forge. Whilst reading this article I found out  hat Halo 5 is built exclusively just on DirectX12 for its graphic API.  The Xbox one  console also uses the DirectX12 API. 
This allows the Xbox one to speed up the time it takes to usually render post-processing effects, provides more rendering abilities and more enhanced visual effects. 





Graphic API Minecraft use:

Minecraft appears to use LWJGL and Open GL. LWJGL stands for Light weight Java game library. This is a open source software and is an enabling technology which provides a low-level access although LWGL does not provide high-level utilities like native libraries expose and this is why mine craft use both LWJGL and open GL. 

Open GL is a native library which means it contains 'native' code. This code has been compiled for specific hardware and OS such as windows. The LWGL is a java Library this enables cross-platform to access popular native APIs like OpenGL for its graphics and OpenAL for its audio. So this is presumably what Minecraft uses to render its graphics. Using OpenGL also allows the developers to go into an 'immediate mode' which allows them to control how things are rendered and when they are rendered.





Sound API

Sound API is basically the same as graphic API but apart from the obvious, Graphic API focuses on graphics whilst the sound API focuses on the audio. The sound API is basically more specific to audio functions than a graphic API does. There are two main APIs, OpenAL and Java Sound API. I am now going to be explaining each API and what Audio API Halo 5 forge and mine craft uses.

Open AL API


Open AL stands for Open Audio Library, it is similar to Open GL but the open GL is an Open Graphic Library. OpenAL is designed to render 3D audio in an efficient way to help add realism to the game by simulating attenuation which basically means making the sound degrade over the distance. As well as adding a doopler effect this is changing the frequency in the audio.  Open AL API was first developed in 2000 by Loki Software to help their business porting games from windows to Linux. The Open AL is now implemented on NVIDIA nForce sound cards and mother boards. 




Java sound API


Java sound API is a low-level API which controls the input and output of the sound media and MIDI data. It provides control over the capabilities normally required for sound input and output it also promotes extensibility and flexibly.

The Java Sound API provides the lowest level of sound support on the Java platform. It provides application programs with a great amount of control over sound operations although The Java Sound API does not include sophisticated sound editors or tools, but it provides capabilities which such programs can be built.

DirectSound


DirectSound is a software component of the DirectX library which I previously explained. DirectSound provides links between programs and audio adapters.  DirectSound provides multimedia software programs with low-latency mixing, hardware acceleration, and access to the sound device for Windows 95 through Windows XP. Besides DirectSound just providing the essential of just passing audio data to the sound card, DirectSound also provides extra capabilities and features such as recording and mixing sound, adding effects to sound


Halo Forge Sound API:


The Xbox one includes Audio 2.9 or a later version of the sound API. Therefore it includes DirectXTK for Audio  So I am getting this is what Halo uses for their sound API or at least a similar API because this game is dependent specifically for the Xbox one so it must be able to run the same audio and graphic API as the Xbox one. XAudio 2 is a low-level audio API which provides signal processing and mixing foundation games that is similar to its predecessors, DirectSound and XAudio. XAudio 2 is basically a replacement for DirectSound because it has fixed the issues and added some requested features into the API. Some of these features include DSP Effect, Sub mixing, compressed audio support, enhanced multichannel and more. XAudio 2 was developed to perform high quality audio engines for game. For developers that want to add sound effects and background music in the back of the game, Xaudio2 offers a lot of features to help the developer get the audio they want. 


Minecraft Sound API:


Minecraft uses Lightweight Java Game Library for their graphics and audio API although JQJGL is enabling technology and provides low-level access. It does not provide higher-level utilities than what the native libraries expose. This is why it uses popular audio Native APIS such as OpenAL. OpenAL was originally designed to render 3D audio and it is now implemented on NVIDIA nForce sound cards and motherboards and has support by Apple, Blue Ripple sound and individual open source developers. 




Some software's that apply to television


Software that applies to television is called conditional access; this allows the user to access certain programs which they have paid for and stops you from using programmes which you have not paid for. For instance if you have virgin and have only paid for certain channels like kid channels then you basically have conditional access for kids channels but you might not have conditional access for like documentaries or movies etc. There are different types of subscriptions which will give you a different a conditional access for instance you don’t get conditional access to Netflix unless you pay monthly for it. This used to be different years ago, everything used to be done on cards with pre-set channels already on the card, if you wanted more channels you had to upgrade the card which was both time and cost consuming, this all changed and became digital. You can now change your package with your TV provider all online all over the phone; you don’t need to wait for a new card. 


ETV (Enhanced Television)


ETV is basically everything the user does to interact with the TV like turning it on and off, changing channel, changing volume, using the remote. Anything you do which interacts with the TV is ETV. Years ago all you could do is flip through channels, at some point the only TV guide users had for the television was printed in magazines and newspapers, it wasn’t all digital. But obviously over the years Televisions have developed just like every day appliances and platforms. With modern TV you are able to rewind, pause, stop, fast forward and even record programs on to its own hard drive. The televisions are just becoming more independent on the internet now for instance you can even share what you are watching right now to social media. 



IT(Internet Television)


Internet television is when your television is able to connect to the internet so you can use applications like Facebook, 4OD, BBC I player, Netflix and more. Being able to have more freedom on what programmes or films you want to watch on televisions is improving and soon enough every television in a household will have an internet television which is able to play steam movies of Netflix and so on.

 At the moment, not every TV does have the option to connect to the internet but to be able to do this you just need to upgrade the television to an interactive TV. For example, my TV at home is able to connect to the internet by simply just plugging the Ethernet cable into the back of my sky box and it is then connected to the internet and I am able to use BBC I player, 4OD and many different apps instantly.



Different ways to connect to the television

There are many different ways to connect your PC, Laptop or any other gaming consoles to a TV or to a monitor. I am now going to explain a few ways on how to connect the console to a TV. By explaining what a HDMI cable, SCART lead and a VGI lead is.


HDMI Cable


HDMI basically transmits digital video and the surround audio from a console to a TV. For instance more than 1600 of the world’s largest consumer electronics, PC and mobile phones use HD. The HDMI cable makes it much easier to connect your entertainment system to the TV. HDMI is built to accommodate high-resolution videos as part of a HD generation of equipment. Firstly to use a HDMI cable the console or PC you have needs to have a HDMI port. A HDMI pot is basically a socket which is where you plug your HDMI cable in. The advantage of using the HDMI cable is that it’s small enough to travel with so for instance, I stay at a different house on some weekends. When I stay out I simply just bring my Xbox one and he HDMI cable with me although HDMI cables are that popular, every house hold probably has more than one. To connect the HDMI to the TV you simply plug the HDMI into the consoles HDMI port and then plug the other end of the cable into the back of the TV. 




SCART lead


The SCART lead is probably the first standard European physical and electrical connecter between audio and visual Devices. For instance SCART leads were usually used to connect TVs to the TV box, DVD players and even VCR. The SCART lead was first developed in France by a French company. The SCART lead is now normally replaced with a HDMI cable because the HDMI gives a more HD picture than the SCART lead provides. For instance I still have a Video player, when using the video player I will use a SCART lead because it does not have a HDMI port and Having HD picture whilst watching old videos isn’t really that necessary but on new consoles like the Xbox one, I use the HDMI lead because it doesn’t have a SCART lead and I want the best quality when playing games on the Xbox.

VGA Connector


VGA stands for Video graphics array connector and it was first designed in 1987. The VGA probably has twice as less pins as the SCART lead does. In fact a VGA as a three row 15 Pin connector. The VGA connector is usually on monitors, laptops, PCS, projectors and HD TV's. The VGA connector is usually used to connect the PC monitor to the PC or to a laptop.

















Links

Image & video Links
https://chiefcanuck.com/2015/10/06/halo-5-guardians-limited-collectors-edition-disc-exchange-program/
http://minecraft.gamepedia.com/Xbox_360_Edition
https://www.amazon.com/gp/search?tag=weiweizhang-20&ie=UTF8&creativeASIN=searchbar&adId=searchbar&linkCode=w42&keywords=Minecraft+Cd+For+Pc
http://www.techimail.com/2015/04/minecraft-game-requirements-pc-windows-XP-7-8-Guide.html
http://getintopc.com/softwares/operating-systems/linux-download-free-operating-systems/
https://support.microsoft.com/en-us/help/13443/windows-which-operating-system
http://www.techspot.com/review/746-xbox-one/
https://www.youtube.com/watch?v=bhOT6uvAG10
http://www.techspot.com/review/746-xbox-one/
http://wccftech.com/amd-radeon-r9-280x-radeon-r7-260x-radeon-r7-240-specifications-confirmed-october-8th-launch/
http://www.hardware.windowsreinstall.com/soundcards.htm
http://www.pcgamer.com/the-best-graphics-cards/
http://news.softpedia.com/news/Sapphire-Chills-AMD-Radeon-HD-5000-Series-with-Vapor-X-Technology-125946.shtml
http://www.evga.com/Products/ProductList.aspx?type=0&family=GeForce+200+Series+Family
http://pirate.shu.edu/~wachsmut/Teaching/CSAS-Robotics/Downloads/jNXT/sampleJava.html
https://www.kickstarter.com/projects/214379695/micro-python-python-for-microcontrollers/posts/675393
http://n4g.com/user/blogpost/abizzel1/526110
http://procrastinationamplification.com/video-game-graphics-minecraft-and-you/
https://www.walmart.com/ip/Link-Depot-HDMI1.3-6-Link-Depot-Gold-Plated-High-Speed-HDMI-Cable-1-6-10-15-25/15074960
http://www.cables2u.co.uk/scart-lead-gold-plated-plugs-p-56.html
http://www.filnippon.com/50-vga-cables


Secondary research

http://www.pcmag.com/encyclopedia/term/49364/platform-dependent
http://www.businessdictionary.com/definition/platform-independent.html
http://encyclopedia2.thefreedictionary.com/platform+dependent
http://www.webopedia.com/TERM/O/operating_system.html
https://en.wikipedia.org/wiki/MacOS_Sierra
https://www.linux.com/what-is-linux
http://www.polygon.com/2013/5/22/4356280/xbox-one-architect-operating-system-is-the-xbox-ones-game-changer
http://www.webopedia.com/TERM/W/Windows_XP.html
http://www.pcadvisor.co.uk/buying-advice/windows/windows-10-vs-windows-xp-3622746/
http://www.computerhope.com/jargon/s/souncard.htm
http://www.geforce.co.uk/hardware/desktop-gpus/geforce-gt-630/specifications
http://www.expertreviews.co.uk/pcs/graphics-cards/52973/amd-radeon-r7-260x-review
https://en.wikipedia.org/wiki/DirectX
http://www.tomshardware.com/reviews/nvidia-gtx-280,1953-2.html
https://en.wikipedia.org/wiki/Radeon_HD_5000_Series
https://en.wikipedia.org/wiki/JavaScript
https://www.quora.com/On-what-platform-can-I-use-python-to-design-an-app
http://stackoverflow.com/questions/692225/what-are-the-differences-between-c-c-sharp-and-c-in-terms-of-real-world-appli
https://en.wikipedia.org/wiki/C_(programming_language)
http://stackoverflow.com/questions/692225/what-are-the-differences-between-c-c-sharp-and-c-in-terms-of-real-world-appli
http://www.computerhope.com/jargon/d/direct3d.htm
https://halo.bungie.net/default.aspx
https://answers.yahoo.com/question/index?qid=20110622130750AAd3tXH
https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/what_is_directx.mspx?mfr=true
http://www.techradar.com/news/gaming/directx-12-what-is-it-and-why-it-matters-to-pc-gamers-1318636
http://whatis.techtarget.com/definition/OpenGL-Open-Graphics-Library
https://www.opengl.org/about/
https://en.wikipedia.org/wiki/OpenGL_ES
https://en.wikipedia.org/wiki/Vulkan_(API)
http://www.techradar.com/how-to/gaming/what-is-amd-vulkan-and-what-does-it-mean-for-the-future-of-gaming-1323469
http://www.dualshockers.com/2016/05/21/343-industries-answers-common-questions-about-forge-halo-5-guardians-edition-for-windows-10/
http://stackoverflow.com/questions/2860642/difference-between-library-and-native-library
https://lwjgl.org/
https://www.quora.com/Does-Minecraft-use-the-ordinary-Java-3D-API-for-graphics
https://msdn.microsoft.com/en-us/library/windows/desktop/ee415813(v=vs.85).aspx
https://directxtk.codeplex.com/wikipage?title=Audio
https://docs.oracle.com/javase/tutorial/sound/
http://www.intel.co.uk/content/www/uk/en/tech-tips-and-tricks/dave-taylor-hdmi-article.html
http://www.l-com.com/what-is-a-vga-cable