We may earn an affiliate commission when you visit our partners.
Frank Dvorak

Old is gold. Let's get inspired by the classic games from the 80's and add our own graphics and game features. Explore the interstellar void and use 3 different weapon types to burn through swarms of space bugs of different types, some larger than the others. We will start with a game loosely inspired by the classic Space Invaders arcade and we will experiment with different additional features such as boss battles, super weapons and different enemy types.Let's explore object oriented programming with JavaScript and implement a useful set of basic 2D game development techniques such as object pool design pattern, sprite animation, timing and staggering techniques using timestamps and much more.

Read more

Old is gold. Let's get inspired by the classic games from the 80's and add our own graphics and game features. Explore the interstellar void and use 3 different weapon types to burn through swarms of space bugs of different types, some larger than the others. We will start with a game loosely inspired by the classic Space Invaders arcade and we will experiment with different additional features such as boss battles, super weapons and different enemy types.Let's explore object oriented programming with JavaScript and implement a useful set of basic 2D game development techniques such as object pool design pattern, sprite animation, timing and staggering techniques using timestamps and much more.

Don't forget to download all the bonus gifts. Students of this course will get a pack of premium quality 2D game art, this time in a sci-fi space theme. You can also download the source code from multiple stages of the project, as we gradually add more features.

We will implement multiple enemy types:

Beetlemorph - basic enemy, 1 hit is enough

Rhinomorph - armored enemy, multiple lives, multiple damage states

Mantismorph - massive boss size enemy, increasing pool of lives

Eaglemorph - when hit, it will sacrifice a body segment and it will spit it back

Squidmorph - unknown alien bug, use everything we learned to implement your own unique enemy type

and more ...

Have fun.

Enroll now

What's inside

Syllabus

Project Setup
Introduction
What will we learn? (Project features)
Build a game inspired by the classic Space Invaders arcade
Read more
Game and player objects
Keyboard controls
Object pool
Enemy waves
Collision detection
Counting score and drawing game text
Game restart method
Beetlemorph enemy class
Sprite animation explained
Animation timing
Player animation
Extra features: Armored enemies
Rhinomorph enemy class
Extra features: Boss battles
Boss class
Boss movement
Boss vs player collision
Extra features: Super weapons
2 laser classes
Laser damage
Resource management
Eaglemorph enemy class
Enemy projectiles
Projectile interactions
Squidmorph enemy class
Lobstermorph enemy class
Build another game from start to finish

Now that we understand the basics of JavaScript game development, let's build another project. It's another space game, but this time with a twist!

Planet and Game Class
Mouse Position
Player Spaceship
A little bit of Math
Understand Canvas Rotation
Debug Mode
Object Pool
Player Projectiles
Enemy Pool
Collision Detection
State Design Pattern
Periodic Events
Asteroid Enemy Class
Sprite Animation
Lobstermorph Enemy Class
Game Text
Sounds
Player Lives
Beetlemorph Enemy Class
Rhinomorph Enemy Class
JavaScript Mobile Game
Make your first mobile game
Make Everything Responsive
Enemy Class
Object Pool Design Pattern
Periodic Triggers
Mouse Controls
Touch Events
Start and Restart
Fullscreen Games
Simple Crew Members
Simple Enemy Type
Animation Timing
Enemy Variety
Randomized Space Crew
State Management in Games

Save this course

Save Remake Retro Games with JavaScript to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Remake Retro Games with JavaScript with these activities:
Review JavaScript Fundamentals
Solidify your understanding of JavaScript fundamentals to better grasp the game development concepts used in the course.
Browse courses on JavaScript Fundamentals
Show steps
  • Review variables, data types, and operators.
  • Practice using control flow statements (if/else, loops).
  • Familiarize yourself with functions and objects.
Eloquent JavaScript, 3rd Edition
Use this book to reinforce your understanding of JavaScript concepts and improve your coding skills.
View Melania on Amazon
Show steps
  • Read the chapters on data structures and functions.
  • Work through the exercises at the end of each chapter.
  • Experiment with the code examples in your own projects.
Create a Simple Sprite Animation
Practice sprite animation techniques to gain hands-on experience with a core game development concept.
Show steps
  • Find or create a simple sprite sheet (e.g., a character walking).
  • Use JavaScript and HTML5 Canvas to display the sprite.
  • Implement animation by cycling through the sprite frames.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Collision Detection Exercises
Sharpen your skills in collision detection, a crucial aspect of game development.
Show steps
  • Implement basic AABB (Axis-Aligned Bounding Box) collision detection.
  • Practice detecting collisions between different shapes (circles, rectangles).
  • Optimize collision detection for performance.
Document Your Game Development Journey
Create a blog or video series documenting your progress and learnings throughout the course.
Show steps
  • Choose a platform (blog, YouTube, etc.).
  • Document your challenges, solutions, and insights.
  • Share your content with the online community.
Contribute to a JavaScript Game Library
Contribute to an open-source JavaScript game library to deepen your understanding and collaborate with other developers.
Show steps
  • Find a suitable open-source game library on GitHub.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.
HTML5 Game Development by Example
Explore practical examples of HTML5 game development to expand your knowledge and inspire new projects.
Show steps
  • Choose a game example from the book.
  • Recreate the game from scratch, understanding each step.
  • Modify the game to add your own features and improvements.

Career center

Learners who complete Remake Retro Games with JavaScript will develop knowledge and skills that may be useful to these careers:
Game Developer
A Game Developer brings virtual worlds to life, crafting engaging experiences for players. This frequently involves programming game logic, implementing game mechanics, and working with animation. This course helps you begin this journey by building retro games with JavaScript. Working through projects like Space Invaders can help you to understand game and player objects, keyboard controls, object pools and other concepts. The course material may also prepare you to implement enemy waves, collision detection, and game restart methods. Such skills are crucial for any aspiring Game Developer.
Gameplay Programmer
As Gameplay Programmer, your work focuses on implementing the interactive elements of a game. This means programming the controls, character movement, enemy behavior, and all the other systems that make a game fun. It is a career where your creativity and problem-solving skills converge. This course helps you build games inspired by the classic Space Invaders arcade. It can help you learn about game and player objects and keyboard controls. In addition, working through the class may benefit you as you implement enemy waves and collision detection. This course provides the tools you need to succeed as a Gameplay Programmer.
Creative Coder
A Creative Coder uses programming to create art, interactive installations, and other innovative digital experiences. This often bridges the gap between technology and art. This course helps you build a strong foundation in this area by teaching you how to create retro games using JavaScript. By adding your own graphics and features, you can express your creativity. The course also covers sprite animation, timing, and staggering techniques, which may prove valuable for a Creative Coder.
Software Developer
A Software Developer is responsible for designing, coding, and testing software applications. They may work on a variety of projects, from web applications to mobile apps to desktop software. This course helps you understand the fundamentals of software development by building retro games with JavaScript. This involves implementing object-oriented programming principles and using techniques like sprite animation and collision detection. Exploring these different approaches, as taught in the course, will benefit any Software Developer.
Software Engineer
A Software Engineer designs, develops, and tests software applications. This often involves writing code, debugging, and collaborating with other engineers to create robust and scalable systems. This course helps you understand the fundamentals of software development by building retro games with JavaScript. This involves implementing object-oriented programming principles and using design patterns like object pools. Exploring techniques like sprite animation and collision detection, as taught in the course, will also benefit any Software Engineer.
Game Designer
A Game Designer conceptualizes and designs the gameplay, rules, and story of a video game. They work on creating engaging and balanced game mechanics, often collaborating with artists and programmers. This course may be useful, as it lets you create your own graphics and game features. By experimenting with different features such as boss battles, super weapons, and enemy types, you can test your design ideas. Moreover, you can learn to implement your own unique enemy type, a skill that a Game Designer would find very useful.
Mobile Game Developer
A Mobile Game Developer creates games specifically for mobile devices such as smartphones and tablets. They understand the unique constraints and opportunities of mobile platforms. They are experienced at writing code and debugging so that their game integrates seamlessly into mobile devices. This course may be useful if you want to be a Mobile Game Developer. You can learn how to make games responsive to touch events and make them compatible with mobile devices. The course also covers simple crew members and enemy types to get you started.
JavaScript Programmer
A JavaScript Programmer uses JavaScript to build interactive web applications and dynamic websites. They write clean, efficient code, debug issues, and collaborate with designers and other developers. This course may be useful, as it helps build a foundation in JavaScript by developing retro games. You can learn about object-oriented programming principles while creating games, and use your knowledge to experiment with unique enemy types. The course also covers sprite animation, timing, and staggering techniques using timestamps, which may prove valuable for a JavaScript Programmer.
Web Developer
A Web Developer is responsible for building and maintaining websites. They may work on the front end, back end, or both, using languages like HTML, CSS, and JavaScript. This course may be useful, as it helps build a foundation in JavaScript. By creating retro games with JavaScript, you can gain hands-on experience with this language. In particular, building multiple games from start to finish provides practical experience that can become a valuable asset to any aspiring Web Developer.
Front-End Developer
A Front End Developer specializes in building the user interface and experience of a website or application. They use languages like HTML, CSS, and JavaScript to create visually appealing and interactive designs. This course provides you with the JavaScript knowledge needed to create interactive designs. The course can help you learn about animation timing, mouse position, and canvas rotation which may all can contribute to your role as a Front End Developer.
Technical Artist
A Technical Artist bridges the gap between art and programming in game development. They develop tools and workflows to help artists integrate their assets into the game engine. While this course does not focus on art pipeline tools, it can help you to begin. This course may be useful as it allows you to add your own graphics and game features. Having the ability to modify the source code, may also give you control of your own artistic vision.
Game Artist
A Game Artist creates the visual assets for video games, including characters, environments, and user interface elements. The course may be helpful as it allows you to add your own graphics and game features. As a Game Artist, this course will have you working hands-on with a sci-fi space theme. Having the ability to modify the source code, may also give you control of your own artistic vision.
Unity Developer
A Unity Developer uses the Unity game engine to create video games and other interactive experiences. While this course focuses on JavaScript, the fundamental game development concepts will be useful for a Unity Developer. Learning about object pools, sprite animation, and collision detection can build a base in game programing. Creating games inspired by classic games such as Space Invaders may also inspire a new generation of designs.
UI Designer
A UI Designer focuses on the visual layout and design of user interfaces. They strive to create intuitive and aesthetically pleasing interfaces for websites, applications, and other digital products. This course may be useful, as it allows you to add your own graphics and game features. Understanding how these interactive elements function can make you a more effective UI Designer on the front end. The course will also help you learn about sprite animation, which can show you how to add aesthetically elements to your designs.
UX Designer
A UX Designer focuses on the overall user experience of a product. This involves researching user needs, creating user flows, and testing designs to ensure a positive and effective experience. While this course focuses on game development, it can familiarize you with the user experience components of classic games. Playing old games may provide insight on past user experience trends. The course will help you learn about keyboard controls, mouse position, and touch events which may inform your designs as a UX Designer.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Remake Retro Games with JavaScript.
Provides practical examples of how to develop games using HTML5, JavaScript, and related technologies. It covers a wide range of topics, including game mechanics, graphics, and audio. It is particularly useful for students who want to learn by doing and who are looking for inspiration for their own projects. This book is more valuable as additional reading than it is as a current reference.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser