Simple HTML5 Game Development
4.2 (101 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
1,283 students enrolled

Simple HTML5 Game Development

Learn to build a complete web or mobile video game using HTML5. No previous programming or web development required.
4.2 (101 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
1,283 students enrolled
Created by Andy Harris
Last updated 1/2016
English [Auto]
Current price: $13.99 Original price: $19.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 13 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Build a basic web page with HTML
  • Use CSS to add essential style to your page
  • Understand the main concepts of programming (variables, conditions, loops, branches, functions, and arrays) using JavaScript
  • Use JavaScript and the Document Object Model to build a basic interactive web page
  • Understand how a Scene works in the simpleGame library, and how that adds space and time elements to your game.
  • Build a basic Sprite object and learn how to build custom sprites to represent any game element you can imagine
  • Practice object-oriented programming to build complex and interesting game objects that can respond to user input, collisions, and other game events
  • Manage standard game events like input, boundary-detection and collisions
  • Manage sound effects
  • Learn to use the mouse and keyboard for basic user input
  • Explore how physics can be used for more interesting control like space vehicles, realistic acceleration, and skidding.
  • Extend your games to mobile platforms with touch and tilt input, and learn to add icons and full-screen behavior to your games
  • Learn not just the code, but the process of building your own game from idea to reality
  • Explore the simpleGame engine and see how it does all the magic. Learn how you can extend it yourself for even more power.
Course content
Expand all 64 lectures 13:12:31
+ Building a basic page - and an epic adventure
5 lectures 01:02:13
Your first game will be a basic "choose your own adventure" written with HTML and CSS.  Take a look at a simple sample game and see how you will build this project.  

The video features the game you can find here. Open the game in your browser and use ctrl-u (or the 'view source' command) to view the code.

Preview 08:04
Resources mentioned in this lecture:

Preview 18:33

Pages mentioned in this lecture:

Adding Pictures and Links

Change how your web page looks by adding CSS.

Files used in this example:

Note that we're deliberately discussing a very small subset of CSS. If you want to learn more about CSS, please see my book HTML / CSS All in One for Dummies.

Modifying a page with CSS

Think about the design of your adventure game and how you will implement it in HTML and CSS.

Create your nodes, make your images into links, and add sound effects for even more fun.

Files demonstrated in this video:

Adding Audio and Building the Adventure Game
Building an adventure game with basic HTML and CSS
12 questions
+ Talking to the Page
5 lectures 01:00:53

Files used in this video:


Introducing the word game

Files used in this video:


Building a basic form

Files used in this video:




Basic Input and Output

Learn to build the form for the word story game. While you already know all the HTML code you need for this game, the code won't look good on its own. Add a floating CSS layout to make the page look great.

Code used in this lecture:



Form.css (Use this in your own forms to add a floating layout.)

Creating a good-looking form with CSS

Put together all you've learned to build the word story. Tie together HTML, CSS, and JavaScript code. Files used in this video:




Building the word story game
Basic input and output
12 questions
+ Coding Like a Pro
6 lectures 01:41:28

Learn how JavaScript works with data, and a surprising error you can get when you trust the computer too much. Prevent this type of error by converting data to the format you need.

Programs used in this video:


Managing Data Types

Computers seem to make decisions when programmers use a concept called a condition. Learn how to build your own conditions in several variations of the if statement.

Examples used in this video:






Note if you're using the "HTML5 Game Programming for Dummies" book, these examples were actually taken from another book with a bit more detail (HTML5 / CSS3 All in One for Dummies) I didn't have as many examples on the HTML5 Gaming page, so I borrowed from another book for clarity.

Adding Branching Behavior

Often you'll need the computer to do something a certain number of times (Each alien in your game might need to drop a bomb, for example.) Programming languages have a structure called a "for loop" for exactly this situation. Look at a number of for loops to see how the computer can count efficiently.

File viewed in this video:


Looping with the For Loop

The while loop is a more flexible alternative to the for loop. Learn how to build a well-behaved while loop. You'll also learn how to build a loop that can exit in multiple ways, and how to watch your code run line-by-line to detect logic errors.

Files used in this video:



More flexible loops with While

You've been using simple functions, but now you learn how to make them work well with the rest of the program. Add parameters to input values into functions, and use return values to have functions produce a value.

Files used in this video:


Enhancing functions with parameters and return values

If functions are used to put together multiple instruction, you might wonder if there's a way to group data as well. Of course, there is such a concept, and in programming this is the array. Learn to build arrays in a couple of ways. Learn how for loops are the natural companion to for loops, and how to access and modify data in an array.

Files used in this video:



Using arrays
Coding like a pro
13 questions
+ Building a text-based game
3 lectures 28:57

With all the basic programming concepts covered, you're ready to build a basic text-based game. Take a look at the game, then learn about how to plan a game to make the programming as easy as possible.

Files used in this video:



Designing the number guesser

Games often include random behavior. Computer programs use random number generation for practically all random numbers. Learn how to build a random number within any range of values.

Files used in this video:


Generating random numbers

Take all the concepts you've learned up to now and build a complete text-based game! This game features HTML, CSS, JavaScript, conditions, functions... pretty much everything we've done so far.

Files described in this video:




Building the number guesser
Random numbers and guessing game
10 questions
+ Introducing the Game Engine
4 lectures 47:00

HTML5 doesn't directly support game programming, but there are a number of libraries which add support for the main aspects of gaming. Learn about the simpleGame library, designed specifically to be easy to learn and use while building great games. Look at a simple animation which demonstrates the basic use of this engine.

Files used in this video:


Please be sure to run this (and all files in this course) directly, as the performance in the videos tends to be more jerky than in real life.

Introduction to the SimpleGame Engine

Overview of the simpleGame engine. Learn how to find the latest version of the engine, how to download it for use in your own games, and see the main features of the engine.

Files used in this video:

book main page Main page for this course's companion book

simpleGame.js Version of the simpleGame library used in this course

simpleGame Documentation Official documentation of the simpleGame library

template Save a copy of this code for a convenient starting place for your games

SimpleGame Overview

The most obvious difference between a game and an animation is user interactivity.

Learn how to check for keyboard input, how the keyboard array works, and how to set up an image for use in game animation.

Files used in this video:


car.png car image used in game. Note images should face to right and have a transparent background.

Basic Keyboard Interaction

Learn how to use a special online tool to build experimental games even if you don't have anything installed on your computer. Play around with the simpleGame engine any time you can get to a web browser.

Files used in this video:


Using the simpleGame Practice Tool

Make sure you're solid on the basic concepts behind game engines and 2d gaming

overview of 2d games quiz
8 questions
+ Creating Game Elements
4 lectures 31:51

Object-Oriented-Programming is one of the most exciting ideas in computer programming, and it's a major part of game development. Learn the basic elements of OOP by customizing a Sprite to make a new object. Learn about inheritance, properties, and methods.

Files used in this video:

critter.html - A very basic sprite

critterConstructer.html - Turning a critter into an object

critterSpeed.html - Adding a property to an object

critterChangeSpeed.html - Adding a method to an object

Introducing Objects

Sound effects are an important aspect of game development. Learn how to build and play sound effects with the simpleGame Sound object.

Files used in this video:


audacity - audio editor mentioned in this video

Adding Sound Effects

All the best things in gaming happen when sprites collide with each other. Learn two ways to detect sprite collisions, and understand the strengths and limitations of each.

Files referenced in this video:

colTest.html - Investigate bounding-rectangle collisions

boundRect.png - Understand the biggest weakness of the bounding box paradigm

distance.html - Explore distance-based collision detection

Detecting Collisions
Working with the Timer

Review the concepts behind the main game elements (scene, sprites, collisions, and sound effects.)

Creating Game Elements Quiz
10 questions
+ Getting to a Game
5 lectures 48:55

Game ideas don't go anywhere unless they begin with a solid plan. Learn how to build a game design document detailed enough that you'll actually be able to program with it.

Files used in this video:


Building a game design diagram

Once you've decided on the overall design and created some intermediate goals, start building the component elements. Learn how to build the fly and the frog in isolation before adding them to your game.

Files used in this video:



Building prototypes: the Frog and the Fly

All the interesting things in arcade gaming happen when sprites collide with each other. Add collision detection and a simple sound effect to the frog game.

Files used in this example:


Adding collisions and sound effects

Once you know how to work with a single fly, learn how to use arrays to manage multiple flies. Learn how to build multiple flies in an array, then how to use loops to create and update the flies. For once, you're introducing bugs into a program on purpose!

Working with multiple flies

Finish your game by adding a simple scorekeeping and timing mechanism to it. Learn a sneaky but simple way to reset your game.

Adding timing and a game reset feature

Now that you know all the basic aspects of game development, put it all together to build a complete game.

Getting to a Game Quiz
10 questions
+ Motion and Animation
7 lectures 01:13:31

Getting your sprites to move realistically requires a very basic knowledge of physics. Learn how Newton's laws of motion apply to game programming, and experiment by building an asteroids-like spacecraft.

Files used in this video:


Simple Physics - motion in space

Understanding acceleration and drag are the secret to realistic vehicle motion. Learn a simple mechanism for adding these features to your sprites.

Files used in this video:


Adding (kind of) realistic acceleration and drag

Drifting and skidding behavior can be quite difficult to program, but here you will learn a simple mechanism for creating fun skidding and drifting behavior for your sprites.

Files used in this video:


Drifting and Skidding made simple

Many games utilize some sort of gravitational pull. It turns out gravity is quite easy to implement when you understand force vectors. Learn to implement the type of gravity used in side scrollers and flying games.

Files used in this video:


Adding basic gravity

Orbital physics is rocket science, but it's really not that hard. Learn how a basic formula can build realistic orbits for a very fun game dynamic.

Files used in this video:


Fun with orbital mechanics

What good is a vehicle without a rocket launcher? Learn the basics of firing a missile or other projectile from a sprite. Also learn how to create a stream of bullets with a random spread and multiple bullets shotgun-style.

Files used in this video




Adding weapons and projectiles to sprites

Another aspect of animation is the use of a sprite sheet to combine multiple images to create animated characters. Learn how to build an animated character from a sprite sheet.

Files used in this video:



SpriteSheet animation
Physics and motion
10 questions
+ Going Mobile
5 lectures 49:01

HTML5 is great for mobile development. Look at a variation of the frog game designed for mobile use, and learn how to create games that work well on mobile devices, even when the device is not on the Internet. Learn also how to add an icon to a mobile web game.

Files used in this video:

mobile Frog Game (note this game is optimized for mobile devices - it may not work on a desktop machine.) Use save link to desktop on IOS to keep a local copy of the game.

cache.manifest The cache manifest file used when building this game.

Overview of Mobile HTML5 game development

To see your games on a mobile device, you'll need to post it to some kind of hosting service. Learn the basics of setting up such a service. Also, learn how to set the size and position of the scene to best fit your device screen.

Files used in this video:


Using a hosting service and setting the game size

Mobile devices do not support a mouse, and the touch interface isn't exactly like a mouse. Learn how you can treat the touch interface like a mouse, and how to add a simple button to your game.

Files used in this video:



Using buttons and the touch interface as a virtual mouse

Touch interfaces are often used as virtual joysticks. The simpleGame library has a virtual joystick object. Learn how to use it in a couple of ways. Learn how to build a convertible game that works with either a keyboard or a touch interface, and learn a clever technique for making the virtual joystick act just like the arrow keys.

Files used in this video:





Working with the virtual joystick

Many mobile devices come with a built-in accellerometer which can be used to detect the orientation of the device. Learn how to harness this feature in your games.

Files featured in this video:



Working with tilt interfaces
Going Mobile Quz
10 questions
+ SimpleGame in depth
4 lectures 40:15

Get an overview of the simpleGame library and the scene element.

File used in this video:

simpleGame documentation

Understanding the scene class

The sprite object is one of the key elements of simpleGame. Learn all of the methods and properties of this important object.

File used in this video:

simpleGame documentation

Using Sprites

SimpleGame includes a number of utility objects. Learn the various aspects of the sound system, the keyboard mechanism, and the timer object.

File used in this video:

simpleGame documentation

Using sounds, keyboard, and the timer

SimpleGame includes a number of useful elements for mobile game development. Learn how to use the touch interface, virtual joystick, and tilt interface.

File used in this video:

simpleGame documentation

Using the virtual joystick and accelerometer
SimpleGame.js in Depth
10 questions
  • Access to an HTML5 - compliant browser (Google Chrome 23 or greater recommended)
  • Access to a higher-end text editor (specific examples linked in course)
  • Any major operating system (Windows 7+, Mac OSX, Linux)
  • Comfort with middle school math (coordinate systems, basic arithmetic, some knowledge of angles)

Learn to build web and mobile games with HTML5.  Even if you have no experience in programming or web development, you can create your own games.

This course begins with a quick overview of web development in HTML5 and shows you the basic web framework used in all modern pages.  It then teaches essential programming concepts using the JavaScript language embedded in all modern browsers.

The course centers around a game engine designed especially to be easy to understand. The game engine and all the other tools needed for the course are completely free. You won't need to purchase anything to build great games.

By the end of the course, you'll be able to build 2D games on the web as well as on mobile devices like the iPad and mobile phones.  

Who this course is for:
  • Anyone interested in game development.
  • Web or programming experience is a bonus, but not required
  • Suitable for middle school, high school, or adult learners. Motivated younger students will also enjoy the course, but they may need help from an adult. Perfect course for kids and parents to take together!
  • We'll have fun, but making a game is complex, and requires a commitment of time and effort. You'll only get a lot out of this course if you put a lot in.