Put open source to work
July 16–17, 2018: Training & Tutorials
July 18–19, 2018: Conference
Portland, OR

Redux + WebSockets: Let’s build a real-time multiplayer game.

Ian James (FamilySearch), Matthew Larson (FamilySearch)
9:00am12:30pm Monday, July 16, 2018
Live coding
Location: C123/124
Level: Intermediate
Average rating: ***..
(3.67, 3 ratings)

Who is this presentation for?

  • Web developers

Prerequisite knowledge

  • A working knowledge of JavaScript, HTML, and CSS
  • A basic understanding of Redux, WebSockets, and Node.js
  • Familiarity with Git and the command line

Materials or downloads needed in advance

  • A laptop with Git, Node.js, and the Chrome browser with the Redux DevTools Chrome extension installed

What you'll learn

  • Learn effective ways to build real-time web apps
  • Gain a deeper understanding of WebSockets and Redux
  • See how to use Redux on the server

Description

From tracking a shipment to collaborating on designs, real-time data is the magic sauce that makes modern web experiences come alive for users. But for developers, managing real-time data brings its own host of problems for which traditional web technologies, such as REST and Ajax, don’t offer much help. Thankfully, there are alternatives.

Ian James and Matthew Larson share an alternative approach to real-time data using Redux and WebSockets that is straightforward and scalable. And just to spice things up, you’ll learn it by building a multiplayer game. Although the example uses Redux and WebSockets, you could just as easily use other libraries like socket.io and RxJS to achieve the same result. Along the way, Ian and Matthew explain how this method applies to other products besides games and how to deploy your real-time features in production (including how to scale for millions of users).

As web applications become more sophisticated and promise more value to users, developers have to be ready to design and implement robust real-time features. Join in to learn how to bring real-time data into your next app.

Outline

  • Building a single-player version of the example game
  • Markup and styling
  • Capturing user inputs
  • Managing application state with Redux
  • Conversion to real-time and multiplayer
  • Moving application state to the server
  • Broadcasting user input events to the server
  • Feeding a real-time data stream to browsers
  • Discussion: Building for production
Photo of Ian James

Ian James

FamilySearch

Ian James is a rapid prototype developer at FamilySearch, where he can usually be found comping screens, running user tests, or deep in complex JavaScript with one of his teammates. Previously, Ian worked for industry-leading game developers in a variety of startups. He’s passionate about the process of bringing thoughts to life. Time and time again, he finds his way to the middle of the action because that’s where he loves to be. After studying the visual fine arts for more than a decade as a youth, Ian received a degree in physics and illustration.

Photo of Matthew Larson

Matthew Larson

FamilySearch

Matthew Larson is a software developer and UX designer at FamilySearch, where he works on a team tasked with exploring new and interesting ways to help people discover their family history. Previously, he worked in freelance web development and graphic design and founded and ran a small studio. Matthew started his college career in computer science. Well into his program, he felt something was missing. Four years later, he graduated with a BFA in industrial design. Ironically, most of his time since then has been spent developing software.

Comments on this page are now closed.

Comments

Picture of Matthew Larson
Matthew Larson | SOFTWARE DEVELOPER AND UX DESIGNER
07/14/2018 4:58am PDT

Anyone who’s planning on joining us Monday morning, please take a moment (if you haven’t already) and join the OSCON Slack. We’re going to be sending out a lot of messages over slack during the presentation. Visit this link for more details. If you never received an invite to join Slack, there’s a link to email a guy to request an invite.

Excited to see you at OSCON!