Pages

Tuesday, 2 June 2015

Device Drivers

Device Drivers


Hey! This is the section on device drivers, as a part of the last third of my blog - current software technologies.
This is going to be a relatively short section, as I will be covering three types of device drivers used in computers and consoles.

So, what exactly is a device driver?

All devices need a small piece of software, which tells the operating system how to interact with it. The pieces of software are called drivers, and they are very specific to the device that you are connecting. Most of the time, if you just plug in a device such as a keyboard or a mouse, it will start to install the driver automatically, but in other cases, you will either have to install it via a disc, or through downloading it from the internet. Some drivers will automatically check for newer versions on the internet, and then inform the user that it exists, and then try to install it.

I will now cover drivers for computer expansion cards.

  • Graphics Cards
To be able to use a graphics card to its ability, you have to install the drivers for it. You usually find the drivers for these on the graphics card manufacturers website. In my case, I own an Nvidia Card, and when I first installed the driver for it, it installed a program called 'GeForce Experience'. GeForce Experience will automatically alert the user whenever a driver update is available, and allow you to download and install it without having to visit Nvidia's website again. 


For users with AMD/ATi Cards, it is a very similar process to install drivers. So, the driver itself actually tells the operating system what the GPU can do, and what its limitations are, allowing the user to play games or handle other graphics with that card.

  • Sound Card
It is a very similar process for sound card drivers, as you will have to download the driver online, (or in some cases use the supplied disc). Most higher-end sound cards (ASUS, Creative etc.) will have their own software which allows the user to update it too. The sound card driver will tell the operating system the specifics of the card, for example, how many speakers are connected, etc.


  • Network Interface Controller Driver
In some cases, a computer will have a separate network card, which acts to connect the computer to the network, either through wireless or Ethernet cable. These are actually more uncommon these days, because of better motherboard network interfaces. Either way, both expansion card and motherboard network interfaces will need to have a driver, which is usually done through a disc, or if it is on the motherboard, through the motherboard drivers.

So, that is all on device drivers, please stay tuned for more!

Matt :D















Monday, 1 June 2015

Operating Systems



Operating Systems

An operating system is the one main programs that runs on a computer or games console. Every system will have its own variation of an operating system, and for some systems, mainly PCs, you can choose with operating system to install. An operating system is of some sorts a package, which allows the user to perform basic but important tasks, such as sending a signal to the monitor, to even accessing hardware such as hard drives and printers! 




An operating system's tasks fall into six main categories:

  • Processor management
  • Memory management
  • Device management
  • Storage management
  • Application interface
  • User interface

Most modern computers allow the user to install an operating system of their choice, from some kind of storage medium, such as a USB flash drive or a disc. A common approach to installing an operating system on a Raspberry Pi, is to install a piece of software to an SD card called NOOBS, which stands for New Out Of the Box Software, which allows the user to flick through a list of certain operating systems, and pick one to install. It is also possible for Mac systems to run Windows, through a piece of software called Bootcamp, although this means that the user will not have as much support as a usual PC user would get.



Generally, an operating system will be included pre-installed on games consoles and package PCs, as it is much more convenient for the user, and not all console users will know how to install an OS. Consoles have locked, proprietary operating systems, which are hardware specific, meaning that you can not run an Xbox's operating system on a Wii. 





This is the Xbox One's operating system, which is actually a stripped-down flavour of Windows 8!










And here is the (in my opinion) not-so beautiful PS4 operating system.









As for PCs, you're generally free to pick whatever you want. There are many versions of different types of operating systems on the market, probably actually thousands. There are three main PC operating systems on the market:


  • Linux
Linux is a (usually) free, very open-source operating system, which is usually used by people who don't mind getting their hands dirty with lots of work in the terminal (see picture)
The most popular 'flavours' (or distros) of Linux is Ubuntu and Raspbian (for Raspberry Pis).



  • Windows
Windows is possibly the most user-friendly and popular of the bunch. Most home PCs will have a version of Windows. Windows has seen many releases, with its latest being Windows 10!
At the time of writing this I am actually very excited about Windows 10, as I have just received a message on my Windows 7 PC, saying that I am in the queue for it!




  • MacOS
As the name suggests, MacOS is the operating system for Mac computers. Mac OS is not very open-source at all, only being able to be installed on mac systems with specific hardware.

Despite being a very beautiful operating system, it is only available to those with (expensive) macs. You'd have to be a super-posh college lecturer or something to own a mac!


So, three very different types of operating system, but what are the similarities?

  • A GUI (Graphical User Interface)
A GUI is very common among most operating systems. The GUI allows the user to navigate their system, and actually use it in a logical way, that makes sense to them. By giving the user a visual representation of their files and folders, it allows them to be able to navigate them easily. Before GUIs, there was lists of information, which took a long time to get through. An operating system that you can choose whether to use the GUI for or not, is Raspbian for the Raspberry Pi. In Raspbian, you can pick whether you want the GUI, or just the command line prompt, as pictured on the right. The Rapsbian command line prompt is better for those using Raspberry Pis for more technical reasons.


  • Managing the computer's memory.
  • Managing the hardware.

There are four main types of operating system available, which are all specific to the system that they run on.


  • RTOS
An RTOS is used on machines that require minimal human input. Machines like this are common in factories and other industrial places. They have to be Absolutely Flawless, as they control machines that are designed to repeat a task many times. If they have any malfunction, it can cause huge issues.

  • Single user, single task
A single-user, single task operating system is designed so that one person can do one task at a time. This is opposed to multitasking. A good example of a single-user, single task OS is that on an Xbox 360. On the Xbox 360, you could only do one thing at a time effectively, for example, you could not have a game running, and have a program such as Netflix on in the background. This was made possible on the Xbox One.


  • Single user with multi-tasking
This is very similar to single user, single task, but it allows the user to run other processes in the background. These operating systems have been around for a while in PCs, as users need to be able to have multiple things open at once, but it is a fairly new feature in consoles, for example, you can multi task on the Xbox One, allowing you to have multiple games and applications open at once, and be able to flick between them.


  • Multi user
Multi user operating systems are found often in businesses and schools/colleges. They allow multiple user accounts to be created, and they are able to log in to any computer that is on the network. By having this network set up, it allows room for hundreds or even thousands of people to be on it at a time.

Mobile device operating systems

Mobile devices are technically just portable consoles/computers, but with stripped-down specs. This means that they have to have operating systems too, which are more lightweight than those used on full-blown computers and consoles.

Windows 7 Starter Edition is an incredibly stripped-down version of full Windows 7, but it is used on low-spec mobile computers, like netbooks with low RAM. Of course, it has its drawbacks, such as not being able to use the aesthetic Windows Aero design, or be able to have multi-monitor support. It is also only a 32-bit operating system. 






iOS is the apple-device proprietary operating system. Is is currently at its 8th version (iOS 8), and can be run on apple iPads, iPhones and iPod touches. It is a Unix-like operating system, but is not fully compatible with Unix. It is not fully open-source, as you are not allowed to install applications from anywhere but the Apple App Store, which is a major drawback of the OS.


Android is iOS' main competitor in the market. It does not look as nice as iOS in my opinion, but can be run on many more devices than iOS can, and it also offers open-source compatibility, allowing users to pretty much install whatever they please. It is a Linux-based OS, which runs most applications in Java.







Windows has its own cut-down OS for phones and tablets. At the moment, the most up to date Windows Phone OS is a type of Windows 8, but this year, it will no doubt have a Windows 10 operating system.






This is a pie chart to show the share of the market share of mobile phone operating systems of 2015. You can see that it is mainly split between iOS and Android.


So, that is all on operating systems, please stay tuned for more on current software technologies!

Matt :D










Platform Dependency

Platform Dependency

A Games platform can be either dependent or independent. The dependency refers to whether the software is locked to running in only one operating environment.

  •  Platform dependent
A platform dependent piece of software can only be run on specific computers/consoles. A good example of this is Mac applications, which are proprietary to Mac systems, meaning that you can not run them on Windows or Linux PCs. As an example of dependent console platforms, it is the same thing as not being able to run PS4 games on an Xbox One.

  • Platform Independent 
Platform independence is the contrary to platform dependency, as in the applications can run in any environment - for example, programs written in a universally recognised 
language, such as Java or HTML, which can be run in multiple different systems.

  • Cross-Platform Games
When a game is cross-platform, it is released on multiple different systems, for example, when a game such as Call of Duty is released on both Xbox and Playstation, and even on PC.

Cross-platform games even spill out to other platforms, such as handheld revisions, and even to mobile phones. A good example of a game that is on a diverse range of platforms is Minecraft. Minecraft started out as a single platform game, on PC, but has now seen console revisions, such as that on Xbox 360, PS3, Xbox One and PS4 systems, It also has a pocket edition for mobile phones, and even a lightweight version written specifically for Raspberry Pi systems.



That is all on Platform Dependency for now, stay tuned for more on this subject, to be continued with operating systems!

Matt :D






Intro - Part 3


Unit 20 - Part 3: Current Software Technologies

Here is the third part of my Unit 20 assignment. In this section, I will investigate and evaluate:

  • Platform dependency of game platforms.
  • Operating systems used for game platforms.
  • Drivers for expansion cards in game platforms.
  • Application software used to develop games.
  • Application Program Interfaces.
So, I shall begin, so please stay Tuned! :D

Matt.

Monday, 11 May 2015

Storage Media

Game Storage Media

There are many ways to store and play video games, across a range of different mediums. I will cover the most important and widely-used in this section.


  • Cartridges
Cartridges were the first type of console video game storage media. Cartidges are expensive to manufacture, meaning that they were eventually taken over by cheaper means.


  • Flash Memory
Flash memory is a relatively new technology, allowing the user to store games and game saves on a very small flash memory card, such as an SD card or a micro SD card. Examples of consoles which use this are the 3DS and the PSP. A drawback of flash memory is the small size capacities.

  • DVD
DVDs are no doubt the most common game storage media of this age. The highest storage a DVD can have is around 8.7GB, so with the way that games are made these days, at such a big size, DVDs don't really cut it anymore. This means that most games that are released on DVD format these days, have to have multiple discs. GTA 5 on PC is spanned over 7 discs!

  • Blu-Ray
So, with DVDs becoming less convenient, Blu-Ray discs are becoming more of a solution. Blu-Ray discs can store huge amounts on, for example, on the Xbox One, they can fit 50GB onto a single Blu-Ray disc. Blu-Ray disc readers are becoming ever more cheaper for PCs too, so it does seem that there will be a take over in the near future!

  • Digital Downloading
Digital downloading is the most convenient way to store games. The users can download the video game to their hard drive, and play it straight from there. This is heavily reliant on how much bandwidth the users have, and hard drive storage, as you can't download games without bandwidth or storage. Most modern consoles allow this through their marketplace systems, and PCs do also, most conveniently through software such as Steam and Origin.

Piracy is still an ever-battled crime in the video game world. Piracy is where a game is illegally copied and played. It has been a problem for decades in the game industry, and is still continuing to be, it is arguable worse now than it has ever been. Some DRM (digital rights management) is put in place on discs, but pirates always find a way to crack them. Some games have anti-piracy code, for example, Alan Wake (the game) gives the player an annoying eyepatch to hinder their gameplay!

Anyhow, that is all from me for this article, please stay tuned for future updates!

Matt :D




Sunday, 10 May 2015

Memory, Sound and Display Technologies

Memory, Sound and Display Technologies

This part of the article will be about the different technologies that exist for memory, sound and displays. 


Memory
Memory is the most important component in a computer, without any memory in a computer, no processes would be able to run effectively, as even the CPU has its own memory (cache). Computers will also have separate memory modules (RAM), which store information that is being processed by the CPU. This saves the CPU from reading from the hard drive constantly, which would result in the computer operating very slowly. As it is random access memory (RAM), it is taken when it is required by the system.

Here is a diagram to show the effectiveness and price of different forms of memory.


Types of Memory

There are different types of memory, used for handling different processes inside a computer.

RAM is the most heard-of type of memory in a computer, as I aforementioned, it is accessed randomly, as it handles processes out-of-order. RAM isn't only found in consoles and computers, it is also found in many electrical devices, such as printers, to store things such as upcoming print jobs. The information stored in ram is flushed out when the power to it is lost, making it temporary.

There are a few main types of RAM:


  • DRAM
DRAM is the most common type of RAM, as it cheaper to produce. DRAM stands for dynamic RAM. Dynamic RAM is dynamic, because it gets refreshed thousands of times per second. It refreshes so much because the chips are made of lots of transistors and capacitors, so the capacitors leak information, thus needing to be refilled by the CPU.

  • SRAM
SRAM is static RAM, which is different to dynamic RAM, as it does not need to be refreshed, therefore making it more expensive to produce. As it does not need to be refreshed, it makes it much faster RAM too. SRAM is only used in parts of a computer where it needs to be fast, as most computers and consoles will use a combination of both SRAM and DRAM. As SRAM does not need to be refilled, it stops the need for the CPU to fill it with information again. 


  • RDRAM
RDRAM is an abbreviation of Rambus Dynamic RAM. RDRAM is one of the fastest types of RAM available to systems. It works similarly to that of DRAM, but can achieve quicker speeds, due to a higher end data bus. RDRAM requires a specialist motherboard, to utilize its full potential. A lot of consoles utilise RDRAM, the first to do this being the Nintendo 64.

  • SDRAM
Synchronous Dynamic RAM (SDRAM) is another improved type of DRAM, where data is received between sets of memory which removes the delay of receiving data as its split between two RAM modules. SDRAM is also synced with the clock speed meaning that the faster the bus speed is for the memory clock, the faster the RAM will perform loading calculations into the CPU faster and loading programs quicker. As its linked to the clock speed, if the clock speed is increased then the RAM will perform quicker, this is a good addition to have with a computer system that has been over-clocked as not only will the CPU perform quicker the RAM will also benefit from it.



Display


Most displays these days are LCD (Liquid Crystal Display). LCDs work by turning on and off pixels, by using liquid crystals. Light is shone through different liquid crystal filters, which control the light and colour levels, which end up in the form as different coloured pixels. As a pixel is made up of 3 sub-pixels, of blue, green and red, when combined, they can display 16.7 million colours (256 shades of each colour).
The amount of pixels lengths-ways multiplied by the amount up and down is the resolution (e.g 1080x1920 = 2,073,600 pixels)
All LCD displays will have a resolution, for example the New 3DS has a 800x240 resolution (top screen), and the iPad Air 2 has the resolution of 2048x1536. Obviously, the higher the resolution, the clearer and more expensive the display. 
4K is a 'new' technology, that has only been made available for a few months now, which is the resolution 3840x2160. This is obviously a very crisp resolution, but for a console or PC to run this resolution natively in game, it would need very beefy hardware. For PCs, if the player wants to achieve high graphical detail in their games at 4K, they would most definitely need an SLI or CrossFireX configuration (multiple GPUs).



Sound

Before rich and realistic sound for computers and consoles, they could only beep. These beeps could be put together in different pitches to make a very basic tune. Although irritating, there was no alternative in the time. Computers could not change the volume of the beeps though, or make any other sounds.
These beeps started out as a warning symbol (much like the beeps you hear on a PC boot), but did end up being manipulated into basic, non-realistic and quite frankly irritating tunes.

With the evolution of technology, today's games have rich, 3D, highly realistic and cinematic sounds, capable of being multi-layered. You can play pretty much every modern game nowadays in full surround sound, if you own even the cheapest 5.1 or 7.1 speaker setup. Capturing and recording sounds is also made easy and high quality, with sound cards. Sound cards have four main, notable components:


  • Analog-to-digital converter
  • Digital-to-analog converter
  • An ISA (Industry Standard Architecture) or PCI (Peripheral Component Interconnect) interface to connect the sound card to the motherboard.
  • Input and output connections for microphones and speakers.
Most motherboards these days actually have high quality on-board sound chips, capable of surround sound, more often than not even full 7.1 surround.
PCI Interfaces are universal, meaning they are also used for other expansion cards, such as a graphics card, or a USB expansion card.

The way that the ATC (Analog-to-Digital) and the DTA (Digital-to-Analog) converters work, is that a microphone input would take the analog sound of whatever you are recording, and convert it to a digital file, and if you are playing a digital sound file from a computer, it will be converted to analog sound. An analog sound is recorded by taking measurements of the analog wave, and measuring them. These measurements are measured as kilohertz (KHz), and are known as the sampling rate, so the better the sound card, the more samples can be taken, the higher quality the sound is. As an alternative to sound cards, consoles can have an MCP (Media Communications Processor), which works the same as an intergrated sound chip.

It is easy to confuse 3D sound and surround sound. 3D sound is what is recorded into a game, which is what allows the player to pinpoint what is going on in the game, and it moves with the player accordingly. Surround sound refers to the speaker set up, which is common in home theatre systems.








So, that is my section on Memory, Sound and Display technologies current of today, plase stay tuned for more!

Matt :3













Processing Units in Games Platforms

Processing Units in Games Platforms

This part of the article is about the different processing units that are found within computer gaming hardware.


CPU (Central Processing Unit)

Sometimes referred to simply as the central processor, but more commonly called processor, the CPU is the powerhouse behind the computer, where most calculations take place. In terms of computing power, the CPU is the most important element of a computer system.
As the CPU has a large workload, it will get very hot. The way to combat the heat is through a heatsink. A heatsink will always be covering the CPU, often used with a fan to draw out extra heat. Between the CPU and the heatsink will be a layer of thermal paste, which will make the contact between the CPU and the heatsink a lot better, allowing the heat to be dispersed more effectively. If the CPU gets too hot, it will either do damage to it, or burn it out completely.

As standard with most hardware, there is always better performing and worse performing variants. With CPUs, their speed is (nowadays) measured in GHz (gigahertz). 1GHz is the same as 1 billion cycles per second, therefore if a processor has the clock rating of 1.75 GHz (e.g Xbox One CPU), it could complete 1.75 Billion cycles per second. High-end PC CPUs can have clock speeds of 4-5GHz. The clock speed can be increased on an 'unlocked' PC processor, via a process called overclocking. Overclocking is a risky procedure, only to be attempted if it can be sufficiently cooled, as it is easy to fry the processor during the process. Overclocking chips will reduce the lifespan of them though!

In Modern CPUs these days, they can have multiple cores, for example, the Xbox One is octo-core (8 cores). This means that the chip itself will have multiple processing cores, allowing the strain to be shared, making for faster processing speeds. The cores can be allocated to do specific tasks, so if the processor is octo-core, such as that of the Xbox One, it may allow 4 of these cores for the various engines for the games (physics simulations, collision engine etc) and the other cores to be allowed for sound. With the Xbox One, it allows multitasking, and can be used as more of a media device in a sense. At least one of the cores is probably dedicated to the operation of other programs within the Xbox One. As the Xbox One has 8 cores, it has an accumulated clock rate of 14GHz!


CPUs have a 'CPU cache'. This cache is used as random-access memory, that is accessed a lot quicker than any other RAM in a system. The cache is used to remember temporarily the most-used processes and functions. This allows the console to reduce the loading times for some aspects. It is quicker and more effective for the computer to read data from the cache then to generate it again, so that is why it saves a version of the process.



The address/data bus is a group of wires that allow for data to be transferred between different components in a system. The buses are formed of two different parts - the address bus and the data bus. The data bus transfers the actual data itself, whereas the address bus transfers the information about where it should go. An easy way to remember which is which, is that the address bus finds the address of where it's going (like a postal address) and the data bus transfers the data. The width (size) of of a bus determines how much data can actually be transmitted at once, for example, a 16-bit bus can transmit 16 bits of data, and a 32-bit bus can transmit 32 bits of data. The buses have a clock speed similar to that of a CPU, but is measured in megahertz (MHz) rather than GHz. The faster this speed, the faster the applications are enabled to run.


GPU (Graphics Processing Unit)



The GPU of a console is a separate processing chip, that is primarily used to manage and boost the performance of video and graphics. GPU features include:

  • 2-D or 3-D graphics
  • Digital output to flat panel display monitors
  • Texture mapping
  • Application support for high-intensity graphics software such as AutoCAD
  • Rendering polygons
  • Support for YUV color space
  • Hardware overlays
  • MPEG decoding
In simpler terms, these mathematically-intensive features are designed to lessen the work of the CPU and produce faster video and graphics. A GPU is not only used in consoles, but it is also used in PCs, (via graphics card or motherboard integrated graphics) mobile phones, display adapters, and workstations. By freeing the CPU, it allows it to be used for other processes.

As I very briefly mentioned, there are multiple types of GPU available.

  • Dedicated graphics card
For PCs, to achieve the best in graphics processing, you will have to have a dedicated video card. These are an all-in-one package of a heatsink, PCB board (like a graphics card motherboard), GPU chip, and fans. Multiple graphics cards can be used at once, this is an expensive and power-extensive graphical solution, but allows users to run games at super-high graphics at super-high resolutions. for NVIDIA users, the way to do this is through their 'sli' technology, and for AMD users, they have to use CrossFireX. Both of these technologies are essentially the same.


  • Integrated/on-board graphics processor 

Most motherboards have an integrated graphics chip included on them, which can be used without the need of an expansion graphics card. As they are part of the same motherboard, it is easy for them to slow the whole computer while they are in use, making them very undesirable. Most laptops will run from integrated graphics, unless they are gaming laptops with changeable cards.


  • Custom-designed graphics chips
Almost all consoles will have a custom-designed graphics chip. In this case, the Xbox One's GPU is in the same chip as the CPU. Although it is in the same place, it will still do everything that a GPU should do. These GPUs have to be custom-made to deal very specifically with how the Xbox itself handles programs, making it useless in any other system.

There are two main GPU manufacturers on the market - Nvidia and ATI/AMD.

Similarly to CPUs, you get different speeds of GPU, but GPUs are measured in MHz usually. The Xbox One's GPU runs at 853 MHz. You can compare this result to the GPU speed of the Xbox 360, which was 500 MHz. Graphics chips will also have an amount of dedicated video memory (VRAM), which will have a huge affect on the performance of a game, especially if it is very highly detailed and textured. This is the same as on PCs, but as PCs have more open resolutions and frame rates, the VRAM will affect those too. Graphics processors work to display 3D images on a 2D screen, so the more detailed a 3D model,(more polygons, higher textures etc) the harder it will have to work to display it. for a game to be well optimised, the assets have to well-optimised to be run on the hardware. This can be achieved by techniques such as NURBS modelling, which is a way to model using curves, which uses less GPU memory.


Anyway, that is my section on processing units, please do stay tuned for more!

Matt :D