COMP3421 Intro Lecture
COMP3421 Intro Lecture
COMP3421 Intro Lecture
Introduction
Dr Ali Darejeh
School of Computer Science and Engineering
Term 3, 2023
Course Staff
3D modeling (1970-1980)
• Emergence of the 3D Core Graphics System
History of Computer Graphics
Computer graphics to develop video games (1980 - 1995)
• 2D games, Arcade machines
• 3D games (Doom, Quake)
History of Computer Graphics
Films were involved (1980-1995)
Tron (1982), The Terminator (1984), Jurassic Park (1993),
Toy Story (1995)
History of Computer Graphics
3D modeling applications (1990-2000)
Emergence of 3D modeling applications and an
impressive rise in the quality of computer-generated
graphics and 3D games.
History of Computer Graphics
High quality 3D games and visual effects (2000-
2010)
Video games and cinema had spread the reach of
computer graphics to the mainstream by the late 1990s
and continued to do so in the 2000s.
History of Computer Graphics
Realistic 3D games and virtual reality (2010- present)
Real-time graphics on a suitably high-end system simulate
photorealism.
• Tutorials
o Working on your proposed project and getting consultation from your
tutor
Lectures and teaching method
• Teaching using practical projects
• Lecture activities to practice lecture content
• Lectures (In-person)
• Time
o Monday 6-8pm (Rex Vowels Theatre (K-F17-LG3))
o Thursday 6-8pm (Physics Theatre (K-K14-19))
o They are not repetitive.
• Recordings will be made available on Echo360 via
Moodle.
Tutorials
• Weekly meeting with your tutor
• Working on your proposed project and getting consultation from your
tutor
• Project progress updates
• Attendance to labs is Compulsory (you should attend at least 80% of
the labs)
• In-person tutorials: VR lab (Moog Lab), Ground floor, CSE building
(K17).
• http://vrlab.au/
• Online tutorials: Blackboard Collaborate on Moodle.
Tutorials
• You need to have:
o Steam account
o Epics game account
o Unity account
• After logging to the lab's computers, log into Steam, Unreal Engine
launcher, and Unity launcher using your own accounts.
• Every two students can have one computer and one virtual reality
headset in the lab.
Projects group
• Students work in teams of ideally four to five members.
• Choose a name for your team.
• Choose a group admin.
• Add your team into Moodle (Just the team admin should create the
group and the other members should join the group).
The purpose of this course
This course will:
• Make you ready to work in industry in the areas of
developing graphical interactive environments and video
games.
• Teach you practical side of computer graphics and the
necessary theoretical background such as geometry.
Topics we're covering
• Introduction to rendering
• Material design
• Animating objects
Lectures content (Project 3)
• Developing VR hand
Lectures content (Project 5)
• A video game
• It can be either a first person or a third person.
Characteristics of your project
• Your project should have a theme and a purpose
• You should design a graphical environment such as a
landscape, a city, a building, a laboratory, a class, a
shopping center, an amusement park, a water park, a
museum, a restaurant, a castle, a house, a battlefield, or a
fictional environment.
Characteristics of your project
• Based on the environment that you design, there should be
related objects in the environment.
• For example, if you're designing a chemistry laboratory,
there should be different tools and materials that can be
touched and moved by the player.
Characteristics of your project
https://www.unrealengine.co
m/marketplace/en-US/store https://assetstore.unity.com/
Characteristics of your project
• You CANNOT just download and present an asset
from the asset store, it should be fully customised.
• You don't need to customize simple objects such
as fruits, foods, or tools.
• Downloading a project from the Internet or using a
pre-existing asset without customization would be
considered plagiarism.
Characteristics of your project
• You should design your own environment using Geometry
Brushes or Landscape tools, then add the assets that you
downloaded from the asset store and customise them.
Characteristics of your project
In order to design and develop your environment, you should
consider the items below:
• Use an appropriate lighting technique.
• Use an appropriate camera technique. It can be either a
first person or a third person.
• Design your own material and apply them to objects.
• Objects should have physics and collision detection.
• The system should have a backend either by C++ or
Blueprints in Unreal Engine or C# in Unity.
Characteristics of your project
• You should have a character (the player) in your
environment that is controllable by keyboard, mouse or
gamepad.
• The character can be a human like character, an animal, a
fictional character, a vehicle, or even a geometrical shape
based on the theme of your project.
• The character should be able to have physical interaction
with the other objects in the environment such as colliding
with them, grabbing them, or destroying them.
• The environmental objects should be able to have physical
interaction with the player character such as colliding with
the player, attacking the player or destroying the player.
Phase 2 (Option 1: Convert your project
into a virtual reality-based system)
• Convert your project into a virtual reality based system.
• Add VR player
• Map VR controller including both HTC VIVE and Meta Quest
Headsets to control the VR player.
• Add VR hand and enable users to grab and move objects with the use
of the VR hand.
• The system that you design should work on the VR headsets that we
have in the lab (HTC VIVE Pro).
Phase 2 (Option 2: Develop a mini system
or a game related to your main project)
• If your project is a video game, consider adding a
mini-game within your main game. For example,
you could include arcade machines that allow
players to engage in simple 2D games, similar to
what is seen in GTA.
• If your project is a simulated environment, such
as a lab, consider adding functional equipment in
addition to the standard equipment already
present in your lab.
Sample projects
Sample projects
Sample projects
Sample projects
The VR lab website for more sample projects
http://vrlab.au/
What is a game engine?
A game engine is a visual
software development tool used
to develop:
• Video games
• Animations
• Highly interactive graphical
environment
What is a game engine?
Game engines provide:
• Level design tools
• Lighting
• Material editor
• Drawing tools
• Cinematic (Animation tools)
• Physics and collision engines
• Artificial intelligence Unity game engine
• Audio engines
• Scene graph (Objects
hierarchy)
• Rendering engine for 2D or
3D graphics
• Multiplayer features
• Programming libraries for
designing video games. Unreal game engine
Are Unreal Engine and Unity the only
game engines
• Amazon Lumberyard • Phaser
• Cocos2d • Unity
• CryEngine • Unreal
• GameMaker Studio
• Godot
• Honorary Mentions
• Open3D Amazon
Comparison between different game engines
• The Unity Engine and the Unreal Engine currently being the two most
popular choices for game developers (CB insights, 2018).
• The $120B gaming industry is being built on the backs of these two
engines (CB insights, 2018).
• Pokémon Go (made with Unity Engine) and Fortnite (made with
Unreal Engine).
Soirce: https://www.cbinsights.com/research/game-engines-growth-expert-intelligence/
Unreal engine
• Unreal Engine developed by Epic Games, was introduced in
1998 as one of the first publicly available gaming engines.
• It grew out of Epic’s
Unreal video game
series, which was one of
the first successful
online multiplayer
games.
• After publishing the
game, Epic chose to
share the engine and
tools used to develop
and support it, and the
Unreal Engine was born.
Unreal Engine Version 1
Unreal engine
• Unreal Engine provides world's most advanced real-time 3D creation
tool sets.
• The company has recently optimized its engine for AR/VR gaming, while
partnering with established AR/VR organizations like Meta (Facebook).
• Latest version: Unreal Engine 5.3
Famous games that are developed by Unreal engine
Unity engine
• Unity is a cross-platform game engine developed by Unity
Technologies, first released in June 2005 as a Mac OS X
game engine.
• The engine has
extended to support a
variety of desktop,
mobile, console and
virtual reality
platforms.
• It is particularly
popular for iOS and
Android mobile game
development.
Unity Engine Version 1
Unity engine
• In 2016, over 30% of the top 1000 mobile games were built using Unity, which
reported having 45% of the entire global game engine market.
• Unity will be an important contributor to future growth mobile gaming industry,
providing the digital infrastructure necessary to take the mobile gaming
segment $100B+ in the next few years.
• Many of the mobile games published by incumbents like Tencent and NetEase
leverage the Unity Engine.
• Latest version 2022.3
Famous games that are developed by Unity engine
Unity versus Unreal Engine
https://www.gamecareerguide.com/features/2043/unreal_vs_unity_3d_choosing_the_.php?page=2
Why to learn game engines
https://www.gamedeveloper.com/business/game-engines-on-steam-the-definitive-breakdown#close-modal
Before game engines
• Go to: https://www.glfw.org/download.html
• Download CMaker: https://cmake.org/download/
Using OpenGL in
Visual Studio.NET
Drawing a black rectangle in OpenGL
• The glClear() provides a clean slate to work on.
• The glColor3f function sets the current color.
• The glRectf function draws a rectangle.
Drawing a rectangle in Unreal engine 5
• Drawing a 3D rectangle (Cube) with brick material
and shadow just by 5 clicks.
History of video games and game engines
First generation games (1960 - 1970):
• Very simple games
• Very Low graphics (black and white)
• Everything was designed from the scratch
• Game consoles with No CPU and graphic
card
• Hard coded
History of video games and game engines
Second generation games (1970-1980):
• Very simple games (2KB cartridges)
• Very Low graphics (Color)
• Game consoles with CPU = 8-bit, 1–2 MHz
and no graphic card
• Hard coded
History of video games and game engines
Third generation games (1980-1990):
• Simple games
• Low graphics (128 KB to 384 KB)
• Game consoles with CPU = 8-bit, 2–4
MHz and no graphic card
• Hard coded and in-house game engines
History of video games and game engines
Forth generation games (1990-1995):
• Simple games
• Medium resolution graphics (1MB to 5MB)
• Game consoles with CPU = 8-bit and 16-
bit, 4–8 MHz and no graphic card
• Hard coded and in-house game engines
History of video games and game engines
Fifth generation games (1995-2000):
• Simple games
• Medium resolution graphics (5MB to 650MB)
• Game consoles with CPU = 32 and 64-bit,
12–100 MHz and no graphic card
• Graphic rendering API‘s and In-house game
engines
History of video games and game engines
6th – 9th generation games (2000-present):
• Complex games (Nonlinear / Open world)
• High resolution graphics (1GB to 100GB)
• Developed by Game engines
CPU Graphic card
Sixth 32-bit, 200–733 MHz 100–233 MHz
Seventh 32-bit, 729 MHz–3.3 GHz 243–550 MHz
Eighth 32 and 64-bit, 1.0–2.3 GHz 300–1172 MHz
Ninth 64-bit, 3.4–3.8 GHz 1565–2233 MHz
History of video games and game engines
• A sample video game (Matrix) with Unreal Engine
5 on Play Station 5.
Course Evaluation and Development