Technologies- Software

Technologies- Software
Unit 8- Computer Games Development
A2- Technologies Used in Computer Gaming  
1 / 19
next
Slide 1: Slide

This lesson contains 19 slides, with text slides.

Items in this lesson

Technologies- Software
Unit 8- Computer Games Development
A2- Technologies Used in Computer Gaming  

Slide 1 - Slide

This item has no instructions

Learning Outcome A2

Slide 2 - Slide

This item has no instructions

Learning Outcomes for Today 
Explain the Software options and their effect on the development of computer games.
Operating System (Windows, Mac OS, Linux)
Programming Language (C++, Java)
Device Drivers (input/output drivers)
Graphic options (DirectX, OpenGL)
Audio options (music, ambiance, file format)

Slide 3 - Slide

This item has no instructions

Software 
Software is a set of instructions, data or programs used to operate computers (consoles, mobile devise etc.) and execute specific tasks

Games are software applications, written using a programming language, and run on an operating system. 

They are a lot more complicated than most software applications but they are written using many of the same programming processes and techniques.

When designing and developing games, developers must take software into consideration


Slide 4 - Slide

This item has no instructions

Windows: Historically dominant in gaming, Windows offers extensive support for DirectX, a graphics API widely used in game development. Game engines and tools are often optimized for Windows, making it a primary choice for many developers.

 





 
Windows: Dominated by platforms like Steam, Epic Games Store, and Microsoft Store, offering extensive reach and marketing opportunities. These platforms provide tools for game distribution, updates, and community engagement.


macOS: While less common for gaming, macOS supports OpenGL and Metal graphics APIs. Developers targeting macOS may need to optimize games differently due to hardware and software differences compared to Windows.









macOS: Games are distributed primarily through platforms like the Mac App Store or third-party storefronts. Developers must adhere to macOS guidelines and optimize games for compatibility with Apple’s hardware ecosystem.

Slide 5 - Slide

This item has no instructions

Operating Systems
Each OS has its own set of development tools and software development kits (SDKs). Developers select tools based on OS compatibility, optimizing game performance and ensuring compatibility with specific OS features and APIs.

User Interface Design: Game UI/UX must consider OS-specific conventions and accessibility features. Design elements like menus, controls, and input methods should align with OS design guidelines for consistency and usability.

Performance Optimization: OS-specific optimizations (e.g., memory management, file system access) are crucial for maximizing game performance and stability. Developers leverage OS capabilities to streamline resource usage and minimize latency.

Slide 6 - Slide

This item has no instructions

Programming Languages & Graphics Options 
The programming language in which the game is written can also vary quite a lot depending on the platform that it is intended for. 

The dominant language for developing games is C++, which is an object-oriented language that has been popular for nearly thirty years. 

The most high-end games played on consoles, like Xbox and PlayStation, utilize C++. Which is also the language used for Unreal Engine and CryEngine.

Other languages that use a similar structure are C# and Java. C# is used within Unity and Java is used to create Android™ games.

Slide 7 - Slide

This item has no instructions

Name the programming languages 
timer
0:30

Slide 8 - Slide

This item has no instructions

Programming Languages (C++)
C++ is known for its high performance and low-level control over hardware, making it ideal for graphics-intensive games requiring fast execution speeds and efficient memory management. Games like "The Witcher 3" and "Doom Eternal" benefit from C++'s ability to handle complex calculations and real-time rendering.

Many popular game engines like Unreal Engine and Unity support C++ for core functionality and performance-critical components. Developers use C++ to implement game logic, physics simulations, and AI algorithms, leveraging the engine's tools and libraries for rapid prototyping and deployment.

C++ allows developers to optimize games for specific platforms (Windows, macOS, Linux, consoles) by fine-tuning code for CPU architecture, GPU capabilities, and operating system features. This ensures optimal performance and compatibility across different hardware configurations.

C++ games typically have smaller executable sizes compared to interpreted languages like Java, reducing download times and storage requirements for players. This is advantageous for digital distribution platforms such as Steam or console storefronts.


Slide 9 - Slide

This item has no instructions

Programming Languages (Java) 
Java's "write once, run anywhere" philosophy allows games to run on any device with a Java Virtual Machine (JVM), including Windows, macOS, Linux, and Android. Games like "Minecraft" and "Runescape" showcase Java's versatility in cross-platform game development.

Java’s object-oriented nature and extensive standard library simplify game development by providing built-in support for data structures, networking, and graphical user interfaces (GUIs).
Java benefits from a large developer community and robust ecosystem of tools, libraries, and frameworks. Open-source contributions and community support accelerate development, enhance functionality, and address common challenges in game development.

Java games can be distributed via app stores (e.g., Google Play Store) and web browsers using Java applets or JavaScript frameworks like Java Web Start. 
Java's built-in security features, such as bytecode verification and sandboxing, ensure safe execution of games on user devices. This is critical for protecting player data and preventing malicious attacks in online and multiplayer Java game



Slide 10 - Slide

This item has no instructions

Programming Languages and Graphics Options 
Different programming languages tend to be tied to different platforms.
Some languages are described as ‘light weight’ and will only run within a games engine, such as JavaScript. These ‘light weight’ scripting languages rely on existing assets and features to keep the amount of code low and to produce games quickly, but they may run slower as a result.

Graphics software also needs to be considered. Systems use application programming interfaces (APIs) for managing the tasks related to the software and the GPU.

 The APIs are largely sets of routines and protocols for making the development of games easier. DirectX® is a Microsoft® graphics API and OpenGL® is the open source alternative.

Slide 11 - Slide

Some languages are described as ‘light weight’ and will only run within a games engine, such as JavaScript. These ‘light weight’ scripting languages rely on existing assets and features to keep the amount of code low and to produce games quickly, but they may run slower as a result. – Impact on user and industry requirements.

Programming Languages and Graphics Option 
API is a software used to allow communication between applications, for example programs and software.

Graphics API allows software developers to access hardware features without writing code specially for that hardware, instead the API creates the communication for them.

OpenGL is an Open Graphics Library which is used for rendering 2D and 3D graphics. It enables communicating with the GPU to render graphics. It allows games to be exported to be played on multiple platforms.
OpenGL ES is used to render 2D and 3D graphics in mobile devices.









Slide 12 - Slide

This item has no instructions

Programming Languages and Graphics Option 
DirectX, created by Microsoft, is used to create games with 2D and 3D graphics on Microsoft devices like Windows and the Xbox.
WebGL is used to render 2D and 3D graphics for web browser games without the user having to download plugins. For example on Google Chrome or Microsoft Edge.

Sound API is used for audio and hardware communication. OpenAL is similar to OpenGL to control different aspects of the audio including tone, pitch and volume, to improve the player experience. Like OpenGL, OpenAL can be used on a number of different gaming platforms.
For mobile devices and browsers Java API is used, it controls input and output sounds. This helps designers improve the sound in games to create a more immersive player experience.

Slide 13 - Slide

This item has no instructions

Programming Languages and Graphics Option 
One of the key decisions to make in game programming is which application programming interface (API) and libraries to use.
API is a software intermediary that allows two applications to talk to each other.

The library and API to use is determined by the target platform of the game. For instance, libraries for Microsoft Windows development are not available for the Wii, and vice versa. 

However, there is a framework that allows the process of cross-platform development. This allows a game developer to program a game in a single language which can then be run on different platform. 

Slide 14 - Slide

This item has no instructions

Programming Languages and Graphics Option 
A gaming API allows your programs and software applications to interact with one another and share rules, settings, specifications, and data among others.


These APIs interact with libraries, operating systems, applications and more, usually used to share and embed gaming content.

Various gaming platforms, such as Steam and Xbox Live have positively contributed to the rise of social gaming. They have also positively impacted the development and advancement of gaming technologies around the globe. These platforms allow the developers to incorporate online game data into their application.

Slide 15 - Slide

When you use an application on your mobile phone, the application connects to the Internet and sends data to a server. The server then retrieves that data, interprets it, performs the necessary actions and sends it back to your phone. The application then interprets that data and presents you with the information you wanted in a readable way. This is what an API is - all of this happens via API.
To explain this better, let us take a familiar example.
Imagine you’re sitting at a table in a restaurant with a menu of choices to order from. The kitchen is the part of the “system” that will prepare your order. What is missing is the critical link to communicate your order to the kitchen and deliver your food back to your table. That’s where the waiter or API comes in. The waiter is the messenger – or API – that takes your request or order and tells the kitchen – the system – what to do. Then the waiter delivers the response back to you; in this case, it is the food.
NativeScript allows you to build Android and iOS

Device Drivers 
Device drivers are specialized software programs that enable communication between the operating system and hardware devices, such as graphics cards, sound cards, and input devices. They play a crucial role in the development of computer games by ensuring that games can fully leverage the capabilities of the hardware.

Graphic Drivers.

Graphics drivers facilitate communication between the GPU and the operating system, enabling the rendering of high-quality graphics.

 Updated graphics drivers can improve game performance by optimizing how the GPU processes graphics.
Developers rely on these optimizations to ensure smooth and high-frame-rate gameplay.
Enable support for advanced features like ray tracing, tessellation, and shader models. This allows developers to create visually stunning games with realistic lighting and detailed textures.



Slide 16 - Slide

This item has no instructions

Device Drivers 

Input Device Drivers
Allow communication between the operating system and peripherals like keyboards, mice, game controllers, and VR headsets.

Ensure that input devices respond accurately and quickly is vital for player control and interaction. High-quality drivers minimize input lag and improve precision.

Drivers ensure that various input devices are compatible with games, allowing developers to support a wide range of controllers and accessories.
Advanced drivers often provide customization options for input devices, enabling players to map controls and adjust sensitivity to their preferences.



Slide 17 - Slide

This item has no instructions

Audio Options 
Audio is another important area of software. The music and sound effects are a massive part of the feeling and ambience that designers want to create for a game and one of the best ways to evoke feeling in a player is through music. 

A game will have different music in the different levels and these will be similarly themed to generate a common link across the game. 
Sound effects are used to teach players when they have done something positive or negative. 
Music files can be quite large and developers have created a number of different file formats in order to make the games run more smoothly, especially for online games. These file types are WAV, MP3, FLAC and AAC.

Slide 18 - Slide

This item has no instructions

Homework Task 
🎮 Task: Software Technologies in Gaming (1–2 Slides)
Create 1–2 PowerPoint slides that explain:

What software technologies are used in computer games (e.g. game engines, scripting tools)

How they affect game design, development, and distribution

✅ Use your own words
✅ Add relevant images or examples
✅ Include references for any sources used


Slide 19 - Slide

This item has no instructions