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! ❤️ Also don’t forget that Hostinger's New Year's Resolutions sale is NOW ON! Use coupon code CHERNO to get an additional 10% discount: hostinger.com/cherno
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.
Because people are unnecessary over-complicating it. In CMake you use need like 4 lines to setup basic project. Adding some dependency manager is like extra 1 line.
Really liking this long form style. Following the Hazel series I always found I was watching 10 to 15 episodes at a time to make what i felt was significant progress. Definitely liking this so far!
Achktually, back in the days the content was split into multiple videos (parts) because there was a 10 minute length limit and then it was increased to 15 mins if I recall corrrectly.
this is exactly what i was looking for to learn application architecture! i’m currently trying to make a game with sdl3 and cpp and it’s lots of fun. thank you for this video!
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! 🚀
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!!!🎉
This has come at such a perfect time for me. I've been making small stuff in C++ and sort of understand all the basics ins and outs but I really needed to know how to take it to the next level and be like professionals.
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
Good to see you fight with the same things I did when I worked my online multiplayer game (but using raw websockets for communication). But it's fun. Important thing would be the client and server to share the structure they use for communication, so changing something would not break the other one (if they are not shared)
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.
This is what I'm here for, Cherno. Your first Hazel video had me subscribed straight away. Having watched you balance all the new chapters in your life as they evolved has continued to be endearing, but I am very excited to hear your plans to return to this video format. All the more with what you've learned in the last several years. =) Lookin' forward to it, boss.
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!)
I love this! :) Its much nicer than a chopped up video like you say in the intro. I've used ur c++ playlist when i went to uni to learn while learning the same concepts in school. It helped alot but for projects like this i love the longer form of video. :)
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.
**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
**Developing a Basic 3D Multiplayer Game in C++** * ****0:06** Project Setup:** The project aims to remake an old multiplayer game called "Squad" in 3D using C++, Vulcan, and ray tracing. * ****0:39** Technology Stack:** The game will use the latest C++ version, MSVC, and Visual Studio, but it will be compatible with all platforms. It's based on Walnut, a lightweight, open-source application framework. * ****5:14** Code Availability:** The code will be freely available on GitHub in a repository called "Cubed." * ****6:30** Initial Steps:** The video starts with setting up the Git repository, adding Walnut as a submodule, and configuring a hosting VPS for the server. * ****12:58** Server Setup:** A hosting VPS is set up with Ubuntu 24, and AMD's epic processors, and full root access. * ****14:52** Build System:** Premake is used as the build system, and separate configurations are created for the client and a headless server. * ****21:15** Walnut Chat Reference:** The project structure and build system are based on an older project called "Walnut Chat." * ****29:17** Building and Running:** The video demonstrates building and running both the client and server applications, addressing common setup issues. * ****37:58** Preliminary Rendering:** The client is modified to render basic shapes using ImGui's drawing functionality, preparing for future Vulcan integration. * ****45:37** Client-Server Communication:** Networking is introduced using Walnut's networking API, allowing the client to connect to the server and send/receive basic data. * ****1:04:12** UI for Server Connection:** A simple UI is implemented to allow users to input a server address and connect. * ****1:16:51** Server Application:** A headless console application is added to the server for basic command input and message handling. * ****1:21:37** Server-Side Callbacks:** Callbacks are set up on the server to handle client connections, disconnections, and data reception. * ****1:28:55** Client/Server Connection:** The client successfully connects to the server, and basic data exchange is demonstrated. * ****1:31:27** Managing Multiple Clients:** The server is designed to handle multiple client connections and broadcast updates to all connected clients. * ****1:34:02** Data Serialization:** Walnut's serialization library is used to serialize and send structured data between the client and server. * ****1:50:05** Thread Safety:** A mutex is used to ensure thread-safe access to shared player data on the server. * ****1:58:04** Multiple Players on Client:** The client is modified to receive and render data for multiple players from the server. * ****2:01:09** Deploying to VPS:** The server is built and deployed on the hosting VPS, and the client successfully connects to it over the internet. * ****2:07:16** Security Considerations:** The importance of running the server as a non-root user for security is discussed. * ****2:11:20** Building on Linux:** The server is successfully built on the Linux VPS using `make` and addressing various setup issues. * ****2:18:38** Running the Server:** A run script is created, and the server is launched on the VPS. * ****2:19:40** Connecting from the Client:** The client connects to the server using its IP address, and real-time gameplay is demonstrated. * ****2:21:56** Domain Name Resolution:** The client is modified to resolve domain names to IP addresses, allowing connection via domain name instead of just IP. * ****2:26:31** Future Plans:** The video concludes by outlining future plans, including Vulcan rendering, ray tracing, and further development of the multiplayer architecture. * ****2:26:49** :** Asks viewers for feedback on the video format and project. Another attempt of an AI summary without the timestamps in the description
As an embedded C guy mostly, I have enjoyed this very much and will certainly watch the next episode. Of course completely horrified that you have root login enabled via ssh with a password. As you already have another account setup you really should disable root login via ssh and setup vscode to use the hazel account to login. But of course this is not about setting up a VPS. As for chown issue, the * is expanded by bash before running the command and does not include hidden files. But as you specified -R for chown any hidden files in sub-directories would have changed correctly and when recursing directories, hidden files are included. What you really needed to do was chown -R hazel:hazel . the '.' meaning the current folder and would have changed the ownership of the cubed directory and all files recursively including hidden files.
I need to be honest. Aside from the C++ series i haven't yet finished one of your short form videos 😅😅. I much prefer the long form. In my opinion this should be a channel standard lol😂. Bring on the Vulkan.
To be honest I totally understand why you don't want to make videos that are this long. The only reason I'm currently even watching it is because UA-cam has shoved it in my face so many times and I'm like you know what? sure why not. And mind you I binged the C++ series around 50 of the videos in 2 days so my attention span isn't the issue and neither is interest because I'm also curious how to make a game from scratch since I've only ever worked with unreal engine. Really rooting for Hazel by the way. The problem is just seeing that 2hr mark on the video it's a lot of time to commit to just watching one video(feels more like a perception thing). If this was split into 4 I'm pretty sure a lot of people will hop on it
Looking forward to following these tutorials! Very much appreciate them being open to the public. Just a piece of feedback - following the setup process with all the Walnut stuff has been pretty tedious and also just doesn't feel like building "from scratch" anymore. I'd maybe set up a template repo people can clone or fork, or just not using Walnut (I know the latter isn't possible anymore). Otherwise it's just a lot of copy/pasting and small tweaks to get a tech I'm not familiar with at all and maybe won't use again (Walnut) working.
The Amazon lumberyard engine uses a system called gridmate that does marshaling reflect in grids and they have some game servers that they only monopolize on but it’s the idea that’s interesting to work on
Though i understand your perspective as a Content Creator, i feel like this is the only way to build that model in your head. Yes shorter & concise content, focused on 1 concept is great, IF you want to understand THAT concept in depth. However for someone looking to learn, it's more mental clutter having to figure out how all the parts connect. And i can tell you that feeling of uncertainty doesn't sit right with my ADHD brain since they often lack that continuity. It's like seeing before believing (i might be cooked chat)
Question for the group, I’m newer to CPP and everything I’ve read as far as learning materials has said to use a header guard. I see the use of pragma once here, which is obviously fine because of the version of CPP being used, but I just want to make sure it’s safe to use regularly. Or is it just safe here because it’s a fresh project?
I just like how he doesn't treat coding like a gang war. Like most content on here where they say learn python because this is too complicated, java is irrelevant blah blah blah. Why not just learn the benefits of each or what language does your job require its not a popularity contest. Some companies still use fortran. My point is just listen, ask questions, and learn.
Premake is great, but has an annoying amount of things it doesn't support. For instance, on Mac, you have to choose between multiple configurations and proper app bundles, since it only supports bundles through Xcode but does not support configurations in Xcode. You also can't do custom clean steps through the generated projects.
Cool Video, but I think this overly convoluted things by relying to heavily on walnut. Especially since I have no idea what Walnut is, but I'm guessing its another Sharpmake like utility? I think the biggest issue I'm facing right now is that I'm trying to get a multiplatform project going: * needs a windows build with DX12 * needs a Linux/Steam OS build with Vulkan * RT is a requirement * Is 3D * MP is a requirement * Ability to scale down to Android is a stretch goal * A build server running on linux (possibly a raspberry pi which means we need cross compiling) is a requirement. * GitLab is a requirement So starting a project in this space has been hard. Especially when looking at Windows using VS as my IDE across everything. Would be nice to keep with in the same solution if not same project and configure to target that.
Great video it’s always a pleasure to watch you coding and showing stuff buuuut.. Why not showcasing Hazel? I mean the engine is at a state where you can build a game with it so why not using it and show people the progress
Nice video. It's great. But apart from learning and exploring what are the benefits of building a game without an engine and doing these much of stuffs from scratch? Yeah, there is a financial benefits as well as freedoms. But won't this take too long to build a game?
"headless" refers to a server that operates without a directly connected monitor, keyboard, mouse, or other user interface devices. Instead, it is managed and accessed remotely through a network or the internet. Key Characteristics of a Headless Server: Remote Management: Administrators connect to the server using tools like SSH (Secure Shell), RDP (Remote Desktop Protocol), or web-based interfaces. No GUI (Optional): Many headless servers run without a graphical user interface (GUI) to save system resources. They are often controlled through a command-line interface (CLI). Efficiency: By omitting the hardware and software associated with a graphical interface, headless servers reduce costs, improve performance, and minimize potential points of failure. Common Use Cases: Web hosting File sharing and storage (e.g., NAS servers) Virtualization hosts Databases Gaming servers IoT devices Physical Deployment: Typically located in server rooms or data centers, they are designed for remote, continuous operation rather than direct interaction. Headless setups are highly efficient for environments where direct access to the machine isn't necessary or practical.
A headless server is a computer that operates without a graphical user interface (GUI), meaning it does not have a monitor, keyboard, or mouse attached to it. Instead, it is managed through a command-line interface (CLI) or remote desktop connection. This type of server is ideal for running applications and services that do not require a GUI, such as web servers, file servers, or databases, and can operate 24/7 without interruptions.
what's your opinion on Zig and Odin? that is, besides the lack of existing 3d party engines and tools for C++. i feel like specifically in game development when you avoid virtual functions like a plague and turn everything you can into structures of arrays, C++ loses most of its appeal compared to plain C, and if we treat C++ just as C 2.0, Zig and Odin do C 2.0 better (imo). as enthusiastic as i am about Zig, i don't expect Hazel rewrite in it. but if you would start a new gamedev related project now, would you still stick to C++? you're doing your own engine so you don't care THAT much about what already exists in C++ world.
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! ❤️
Also don’t forget that Hostinger's New Year's Resolutions sale is NOW ON! Use coupon code CHERNO to get an additional 10% discount: hostinger.com/cherno
I LOVE YOU YANNN, you are the best c++ youtuber in the world, you inspire me a lot!!!!❤❤We appreciate that🙏🙏🤗
I hope that u make a course on creating a vulkan renderer from scratch using glfw and c++. It would be great!
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.
45 minutes spent on build systems is such a C++ moment
And still quite hard to follow lol
It took me less time to learn Rust than it does to sort out a complicated C++ build system.
Nah man idk about yall but it came easy to me i can use any build system with a small read through a tutorial
Because people are unnecessary over-complicating it. In CMake you use need like 4 lines to setup basic project. Adding some dependency manager is like extra 1 line.
I use days
Really liking this long form style. Following the Hazel series I always found I was watching 10 to 15 episodes at a time to make what i felt was significant progress. Definitely liking this so far!
I like these huge videos because I have nothing more than having to watch 50 intros and outros in a playlist
*hate
13:55 And don't use Honey
This is where UA-cam started, back when people valued high quality, hour-long in-depth content and I wasn't just one of a handful enjoying it.
Achktually, back in the days the content was split into multiple videos (parts) because there was a 10 minute length limit and then it was increased to 15 mins if I recall corrrectly.
@54:53 - holy crap, I have finally fully understood vector normalization , and its meaning and importance. Thanks!!
I prefer this format. I will be watching in chunks rather than one go. I hope this doesn't mess up your retention stats.
Thanks for doing this! Looking forward to following along!
Best part of programming sessions are you can learn something and also use them to take a nap too
Thanks!
Love and Admiration from India❤ Guruji⭐
this is exactly what i was looking for to learn application architecture! i’m currently trying to make a game with sdl3 and cpp and it’s lots of fun. thank you for this video!
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! 🚀
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!!!🎉
This has come at such a perfect time for me. I've been making small stuff in C++ and sort of understand all the basics ins and outs but I really needed to know how to take it to the next level and be like professionals.
This new format is fantastic. Thanks for all the amazing content.
This is amazing. I enjoy these long-format videos much more since I tend to obsess over the projects I do!
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
Good to see you fight with the same things I did when I worked my online multiplayer game (but using raw websockets for communication). But it's fun. Important thing would be the client and server to share the structure they use for communication, so changing something would not break the other one (if they are not shared)
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.
This is what I'm here for, Cherno. Your first Hazel video had me subscribed straight away. Having watched you balance all the new chapters in your life as they evolved has continued to be endearing, but I am very excited to hear your plans to return to this video format. All the more with what you've learned in the last several years. =)
Lookin' forward to it, boss.
Absolute Gold Bro, this is what we want!!
I loved the original video of the game and this format. I would love to watch more of this.
Love these longer videos. They really give you the feeling that you have achieved or learned something after watching it. Keep it up :)
Thank you, hope more people who like the game will see it!
Please keep making these videos, I learn so much from them!! Keep up the fantastic work!
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!)
I love this! :) Its much nicer than a chopped up video like you say in the intro. I've used ur c++ playlist when i went to uni to learn while learning the same concepts in school. It helped alot but for projects like this i love the longer form of video. :)
Finally a long cherno tutorial appreciate it.
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.
**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
**Developing a Basic 3D Multiplayer Game in C++**
* ****0:06** Project Setup:** The project aims to remake an old multiplayer game called "Squad" in 3D using C++, Vulcan, and ray tracing.
* ****0:39** Technology Stack:** The game will use the latest C++ version, MSVC, and Visual Studio, but it will be compatible with all platforms. It's based on Walnut, a lightweight, open-source application framework.
* ****5:14** Code Availability:** The code will be freely available on GitHub in a repository called "Cubed."
* ****6:30** Initial Steps:** The video starts with setting up the Git repository, adding Walnut as a submodule, and configuring a hosting VPS for the server.
* ****12:58** Server Setup:** A hosting VPS is set up with Ubuntu 24, and AMD's epic processors, and full root access.
* ****14:52** Build System:** Premake is used as the build system, and separate configurations are created for the client and a headless server.
* ****21:15** Walnut Chat Reference:** The project structure and build system are based on an older project called "Walnut Chat."
* ****29:17** Building and Running:** The video demonstrates building and running both the client and server applications, addressing common setup issues.
* ****37:58** Preliminary Rendering:** The client is modified to render basic shapes using ImGui's drawing functionality, preparing for future Vulcan integration.
* ****45:37** Client-Server Communication:** Networking is introduced using Walnut's networking API, allowing the client to connect to the server and send/receive basic data.
* ****1:04:12** UI for Server Connection:** A simple UI is implemented to allow users to input a server address and connect.
* ****1:16:51** Server Application:** A headless console application is added to the server for basic command input and message handling.
* ****1:21:37** Server-Side Callbacks:** Callbacks are set up on the server to handle client connections, disconnections, and data reception.
* ****1:28:55** Client/Server Connection:** The client successfully connects to the server, and basic data exchange is demonstrated.
* ****1:31:27** Managing Multiple Clients:** The server is designed to handle multiple client connections and broadcast updates to all connected clients.
* ****1:34:02** Data Serialization:** Walnut's serialization library is used to serialize and send structured data between the client and server.
* ****1:50:05** Thread Safety:** A mutex is used to ensure thread-safe access to shared player data on the server.
* ****1:58:04** Multiple Players on Client:** The client is modified to receive and render data for multiple players from the server.
* ****2:01:09** Deploying to VPS:** The server is built and deployed on the hosting VPS, and the client successfully connects to it over the internet.
* ****2:07:16** Security Considerations:** The importance of running the server as a non-root user for security is discussed.
* ****2:11:20** Building on Linux:** The server is successfully built on the Linux VPS using `make` and addressing various setup issues.
* ****2:18:38** Running the Server:** A run script is created, and the server is launched on the VPS.
* ****2:19:40** Connecting from the Client:** The client connects to the server using its IP address, and real-time gameplay is demonstrated.
* ****2:21:56** Domain Name Resolution:** The client is modified to resolve domain names to IP addresses, allowing connection via domain name instead of just IP.
* ****2:26:31** Future Plans:** The video concludes by outlining future plans, including Vulcan rendering, ray tracing, and further development of the multiplayer architecture.
* ****2:26:49** :** Asks viewers for feedback on the video format and project.
Another attempt of an AI summary without the timestamps in the description
thank you for your work and using ai but the useful way
Thank you for this, i love long format videos!
This really feels like a late Christmas gift, thank you Cherno!
I really enjoy this format, thanks.
Even though it's long this video is worth watching over and over again,Exp get!!!
Fuck yes Cherno. I love the long format and the ambitious project.
Really enjoyed watching this type of video!
Watched the whole thing this was awesome!
I enjoy the long and detailed videos like that!
Finally 🎉 Thank youu ! ❤
This is great been wanting to get back to programming and this is exactly what a hobbiest like me is looking for
We need more like this💓
Happy new year Cherno! looking forward to seeing what this projects brings! Love the format!
Very good! I liked video flow and the length ofc)
Waiting for the next videos of this topic!
looking forward to the following episodes, thanks for making this free!
I'm really excited about the server stuff
As an embedded C guy mostly, I have enjoyed this very much and will certainly watch the next episode.
Of course completely horrified that you have root login enabled via ssh with a password. As you already have another account setup you really should disable root login via ssh and setup vscode to use the hazel account to login. But of course this is not about setting up a VPS.
As for chown issue, the * is expanded by bash before running the command and does not include hidden files. But as you specified -R for chown any hidden files in sub-directories would have changed correctly and when recursing directories, hidden files are included.
What you really needed to do was chown -R hazel:hazel . the '.' meaning the current folder and would have changed the ownership of the cubed directory and all files recursively including hidden files.
Loved the video!
PEAK IS BACK IN A NEW YEAR!!! 🎉🎉🎉
Love this content, keep it up! ❤
I need to be honest. Aside from the C++ series i haven't yet finished one of your short form videos 😅😅. I much prefer the long form. In my opinion this should be a channel standard lol😂. Bring on the Vulkan.
To be honest I totally understand why you don't want to make videos that are this long. The only reason I'm currently even watching it is because UA-cam has shoved it in my face so many times and I'm like you know what? sure why not.
And mind you I binged the C++ series around 50 of the videos in 2 days so my attention span isn't the issue and neither is interest because I'm also curious how to make a game from scratch since I've only ever worked with unreal engine. Really rooting for Hazel by the way.
The problem is just seeing that 2hr mark on the video it's a lot of time to commit to just watching one video(feels more like a perception thing). If this was split into 4 I'm pretty sure a lot of people will hop on it
Thanks a lot Cherno!!
i love these type of videos, keep it up :)
Happy New year cherno
Haven't even watched it yet, but yes this concept is better, atleast the content is here, im watching it rn.
Hell YEs!!!!!!!!! Thank you The Cherno! I love this idea
Looking forward to following these tutorials! Very much appreciate them being open to the public.
Just a piece of feedback - following the setup process with all the Walnut stuff has been pretty tedious and also just doesn't feel like building "from scratch" anymore. I'd maybe set up a template repo people can clone or fork, or just not using Walnut (I know the latter isn't possible anymore). Otherwise it's just a lot of copy/pasting and small tweaks to get a tech I'm not familiar with at all and maybe won't use again (Walnut) working.
He actually did that
YAAAAAAAAS CHERNSKI 👏👏👏
Commenting for the engagement. I commend all long form videos, even if my software development isn't game related.
Oh I already know we're gonna be eating good this year.
Best videos of yours keep posting good stuff 🎉
Looking forward to vulkan!
please continue this kind of videos
Thanks for the video much appreciated
so real at 12:00
I always forget submodule --init --recursive, and all the submodule stuff I need to look up all the time
ya absolutely love this content form
The Amazon lumberyard engine uses a system called gridmate that does marshaling reflect in grids and they have some game servers that they only monopolize on but it’s the idea that’s interesting to work on
bro actually went and done it
Though i understand your perspective as a Content Creator, i feel like this is the only way to build that model in your head. Yes shorter & concise content, focused on 1 concept is great, IF you want to understand THAT concept in depth. However for someone looking to learn, it's more mental clutter having to figure out how all the parts connect. And i can tell you that feeling of uncertainty doesn't sit right with my ADHD brain since they often lack that continuity. It's like seeing before believing (i might be cooked chat)
Question for the group, I’m newer to CPP and everything I’ve read as far as learning materials has said to use a header guard. I see the use of pragma once here, which is obviously fine because of the version of CPP being used, but I just want to make sure it’s safe to use regularly. Or is it just safe here because it’s a fresh project?
I think 2+ hour videos should be the default for educational content, Karpathy also does this.
Andrej's playlist is insanely good! I love it.
Who is Karpathy?
I heard recently that long videos are good for the UA-cam Algorithm right now, however true that is.
Thank you for this
I just like how he doesn't treat coding like a gang war. Like most content on here where they say learn python because this is too complicated, java is irrelevant blah blah blah. Why not just learn the benefits of each or what language does your job require its not a popularity contest. Some companies still use fortran. My point is just listen, ask questions, and learn.
We need more of this, thank you for the good content and work as always
loved the video
Premake is great, but has an annoying amount of things it doesn't support. For instance, on Mac, you have to choose between multiple configurations and proper app bundles, since it only supports bundles through Xcode but does not support configurations in Xcode. You also can't do custom clean steps through the generated projects.
I would appreciate a Vulcan tutorial.
Cool Video, but I think this overly convoluted things by relying to heavily on walnut. Especially since I have no idea what Walnut is, but I'm guessing its another Sharpmake like utility?
I think the biggest issue I'm facing right now is that I'm trying to get a multiplatform project going:
* needs a windows build with DX12
* needs a Linux/Steam OS build with Vulkan
* RT is a requirement
* Is 3D
* MP is a requirement
* Ability to scale down to Android is a stretch goal
* A build server running on linux (possibly a raspberry pi which means we need cross compiling) is a requirement.
* GitLab is a requirement
So starting a project in this space has been hard. Especially when looking at Windows using VS as my IDE across everything. Would be nice to keep with in the same solution if not same project and configure to target that.
what if I have workstation at home, which steps would you recommand ?
Great video it’s always a pleasure to watch you coding and showing stuff buuuut..
Why not showcasing Hazel? I mean the engine is at a state where you can build a game with it so why not using it and show people the progress
lets go , lets go , lets go , lets go .
Keep going!
good vid please more
Thanks a ton 😉
Off topic here but does anyone know how I can embed a browser in a raylib window? Or some other lib that allows me to create a window on desktop?
Nevermid I'll just use Electron forgot that existed
Awesome!!
Nice video. It's great. But apart from learning and exploring what are the benefits of building a game without an engine and doing these much of stuffs from scratch?
Yeah, there is a financial benefits as well as freedoms. But won't this take too long to build a game?
Shouldve used sokol for this so easy and the amazing shader tooling all easy.
WHAT ABOUT HAZEL
what does a headless server mean? i never seem understand what headless refers to
"headless" refers to a server that operates without a directly connected monitor, keyboard, mouse, or other user interface devices. Instead, it is managed and accessed remotely through a network or the internet.
Key Characteristics of a Headless Server:
Remote Management:
Administrators connect to the server using tools like SSH (Secure Shell), RDP (Remote Desktop Protocol), or web-based interfaces.
No GUI (Optional):
Many headless servers run without a graphical user interface (GUI) to save system resources. They are often controlled through a command-line interface (CLI).
Efficiency:
By omitting the hardware and software associated with a graphical interface, headless servers reduce costs, improve performance, and minimize potential points of failure.
Common Use Cases:
Web hosting
File sharing and storage (e.g., NAS servers)
Virtualization hosts
Databases
Gaming servers
IoT devices
Physical Deployment:
Typically located in server rooms or data centers, they are designed for remote, continuous operation rather than direct interaction.
Headless setups are highly efficient for environments where direct access to the machine isn't necessary or practical.
A headless server is a computer that operates without a graphical user interface (GUI), meaning it does not have a monitor, keyboard, or mouse attached to it. Instead, it is managed through a command-line interface (CLI) or remote desktop connection.
This type of server is ideal for running applications and services that do not require a GUI, such as web servers, file servers, or databases, and can operate 24/7 without interruptions.
is that your mic you're holding? lol
what's your opinion on Zig and Odin? that is, besides the lack of existing 3d party engines and tools for C++.
i feel like specifically in game development when you avoid virtual functions like a plague and turn everything you can into structures of arrays, C++ loses most of its appeal compared to plain C, and if we treat C++ just as C 2.0, Zig and Odin do C 2.0 better (imo).
as enthusiastic as i am about Zig, i don't expect Hazel rewrite in it. but if you would start a new gamedev related project now, would you still stick to C++? you're doing your own engine so you don't care THAT much about what already exists in C++ world.
50:07 finally the sound fixed
Big fan
Big fan from India I
Wonderful