Game Development using Flutter
1
Presented By:

Shady Selim,
Senior Software Engineer
Jan 31st, 2020
● 20 years of experience in web and mobile development
● Official Google Speaker
● GDG Helwan & Kotlin Cairo User Group Founder & Leader
● Andela Senior Software Engineer
● Mentor in Udacity Nanodegree
● Mobile & Web Evangelist
● Technology savvy
● Think tank
● UI/UX freak
2
Speaker Bio
● Cross Mobile languages
● Intro to Flutter?
● What is Dart?
● Flutter Animation
● Some Samples of Flutter games
● What are Game Engines?
● Famous Flatter Games Engines
● How to start?
3
Index
Cross Mobile Languages
4
Mobile OS
Linux Kernel and Device Drivers
Core OS
Core Services & Media
Cupertino Widget
IOS
Linux Kernel and Device Drivers
Libraries & Run Time
Applications & Framework
Material Design Widgets
Android
10
Swift Kotlin
Native Approach (Single Platform)
OEM Widgets
Cupertino
Material Design
Canvas
Events
Location Bluetooth
Camera Sensors
Java
Kotlin
Swift
Objective-c
Application
Services
OEM SDKs
Class A Class B
Popular Cross Tools
Web View
Canvas
Events
Location Bluetooth
Camera Sensors
JavaScript
HTML
CSS
Application
Services
Bridge
Class A
Canvas
Events
Location Bluetooth
Camera Sensors
Transferred
Native Code
Application
Services
FrameworklibrariesSDK
OEM Widgets
Cupertino
Material Design
Class B
Intro to Flutter
16
What makes Flutter unique?
• Compiles to Native Code (ARM Binary code)
• No reliance on OEM widgets
• No bridge needed
= Blazing Fast Speed
Canvas
Events
Location Bluetooth
Camera Sensors
Native ARM
Binary
Code
Application
Services
Platform
Channels
Flutter Widgets
Cupertino
Material Design
Flutter Approach
So what is Flutter ?
Flutter is the next step in
App development
Speed and performance
Fast , smooth performance
Flexibility
Customize anything - Brand
first design
Native look and feel
Familiarity , ease of use
Rapid Development
Easy to learn , predictable
Flutter Architecture
Everything is a Widget with Flutter
Everything is a Widget App Widget
Material Widget
Scaffold Widget
Column
Container
Text
Button
Render Tree
Hot Reload
What is Dart?
24
What is Dart?
• Open-source web programming language developed by Google.
• Class-based, single-inheritance, object oriented language with C-style syntax.
• Supports interfaces, abstract classes, reified generics, strong typing (Dart 2).
• Next generation systems language (Fuchsia ‘Magenta’ – AdWords)
https://www.dartlang.org/community/who-uses-dart
Flutter Animation
26
Great looking and Fast Animation
https://flutter.io/widgets/
Sprites & Sprite Sheet!?!
https://rive.app/
• https://flutter.dev/docs/development/ui/animations
• https://flutter.dev/docs/development/ui/animations/tutorial
• https://github.com/icatalud/floop
• https://flutter.dev/docs/development/ui/widgets/animation
• https://api.flutter.dev/flutter/animation/animation-library.html
Helpful Links
Samples of Flutter games
32
https://flutterawesome.com/tag/games/
Break Guns Using Gems
https://github.com/fireslime/bgug
https://www.didierboelens.com/2018/11/flutter---crush/
Flutter Crush Algorithm Start a Level
https://blog.usejournal.com/introduction-to-game
-dev-with-flutter-45f0275cd6b8
Good Read!
What are Game Engines?
36
Your average game engine provides developers with a way to add things like:
• Physics
• Input
• Rendering
• Scripting
• Collision detection
• Artificial intelligence
• and more without the need to program them
What are Game Engines?
https://www.gamedesigning.org/career/video-game-engines/
Some game engines experience an evolution over time and develop a family tree
https://en.wikipedia.org/wiki/Game_engine
Creating a racing game in Blender Game Engine
Unreal Engine Unity
CryEngineGodot Engine
https://instabug.com/blog/game-engines/
Famous Flatter Games Engines
41
https://www.spritewidget.com
https://flame-engine.org
How to start?
44
IDE
How To install ?
https://flutter.dev/docs/get-started/install
$ flutter doctor
Easy Check !
QA!?
48
Senior Software Engineer? Apply Here:
andela.com/GGJ-event
49
50
Cairo, Egypt
Shady Yehia Selim
shady.selim@andela.com
/Shady-Selim
/ShadySelim
Senior Software Engineer

Game development using Flutter