C++ 3D MULTIPLAYER GAME FROM SCRATCH // LIVE TUTORIAL

preview_player
Показать описание


🔗 LINKS

📚 CHAPTERS
00:00 - Intro + FAQ
06:28 - Project Setup (Git, Walnut, submodules, VPS)
14:51 - Build system setup (Premake)
16:26 - Client and Headless Server project setup
29:12 - Building and running our projects
35:56 - Setting up our client as a game
38:02 - Preliminary rendering
43:36 - Application layers
48:05 - Player movement
1:02:05 - Connecting to a server using UI
1:14:48 - Server application
1:19:32 - Setting up the Server to send/receive data
1:25:26 - Client/Server connection
1:27:08 - Sending data between the Client and Server
1:46:53 - Managing multiple connected players on the Server
1:56:20 - Multiple players on Client
1:59:01 - Deploying and running our Server on a Linux VPS
2:05:56 - Building our Headless Server on Linux
2:17:23 - Running our Server and playing our “game”
2:19:51 - Resolving domain names to IP addresses

💰 Links to stuff I use:

This video is sponsored by Hostinger.
Рекомендации по теме
Комментарии
Автор

HAPPY NEW YEAR!! 🎉 PLEASE LIKE THE VIDEO if you're into this idea! I'm not sure how this will go so this will help! Also leave a comment if you're especially excited, and thank you for watching! ❤️

TheCherno
Автор

I hate the braindead, no-attention-span, everything must be hyped content. I know it's what drives engagement (especially at a time where 70% of Americans read at a 3rd grade level), but these videos are what I love. Long-form, in depth, and requires you to actually follow a train of thought longer than 30 seconds. I know asking for this content means you will be less successful on youtube, but it really is peak. Thank you for this.

cbbbbbbbbbbbb
Автор

@54:53 - holy crap, I have finally fully understood vector normalization, and its meaning and importance. Thanks!!

zzzzz
Автор

I prefer this format. I will be watching in chunks rather than one go. I hope this doesn't mess up your retention stats.

Adrian-ldoz
Автор

I like these huge videos because I have nothing more than having to watch 50 intros and outros in a playlist

karljoyeux
Автор

This new format is fantastic. Thanks for all the amazing content.

KimFrederiksen-fixy
Автор

This comes at the perfect time, i recently dropped out of my math phd and want to get into lowlevel c++ graphics/gameengine programming, and i really like a long form full tutorial, most are sadly just couple minutes and skip so much that they are basically useless for somebody starting from zero.

MCGZ_
Автор

OMG, i'm so glad your bringing back this style of content. I absolutely adore your programming style and I get so much out of your long form videos. I find it a lot easier to scrub thru 1 videos chapters than it is thru a playlist looking for something specific. Please keep this "series" going

markwebcraft
Автор

this format is so great, I hate having to go to the next video every 10 minutes please more of this

elin
Автор

YES! YES! YES!!! I FREAKING LOVE THIS IDEA!!! Not only do I like the idea of a series about making a game in such detail, but I also much, much, much prefer long-form content over several smaller videos. I've only just started this video, but I'm so excited by the length and sneak peeks from the section markers that I felt it was necessary to drop some engagement already before I get any deeper into the video. (Sorry, almighty algorithm, I'll keep watching to increase retention as well!)

Nobejn
Автор

Genuinely thank you so much for taking the time to explain and show your build process and thank you even more for explaining exactly why you chose to do it this way!

I've been using C++ for a little over a year now, and I have to say one of the most confusing parts is getting your build configurations right.

Everyone has their own way of doing it
Everyone gets cross at each other for doing it not their way

Most tutorials or documentation on the internet is a good 7 years old because people were like "this wont change we have it how we like it", only for the industry standards to change it and refuse to update their tutorials or elaborate further.

"This is built from that which comes from this which u can get from all of these places but we wont tell you which one is real one but good luck have fun"

The sooner you learn how to get a project "running", the sooner you can make your own templates and frameworks just like walnut so you don't have to worry about it.

christophermorley
Автор

These long-form "follow-along" videos are great!
2:13:30 Some bash & Linux tidbits:
- For globs, `*.*` and `*` will NOT include your dot files unless you enable the `dotglob` shell option via `shopt -s dotglob` (eg. inside of a script or your ~/.bashrc file). Using dotglob versus `.*` avoids the issue of accidentally including the current & parent directory (`.` & `..`), which is almost never what you want.
- When you run `su`, this actually launches a brand new shell as the user you are switching to. So if you login to the server as `root`, then do `su hazel`, you now have two shells. If you then do `su -` or `su root` again, then now you have a third shell. Instead, you ideally want to exit the shell when you're done (via `exit` or Ctrl+D), which will cause you to go back "up" to the previous user shell.

yellowcrescent
Автор

i cant believe you started this series right after i finished doing the official vulkan tutorial on my own

glad to have your insight regardless!

Anubis
Автор

For other people following along like myself. On windows, I had to install the Vulkan SDK once this is done you'll need to restart so it can find the new environment variable.

thomasdell
Автор

Love these kind of big video, where we get complete understanding of the project and where we discuss architecture and all the project flow.
Thanks @The cherno for great tutorial

abhijeetjain
Автор

Incredible video and I am looking forward to more.

As a complete newbie and lover of details, I would enjoy seeing a video on the writing of Walnut. I feel like we've pulled enough from there for that to be a good starting point of "from scratch."

ronaldsaylor
Автор

Absolutely loved this video! I've been waiting for months, and it was totally worth it. Your explanations are always so clear and inspiring. Keep up the amazing work, Cherno! 🚀

BackupCookie
Автор

Happy new year and thank you for this video! This platform really needs more quality content like this. I know it must be hard for you and it will cost you viewership, but I still wish for you to continue this series. It is amazing!!!🎉

simeonsimeonov
Автор

Love these longer videos. They really give you the feeling that you have achieved or learned something after watching it. Keep it up :)

LaurenzKrause
Автор

**Developing a C++ 3D Multiplayer Game: A Live Tutorial Overview**

* ****0:00** Introduction and FAQ:** The Cherno introduces the project of remaking the "Squad" game in C++, making it multiplayer over a network in 3D, using Vulkan for ray tracing.
* ****6:28** Project Setup:** The tutorial begins with setting up the project using Git, Walnut (an application framework), submodules, and a VPS (Virtual Private Server) for hosting.
* ****14:51** Build System Setup:** Premake is used to set up the build system for the client and headless server projects.
* ****29:12** Building and Running Projects:** The tutorial demonstrates building and running the client and server projects, troubleshooting common issues.
* ****35:56** Client Setup:** The client is set up as a game with preliminary rendering using ImGui for UI elements.
* ****48:05** Player Movement:** Basic player movement is implemented, with a placeholder for future physics engine integration.
* ****1:02:05** Server Connection Using UI:** A UI is created for connecting to the server using an IP address and port.
* ****1:14:48** Server Application:** A headless server application is set up to handle client connections and data exchange.
* ****1:19:32** Server Data Handling:** The server is configured to send and receive data, managing multiple connected players.
* ****1:25:26** Client/Server Connection:** The tutorial demonstrates establishing a connection between the client and server.
* ****1:27:08** Data Exchange:** Data is exchanged between the client and server, including player position and velocity.
* ****1:46:53** Managing Multiple Players:** The server manages multiple connected players, tracking their positions and velocities.
* ****1:59:01** Server Deployment:** The server is deployed and run on a Linux VPS, allowing multiple clients to connect over the internet.
* ****2:19:51** Domain Name Resolution:** The client is updated to resolve domain names to IP addresses for server connection.
* ****2:05:56** Building Headless Server on Linux:** The server is built on a Linux VPS using make, and potential issues with permissions, line endings, and library paths are addressed.
* ****2:17:23** Running the Server and Game:** The server is run on the VPS, and multiple clients connect to demonstrate the multiplayer functionality.
* ****2:26:31** Future Plans:** The Cherno outlines plans for future videos, including Vulkan rendering, ray tracing, and further development of the multiplayer infrastructure.
* ****2:28:03** Conclusion:** The video concludes with a summary of the project's progress and a call for viewer feedback.

I used gemini experimental 1206 to create the summary

wolpumba
join shbcf.ru