Flame & Flutter with Dart : Build your First 2D Mobile Game
What you'll learn
- Use Flutter and Dart to write a complete 2D Game on top of the Flame Engine. No prior experience necessary.
- Create from scratch, a game based on the famous retro-game from ATARI: Asteroids.
- Learn collision detection, particle physics, frame independent motion, parallax, sound design, and other advanced topics in game development.
- Master design and coding fundamentals that apply to all 2D Game engines.
- Think like a Software Architect. Go through the complete process of designing, architecting, and coding the game.
- Learn how to write once and deploy to iOS, Android, and the Web from a single codebase.
- Develop a solid foundation for game design and game creation that will empower you to build your own games.
- Learn how to use Object Oriented Programming practically and effectively using Design Patterns
- We assume that you have some coding experience with an Object Oriented language such as Java, C++, C#, Swift, or TypeScript.
- Some knowledge of Flutter/Dart is helpful but not strictly required. We will teach you everything you need to know.
- Access to a computer. A Mac, Windows, or a Linux based operating system is equally fine. All the tools are OS Independent.
- You should have access to a mobile device but this is not strictly necessary as we will develop our code on an emulator/simulator first.
Have you ever dreamed of creating your own mobile game?
Have you ever wanted to code your own mobile game?
If the answer is YES, then THIS course is for you.
You can learn to code a 2D mobile game from the ground up.
Welcome to the Flame Engine 2D Game Crash Course where you will learn how to design and code a full mobile game in less than 6 hours.
There are so many game enthusiasts who would love to learn how to write mobile games, but do not necessarily have the time to dedicate to it.
Many Game Engines have a steep learning curve, so creating a full mobile game would take considerable time and effort.
We have created this course for all the coders who want to get into creating their own mobile game using a 2D Game Engine, and more importantly, we have created this course to take you from 0 to hero in less than 6 hours.
We have provided core 6 hours of lectures but, we also provided more than 5 extra hours of Bonus Material including Coding Exercises and extra eplainers.
Why Flame Engine
The Flame Engine is a minimalist 2D game engine that runs on top of the Flutter framework. So it is light-weight with a small footprint.
This is perfect for mobile games.
Advantages of The Flutter Framework
You work with one code base but get multiple platform deployment. Basically write once, and deploy to both iOS and Android. This is a huge advantage as it saves you time and effort.
And this is great for mobile games since we do not rely on the specific OS GUI as we basically take over the screen and create our own GUI from scratch.
Crash Course Format
This is a crash course. So we remove all the fluff from the usual approach and we focus and zone in, with laser precision, on the fundamentals that apply to all 2D engines. We explain the necessary fundamentals such as:
Inter-Component Communication and Messaging
Component Interoperability and Composability
Math for Game developers such as:
Game Parallax For Creating Complex Background Motion
Sound Design - For Adding Sounds, Sound Effects, and Music to Your Game.
All The needed API will be explored as well.
Focus on Fundamentals
We will spend the first 3 hours focusing on fundamentals with sample code and architectural examples.
Our approach to teaching the material is a bit different from most courses. We take the architectural approach. This means that we will also teach you some Software Engineering while we are teaching you about the Flame Engine.
We will use UML diagrams to show you the context of what we are doing. All of this is to give you a better perspective of how everything fits together.
In other words we will not only work with code. The main objective here is to teach you to think like a Software Architect. We do not want you to just code this game. We want you to go through the process of designing and architecting it in a professional manner.
Using Case Studies
Part of how we teach you in this course revolves around practical case studies. Each case study shows you a full solution to a given element of 2D game coding such as for example Joystick control or collision detection.
The Game we will develop
We will develop, from scratch, using our architectural approach, a game based on the famous retro-game from ATARI: Asteroids.
This is a perfect game for learning all the fundamentals.
Why this particular game
This is a perfect game to learn a 2D game engine for the following reasons:
It has great Game Mechanics such as:
Tracking of Score and Player's Lives
Firing of Bullets
Asteroid Motion/Rotation and Splitting up
Occasional UFO Bonus Showing up
Deterministic Game Level Generation from a JSON File
This will lead us to fully explore and understand:
Game Loop Update And Render
Timer Component Callbacks
Refresh-Rate Independent Rendering
Sounds Design and Game Music
Parallax Effects for Background
This game is also great to be played on both a phone as well as a tablet device.
We assume that you have some coding experience and we also assume that you know Flutter/Dart and have worked with it.
But in case you have not worked with Flutter do not fret!
The course is designed to help you with the setup and a solid understanding of the language elements because of the architectural approach.
So in reality all you need is experience with any Object Oriented language such as Java, Swift, C#, C++, or TypeScript and you will be fine!
Practice Makes Perfect
For each Case Study we have provided you with a number of Coding Exercises.
We also provide Solution Videos to explain the solution itself, along with code and some PDF materials as well.
Who this course is for:
- We have created this course for all the coders who want to get into creating their own mobile game using a 2D engine.
- Coders new to game development who want to write one codebase and deploy their game on multiple platforms.
"Coding lends you the ability to create your own universe."
I am a Software Architect, Game Developer, Media Enthusiast and an occasional musician and videographer.
I love Competitive coding and competitve development which I did with TopCoder.
I am passionate about 2D game development, especially for mobile devices.
Most of my work in the industry involved being a full-stack developer. I did work for companies such as Facebook, Google, Microsoft, and WWF.