1 of 89

Unity and HTML5 = Isomorphic Game Engine?

Lerenzo Malcom

2 of 89

3 of 89

Unity and HTML5 = Isomorphic Game Engine?

Lerenzo Malcom

4 of 89

Unity and HTML5

  1. Why Unity? And what is CEF?
  2. How to integrate Unity and HTML5 Applications
  3. Gotchas and problems

5 of 89

But first...Why not Aframe?

Why would I choose Unity?

6 of 89

7 of 89

8 of 89

9 of 89

And look at those UIs!

10 of 89

11 of 89

12 of 89

13 of 89

14 of 89

Who does this???

15 of 89

2013

16 of 89

17 of 89

18 of 89

NASA Onsite - allows NASA Scientists to work virtually on Mars

19 of 89

CAE Videmix AR

20 of 89

CEF

(Chromium Embedded Framework)

21 of 89

CEF

“The Chromium Embedded Framework (CEF) is an open source framework for embedding a web browser engine based on the Chromium core. It allows developers to add web browser control and implement an HTML5-based layout GUI in a desktop application”

-Wikipedia

(C, C++, Delphi, Go, Java, .NET / Mono, Visual Basic 6.0, and Python and runs on Linux, Mac OS X and Windows)

22 of 89

23 of 89

Why Unity?

Why not just Electron?

24 of 89

Why Unity?

  1. It exports to everything
  2. VR/AR and other hardware support
  3. THE ASSET STORE

25 of 89

It works on everything!

26 of 89

Unity’s technology is at the heart of 75% of all VR and AR content

-FastCompany

27 of 89

Asset Store

28 of 89

358

5,700

58, 902

29 of 89

Amazing Editor

30 of 89

Shader Support

31 of 89

Shader Support - Shader Graph

32 of 89

Shader Support - Geometry Shader

33 of 89

Shader Support - Compute Shaders

34 of 89

Cinemachine and Timeline - Unity for Film/Animation

35 of 89

36 of 89

Unity + HTML5

Bridging the Gap

37 of 89

38 of 89

Unity + HTML5

  1. Overview
  2. Desktop
  3. Browser/WebGL
  4. Isomorphic?
  1. Set up Unity and Browser
  2. Send Messages From the Browser
  3. Send Messages From Unity

39 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

Browser to Unity

Unity to Browser

40 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

41 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

Embedded Browser

  1. Awesomium browser - not totally up to date with HTML5/CSS3, not actively maintained
    1. https://github.com/bkeiren/AwesomiumUnity
    2. https://github.com/khrona/UnityAwe
  2. Embedded Web Browser Asset

42 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

43 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

44 of 89

45 of 89

  1. Set up Unity to Listen to the Browser

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

46 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

47 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

48 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

49 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

50 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

51 of 89

2. Have browser send messages to Unity

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

52 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

53 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

54 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

55 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

56 of 89

57 of 89

3. Unity Messaging the Browser

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

58 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

59 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

60 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

61 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

62 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

63 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

64 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

65 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

66 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

67 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

68 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

69 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

70 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

71 of 89

72 of 89

Unity + WebGL

Isomorphism

73 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

74 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

75 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

76 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

77 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

78 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

79 of 89

Unity + HTML5

  • Overview
  • Desktop
  • Browser/WebGL
  • Isomorphic?

80 of 89

I wish I knew...

81 of 89

Different Environments

WebGL + Desktop

Oculus Go

+

Mobile

82 of 89

Unity UI vs CEF UI

83 of 89

Language Compatibility Level

Desktop > Mobile > WebGL: Not all libraries work in all environments�

84 of 89

85 of 89

The mission...

86 of 89

87 of 89

88 of 89

89 of 89

Be Creative