Monday, 8 June 2015

Currant software technologies for games platforms

Introduction

In this article I will be investigating platform dependency of game platforms, operating systems used for games platforms,drivers for sound, graphics and network interface cards for game platforms, application software used to develop games, and graphical and sound API’s used for game platforms. 

Platform dependency
The term platform dependency refers to whether or not the software application will run on one or more platforms. In this area of software technologies there are two types of applications: platform dependant and platform independent. Platform dependant is where the software will only run on one platform, so for example windows will only run a PC and Mac OS will only run on Apple hardware. Platform independent is where the software application will run on more than one platform, this more commonly seen with applications written in Java. all of this can also happen with games that there are games which are on more than one platform and games that are exclusive to that platform, these are called cross platform games and exclusive games. An excellent example of a cross platform game would the call of duty franchise and an example for an exclusive game could be the little big planet franchise being exclusive to PS3.

Operating systems
An operation system is the most important programme within any type of computer or platform, a platform requires the operating system other wise it has nothing to run on. Operating systems are used to perform basic tasks, such as recognising input from the keyboard, sending output to the display screen, keeping track of files and directories on the disk, and controlling peripheral devices such as disk drives and printers. there are six categories which an operating system will fall into: Processor management, Memory management, Device management, Storage management, Application interface, and User interface. 

over time software applications have been developed and upgraded to benefit the platform, so for example: Windows or Linux for personal computers, MacOS for Macs, Unix for mainframe computers, Symbian, Android, iOS for mobile phones. even though they have all been developed for different platforms they share some features, for instance they both provide a user interface or graphical user interface (GUI), and they can both manage the computers storage and hardware. 

The four types of operating systems
When it comes to different types of operating systems there are four: Real time operating system (RTOS), single user single task, single user multi task, multi user. An RTOS is an operating system that is most commonly used for machinery or industrial systems. This type of operating system requires none or very little user control as it only runs one process at a time. next up is the single user single task system as name implies, this operating system is designed to manage the computer so that one user can effectively do one thing at a time. DOS and The Palm OS for Palm handheld computers is a good example of a modern single-user, single-task operating system. After single user single task is single user multi task, this is the type of operating system found on most personal desktop and laptop computers. The personal editions of Windows (Microsoft) and Macintosh (Apple) platforms are the most popular single-user, multi-tasking OS. For example, it’s entirely possible for a Windows user to be writing a note in a word processor while downloading a file from the Internet while printing the text of an e-mail message. The final type of operating is multi user. A multi-user operating system allows many different users to take advantage of the computer’s resources simultaneously. The operating system must make sure that the requirements of the various users are balanced, and that each of the programs they are using has sufficient and separate resources so that a problem with one user doesn’t affect the entire community of users.Unix,Solaris,Linux,Windows NT are examples of multi-user operating systems.

Mobile Operating systems
now in today's modern society mobile phones are dominating the handheld market, this is because mobile phones are pretty much a PC crammed into a phone. Now there are so many different types of phones out there with different operating systems, the ones which are taking the market by storm today are: Android, Apple, 
Symbian, and Blackberry. The Android mobile phones popped into the market in 2008 and it has a Linux based operating system. Apple introduced their handheld a year before Android, the operating system was originally designed for the iPhone but now that they have had time to develop the system they have expanded it to their other handheld devices like iPod and iPad, the system is Unix based. Next up is Symbian, Symbian was developed in the late 90s by Nokia for their what is now called a brick phone because they can survive a lot. Symbian died a little after its release but then came back again with the release of the windows phone. Finally we have the black berry smart phone, which was developed and released in 1999 this handheld was rather spectacular because it used a completely different operating system, it was able to send a text message with out having reception so it would use the internet connection, this meant that the black berry phones weren't able to be tapped in to. 

Device drivers 
A device driver is a piece of software within a PC that has been programmed to allow the operating system to connect and interact with a piece of hardware like a printer or keyboard. There are three different types of drivers: a sound card driver, a graphics card driver, and a network interface controller driver. 
A sound card driver is a piece of software which works together with the operating system and the actual sound card itself, this allows the operating system to see what the sound card can do and how many outputs it has, it can then access those outputs and control the sound.
 Next up we have the graphics card driver, the way these two work are very similar that the OS and the driver connect and interact with each other, the graphics card driver tells the OS what the sound card is called and what is capable of. Graphics cards are there to run all of the programs and applications which are to do with graphics so the CPU doesn't have to do as much work and can run more stress free.
 Finally we have the network interface controller driver, this type of driver connects the computer to the computer network/WiFi this is normally done by either an Ethernet cable or wireless WiFi USB stick (dongle). The purpose of this driver is to tell the driver how to access the network and operate it. 

 The basics of games application software 
when it comes to how things are done inside a computer, it all comes done to how it is coded and programmed. A computer program is very simply a set of instructions for the computer or any platform to follow, the same way a child would follow instructions to make a Lego sculpture. Computer programs are written in what is called Programming Language, this is the way that the computer understands the instructions that it is given. In the same way that there are different languages around the world, there are different types of programming language,these different types of programming language are used for different tasks. The most common types of programming language are C+,C,and assembly language. Assembly language is primarily used for the hardware that its supposed to run on so for example the code for two different games consoles would not be the same even for the same game. 
The first type of programming language I'm going to talk about is interpreted languages, this type of programming is special because it requires another program to translate it into to code that the computer will understand. This type of programming language is good for beginners or experimentation because it a a lot more forgiving about errors and its also easier to use. The only down side to it is that it takes longer because of needing to be translated. A couple of examples of interpreted  languages would be Java, J2ME and Java ME. Another common type of interpreted language would be C# which is used in developing game development tools like modeling software (3ds max, maya) 
The next type of programming language which I'm going to talk about is complied languages, compiled languages are most commonly used in modern games, and are written in C or C++. With this type of language it needs to be run through a C compiler once the code has been written. C++ and C are the code which can be read by the programmers and what comes out of the compiler is what is read by the computer. 
The final type of programming language is Object-Oriented Programming (OOP), this type of programming is written as a group of objects that then communicate with one another,rather than a group of code. Object-oriented programming takes the view that what we really care about are the objects we want to manipulate rather than the logic required to manipulate them. Examples of objects range from human beings (described by name, address, and so forth) to buildings and floors (whose properties can be described and managed) down to the little widgets on a computer desktop (such as buttons and scroll bars). 

Scripting 
Scripting is a very important part of a computer program, a computer script is an x amount of commands that are to be executed by a scripting engine or program. Computer scripts can be used for a lot of things whether its gaming or for a website. The scripts themselves are normally written as normal text documents which then contain the instructions, which are written in a certain scripting language. Most scripts are able to be opened using just a normal text editor. As most things there are different types of scripts for example DOS scripts are used to run tasks in windows, AppleScript to run Macs. ASP,JSP, and PHP are another set of scripts which are used to generate web pages.


API's


An API is a group of base codes that acts as a sort bank for other programmes to access. The operation that the programmer will code, can access this, so that it is not custom written each time it is needed.

Microsoft DirectX  

DirectX (frequently abbreviated to just DX) is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms.http://upload.wikimedia.org/wikipedia/commons/thumb/7/7f/Microsoft-DirectX-Logo-wordmark.svg/250px-Microsoft-DirectX-Logo-wordmark.svg.png An example of a video game that uses direct is civilisation 5 

OpenGL

OpenGL (Open Graphics Library) is a cross-language, multi-platform API for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardware-accelerated rendering.http://www.downloadsource.com.br/upload/files/OpenGL.jpeg An example of a game that uses OpenGL is the counterstrike series

 

Squirrel tools API

http://de8bphqo3whcl.cloudfront.net/sites/default/files/styles/article_profile_150x150/public/apis/at10903.png?itok=uc_GnIxMSquirrel Tools is an API that lets users calculate poker odds and hand rankings. It works for regular poker with hands of 5, 6, or 7 cards as well as for Texas hold'em with 3, 4, or 5 cards on the table. It will also determine the winner for a group of known hands and return the Sklansky group for a pair of cabbages in Texas hold'em.