Game Development


Create a 3D multi-player game using THREE.js and Socket.IO

Learn to use the WebGL library THREE js, NODE.Js and Socket IO to create a 3D multi-player game.

4.38 (200 reviews)


3 hours


Dec 2020

Last Update
Regular Price

Unlimited access to all SkillShare courses

What you will learn

You’ll learn how to use THREE js to show great 3D content in a modern browser, including on mobile devices.

Learn to use a NODE js server.

Learn how to get great 3D assets from online providers including animation assets.

Learn to use Socket io to create a simple chat app.

Put all your new skills together to create a 3D game that has remote players that you can interact with.


With Socket IO it is very easy to create a game where multiple remote players can share data. In this course we start by installing NODE.js, a prerequisite of Socket IO.  NODE.js is an open source server environment. We make sure NODE.js is working correctly and that you understand how to run it by running through a few very simple examples.

In section 3 we move on to building a simple chat app using Socket IO and I show you how to use the rooms capability of Socket IO to limit inter-Socket communication to groups of sockets that share a room.

Section 4 introduces the WebGL library, THREE.js, and shows how to display assets using this library.

.Section 5 looks at accessing online 3D resources both models and animations and shows how you can use Blender to edit these assets.

Section 6 covers in more detail using THREE.js for games.

Section 7 brings 3D and Socket IO together to create a framework for a game where we see remote players moving.

Section 8 shows how we can chat to remote players by sending a private chat message, socket to socket.

Section 9 shows how to take your game to a live server.

The final section gives some important tips when using NODE.js and Socket IO with the THREE.js library in an online game.

Having completed the course you will have all the skills necessary to create 3D multi-player games of your own. With the 30 day money back guarantee you can start the course today with complete confidence.

Here is are some reviews of the course:

”Nik's tutorials are brilliant”

”The instructor really explained the whole concept of the process of setting up a complete 3D multi-user chat app using the latest and hottest technologies in a nutshell; I'd like to say he demystified it.”

"This course helped me a lot to finish my running project. I loved this course very much. It is probably the only course which shows the use of THREE.js to create a 3d game. It's socket io implementation is amazing. I would surely recommend to enroll in this course."

... and what students on my other THREE.js courses have to say:

”Easy to Understand and detailed”

”This course is really awesome! I enjoyed every second of this learning experience.”

"Really good course, highly recommend. ... The last time I tried to learn the source code was 20,000 lines of C#. Without the helper classes, this author achieves an awesome 3D Car game in less than 400 lines. In the past I have had a lot of issues with getting FBX from Blender into a THREE.js scene but here it is easily explained and worked effortlessly. Huge thanks to Nik for this fantastic course."


Create a 3D multi-player game using THREE.js and Socket.IO
Create a 3D multi-player game using THREE.js and Socket.IO
Create a 3D multi-player game using THREE.js and Socket.IO
Create a 3D multi-player game using THREE.js and Socket.IO



Welcome to the course



What is NODE.js


Your first NODE.js app

What have you learned?


What is Socket.Io?

Your first Socket.IO app

Connecting a socket to a server

Create a simple chat app

Overview of the rooms version of the chat app

Coding the rooms version of the chat app

What have you learned?


The THREE.js website

3D basics

Your first THREE.js web page

Using FBXLoader

What have you learned?

Trying things out on CodePen

3D assets

Sourcing 3D assets online

Using Mixamo

Editing assets with Blender


Loading assets

Setting up cameras

Moving your character

Constraining to the environment


The Socket.IO app

A overview of socket events

Handling the local player

Handling the NPCs


Convert text into an image

Make remote players selectable

Add chat feature to game

Taking it live

How to map a URL to a specific port address

How to ensure the node app stays running


Top tips

Bonus Lecture


Shaheer10 October 2020

It was good but socket.io getrooms function is kind of hard to learn. Little bit not much explanations. Just one sentence explanation to each line of codes.

Santiago16 September 2020

It does not explain the fundamentals, it only reads the code without explaining why a scene is used, a camera etc.

Sam22 August 2020

This was more of a walkthrough of existing game code than building a game together with the teacher, and that's not my preferred learning style. It was hard to visualize exactly what the code does, and I was lost for some of it. It was also hard to stay interested. It's easier to follow along when you can see what each code block does on the screen step by step. The eye candy helps me to stay interested and wihtout losing context. It's also nice to get a little break from the code, too. I find that approach better for me than a long laborious lecture about code, with hardly nothing graphical to see until the very end. But it's definitely worth it especially if you are someone looking for example code/workflows, and great tips about technologies that can be used to help you build your own games. It's also useful if you are wanting to compare THREE.js with other JavaScript libraries before starting on a large project of your own.

Al21 August 2020

It is about the right speed and content. A little confusing with some version changes, but easy enough to figure out. The video seemed to stop a few times (always at the same spot), but moving forward a few seconds and hitting play made it work again. Nik did a great job if explaining the detail and I will most likely take some of his other courses.

David3 April 2020

Great Course. I only wish it was about twice as long and decomposed the project in more detail. There are lots of great resources but the class felt rushed. I'm going to go thru the course a second time with my own content hoping to get back to the same point as the example. Just to make sure I actually understand the matterial.

Gerard15 February 2020

First course on Udemy (at least I could not find something similar at the time of writing) that covers these open source topics in combination with working examples. Also the teacher is using object oriented programming and does respond quickly to questions.

chirayu1 February 2020

This course helped me a lot to finish my running project. I loved this course very much. It is probably the only course which shows the use of three.js to create a 3d game. It's socket.io implementation is amazing. I would surely recommend to enroll in this course.

ec-ccs30 December 2019

I enjoy a lot the courses by Nicholas Lever. In general they are all VERY SIMPLE but VERY WELL INTO THE POINT. Other thing is: he focuses not on mainstream topics but in SPECIALITY, hard to find ones. Only observation about this course? Unfortunately it is NOT for All Levels as it claims - it is for Intermediate to Advanced. The amount of info that is skipped is substantial. Previous exposure to npm / node.js / Express + Socket.io + Three.js + Blender + 3D Animation as well as some practical knowledge of jQuery and OO-Javascript in ES6 is definitively REQUIRED for this course if you really want to profit from it. On the tutor defense, there is NOT such a course that will teach ALL that in a SINGLE course. It is not hours, but months of hard work. What this course does BRILLIANTLY is PUTTING ALL THAT TOGETHER in a simple but revealing project! So do your homework and study each topic as much as possible. THEN come back to take this and all the courses by Nik. You are going to ENJOY them.

Kane30 August 2019

Doesn't really explain the concepts. Just points to where code should be added, and a lot of copy and paste without explaining. If you don't yet know Express, Socket.io - best to study those first before taking this course.

Luke29 August 2019

I came to the course to learn about Socket.IO and basic socket programming, and was not disappointed! I'll be able to use this knowledge in my Phaser 3 and Babylon.js projects. Thanks for the course!

fag9 August 2019

Was difficult to find where to download the resources folder. I'm familiar with the terms used in node like "__dirname", but it might be confusing for a first timer. Would be better to explain where they're from. Confusing use of express and http.

Hans-Peter28 July 2019

Ein Super Kurs. Genau wonach ich gesucht habe. Für komplette Anfänger vermutlich am Anfang etwas schwieriger.

Yalon20 July 2019

The reason is you don't really explain the Three.js library - Why you wrote some stuff. I mean in the math point of view. I know node and I know jQuery, the reason I bought this course is to better understand the Three.js library. You wrote the code beforehand (which normally is not what I expected) and the code lines of Three.js are not explained as I would have expected

Luig28 April 2019

Code ready, only showing line by line the changes that were made. I prefer code written in real time.

Danilo26 April 2019

The textures doesn`t work. Models downloaded from mixamo are not working too. Most part of the course is a sequency of copy and paste code.


3/25/202171% OFFExpired

Related Courses

Socket.IO and TypeScript
Socket.IO and TypeScript


Udemy ID


Course created date


Course Indexed date
Course Submitted by