Download Game Engines - Programming Languages

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Compiler wikipedia , lookup

Functional programming wikipedia , lookup

Video game programmer wikipedia , lookup

Reactive programming wikipedia , lookup

Interpreter (computing) wikipedia , lookup

Object-oriented programming wikipedia , lookup

Abstraction (computer science) wikipedia , lookup

Programming language wikipedia , lookup

Go (programming language) wikipedia , lookup

Structured programming wikipedia , lookup

C Sharp (programming language) wikipedia , lookup

Transcript
OPERATING SYSTEMS,
PROGRAMMING LANGUAGES,
AND GAME ENGINES
In this lesson you will learn about Operating Systems, various
programming languages, game engines, and more specifically
the Construct 2 game engine.
Learning Objectives
Before you start, here are the topics you will learn about.
● Operating Systems
● Computer Hardware
● Programming Languages
● Game Engines
Objective 1 - Operating Systems
Your computer, phone, and tablet devices are all running an
operating system. An operating system (OS) is the software
that runs a computers most basic functions.
Examples of operating systems on computers are Windows,
Mac OS X, and Ubuntu (a Linux distribution). Mobile/Tablet
operating systems include Android, and IOS. These are just a
few examples, but there are many more.
Although there are many types of operating systems, the basic
purpose of any operating system is the same. To help the
computer or device to run different types of software and
allow this software to interact with the computer or device.
Think of using the Instagram App on an iPhone. The app
allows a person to take a picture, however the IOS operating
system allows the Instagram app to use the camera on the
device.
Without operating systems none of your computers or devices
would be usable! On top of this, none of the games you play
would be possible.
The biggest differences between operating systems are the
GUI (graphical user interface) and the software applications
that can be run on the operating system.
Different types of operating systems can run different
software. This is why a program for a Mac computer typically
will not work on a Windows operating system. The same is
true for an IOS and Android application. An Android
application will not run on an iPhone. Going back to the
Instagram example, this means Instagram had to create an
app for Android and IOS.
Objective 2 - Computer Hardware
Since it's the operating systems job to interact with the
hardware on the device, you will need to learn a little about
various types of hardware to understand how it works.
You will start by exploring various hardware components of
desktop and laptop computers. Most of these are also used on
phone or tablet devices (although they are much smaller of
course).
Motherboard
The Motherboard provides the communication paths for the
computer or device. It's a printed circuit board that contains
connectors for the other types of hardware devices listed in
this lesson.
Arrow over to see image of a Motherboard and it's
components.
Attribution: Moxfyre at en.wikipedia
RAM (Random Access Memory)
The RAM provides the primary memory of your computer. You
may have heard that more RAM makes your computer faster.
This is because a computer with more RAM can run more
programs at the same time. The RAM on your computer is lost
every time you restart.
CPU (Central Processing Unit)
The CPU is kind of like the brain of the computer. It carries
out the instructions and calculations of computer programs.
The faster your CPU the faster your computer can run
computer programs. This is true because a faster CPU can
process computer operations more quickly.
Photograph © Andrew Dunn, 9 November 2005.
Website: http://www.andrewdunnphoto.com/
Peripherals
Computers have many additional peripheral hardware or
devices. These devices are not necessarily integral parts of
the computer, but can be very important in order to get the
computer to operate the way you are used to. A few examples
of peripherals are graphics cards, computer monitors,
keyboards, mouse, and hard drives.
Hard Drive
Computers typically have a hard drive for more permanent
storage. These storage devices are called secondary memory
and generally provide much more storage than RAM. Unlike
RAM which loses it's data when the computer is restarted,
Hard Drives retain their data when the computer is shut off or
restarted.
Graphics Card
A Graphics or video card is a hardware expansion card that is
used to generate the display of the computer on a computer
monitor (or other display device). Some motherboards have
an integrated graphics card built in. If the motherboard has
an integrated graphics card, an expansion video card is not
required but can still be used for better graphics
performance. Having an expansion video card can be required
for more graphically complex 3D computer games.
Quiz Time
Which of the following IS NOT a computer peripheral device?
Quiz Time (Answer)
Which of the following IS NOT a computer peripheral device?
Objective 3 - Programming Languages
Any software or computer program written for a computer or
mobile application is written using some type of programming
language. A programming language is an artificial language
that the computer can understand that controls the behavior
of the computer or device.
Compiled or Interpreted
Programming languages are either compiled or interpreted.
Compiled Programming Language
A compiled programming language requires that the code of
the program runs through a compiling process that optimizes
the code for a specific type of machine or operating system.
For instance, when building an Android application, a
developer will need to compile their code for Android
devices. This compiled code will not work on an iPhone.
Interpreted Programming Language
An interpreted programming language is not built for a
specific type of machine or operating system. Instead there is
a software program that runs on the machine that can read
the computer program or code. In this case the code can be
read directly without the need for a compile process to run.
Compiled vs. Interpreted Languages
Both compiled and interpreted languages can perform the
same functions. Compiled programs are often slightly faster
because they are built directly for the machine to run,
interpreted programs are often said to be easier to implement
because there is no need for a compile process.
Does it Really Matter?
Due to changes and improvements in technology, the
differences between compiled and interpreted languages are
not as drastic as they used to be. In general, developers
choose the language best for the task without as much
thought as to whether the language is a compiled or
interpreted language.
What “Type” of Language is it?
A programming language uses variables to allow a programmer
to store data while the program is running. Some
programming languages require that the type of this variable
is specifically declared when the variable is created. A
variable could be a number variable, a string (text) variable,
or store many other types of data. These programming
languages are called strongly typed languages.
How Strong is your “Type”?
Other programming languages may have only a single type,
which allows all variables to be stored as a single-type of
variable. There are also some programming languages that are
un-typed and treat all data the same way.
How is this Used?
Most modern programming languages used by programmers
are considered typed languages. This means they have
different variable types available to them. There are different
variations on if a language is strongly or loosely typed. If a
programming language is strongly typed it is more strict with
how variables are declared and used than a loosely typed
programming language.
Enough about the technical details, what are some of these
languages? Some popular programming languages are C, Java,
PHP, JavaScript, C++, Python, Objective C, C#, and Ruby.
Different programming languages are popular for different
purposes and may have different uses.
You will now take a quick look at C++, Java, PHP, and
JavaScript.
C++
C++ is a compiled and general purpose programming language
that is used in many applications including game
development. Some popular games built with C++ code
include StarCraft, World of WarCraft, and most major console
games.
JAVA
Java is another general purpose programming language that is
typically compiled an can run on any platform using a JVM
(Java Virtual Machine). Java is a very popular programming
language for software applications but not as popular for
building games. There are a few popular games such as
Runescape and Minecraft that use Java.
PHP
PHP is an interpreted programming language designed for
website development. PHP is one of the most popular
programming languages for building websites. Because PHP is
typically used for building websites, it is typically not used to
develop games.
JavaScript
JavaScript is an interpreted programming language that runs
on most web browsers. JavaScript is often used for animations
on websites or web based games. Games that are built for
HTML5 (meaning they run on modern web browsers), use
JavaScript for much of their code and functionality.
Objective 4 - Game Engines
A game engine provides an easier way to build games without
having to write every line of code yourself. A game engine is a
software framework that makes the game development
process faster. A software framework simplifies the
development process and provides helpful time saving
features. There are software frameworks for building
websites, financial applications, building games, and more.
Examples of Game Engines
There are hundreds of popular game engines, but you will
explore Construct 2, Unity, Unreal Engine 4, and Game Maker
Studio.
Construct 2
Construct 2 is the Game Engine that will be used throughout
the rest of this course. Construct allows you to easily build 2D
games and export them to HTML5 format. This allows the
games you build to easily be embedded in websites or online
arcades. The game engine also provides options for exporting
your games to mobile apps (license key is required).
Unity
Unity is a fully integrated development environment for
creating 3D games. Games can be exported to Mac apps,
Windows games, web games, mobile apps, Wii, PS3, and XBox
360. Code for Unity games can be written in C#,
UnityScript/JavaScript, or Boo programming languages.
Unreal Engine 4
A fully featured 3D game engines designed to build advanced
3D games for Mac, Windows, or Linux. Code for Unreal Engine
4 is written in the C++ programming language.
Game Maker Studio
Game Maker Studio is a 2D game engine that makes use of its
own programming language called GML to build games. Games
can be built for IOS, Android, Desktop, and the web.