game engines - courses.cs.ut.ee

68
Game Engines Jaanus Jaggo 2021

Upload: others

Post on 15-Oct-2021

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Game Engines - courses.cs.ut.ee

Game EnginesJaanus Jaggo

2021

Page 2: Game Engines - courses.cs.ut.ee

Game engines

2

This is not even half of all the engines!

1

23

4

5

7

8

11

9

1210

1314

15

6

Page 3: Game Engines - courses.cs.ut.ee

Game engines

3

This is not even half of all the engines!

23

4

5

7

8

11

9

1210

1314

15

6

Page 4: Game Engines - courses.cs.ut.ee

Game engines

4

This is not even half of all the engines!

3

4

5

7

8

11

9

1210

1314

15

6

Page 5: Game Engines - courses.cs.ut.ee

Game engines

5

This is not even half of all the engines!

4

5

7

8

11

9

1210

1314

15

6

Page 6: Game Engines - courses.cs.ut.ee

Game engines

6

This is not even half of all the engines!

5

7

8

11

9

1210

1314

15

6

Page 7: Game Engines - courses.cs.ut.ee

Game engines

7

This is not even half of all the engines!

7

8

11

9

1210

1314

15

6

Page 8: Game Engines - courses.cs.ut.ee

Game engines

8

This is not even half of all the engines!

7

8

11

9

1210

1314

15

Page 9: Game Engines - courses.cs.ut.ee

Game engines

9

This is not even half of all the engines!

8

11

9

1210

1314

15

Page 10: Game Engines - courses.cs.ut.ee

Game engines

10

This is not even half of all the engines!

11

9

1210

1314

15

Page 11: Game Engines - courses.cs.ut.ee

Game engines

11

This is not even half of all the engines!

1112

10

1314

15

Page 12: Game Engines - courses.cs.ut.ee

Game engines

12

This is not even half of all the engines!

1112

1314

15

Page 13: Game Engines - courses.cs.ut.ee

Game engines

13

This is not even half of all the engines!

12

1314

15

Page 14: Game Engines - courses.cs.ut.ee

Game engines

14

This is not even half of all the engines!

1314

15

Page 15: Game Engines - courses.cs.ut.ee

Game engines

15

This is not even half of all the engines!

1415

Page 16: Game Engines - courses.cs.ut.ee

Game engines

16

This is not even half of all the engines!

15

Page 17: Game Engines - courses.cs.ut.ee

Game engines

17

This is not even half of all the engines!

Page 18: Game Engines - courses.cs.ut.ee

Game engines

18

Page 19: Game Engines - courses.cs.ut.ee

There is no “best” game engineAs there is no “best” programming language

19

But some people like to express their opinion loudly!

This course is based on my own experience.Your experience might differ.

Page 20: Game Engines - courses.cs.ut.ee

You will learn1. Fundamental knowledge to use Unity, Godot and Unreal Engine 4 GE.2. Using these engines to program a game.3. Architecture patterns of these engines.4. Comparing these engines for solving a specific problem.

20

Page 21: Game Engines - courses.cs.ut.ee

Course Organization3 EAP = 78h of work

Practices: 16 * 1,5h = 24h

Individual work (homeworks): 46h

Test: 8h

21

Course information: https://courses.cs.ut.ee/2020/ge/fall

Non-differentiable grading:passed / not passed / not present

Homeworks: 60pTest: 40p (at least 30p from homeworks required)

points > 50 = passed

Page 22: Game Engines - courses.cs.ut.ee

Course Organization

22

Introduction Unity Unity Unity Unity Godot Godot

Godot Godot Unreal UnrealUnreal Unreal Unreal

Unreal Unreal Test...

Page 23: Game Engines - courses.cs.ut.ee

Course Organization4 Homeworks (15 points each):

● 1 in Unity● 1 in Godot● 2 in Unreal

23

Test (40p) - questions about:● Game engine differences● Game engine architecture patterns● Game engine specific questions

Page 24: Game Engines - courses.cs.ut.ee

Course OrganizationDiscord channel (combined with Game Dev and Design Course)

24

Link in courses page: https://courses.cs.ut.ee/2021/ge/fall

● Have a game dev discussion with other students● Ask help● Help others

Page 25: Game Engines - courses.cs.ut.ee

Any questions about the course organization?

25

Page 26: Game Engines - courses.cs.ut.ee

Early gamesMost of the early games were written in Assembly language.

● Hardware specific● Memory limited

26

Every byte was counted = very little could be reused

Page 27: Game Engines - courses.cs.ut.ee

Game engine purposeGame engines provide a suit of development tools and reusable software components.

Most provide facilities such: graphics, sounds, physics and artificial-intelligence (AI)

27

● Initially in-house only● during 90s the 3D first person shooter games (Doom, Quake…) gain popularity →

○ need for licensed game cores →○ games like Unreal were designed with separated engine and content

Page 28: Game Engines - courses.cs.ut.ee

About me

28

Software Engineering Assistant since 2016

Teaching:● Computer Graphics● Computer Game Development and Design● Game Engines (NEW)

Main interests● Modern technologies● Procedural generation● Art creation workflows● Visual effects

Page 29: Game Engines - courses.cs.ut.ee

My journeyMiddle school and high school

29

During bachelors

During masters2018Now

Page 30: Game Engines - courses.cs.ut.ee

My journeyMiddle school and high school

Language: GameMaker Language (GML)

Page 31: Game Engines - courses.cs.ut.ee

My journeyMiddle school and high school

Page 32: Game Engines - courses.cs.ut.ee

My journeyBachelor study years

● Switched to XNA engine (free engine from microsoft)● Studied OOP programming

Language: C#

Page 33: Game Engines - courses.cs.ut.ee

My journeySpace game (inspired from Asteroids)

Page 34: Game Engines - courses.cs.ut.ee

My journey

34

Gamasutra February 1, 2013

● Designed to be like XNA but not 100%

● Designed to be fully compatible with XNA 4.0

Page 35: Game Engines - courses.cs.ut.ee

My journeyWeb games using Javascript + HTML5 Canvas

35

Page 36: Game Engines - courses.cs.ut.ee

My journeyMultiplayer game in C++ (Allegro + Enet)

Development was really slow

36

Page 37: Game Engines - courses.cs.ut.ee

My journeyReimplementation in Monogame with two weeks

37This image illustrates an improved state after the reimplementation

Page 38: Game Engines - courses.cs.ut.ee

My journeyUnity and Computer Graphics during Master’s study

38

Page 39: Game Engines - courses.cs.ut.ee

My journey2018 Unreal Engine - Multiplayer remake of Optimatica

39

Page 40: Game Engines - courses.cs.ut.ee

My journeyNow - Godot

40

Page 41: Game Engines - courses.cs.ut.ee

Types of game engines

● Platform specific game engines● Game engines with Visual scripting● Specialized game engines● Framework like game engines● Niche game engines

41

These are not mutually exclusive

Page 42: Game Engines - courses.cs.ut.ee

Platform specific game enginesSome game engines are designed for making game on a specific platform like:

● Game Console● Web● PC● Mobile

42Nintendo DS official dev kit

Page 43: Game Engines - courses.cs.ut.ee

Platform specific game enginesWeb game engines - usually extend the functionality of HTML5 canvas or WebGL

43Game Dev Tycoon - packaged with chromium for PC

Page 44: Game Engines - courses.cs.ut.ee

Types of game engines

● Platform specific game engines● Game engines with Visual scripting● Specialized game engines● Game development frameworks● Niche game engines

44

These are not mutually exclusive

Page 45: Game Engines - courses.cs.ut.ee

Game engines with visual scriptingThey simplify game programming by allowing even non-programmers to make games. Excellent for learning.

45

Page 46: Game Engines - courses.cs.ut.ee

Game engines with visual scriptingEven modern game engines use visual scripting:

46

Page 47: Game Engines - courses.cs.ut.ee

Types of game engines

● Platform specific game engines● Game engines with Visual scripting● Specialized game engines● Framework like game engines● Niche game engines

47

These are not mutually exclusive

Page 48: Game Engines - courses.cs.ut.ee

Specialized game engines1. RPG Maker - for Japanese style role

playing games.2. FPS Creator - for first person

shooter games3. Adventure Game Studio - for point

and click adventure games

48

Page 49: Game Engines - courses.cs.ut.ee

Specialized game enginesRPG maker - for making Japanese style RPG games

Release date: 1992

49

https://www.thegamecreators.com/product/fps-creator-classic-open-source

Page 50: Game Engines - courses.cs.ut.ee

Specialized game enginesFPS Creator - for first person shooter games, provides library of 800 3D objects

Release date: 2005

50

https://www.thegamecreators.com/product/fps-creator-classic-open-source

Page 51: Game Engines - courses.cs.ut.ee

Specialized game enginesAdventure game studio (AGS) - for making point and click adventure games

Release date: 2009

51

Unavowed

Page 52: Game Engines - courses.cs.ut.ee

Types of game engines

● Platform specific game engines● Game engines with Visual scripting● Specialized game engines● Framework like game engines● Niche game engines

52

These are not mutually exclusive

Page 53: Game Engines - courses.cs.ut.ee

Game Development FrameworksGame engines that only provide a framework of components for things like rendering, audio, collision checking...

● Ogre3D (C++)● Allegro (C++)● XNA / Monogame / FNA (C#)● Lightweight Java Game Library (Java)

53

https://forums.factorio.com/viewtopic.php?t=3692

Sometimes they are called rendering engines.

Page 54: Game Engines - courses.cs.ut.ee

Game Development Frameworks● XNA / FNA / Monogame

54

Page 55: Game Engines - courses.cs.ut.ee

Types of game engines

● Platform specific game engines● Game engines with Visual scripting● Specialized game engines● Framework like game engines● Niche game engines

55

These are not mutually exclusive

Page 56: Game Engines - courses.cs.ut.ee

Types of game engines

Niche game engines

56

https://www.gamasutra.com/view/news/255932/MaxPlays_new_game_engine_aims_to_be_Google_Docs_for_game_devs.php

MaxPlay game engines aims to be ‘Google Docs for game devs’

Game Development Suite (GDS)

Page 57: Game Engines - courses.cs.ut.ee

Types of game engines

Niche game engines

57

Duke Nukem 3D (1996)Witchaven (1995) Ion Fury (2019)

Page 58: Game Engines - courses.cs.ut.ee

Most popular game engines today

58Don’t take it as a ground truth, but it gives an indication.

Page 59: Game Engines - courses.cs.ut.ee

Popular game engines today

59

GMTK 2020 game jam engines (biggest game jam in Itch.IO hisotry, 5397 entries)

PS! 2021 results were quite similar: Unity 61.6%, Godot 13.1%, Game Maker 8.9%, UE 4.2%

Page 60: Game Engines - courses.cs.ut.ee

Popular game engines today

60

GMTK 2020 game jam engines (biggest game jam in Itch.IO hisotry, 5397 entries)

Page 61: Game Engines - courses.cs.ut.ee

Other game engines to consider

61

Pricing (Paid) Free version without export

Page 62: Game Engines - courses.cs.ut.ee

Game engines with visual scriptingGames made with GameMaker

62

Page 63: Game Engines - courses.cs.ut.ee

Other game engines to consider

63

Previously pay-what-you wantNow 5% of revenue

Pricing (Free to use)

Have to use Amazon services (if you need any)

Pricing (Free to use)

on 2016 Amazon obtained a branch

C++ / LuaC# / C++ / Lua

Page 64: Game Engines - courses.cs.ut.ee

Other game engines to consider

64

Pricing (Free to use)Steam exclusive (games must be released on Steam)

Page 65: Game Engines - courses.cs.ut.ee

Other game engines to consider

65

Pricing (Paid)Has free edition with restrictionsPersonal licence with subscription

Very easy to learn, even for non-programmers

Page 66: Game Engines - courses.cs.ut.ee

Other game engines to consider

66

Open source game engines / frameworks

Page 67: Game Engines - courses.cs.ut.ee

Unity vs Godot vs Unreal Engine 4

67

vs vs

● Open source● 2D / 3D● Growing rapidly● GDscript / C#

● Largest community● 2D / 3D● C#

● Based on in-house game development

● mostly 3D (Amazing)● C++ / Blueprints

Pricing (Free to use)Free personal version up to rev 100kPro and Plus with subscriptions

Pricing (Free to use)If you make money you should support them really

Pricing (Free to use)Completely free until first Million $5% royalty after that

Page 68: Game Engines - courses.cs.ut.ee

Next time - introduction to Unity

68

● Largest community● 2D / 3D● C#

Pricing (Free to use)Free personal version up to rev 100kPro and Plus with subscriptions

Let me know:

1. What engine are you most interested in?

2. Is there anything specific you would like to learn?

3. Any suggestions how to make this a better course for you!