JavaScript Programming: Learn by Making a Mobile Game

Funded on Kickstarter by 500+ people, take this ultimate project-based course to learn how to code in JavaScript.
4.6 (107 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
4,625 students enrolled
92% off
Take This Course
  • Lectures 43
  • Exercises 5 coding exercises
  • Length 3.5 hours
  • Skill Level Beginner Level
  • Languages English, captions
  • Includes Coding Exercises New!
    Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 4/2015 English Closed captions available

Course Description

Update: Added live coding exercises! Put into practice the skills you learn by coding in the browser - Only a handful of Udemy courses have this new feature

Successfully funded in Kickstarter by 500+ people

Learn Silicon Valley's hottest programming language in a visual and colorful way.

The goal of this course is to teach you the basics of JavaScript programming. The focus of the course is mainly on HTML5 game development, but all the concepts we cover are also used in web, mobile app and server-side development.

JavaScript is eating the world. Starting as a web scripting language, JavaScript is now used not just for web development, but also game, mobile app, server and database development.

This course will teach you how to code in JavaScript from scratch in a visual and colorful way. You will learn to code by making a mobile game. That's right! you read well. By making your first mobile game you will be learning JavaScript's core concepts (which also apply to other programming languages!), as opposed to the usual dull style found in all other JavaScript courses.

This approach to teaching JavaScript has never been tried before and that's why 578 people funded it's creation via Kickstarter.

Course author Pablo Farias Navarro is a developer, educator and entrepreneur. Founder of ZENVA, Pablo has authored over 40 programming courses in different languages, and has created educational content for companies such as Amazon and Intel. Pablo has also run live game development workshops at the HTML5 Developer Conference in San Francisco.

What are the requirements?

  • Students need to download Google Chrome and a code editor of their choosing (the course uses Sublime Text)

What am I going to get from this course?

  • By the end of this course, students will have basic JavaScript programming skills and will be able to apply these in HTML5 game development projects.
  • Everything covered in this course can also be used in web, mobile app and server-side (Node.js) development

Who is the target audience?

  • This course is meant to be for people with basic HTML and CSS skills who want to learn JavaScript for web, app and/or game development

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Introduction to the Course

This lecture introduces the course and it's requirements. The final project is showcased.


Find the course source files in the Supplementary Material tab.

Section 2: Basic JavaScript

In this lesson you will learn how to include JavaScript code in a HTML document using different methods.

1 question
Practice what you have just learned! How to include a JavaScript file.

In this lesson you will learn how to create variables in JavaScript.


In this lesson you will learn to perform arithmetic operations in JavaScript.

1 question
In this coding exercise you have to create a variable and assign it the sum of two other variables.

In this lesson you will learn how to activate and use the console in Google Chrome.


In this lesson you will learn to create JavaScript objects. You will learn to retrieve and assign property values.


This Challenge consists in creating a Player object.


This video presents the solution of the Player Object Challenge.


In this lesson you will learn to create strings and to perform basic string operations.

1 question
Create and concatenate strings
Section 3: Arrays

In this lesson you will learn the concept of arrays. How to create arrays, how to get and set array values and what array indexes are.


In this lesson you will learn how to add and remove elements from an array.


In this lesson we will cover multi-dimensional arrays. You will learn how to navigate and modify values of arrays contained inside other arrays.


In this lesson we combine arrays and objects in different ways and cover how to access and modify properties in each scenario.


In this Challenge you have to add additional enemies to the game.


This video shows the solution to the Adding Enemies Challenge.

Section 4: Functions and Methods

In this lecture you will learn what functions are and how to create them.


In this lesson you will learn and understand the concept of scope. Variables created in different parts are placed into different scopes.


In this lesson you will learn to create functions inside other functions.


In this lesson we cover methods, which are functions added as properties in an object.


In this lesson you will learn to create function expressions, which is when you save a function in a variable.

1 question
Create a function that calculates the total gold you collected in a game
Section 5: Making it Visual

In this lesson we introduce the HTML5 Canvas API and we draw a rectangle on the screen.


In this lesson we explain how to animate the canvas by moving a rectangle.

Section 6: Conditional Statements

In this lesson we introduce the if and else statements so that you can test a condition and carry out different courses of action depending whether the condition is true or false.


In this lesson you will learn to create and evaluate boolean expressions, which can be either true or false.


In this Challenge you will have to use if/else statements to modify the type of movement a rectangle performs.


This video presents the solution to the Conditional Movement Challenge.

Section 7: Loops

In this lesson you will learn to use while loops to repeat an action multiple times.


In this lesson you will learn how to use for loops to repeat an action multiple times.


In this lesson we cover the break and continue keywords, which are used to control the flow of the loop.


In this lesson we cover the forEach method that arrays have. This method is used to traverse an array.


In this lesson we'll put in practice some of the concepts learned so far to make the game enemies bounce of the edges of the rectangle.

1 question
Traverse an array using a while loop
Section 8: Events

In this lesson we cover the load event, which is triggered when the DOM is fully loaded in the web browser.


In this lesson you will learn to use the mousedown and mouseup events.


In this lesson you will learn to use the touchdown and touchup events to make your app touchscreen-friendly.

Section 9: Finishing Up the Game

In this lesson we'll implement collision detection by using a simple formula to check for overlapping rectangles.


In this lesson we add the goal of the game. The game ends when the player reaches the goal.


So far we've worked with colored rectangles. In this lesson we'll replace those by actual sprite images.


This is the final Challenge of the course. In this Challenge you have to make the game multi-level and make each level more difficult than the previous level.


This video presents the solution to the previous Challenge.

Section 10: Intermediate JavaScript Topics

In this lesson you will learn to use the Namespace pattern to avoid variable name overlapping.


In this lesson you will learn the basics of Object-Oriented Programming in JavaScript and the role the prototype object plays.

Section 11: Course Outro

Well done! You've reached the end of the course. This video is the outro of the course. We hope to see you in more ZENVA courses in the future.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Pablo Farias Navarro, Software Developer and Founder of ZENVA

Software developer and founder of ZENVA. Since 2012, Pablo has been teaching online how to create games, apps and websites to over 200,000 students through the Udemy and Zenva Academy platforms, and created content for companies such as Amazon and Intel.

Pablo is a member of the Intel Innovator Program in the Asia Pacific, and has run live programming workshops in San Francisco, Brisbane and Bangalore.

Pablo holds a Master in Information Technology (Management) degree from the University of Queensland (Australia) and a Master of Science in Engineering degree from the Catholic University of Chile.

Ready to start learning?
Take This Course