Learning Outcomes...Learning Outcomes By the end of the lesson, you will be able to: - •Identify...

38

Transcript of Learning Outcomes...Learning Outcomes By the end of the lesson, you will be able to: - •Identify...

Learning Outcomes

By the end of the lesson, you will be able to: -

• Identify and articulate the application and functionality of platform software technologies.

• Explain the core functions and features of different operating systems.

• Identify the coding environments and tools necessary for developers to produce software.

Platform Software

• We have established that hardware defines the nature of different platforms and contributes to game performance in different ways.

• However, platforms are also defined by the software which controls these components and allows them to communicate.

• System software provides this functionality whereas application software provides tools which aid the user.

Question:What is an operating system?

Operating Systems

• System software which supports basic platform functions, manages hardware and provides common services and tools.

• The kernel is the core part of the operating system which directly communicates with hardware and carries out tasks such as memory management.

• Applications are individual programs which are part of the operating system or can be manually added by the user.

Kernel

Hardware(CPU, GPU, HDD, RAM, Devices etc.)

Applications(User Interface, File Manager, Web Browser etc.)

Operating System Examples

• Windows 10• OSX El Capitan• Android Marshmallow• PlayStation 4 System Software• Xbox One Dashboard• iOS 9• Linux

Kernel Architecture

• System software often appears radically different between platforms, but can built upon the same kernel.

• For example, the kernel used to power Windows 10 also powers the Xbox One Dashboard.

• This means that applications and hardware operations can be easily ported between platforms.

Task:Write down ten things that an operating system can do.

Operating System Design

• Operating systems are designed according to the requirements of their associated platform.

• Different tasks or objectives may have to be prioritised according to purpose.

• These could be related to managing hardware or user interaction.

Design Examples

• Desktop operating systems (Windows, OSX) must be highly flexible and customisable for any task.

• Mobile operating systems (iOS, Android) must efficiently monitor and manage multitasking and battery usage.

• Console operating systems (PlayStation, Xbox) must be accessible without compromising game performance.

Graphical User Interface

• Most modern operating systems have a Graphical User Interface (GUI).

• This allows user interaction through visual elements (such as icons) that represent data and other operations.

• Interaction and UI elements are defined by platform characteristics.

Command Line Interface

• Historically, operating systems had a Command Line Interface (CLI).

• This allows user interaction through specific text instructions with data represented through filenames.

• Whilst less intuitive than a GUI, they can make highly technical tasks easier.

Software Characteristics

• Developers must consider the characteristics of system software.

• These can impact all aspects of development, from coding environments to production timelines.

• A significant factor is whether system software has an open or closed standard.

Open Software Platforms

• Open platforms allow developers to modify or add system functionality without requiring the original source code.

• They also allow applications to be distributed and run without approval of the platform developer.

• Examples; Android, Unix.

Closed Software Platforms

• Closed platforms restrict access to applications and functionality so that changes cannot be made to them.

• The original developer retains full control over all aspects of the platform and software which can be run on it.

• Examples; iOS, PlayStation 4.

Question:What are the advantages and disadvantages of open and closed software platforms?

Open Platform Closed PlatformAdvantages

Disadvantages

Question:Why do different operating systems exist?

Differentiating Factors

• Technical and financial ideologies

• Interoperability (OSX Handoff)

• Ecosystems (Cross Play, iCloud)

Device Drivers

• Platforms could be composed of many different internal and external components.

• The operating system must be able to communicate with these, but may not be able to detect a specific piece of hardware.

• Device drivers are small programs produced by hardware manufacturers that allow communication to occur.

Device Drivers

• The device driver acts as a translator between a specific piece of hardware and a specific operating system.

• For example, the operating system could send a basic 'play' or 'stop' instructions to a sound device.

• A driver would then translate these into more complex, specific commands that the device can act upon.

Question:Are games classified as application software?

Programming Languages

• Development tools and environments allow users to create software that works in appropriate platform contexts.

• Programming and scripting languages are a core component of these.

• They allow specific instructions to be communicated to a machine in order to control its behaviour.

Language Examples

• C#• C++• JavaScript• ActionScript• Python• Swift• Java

Language Use

• Different programming languages are suited to particular tasks.

• Game Development; C#, C++• Application Development; Java, D• Database Development; SQL, MySQL• Driver Development; Assembly, C• Web Development; HTML, PHP

• This is partly influenced by the way in which each language executes instructions.

Compiled Languages

• Compiled languages (C#, C++) are translated into binary machine code as a runnable file (.exe, for example).

• Once this has been created, the original source code is no longer needed to execute the program.

• These languages are often the most efficient and offer the best performance, but can be harder to work with.

Interpreted Languages

• Interpreted languages (Java, Python) are translated into machine-readable instructions by a separate program.

• Each time the code is executed, it has to be reinterpreted by this program.

• These languages produce slower results than compiled languages, but can be easier to work with.

Platform Dependency

• Specific languages also define whether software will operate on specific or multiple platforms.

• Platform Dependent; (C++) software which requires specific hardware or architecture to run.

• Platform Independent; (Java) software which can run on many or all platforms regardless of hardware or architecture.

Platform Dependency

• This begins to explain why you can’t simply take a PlayStation 4 disc, place it into an Xbox One and play!

• Games have been compiled for the specific architecture of each console.

• Studios must port a game to each system; there is often a ‘lead’ platform where primary development takes place.

Embedded Languages

• Embedded languages (ActionScript, Lua, MEL) are specific to particular applications.

• They extend the flexibility of applications beyond what is possible through menus.

• Whilst these languages have to be learnt on a per-program basis, they may share similarities with other languages.

Application Program Interfaces

• Application Program Interfaces (API) are provided by platform holders to assist the creation of software for other developers.

• They offer an established set of functions and procedures that permit access to specific features and services.

• MuleSoft - What is an API?

API Examples

• APIs exist for graphics and sound development, as well as web applications.

• Graphics; DirectX, OpenGL• Sound; OpenAL, Java Sound API• Web; Twitter, Facebook

• Some tasks cannot be achieved without the use of an API; development of third-party Twitter apps, for example.

API Example: DirectX

• DirectX is a graphics API primarily used to develop games for Windows, Xbox 360 and Xbox One.

• It provides a common set of libraries can be used to access functions on all graphics cards that are DirectX compatible.

• Without this, developers would have to create code for each individual graphics card that would conceivably used to the play the game.

Khan Academy

• Khan Academy Signup

• Computer programming

• Hour of Code